flow_version 1 app FeltDBStarter { // Optional billing semantics. Uncomment to include the Stripe-compatible module: // module stripe { // provider stripe-compatible // version 1.0.0 // } collection User { email: text name: text created_at: datetime index email using hash(email) } collection Organization { name: text created_at: datetime } collection Membership { user: ref User organization: ref Organization role: text created_at: datetime index user using hash(user) index organization using hash(organization) } collection Session { user: ref User expires_at: datetime created_at: datetime index user using hash(user) } collection Project { organization: ref Organization name: text description: text owner_id: text created_at: datetime updated_at: datetime index organization using hash(organization) } collection Invitation { organization: ref Organization user: ref User email: text role: text status: text created_at: datetime updated_at: datetime index organization using hash(organization) } collection AuditEvent { organization: ref Organization user: ref User action: text resource_type: text resource_id: text details: text created_at: datetime index organization using hash(organization) } collection Team { organization: ref Organization name: text description: text owner: ref User created_at: datetime updated_at: datetime index organization using hash(organization) } collection TeamMembership { organization: ref Organization team: ref Team user: ref User role: text created_at: datetime updated_at: datetime index organization using hash(organization) } capability ProjectSearch { visibility public read Project } capability ProjectSummary { visibility agent read Project read AuditEvent } capability ActivitySummary { visibility agent read AuditEvent } capability RecordAgentActivity { visibility internal write AuditEvent } workflow ProjectCreated { step persist_project { write Project } step record_activity { write AuditEvent } } workflow InvitationLifecycle { step create_invitation { write Invitation } step accept_invitation { write Membership } step record_activity { write AuditEvent } } workflow AgentAssistedSummary { step read_authorized_state { capability ProjectSummary } step record_activity { capability RecordAgentActivity } } agent ProjectAssistant { capability ProjectSearch capability ProjectSummary capability RecordAgentActivity workflow AgentAssistedSummary } agent ActivityAssistant { capability ActivitySummary capability RecordAgentActivity workflow AgentAssistedSummary } policy User { read: authenticated write: owner } policy Organization { read: member write: owner } policy Membership { read: member write: member } policy Session { read: self(user) write: self(user) } policy Project { read: member write: member } policy Invitation { read: self(user) | member write: member } policy AuditEvent { read: member write: authenticated } policy Team { read: member write: member } policy TeamMembership { read: member write: member } }