feat(health): register Authentik API, token, mapper and broker checks with core central health #31

Merged
KofTwentyTwo merged 5 commits from feature/health-checks into develop 2026-10-15 02:27:01 +00:00
KofTwentyTwo commented 2026-10-14 20:01:10 +00:00 (Migrated from github.com)

Summary

Registers the Authentik API, API token, mapper and token broker checks with the core health registry. Client calls are bounded by the check deadline, including the throttle wait.

This is the qbit side of QQQ central health monitoring (spec docs/specs/HEALTH.md, QRun-IO/qqq#1199; kernel QRun-IO/qqq#1207).

Checks registered

  • authentik.api: DEPENDENCY/IDENTITY, 300s. Reads the server version. A version mismatch is DEGRADED; unreachable is DOWN.
  • authentik.api_token: 6h. Under 14 days to expiry is DEGRADED; expired or missing is DOWN. The only detail is daysToExpiry.
  • authentik.mapper: 6h. Covers the mapper and service-account lockout drift findings. ERROR is DOWN and WARNING is DEGRADED. Details are finding codes only.
  • authentik.token_broker: 300s. A client-credentials grant whose token is discarded immediately. Not configured is UNKNOWN.

Removed or changed: the Identity home's Connection card and its direct version and token-expiry probes. The home now shows central health status. The driftReport widget is kept. A test fix makes TokenManagementTest explicitly simulate unavailable secret delivery.

Secrets, credentials, recipients, prompts and PHI never go into details. A sentinel test covers every check's failure paths.

QQQ 4.1.0-RC.8

This PR pins QQQ 4.1.0-RC.8, which ships the central health kernel (QRun-IO/qqq#1207), and merges in develop (help bundles, foreign keys). The merge conflicts are resolved so that both sides are kept.

Tests

17 new health tests; 291 tests in total pass. Coverage is 92.3% of instructions and 100% of classes. Locally, G4 flags three existing expired compatibility markers and checkstyle reports the existing header-template mismatches; this PR adds neither.
Local build: ./mvnw -o verify -Denforcer.skipRules=requireReleaseDeps -DskipITs against RC.8.

Codex implemented this from the spec. I reviewed it.

🤖 Generated with Claude Code

## Summary Registers the Authentik API, API token, mapper and token broker checks with the core health registry. Client calls are bounded by the check deadline, including the throttle wait. This is the qbit side of QQQ central health monitoring (spec `docs/specs/HEALTH.md`, QRun-IO/qqq#1199; kernel QRun-IO/qqq#1207). **Checks registered** - `authentik.api`: DEPENDENCY/IDENTITY, 300s. Reads the server version. A version mismatch is DEGRADED; unreachable is DOWN. - `authentik.api_token`: 6h. Under 14 days to expiry is DEGRADED; expired or missing is DOWN. The only detail is `daysToExpiry`. - `authentik.mapper`: 6h. Covers the mapper and service-account lockout drift findings. ERROR is DOWN and WARNING is DEGRADED. Details are finding codes only. - `authentik.token_broker`: 300s. A client-credentials grant whose token is discarded immediately. Not configured is UNKNOWN. **Removed or changed:** the Identity home's Connection card and its direct version and token-expiry probes. The home now shows central health status. The `driftReport` widget is kept. A test fix makes `TokenManagementTest` explicitly simulate unavailable secret delivery. Secrets, credentials, recipients, prompts and PHI never go into details. A sentinel test covers every check's failure paths. ## QQQ 4.1.0-RC.8 This PR pins QQQ 4.1.0-RC.8, which ships the central health kernel (QRun-IO/qqq#1207), and merges in develop (help bundles, foreign keys). The merge conflicts are resolved so that both sides are kept. ## Tests 17 new health tests; 291 tests in total pass. Coverage is 92.3% of instructions and 100% of classes. Locally, G4 flags three existing expired compatibility markers and checkstyle reports the existing header-template mismatches; this PR adds neither. Local build: `./mvnw -o verify -Denforcer.skipRules=requireReleaseDeps -DskipITs` against RC.8. Codex implemented this from the spec. I reviewed it. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.