Skip to main content

Health Dependencies

GET 

/health/dependencies

Safe, dependency/posture diagnostic for #1050.

Always returns 200 (even when a dependency is down) so operators can parse the body's status field (ok/degraded/failing) instead of reasoning about HTTP status. Same convention as /health/graph and /health/steward (also always 200 with state in the body) — health problems should be visible in the payload, not hidden behind a 503 the alerting SLO treats as "process down".

No downstream I/O occurs here: every check is a synchronous runtime-state derivation or a read of an already-collected cached sample. A health request must not form a thundering herd against a degraded DB, Redis, or Kafka dependency.

M-HLTH E-HLTH.3 (#1050) landed the collector this docstring used to promise. Measured per-dependency state (status, latency_ms, last_success_at, age_seconds, error_class) now comes from halo_api.services.dependency_health's background probe cycle -- the health.dependency_probe scheduler job -- so the numbers are real measurements, while the request path still does zero I/O. Staleness is reported honestly (age_seconds/stale) rather than hidden: a reading the collector could not refresh says so, instead of a fresh- looking value that is actually minutes old.

Component shape: status (one of ok/degraded/failing) plus allowlisted posture/measurement fields. Never includes connection strings, secrets, tenant data, or raw exception messages -- failures are reported as an exception TYPE name only (error_class), because driver error messages routinely embed host, port, user and database name.

Responses

Successful Response

Response Headers
    RateLimit

    Current tenant quota state (draft-ietf-httpapi-ratelimit-headers structured field): "tenant";r=<remaining>;t=<seconds-to-reset>. Emitted on every response when per-tenant rate limiting is enabled (ARMOR_TENANT_RATE_LIMIT_PER_MIN > 0; off by default).

    RateLimit-Policy

    The quota policy the RateLimit header reports against: "tenant";q=<limit>;w=<window-seconds>.

    X-Correlation-Id

    Request correlation id — present on every response; quote it when reporting an issue. Error bodies carry the same value as correlation_id.

Was this helpful?

Optional comments unlock after a short time on this docs site.

Ask the docs

Tier-scoped answers from this portal corpus (extractive; no external LLM).

Comments

Loading comments…

Suggest an edit

Propose a correction. Staff review every suggestion and open a draft PR; nothing publishes without CI.