Skip to main content

Enums

enum Priority   { low, medium, high }
enum Status      { todo, in_progress, done, cancelled }
enum TeamRole    { owner, admin, member }
enum ProjectStatus { planned, in_progress, paused, completed, cancelled }

Task

The core entity — items on the kanban board.
FieldTypeDefaultDescription
idUUIDautoPrimary key
titlestringTask description
descriptionstring?nullAdditional context
priorityPrioritymediumTask priority
statusStatustodoKanban column
numberint?nullTeam-scoped issue number
identifierstring?nullDisplay identifier (e.g., ENG-1)
teamIdUUID?nullFK to Team
projectIdUUID?nullFK to Project
sessionIdstring?nullOpenCode session ID
executionStartedAtDateTime?nullExecution start time
executionPausedAtDateTime?nullPause/cancel time
executionElapsedMsint0Total elapsed milliseconds
executionProgressint?null0-100 estimated progress
prUrlstring?nullPull request URL
outcomestring?nullExecution result summary
executionLogsJSON?nullPersisted log entries
batchIdstring?nullGroups tasks in a batch
archivedbooleanfalseSoft delete flag
inboxReadbooleanfalseRead status for inbox
dueDateDateTime?nullTarget date
Relations: labels (many-to-many via TaskLabel), team, project

User

FieldTypeDefaultDescription
idUUIDautoPrimary key
githubIdint?nullGitHub OAuth ID (unique)
usernamestringUnique username
emailstring?nullEmail address
avatarUrlstring?nullProfile avatar URL
accessTokenstring?nullGitHub OAuth token
passwordHashstring?nullbcrypt hash for local auth
Relations: repositories, teamMemberships, ledProjects

Team

FieldTypeDefaultDescription
idUUIDautoPrimary key
namestringTeam name
keystringUnique key (e.g., ENG)
descriptionstring?nullTeam description
colorstring#6366f1Display color
iconstring?nullIcon identifier
privatebooleanfalseVisibility flag
inviteCodestring?nullJoin code (unique)
nextIssueNumberint1Auto-incrementing issue counter
Relations: members, projectTeams, tasks

TeamMember

Join table with roles.
FieldTypeDefault
idUUIDauto
teamIdUUID
userIdUUID
roleTeamRolemember
sortOrderint0
Composite unique: (teamId, userId)

Project

FieldTypeDefaultDescription
idUUIDautoPrimary key
namestringProject name
descriptionstring?nullDescription
statusProjectStatusplannedCurrent phase
colorstring#6366f1Display color
iconstring?nullIcon identifier
startDateDateTime?nullStart date
targetDateDateTime?nullTarget completion
leadIdUUID?nullFK to User
repositoryIdUUID?nullFK to Repository
localPathstring?nullLocal folder path
repoUrlstring?nullOriginal repo URL
Relations: projectTeams, tasks, lead, repository

Repository

FieldTypeDefaultDescription
idUUIDautoPrimary key
githubRepoIdintGitHub repo ID
namestringRepo name
fullNamestringowner/name
cloneUrlstringHTTPS clone URL
defaultBranchstringmainBase branch
userIdUUID?nullFK to User
isActivebooleanfalseCurrently selected
Composite unique: (userId, githubRepoId)

Label

FieldTypeDefault
idUUIDauto
namestring— (unique)
colorstring
priorityint0
Relations: tasks (many-to-many via TaskLabel)

Settings

Single-row configuration.
FieldTypeDefaultDescription
idstringdefaultAlways default
parallelLimitint3Max concurrent executions
maxBatchSizeint3Max tasks per batch
queueAutoApprovebooleanfalseAuto-start next in queue
stopOnFailurebooleanfalseCancel batch on failure
conflictBehaviorstringskipskip or fail