Reject advisory policy envelopes before lifecycle effects

Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a126e1-76f8-7643-8cf3-e93336539ade
This commit is contained in:
tegwick 2026-10-11 02:22:07 +02:00
parent caab9a90ec
commit 1e0df2f4a3
13 changed files with 2854 additions and 0 deletions

View file

@ -0,0 +1,107 @@
---
id: INFD-WP-0009
type: workplan
title: "Repair lifecycle consumer pin after Access Engine v2 policy release"
domain: infotech
repo: informed-decision
status: active
owner: codex
topic_slug: netkingdom
created: "2026-10-10"
updated: "2026-10-11"
flavor: implementation
depends_on: []
related:
- FLEX-WP-0035
- INFD-WP-0007
state_hub_workstream_id: "77eaeabf-0644-595f-b3d5-1168e6a294c4"
---
## Diagnose and prepare exact config repair
```task
id: INFD-WP-0009-T01
status: done
priority: high
state_hub_task_id: "5c30c308-8fe2-5956-b0c1-66c80bcb07e9"
```
Native State Hub lifecycle submission returns HTTP 503 `invalid_decision`.
The service remains Ready but its configured lifecycle package is v1/cee6a79;
Access Engine lifecycle provider now runs v2/da01e045 after FLEX-WP-0035.
The envelope contract remains `flex-auth.decision-record.v1`; this is a policy
pin mismatch, not an envelope compatibility migration. Keep exact package,
version and digest enforcement. Source preparation and regression evidence are
in `docs/evidence/2026-10-10-lifecycle-consumer-pin-repair.md`.
## Release and verify the config-only repair
```task
id: INFD-WP-0009-T02
status: done
priority: high
needs_human: false
state_hub_task_id: "1e6684d7-7676-5c70-b701-9dad124b4f07"
```
Apply only the reviewed immutable runtime ConfigMap and Deployment reference
through the existing owner GitOps path after exact scoped supervisor approval.
Image, schema, credentials, audience and review policy remain pinned. Retain
server dry-run/diff, readiness and native State Hub register/publish receipts;
retry with stable write keys, do not infer success from readiness. Root agent
owns live evidence and approval recording. This is a repair of the shipped
initial lifecycle, separate from INFD-WP-0008 expansion.
**Verified 2026-10-11:** founder approved exact config-only revision
`7db8485ffecdebfabd77a9daec085553c74bf0bf`. Manual Argo Application operation
synced only `informed-decision-runtime-6c221878d051` and Deployment, prune false.
Application Succeeded/Healthy; generation24 observed24 Ready1; `/readyz`200;
consumer v2/da01e045 and unchanged image7f5c6cb verified. Native lifecycle
registration and publication succeeded (events28/29). A later review request
rejected packet validation; this separate caller error does not undo verified
authoring. Custodian evidence records original approval, execution and rollback:
`docs/evidence/2026-10-10-security-consolidation/infd-pin-repair-preflight.json`.
## Explicitly reject advisory purpose at consumer boundary
```task
id: INFD-WP-0009-T03
status: done
priority: medium
state_hub_task_id: "ee798d7d-5e60-5247-9c9b-285a7f65cf11"
```
PolicyClient now validates binding purpose: absent or exact empty string only;
readback and malformed purposes are refused. Nine purpose variants and a real
provider response contamination test preserve the binding, pin, expiry and
obligations gates. This task covers source implementation and regression tests.
The current runtime image lacks this patch. Service build/native release belongs
to T04, separate from the config-only T02 repair.
## Release the advisory-purpose source correction
```task
id: INFD-WP-0009-T04
status: progress
priority: medium
state_hub_task_id: "0e1bb868-7bc2-5d4d-953c-e0edaf660ad0"
```
Build and scan a new service image including T03, retain provenance and backup
compatibility evidence, prepare a separate scoped image proposal, and verify
native binding/refusal after the owner's approved release. Do not fold an image
change into the config-only T02 proposal. Current runtime 7f5c6cb remains exact.
**Prepared 2026-10-11:** narrow single-module image overlay on immutable running
7f5c6cb; exact source policy SHA-256 9d7c1be4cb6199d14ef0aaead5f85951f45b0ccbd7c800a7fde922a253566b62.
Local image/index b8b58944786015a5375304241c149d1dab885eb539d6d8945f56b01a3c2bc821
is built and retained, unpublished and undeployed. Base layer prefix and runtime
configuration are preserved; installed-image 10 purpose variants pass; 13
container checks include restart and synthetic consistent backup/restore. A
fresh Trivy database scan has zero HIGH/CRITICAL findings, with its Alpine EOL
warning retained. See `docs/evidence/2026-10-11-purpose-hardening/README.md`.
Remaining gates: source-bound registry publication and exact digest verification,
fresh native snapshot/restore compatibility, owner GitOps server dry-run/diff,
separate scoped supervisor approval and native post-release binding/refusal.
No release approval or actual production-data restore is inferred from fixtures.