Migration Plan
:::info Source
Sourced from services/assessment-service/MIGRATION_PLAN.md in the documentation repo.
:::
1. Core Rules
- Grading rule schema versioned; old attempts use the version they started with.
- QuizBank version bumps on question/rubric change; in-flight attempts pinned.
- AI prompts append-only; deprecated ≥ 1 milestone.
- Rubric grading high-risk — schema changes require EU AI Act re-documentation.
2. Database
Add column nullable ✅. NOT NULL two-step. Indexes CONCURRENTLY. Rubric JSONB versioned via rubric.schemaVersion.
3. API
URL major v1 → v2 on breaking. Question response schema additive.
4. Events
| Event | v | Policy |
|---|---|---|
assessment.quiz_bank.created.v1 | v1 | Additive |
assessment.attempt_result.scored.v1 | v1 | Additive; outcome enum additive |
assessment.branching_scenario.completed.v1 | v1 | Additive |
5. QuizBank Versioning
- New version when questions/options/rubric change.
- In-flight attempts locked to version at start.
- Old version retained until last attempt closes.
6. AI Prompt Evolution
- Append-only versions per ai-gateway pattern.
- Bias + accuracy eval gates each bump.
- Rubric grading prompt changes require compliance sign-off.
7. Branching Scenario Migration
- Scenario = DAG; edits create new version; in-flight attempts locked to their start version.
8. Offline Bundle Compatibility
- QuizBank schema versioned; player falls back to older renderer for older versions.
- Forced re-download on major quiz bank changes if content critical.
9. GDPR
- Erasure saga deletes AttemptResult, responses, appeals.
- QuizBank retained.
10. Changelog
Per-release: new question types, rubric schema changes, prompt versions, DAG migrations.