Data Model
The current codebase already has a broad Prisma schema even though the UI is still catching up.
Core identity
User: primary identity recordRole: access level such asADMIN,MODERATOR,MEMBER, orGUESTInvite: invite-based exception path for users outside the configuredALLOWED_DOMAIN
Channels and messaging
ChannelChannelMemberMessageReactionAttachmentPinnedMessageLinkPreview
These models are the backbone for team communication.
Direct communication
DirectMessageDMAttachmentGroupDMGroupDMMemberGroupDMMessage
Collaboration
TaskSubdivisionSubdivisionMemberPollPollOptionPollVote
Operations and platform
PushSubscriptionAuditLogIncomingWebhook
Incoming webhooks
IncomingWebhook is the first integrations-focused model in the schema.
It stores:
- the webhook name
- optional description
- target channel
- creator
- dedicated bot user
- hashed secret token
- token preview
- revocation state
- last-used timestamp
The bot posts messages using the normal Message model, so webhook traffic lands in the same canonical message table as human activity.