The arc
Airlock replaces CASA’s independent BetterAuth as the single identity source across the devarno.cloud surface — hub, hubble, hatch, manual, pebble, ares, studio, web-app, landing. This campaign tracks the convergence from dual-truth to one gateway, and the verification programme proving the cutover is safe.Status (2026-04-18)
- Airlock serves hubble, hatch, pebble, ares, manual via cross-subdomain
.devarno.cloudcookies. Family-hub (CASA) still runs its own BetterAuth — retirement is TASKSET 7. - Auth verification sweep (AV-TASKSET 1–8) complete: threat model, flow inventory, claim audit, instrumentation spec, contract harness, per-client registry, RBAC reconciliation, observability & decommission gate.
- Three live findings surfaced (C1 forgeable default secret, C2 prod
AUTH_DISABLEDbypass, C5 WebSocket mid-session decay). Remediation is FU-TASKSET 0–3.
Verification artefacts
- Threat model →
atlas/findings/2026-04-18-auth-threat-model.md - Flow × hop matrix →
atlas/findings/2026-04-18-auth-flow-hop-matrix.md - Claim audit (SDKs, chat-service, secrets) →
atlas/findings/2026-04-18-auth-claim-audit.md - Instrumentation spec →
atlas/findings/2026-04-18-auth-instrumentation-spec.md - Contract harness rollout readiness →
atlas/findings/2026-04-18-auth-contract-rollout-readiness.md - RBAC reconciliation →
atlas/findings/2026-04-18-auth-permissions-reconciliation.md - Decommission gate criteria →
atlas/findings/2026-04-18-auth-decommission-gate.md
Path to cutover (FU-TASKSETs)
| # | Work | Unblocks |
|---|---|---|
| 0 | C1 + C2 fail-closed guards (airlock boot, hubble/hatch middleware) | Removes live exposure |
| 1 | Airlock /api/admin/config-health endpoint | Preflight + RBAC generator |
| 2 | Airlock-native SDK carved out of hubble/hatch inline pattern | Single validation surface |
| 3 | Per-service OTel rollout (all six services) | Observability board signal |
| 4 | Hatch-side RBAC snapshot generator | Ongoing drift detection |
| 5 | Staging seed + CI secret population | First green contract run |
| 6 | This campaign restored and cross-linked | Single entry point |
Decommission gate
Five conditions, 72h soak on production traffic, peratlas/findings/2026-04-18-auth-decommission-gate.md:
- No
AuthDisabledBypassInProdfirings. - No
CookieScopeMisconfigfirings. RevocationSlaBreach(p95 > 30s) clear.- Instrumentation coverage ≥ 95% on the decommissioned flow.
- No
InstrumentationRegressionMissingAttrsfirings.
What the cutover removes
- Django
auth-service(F6 only — smallest lever). - CASA BetterAuth (largest lever — F1/F2/F7/F8; 7-day soak recommended).
AUTH_DISABLEDenv bypass in hubble + hatch.- Legacy
sdk-js/sdk-goFamily Hub coupling. - Hubble’s local
platform_credentialstable (post-TASKSET 6 cutover).
Stakeholders
- Engineering: airlock, hubble, hatch, family-hub maintainers execute FU-TASKSETs.
- Ops: owns staging seed rotation and gate soak monitoring.
- Product / Leadership: sets the TASKSET 7 cutover date — populates the
expires_atfield on family-hub’s dual-truth reconciliation entry.