Configuration · Server incidents

Lets platform administrators publish an incident notice (title, description) that every signed-in user sees as an in-app banner, and mark it resolved when the issue is over.

AreaConfiguration
Routesconfiguration.server-incidents · configuration.server-incidents.index · configuration.server-incidents.new · configuration.server-incidents.edit · configuration.server-incidents.show
Centre modulesalways available
Staff levelsroot · admin
Modelsserver-incident
UI labeltitle.header.configuration.server-incidents / menu.navbar.server-incidents
Coverage3 use cases · 1 happy · 4 failure

Known issues (1)

Missing translations

These keys are used on this screen but do not exist in translations.json, so users see the raw key:

  • error.server-incident.required
  • server-incident

How it works

The authoring side of the application-wide incident banner. Root/admin only. The editor has an explicit resolve action alongside submit/cancel, and the list shows created-at and resolved-at so the incident history is auditable. Both fields share one validation message (error.server-incident.required), so the user is not told which field is missing.

Use cases

Why someone opens this (3)

  • Warning all users that receipt processing is delayed before support is flooded.
  • Announcing a planned maintenance window from inside the product.
  • Closing an incident once service is restored.

Path map

flowchart LR
    F(["Server incidents"]):::feat
    F --> H1["Incident opened and resolved"]:::ok
    F -.-> X1["Title or description missing"]:::bad
    F -.-> X2["Role insufficient"]:::bad
    F -.-> X3["Banner persists after resolution"]:::bad
    F -.-> X4["Raw translation key on screen"]:::bad
    classDef feat fill:#566066,stroke:#566066,color:#ffffff,font-weight:bold
    classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e
    classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13

Happy paths

Incident opened and resolved

  1. Admin creates an incident with a title and description.
  2. Every user immediately sees the banner with the last-updated time.
  3. When service is restored the admin opens the incident and clicks resolve.
  4. resolvedAt is stamped and the banner stops appearing on new page loads.

Failure paths

QA checklist

Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.

  • ✅ Incident opened and resolved
  • ⛔ Title or description missing
  • ⛔ Role insufficient
  • ⛔ Banner persists after resolution
  • ⛔ Raw translation key on screen

Implementation


Generated from doc/feature-inventory.json · id config-server-incidents · commit 276788ca6