feat: add fail-closed Hub access profile foundation
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / pytest-smoke (push) Failing after 3s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a0e747-8f27-7242-8df8-8bc44f88c929
This commit is contained in:
tegwick 2026-09-28 11:44:50 +02:00
parent df39fd5f43
commit 3e386147fd
35 changed files with 2009 additions and 195 deletions

View file

@ -0,0 +1,42 @@
# HUB-WP-0012 source implementation evidence — 2026-09-28
This is local source evidence, not attended login, deployed policy, extension or
Railiance acceptance. The workplan remains active with T01–T04 in progress.
Validation:
- `.venv/bin/python -m pytest -q --disable-warnings`: **271 passed** in 50.43s.
One existing FastAPI/Starlette TestClient deprecation warning.
- `tools/build_access_inventory.py --inventory docs/platform-access-inventory.json
--check`: **161 Hub surfaces, 48 platform rows, 250 cluster objects**; checks pass.
- `uv build`: source distribution and wheel build successfully; wheel contains
`hub_core/security/routes.json`.
- `git diff --check`: passes.
Tests cover catalog-wide anonymous denial, exact minimal health exception,
production default denial without owner adapters, immutable root/assurance checks,
live fact freshness and suspension/entitlement withdrawal, denied/unavailable
policy, durable-audit failure, body replay and producer binding, event provenance,
concurrent request contexts, an embedded host, MCP invocation credential isolation
and error redaction, signed JWT claim validation and issuer-key rotation, signed
PDP binding/lifetime/caller/obligation rejection, and projected caller-token rotation.
Interoperability uses flex-auth's original public test fixtures (signed, tampered,
public verification key and original request). Both signature verification and
`submitted_request_digest` reproduction pass against the Go-generated artifacts.
Synthetic current decisions exercise the live-time checks; the historical fixture
is never treated as an active authorization grant.
The [profile candidate](../access-profile-v1.md) states configuration, bounded
lifetimes, serialization limits, extension/host responsibilities, and release gates.
No live credential, grant, policy, workload, public listener or retirement state
was changed. No private production signing key or root subject was invented.
State Hub implementation decision:
`6edd5720-c894-46e3-8130-fd6c09b9f311`.
Remaining requirements include owner review and per-service route expansion;
attended root binding/PKCE/MFA/logout; real account/tenant and durable audit adapters;
a dedicated Hub PDP with authenticated caller and signing-key delivery; deployment
composition and owner health checks; all client/extension/platform receipts;
separately approved exposure; and Phase 2 tenant isolation/delegation.