Maintenances
Plans, schedules, live runs.
Planned change windows: reusable plans, scheduled executions, and live runs.
Tabbed list
Route: /maintenances
Role gating: none for read; create / edit / delete / cancel require
admin.
The page has four tabs.
Upcoming · Running · History
Schedule cards showing date rail, status badge, risk level, plan name, target servers, and estimated duration. Each card has:
- View — opens the live schedule detail.
- Cancel — only on Upcoming cards.
Plans
Grid of reusable maintenance plans. Each card shows name, description,
risk level, strategy (linear / parallel / rolling), step count,
and whether it is built-in. Built-in plans are read-only.
Top buttons
- Create Plan →
/maintenances/plans/new - Schedule Maintenance →
/maintenances/schedule
Plan create
Route: /maintenances/plans/new
Role gating: admin.
Form fields:
- Name, description.
- Risk level (
low/medium/high). - Execution strategy.
- Target server selection.
- Markdown body for pre-checks, steps, and post-checks.
- Approval requirements.
Plan edit
Route: /maintenances/plans/{id}
Role gating: admin. Built-in plans are read-only regardless of
role.
Same fields as the create form, plus the plan version and last-modified timestamp.
Schedule
Route: /maintenances/schedule
Role gating: admin.
Form to schedule an execution of an existing plan:
- Pick a plan.
- Choose target servers.
- Set scheduled start time and date.
- Choose whether to require approval (else the schedule is pre-approved).
- Optional cron expression for recurrence.
Newly created schedules enter pending_approval (or approved if
configured to auto-approve).
Schedule detail
Route: /maintenances/schedules/{id}
Role gating: none for read; approve / reject / pause / resume /
cancel require admin.
Live-updating detail page.
Status states
pending_approval → approved → running → completed (or
failed).
Information shown
- Plan name and version.
- Status badge.
- Target servers.
- Scheduled start, actual start, finish times.
- Estimated duration.
- Live progress bar for running executions.
- Step-by-step log.
Action buttons
- Approve / Reject when status is
pending_approval. - Pause / Resume / Cancel when status is
runningorapproved.