All checks were successful
Build and Push Docker Image / build (push) Successful in 10m33s
1.8 KiB
1.8 KiB
Phase 01 Schema Specification
Summary
Introduce the canonical orchestration entities and remove legacy dependency assumptions around single roundId progression.
New Canonical Tables
PipelineTrackStageStageTransitionProjectStageStateRoutingRuleCohortCohortProjectLiveProgressCursorNotificationPolicyOverrideActionDecisionAuditLog
Award Governance Extensions
- Add
DecisionMode = JURY_VOTE | AWARD_MASTER | ADMIN - Add award-scoped governance metadata to award track configs
- Add award winner finalization audit event contracts
Migration Model
- Build new schema directly as canonical target.
- Keep migration files deterministic and replay-safe.
- Do not implement dual-write or compatibility tables.
Required Constraints
trackId + sortOrderunique inStageprojectId + trackId + stageIdunique inProjectStageStatefromStageId + toStageIdunique inStageTransitioncohortId + projectIdunique inCohortProject
Required Indexes
ProjectStageState(projectId, trackId, state)ProjectStageState(stageId, state)RoutingRule(pipelineId, isActive, priority)StageTransition(fromStageId, priority)DecisionAuditLog(entityType, entityId, createdAt)LiveProgressCursor(stageId, sessionId)
Data Initialization Rules
- Every seeded project must start with one intake-stage state.
- Seed must include main track plus at least two award tracks with different routing modes.
- Seed must include representative roles: admins, jury, applicants, observer, audience contexts.
Integrity Checks
- No orphan states.
- No invalid transition targets across pipelines.
- No duplicate active state rows for same
(project, track, stage).