Context
maintenanceWindow.ts schedules future maintenance windows and auto-enables maintenance mode when a window is active (Issue #714).
Problem / Gap
Scheduled windows live in an in-memory array. Deployments, restarts, or horizontal scaling cause windows to disappear and maintenance mode transitions to drift out of sync across pods.
Proposed approach
- Persist maintenance windows in Prisma with
startsAt, endsAt, title, reason, and createdBy.
- Load active/upcoming windows on startup and reconcile maintenance mode state.
- Keep the public read-only status endpoint behavior unchanged.
Acceptance criteria
Files/areas affected
backend/src/maintenanceWindow.ts
backend/src/maintenanceMode.ts
backend/prisma/schema.prisma
Context
maintenanceWindow.tsschedules future maintenance windows and auto-enables maintenance mode when a window is active (Issue #714).Problem / Gap
Scheduled windows live in an in-memory array. Deployments, restarts, or horizontal scaling cause windows to disappear and maintenance mode transitions to drift out of sync across pods.
Proposed approach
startsAt,endsAt,title,reason, andcreatedBy.Acceptance criteria
Files/areas affected
backend/src/maintenanceWindow.tsbackend/src/maintenanceMode.tsbackend/prisma/schema.prisma