Skip to main content

Platform Health

The Platform Health page (/admin/health in the UI, GET /api/admin/health on the API) gives an at-a-glance view of every infrastructure component the platform depends on. ADMIN role required.

What it covers

ComponentWhat it checksBacked by
databasePostgres connectivity + Hikari pool statsSELECT 1 over the JPA datasource
storageMinIO / S3-compatible storageGET <minio>/minio/health/live
seleniumSelenium Grid for Element PickerGET <grid>/status + parses node slots
readinessreadiness-agent Spring Boot service (port 8082)GET <readiness>/actuator/health
orchestratororchestrator-agent Spring Boot service (port 8083)GET <orchestrator>/actuator/health

Each component reports one of:

  • UP — reachable and reports healthy.
  • DOWN — reachable but failing, or unreachable within 3 s.
  • NOT_CONFIGURED — the URL env var is blank (typical for local docker-compose).
  • DISABLED — feature was explicitly disabled (e.g. MINIO_ENABLED=false).

NOT_CONFIGURED and DISABLED do NOT mark the platform DEGRADED — they just render as gray tiles so the operator knows the probe wasn't run.

Overall status

The banner at the top of the page rolls components up:

  • HEALTHY — all configured components are UP.
  • DEGRADED — at least one component (other than database) is DOWN.
  • UNHEALTHYdatabase is DOWN (the platform can't function).

Configuration

The two Spring Boot sibling probes default to empty (NOT_CONFIGURED). To enable them, set the URLs at the backend pod level:

Env varDefaultProduction value (in helm/cloud-security-scanner/templates/backend-deployment.yaml)
READINESS_URLemptyhttp://{release}-readiness:8082
ORCHESTRATOR_URLemptyhttp://{release}-orchestrator:8083

For local docker-compose neither sibling exists (see docs/SERVICE_MAP.md), so leaving them blank is correct.

Why this exists

Until 2026-05-15 the Platform Health page only checked database / storage / selenium / agents. The two Spring Boot sibling services were invisible — when the readiness-agent's /api/readiness/* path was 5xx'ing in production, the Platform Health banner was still green. This page closes that gap.

Adding new components

The frontend renders unknown component names generically, so the backend can add a new key to the components map and it'll show up. To get a custom icon and tailored detail lines, update security-agent-ui/src/pages/PlatformHealth.jsx:

  • COMPONENT_ICONS[name] = <SomeIcon />
  • COMPONENT_COLORS[name] = '#hex'
  • Extend the getDetailLines() switch for any per-component fields you want printed.

Future probes

Not yet wired but easy to add:

  • mcp — the MCP agent at /mcp/healthz. Skipped at platform-health launch to keep that PR scoped to the two Spring Boot services. The MCP agent itself exposes its own health endpoint so K8s readiness/liveness probes already cover it.
  • rabbitmq — when RabbitMQ is enabled.