msgbyte / msgbyte/tianji

[Feature Request] Incidents & Announcements for Status Pages

Open
#264 0 comments 0 reactions 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 create and display incidents/announcements on status pages. The database table StatusPageIncident already exists in the codebase but there is no API or UI to manage them, nor any display on the status page itself.

Use Case

When services go down or there is an ongoing issue, operators need a way to communicate with end-users directly on the status page. Similarly, planned changes or post-mortem notes should be visible.

Proposed Features

Backend / API
  • CRUD endpoints (create, list, update, delete) for StatusPageIncident tied to a MonitorStatusPage
  • Incidents should have:
    • name (title)
    • payload with fields like:
      • status: resolved | investigating | identified | monitoring
      • message (Markdown body)
      • startedAt / resolvedAt timestamps
    • Link to the specific MonitorStatusPage (currently the table has no FK to the status page)
Frontend / UI
  • Admin panel: a section under Monitor → Status Page → Edit where users can manage incidents (create, update status, resolve)
  • Status page display: show active/resolved incidents above the service list, with status badges (e.g., 🟡 Investigating, 🟢 Resolved)
  • Optional: email/webhook notifications when a new incident is created
Reference StatusPageIncident Schema (already exists)

StatusPageIncident {
id: String (PK)
createdAt: DateTime
updatedAt: DateTime
name: String(100)
payload: JSON (StatusPageIncidentPayload)
}

Copiar

The schema is defined in src/server/prisma/zod/statuspageincident.ts but currently unused in the API layer.

Why This Matters

Without an incident system, status pages are purely passive — they show uptime but cannot communicate actively with users during outages.

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 reading src/server/prisma/zod/statuspageincident.ts and tracing the existing MonitorStatusPage API and edit UI entry points. Define the API, admin management flow, and status-page display around the existing StatusPageIncident schema, including the status, message, and timestamps. Done means incidents can be managed for a status page and active or resolved incidents are displayed above its service list.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.