msgbyte / msgbyte/tianji

[Feature Request] Scheduled Maintenance Windows for Status Pages

Open
#265 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
3.1k
Forks
194
Avg merge
18m
Merged PRs (30d)
3

Description

Summary

Add the ability to schedule planned maintenance windows on status pages, showing upcoming and ongoing maintenance alongside the regular service status.

Use Case

When doing planned maintenance (server upgrades, DB migrations, network changes), operators need to inform users in advance and show the expected impact during the window. This is a standard feature in tools like UptimeKuma and Atlassian Statuspage.

Proposed Features

Backend / API
  • A MaintenanceWindow model (or extend StatusPageIncident with a type field):
    • title: short description (e.g., "Database upgrade")
    • message: detailed Markdown body explaining impact
    • startedAt / endedAt: scheduled start and end times
    • status: scheduled | active | completed
    • affectedMonitors: list of monitor IDs affected (show as "Under Maintenance" instead of "Down")
    • pageId: FK to MonitorStatusPage
  • CRUD API to create/list/update/delete maintenance windows
  • Auto-transition from scheduledactivecompleted based on time (or manual)
Frontend / UI
  • Admin panel: Monitor → Status Page → Edit → Maintenance tab
    • Create maintenance with title, description, start/end datetime picker, affected services picker
    • List of upcoming, active, and past maintenance
    • Ability to cancel or complete early
  • Status page display:
    • Upcoming: Show a banner like "🛠️ Scheduled maintenance on June 10, 2026 from 2:00 AM to 4:00 AM (UTC-7)"
    • Active: Show a prominent banner indicating ongoing maintenance, with affected services shown as "Under Maintenance" (yellow/blue badge instead of red/green)
    • Past: Show in an incident log as resolved/completed
  • Monitors affected by active maintenance should NOT trigger alerts/downtime notifications
Integration
  • Monitors under active maintenance should not count as downtime in uptime calculations
  • Alerts/notifications should be suppressed for monitors under maintenance

Why This Matters

This is critical for professional use cases (e.g., ERP systems, business SaaS) where planned maintenance needs to be communicated transparently to end users without triggering false alarms.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by mapping the existing MonitorStatusPage, StatusPageIncident, monitor alerting, uptime calculation, and status-page display flows. The issue proposes either a MaintenanceWindow model or extending StatusPageIncident, plus CRUD, admin UI, scheduled state transitions, maintenance badges, notification suppression, and uptime handling. Done means the backend, frontend, integrations, and time-based behavior work together with coverage for upcoming, active, completed, and cancelled maintenance.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, full-stack, observability
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.