secrets-engine/workplans
tegwick 6e9c15228c
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
fix: exclude correlation fields from the flex-auth request digest
Verified the digest join against flex-auth's T03 replay fixtures and found
request_digest was hashing fields docs/canonical-request-digest.md excludes.
The material is tenant, subject, action, resource, context only: id is
correlation, policy_version lives in provenance, caring_context is hashed
separately. This engine included all three when present.

Because the join adopts the served request id, every real production request
would have carried one, so the computed digest would have matched no issued
decision and failed closed against every correct allow. Same unsatisfiable
shape as the removed AUTHORITY constant.

The old pinned constant was computed with the id inside the material, so it
was wrong and its passing proved nothing. Replaced with fixture-driven tests
over two real envelopes (vendored with provenance) plus a structural test
that correlation fields do not move the digest. Both fixtures are needed:
input_claim_digests.context appears only with a non-empty context.

Also stops computing the native claim digest. The claim's binding.action and
binding.target speak approval-engine's vocabulary while ours speaks the
catalog's, and no mapping is published; flex-auth makes no cross-check and
states the correspondence is ours via pdp_digest. A claim recording no
pdp_digest now fails closed naming the missing mapping rather than comparing
two different languages. That mapping is a prerequisite for destroy.

274 tests pass. Production still fails closed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M65ovP3eiiPHubibvWs9mD

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 393550@bnt-lap001
Assistant-Session: 4bb359f9-1f12-4410-9e76-079cf23c82e4
2026-09-06 14:17:38 +02:00
..
archived CUST-WP-0055 T07: add archive workplan terminology grandfather note 2026-07-08 20:26:38 +02:00
ADHOC-2026-08-21.md repo.work.assign_missing_identifiers 2026-09-04 00:03:13 +02:00
ADHOC-2026-08-23.md repo.work.assign_missing_identifiers 2026-09-04 00:03:13 +02:00
SECRETS-WP-0001-statehub-bootstrap.md chore(wp-0001): close State Hub bootstrap workplan; de-template repo identity 2026-06-29 12:14:00 +02:00
SECRETS-WP-0002-bootstrap.md feat(mvp): working secrets-engine CLI for the whynot-design npm publish lane 2026-06-28 12:28:45 +02:00
SECRETS-WP-0004-warden-sign-token-lane.md Close warden-sign token lane 2026-06-30 01:01:55 +02:00
SECRETS-WP-0005-scope-intent-value-gaps.md Document scope alignment and warden-sign readiness 2026-06-30 00:52:05 +02:00
SECRETS-WP-0006-catalog-lane-adoption.md docs: record whynot-design lane pointer discrepancy from ops-warden 2026-09-06 00:46:02 +02:00
SECRETS-WP-0007-production-lifecycle-hardening.md fix: exclude correlation fields from the flex-auth request digest 2026-09-06 14:17:38 +02:00
SECRETS-WP-0008-layer-model-lifecycle-conformance.md feat: implement the PIP claim + validate authorization join 2026-09-06 01:01:55 +02:00
SECRETS-WP-0009-glas-claude-native-delivery.md repo.work.assign_missing_identifiers 2026-09-06 00:25:38 +02:00