System Status
Real-time monitoring of system health and incident reporting.
Envault includes a built-in system status layer that provides real-time transparency into application health. It covers a dedicated status page, an in-app banner that surfaces active incidents, a public API endpoint, and a footer badge - all driven from the same data source.
Status page
The status page is accessible at /status and shows:
- Overall system health - a single top-level indicator derived from the worst active component or incident
- Component status - granular health for individual services (API, Database, Authentication, etc.)
- Active incidents - severity, current phase, and a live update timeline
- Incident history - resolved incidents from the last 90 days
Status levels
All status indicators across the app share the same four levels:
| Level | Colour | Meaning |
|---|---|---|
| Operational | Emerald | Everything is running normally |
| Degraded | Amber | Some services are impacted or slow |
| Outage | Red | One or more services are unavailable |
| Maintenance | Blue | Scheduled maintenance is in progress |
The overall level is computed as the worst of all active component statuses and incident severities, so the banner and status page always agree.
In-app status banner
When the system is not fully operational, a dismissible banner appears at the top of every app page. It shows the incident message, severity level, and a direct link to the status page.
- The banner is hidden when all systems are operational
- Dismissing it stores the state in
sessionStorage- it won't reappear during the same browser session but will show again after a hard refresh - The banner is fully responsive: on small screens the secondary text is replaced with a compact "View status" link
Incident severities
Incidents are created with one of four severities, which map to the visual status level shown across the app:
| Severity | Maps to level | When to use |
|---|---|---|
| Minor | Maintenance (blue) | Small degradation, minimal user impact |
| Major | Degraded (amber) | Noticeable disruption to some features |
| Critical | Outage (red) | Service is down or broadly unavailable |
| Maintenance | Maintenance (blue) | Planned maintenance window |
Incident phases
Each incident progresses through phases. The timeline on the status page uses distinct icons and colours per phase:
| Phase | Colour | Meaning |
|---|---|---|
| Investigating | Red | Issue identified, root cause unknown |
| Identified | Amber | Root cause found, fix in progress |
| Monitoring | Blue | Fix deployed, watching for stability |
| Resolved | Emerald | Incident fully resolved |
Public API
The current system status is available without authentication:
GET /api/system-statusResponse
{
"level": "degraded",
"message": "We are investigating elevated API error rates.",
"incidentCount": 1
}| Field | Type | Description |
|---|---|---|
level | "operational" | "degraded" | "outage" | "maintenance" | Worst current status level |
message | string | null | Active incident message, or null if fully operational |
incidentCount | number | Number of currently active (unresolved) incidents |
Responses are cached for 60 seconds via Redis. This endpoint is safe to poll from external monitoring tools or status widgets without impacting the database.
Administrative controls
Administrators can manage system status from the admin dashboard:
- Create and update incidents with severity and phase
- Post timeline updates as an incident progresses
- Manually override the status of individual components
- Schedule and close maintenance windows