Envault
Core Concepts

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:

LevelColourMeaning
OperationalEmeraldEverything is running normally
DegradedAmberSome services are impacted or slow
OutageRedOne or more services are unavailable
MaintenanceBlueScheduled 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:

SeverityMaps to levelWhen to use
MinorMaintenance (blue)Small degradation, minimal user impact
MajorDegraded (amber)Noticeable disruption to some features
CriticalOutage (red)Service is down or broadly unavailable
MaintenanceMaintenance (blue)Planned maintenance window

Incident phases

Each incident progresses through phases. The timeline on the status page uses distinct icons and colours per phase:

PhaseColourMeaning
InvestigatingRedIssue identified, root cause unknown
IdentifiedAmberRoot cause found, fix in progress
MonitoringBlueFix deployed, watching for stability
ResolvedEmeraldIncident fully resolved

Public API

The current system status is available without authentication:

GET /api/system-status

Response

{
  "level": "degraded",
  "message": "We are investigating elevated API error rates.",
  "incidentCount": 1
}
FieldTypeDescription
level"operational" | "degraded" | "outage" | "maintenance"Worst current status level
messagestring | nullActive incident message, or null if fully operational
incidentCountnumberNumber 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