Data Model Glossary
Owner: Backend Engineering Last reviewed: 2026-Q2
This page defines the core domain terms used in WorkOpti.
Identity And Ownership
User- local database user linked to Clerk byclerk_user_id. Use localUser.idfor ownership, sharing, permissions, and joins.Organization- personal workspace container for a user, including storage metadata such asstorage_slugand key-management fields.Role/UserRole- local role records. Do not assume Clerk org roles are the source of truth for board access.
Kanban
Board- an action-point workspace. Ownership is stored inowner_user_id. Board access can also be granted throughBoardPermission.Column- ordered lane inside a board. Column order is stored as an integerposition.ActionPoint- the primary work item. It has an owner, creator, optional assignee, due date, priority, comments, attachments, tags, and shares.ActionPointBoardAssociation- join model that places an action point on a board and column. It stores per-boardcolumn_idand LexoRankposition, which allows the same action point to appear on multiple boards.BoardPermission- explicit board grant for another user. Current product levels are viewer/editor, while ownership is implicit throughBoard.owner_user_id.ActionPointShare- direct action-point share represented as a snapshot inbox record for the grantee. Importing a shared action point places the original action point on a board by reference.Comment- discussion attached to an action point.Attachment- file attachment attached to an action point.Tag,ActionPointTag,BoardTag- label models for action points and boards.LinkedActionPoint- relation between two action points.
Documents And AI
Document- uploaded document metadata, ownership, status, hash/version fields, and storage pointers.DocumentChunk- extracted text chunk used for embeddings and retrieval.DocumentPermission- document sharing grant with aPermissionLevel.DocumentAccessLog- audit trail for document access.BotInteraction- record of an AI interaction, including the original query and response.BotGeneratedActionPoint- join record linking AI-generated action points to the interaction that created them.Notification- user notification for sharing, collaboration, and other product events.
Permission Rules
- Board access is granted by board ownership or an explicit
BoardPermission. - Action-point visibility can come from ownership, a direct
ActionPointShare, or board access throughActionPointBoardAssociation. - Action-point editing is restricted to owners or users with write access through a containing board.
- Action-point deletion is owner-only unless a route explicitly documents a narrower exception.
- Document access is controlled by ownership and
DocumentPermission.
Ranking And Placement
- Column order uses integer
Column.position. - Action-point order inside a board column uses LexoRank stored on
ActionPointBoardAssociation.position. - Do not put board-specific placement fields directly on
ActionPoint; the association is the source of truth.