Migration Plan
:::info Source
Sourced from services/assignment-service/MIGRATION_PLAN.md in the documentation repo.
:::
1. Rules
- RRULE + ComplianceWindow (F25-F26) frozen M3 start; RFC 5545 subset; platform caps documented.
- Assignment state machine transitions frozen; additive states OK.
- Escalation policy schema versioned; in-flight assignments pinned to their version.
2. Database
Additive columns. Partition compliance_windows monthly by due_at.
3. API
URL major on breaking.
4. Event Evolution
| Event | v | Policy |
|---|---|---|
assignment.created.v1 | v1 | Additive |
assignment.window.opened.v1 | v1 | Additive |
assignment.window.overdue.v1 | v1 | Additive |
assignment.escalation.triggered.v1 | v1 | Additive |
5. RRULE Evolution
- Supported subset of RFC 5545: FREQ (DAILY/WEEKLY/MONTHLY/YEARLY), INTERVAL, COUNT, UNTIL, BYDAY, BYMONTHDAY, BYMONTH.
- UNSUPPORTED: BYHOUR/BYMINUTE/BYSECOND, BYYEARDAY, BYWEEKNO, BYSETPOS.
- Platform caps: max 10 years horizon; max 1000 materialized windows per RRULE.
6. Dynamic Group Evolution
- Query DSL versioned; consumer evaluates at query version.
- New operators additive.
7. Timezone Handling
- Windows snapshot timezone at creation.
- If tenant changes timezone, in-flight windows unchanged; new assignments use new TZ.
8. GDPR
- Erasure: delete compliance windows for user; retain aggregate audit.
9. Data Residency
- Assignments + windows pinned to tenant homeRegion.
10. Changelog
Per-release: RRULE subset expansions, escalation templates, dynamic group operators.