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
| Component | What it checks | Backed by |
|---|---|---|
database | Postgres connectivity + Hikari pool stats | SELECT 1 over the JPA datasource |
storage | MinIO / S3-compatible storage | GET <minio>/minio/health/live |
selenium | Selenium Grid for Element Picker | GET <grid>/status + parses node slots |
readiness | readiness-agent Spring Boot service (port 8082) | GET <readiness>/actuator/health |
orchestrator | orchestrator-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) isDOWN. - UNHEALTHY —
databaseisDOWN(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 var | Default | Production value (in helm/cloud-security-scanner/templates/backend-deployment.yaml) |
|---|---|---|
READINESS_URL | empty | http://{release}-readiness:8082 |
ORCHESTRATOR_URL | empty | http://{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.