Skip to main content

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

EventvPolicy
assignment.created.v1v1Additive
assignment.window.opened.v1v1Additive
assignment.window.overdue.v1v1Additive
assignment.escalation.triggered.v1v1Additive

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.