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.
| Area | Configuration |
| Routes | configuration.server-incidents · configuration.server-incidents.index · configuration.server-incidents.new · configuration.server-incidents.edit · configuration.server-incidents.show |
| Centre modules | always available |
| Staff levels | root · admin |
| Models | server-incident |
| UI label | title.header.configuration.server-incidents / menu.navbar.server-incidents |
| Coverage | 3 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.requiredserver-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
- Admin creates an incident with a title and description.
- Every user immediately sees the banner with the last-updated time.
- When service is restored the admin opens the incident and clicks resolve.
resolvedAtis stamped and the banner stops appearing on new page loads.
Failure paths
Title or description missing
Cause — Either field blank.
What happens —
error.server-incident.required— the same message for both fields.
Role insufficient
Cause — Not root/admin.
What happens —
server-incidentability blocks the route.
Banner persists after resolution
Cause — Users already have the page open.
What happens — No live invalidation — the banner clears on the next load.
Raw translation key on screen
Cause — The code references
error.server-incident.required,server-incidentbut the key does not exist in translations.json.What happens — ember-intl renders the missing key (or its missing-message placeholder) instead of text — visible to every user of this screen until the key is added.
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
app/controllers/configuration/server-incidents/index.jsapp/controllers/configuration/server-incidents/new.jsapp/controllers/configuration/server-incidents/edit.jsapp/controllers/configuration/server-incidents/show.jsapp/routes/configuration/server-incidents/*.jsapp/models/server-incident.jsapp/abilities/server-incident.js
Translation keys (10)
Key English title.header.configuration.server-incidentsServer incidents menu.navbar.server-incidentsServer incidents server-incidents.newNew server incident server-incidents.index.titleTitle server-incidents.index.created-atCreated at server-incidents.index.resolved-atResolved at configuration.server-incidents.newNew server incident configuration.server-incidents.editEdit configuration.server-incidents.showShow error.server-incident.required⚠️ missing
Related
- Same area — Centre list & export · Centre editor (modules, app config, integrations) · Staff member list, deletion & restore · Staff member editor (levels, scope, API token) · Channels · Extra attributes · Email template preview & test send · Dashboard configuration · Influence zones · Server command runner (CLI) · Accessibility statement · Mobile app configuration · Customer login methods (Google, Facebook) · Third-party integrations & connectors · Social wifi & location services
- Shares data with — Server-incident banner
Generated from doc/feature-inventory.json · id config-server-incidents · commit 276788ca6