Data Model Glossary

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 by clerk_user_id. Use local User.id for ownership, sharing, permissions, and joins.
  • Organization - personal workspace container for a user, including storage metadata such as storage_slug and 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 in owner_user_id. Board access can also be granted through BoardPermission.
  • Column - ordered lane inside a board. Column order is stored as an integer position.
  • 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-board column_id and LexoRank position, 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 through Board.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 a PermissionLevel.
  • 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 through ActionPointBoardAssociation.
  • 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.