32 lines
1.6 KiB
Markdown
32 lines
1.6 KiB
Markdown
|
|
# Live decision from the deployed pin
|
||
|
|
|
||
|
|
Not a vendored example. This is a real `DecisionEnvelope` this engine obtained
|
||
|
|
on 2026-09-07 from the deployed `flex-auth-secrets-engine` pin, through the
|
||
|
|
owner-documented access path:
|
||
|
|
|
||
|
|
- loopback `kubectl port-forward` to the named pod
|
||
|
|
`flex-auth-secrets-engine-65c74d4858-qvf2p`, over the authenticated
|
||
|
|
Kubernetes API (`FLEX-DEC-2026-010`: this is what authenticates the
|
||
|
|
*responder*);
|
||
|
|
- a 10-minute `TokenRequest` token for ServiceAccount
|
||
|
|
`secrets-engine/secrets-engine`, audience `flex-auth`, in a mode-0600 file
|
||
|
|
outside the worktree, shredded after use;
|
||
|
|
- request built by `build_action_request` for the real catalog lane
|
||
|
|
`glas-claude-agent-dev-anthropic`, action `rotate`.
|
||
|
|
|
||
|
|
The decision is `allow`, `catalog_lane_policy_matched`, served by
|
||
|
|
`secrets-engine.catalog-lane.lifecycle` **v2**
|
||
|
|
(`sha256:bd11c5fe…`) — so the redeploy flex-auth flagged as outstanding has
|
||
|
|
landed and the pin no longer serves the tenant-blind v1.
|
||
|
|
|
||
|
|
It contains no secret material: subject and resource metadata, digests, and
|
||
|
|
policy provenance only.
|
||
|
|
|
||
|
|
**Why it is kept.** It is the artifact that proved the digest join does not hold
|
||
|
|
against a real request. The evaluator enriches `subject` (attributes, tenant)
|
||
|
|
and `resource` (tenant) from its registry before hashing, so
|
||
|
|
`binding.request_digest` cannot equal a digest computed over the unenriched
|
||
|
|
request we sent. Every replay fixture test passes because `_request_from()`
|
||
|
|
rebuilds the request *from the binding*, which is the enriched form — a
|
||
|
|
self-consistent fake agreeing with itself. Only a real request exposed it.
|