Implement SECRETS-WP-0008 unblocked layer-model obligations
Load pep-stance.yaml as the live unreachable-engine gate and record named stance fields on privileged evidence. Classify evidence, queue load-bearing records in a local outbox, and add heartbeat/drain commands that never sit on a mutation path. Publish proposed SSH-CA and secret-use evidence contracts without adding an OpenBao SSH-CA write. T02 (access-engine decision records) and T06 (no standing credential) stay wait on external endpoints. Assistant: grok Assistant-Session: 01a04cea-cb33-7c63-bad7-c1b0f9f0076b
This commit is contained in:
parent
57f6c4fa65
commit
3cd9955ac9
16 changed files with 1041 additions and 77 deletions
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Evolve the Lifecycle engine to the accepted security layer model"
|
||||
domain: infotech
|
||||
repo: secrets-engine
|
||||
status: ready
|
||||
status: active
|
||||
owner: grok
|
||||
topic_slug: custodian
|
||||
created: "2026-08-29"
|
||||
|
|
@ -56,11 +56,16 @@ It adds the layer-model remainder: stance binding, decision-record consumption,
|
|||
|
||||
```task
|
||||
id: SECRETS-WP-0008-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "945735c6-2d3d-5f72-baf0-692e6b210889"
|
||||
```
|
||||
|
||||
Completed 2026-08-29. `_require_lane_approval` loads `pep-stance.yaml`.
|
||||
`SHIPPED_STANCE` is pinned equal to the published map. Fail-closed production
|
||||
evidence records `stance_stage`, `stance_failure_mode`, and omits
|
||||
`stance_decision_id` unless a decision was rendered.
|
||||
|
||||
`pep-stance.yaml` is published and tests pin `prod: fail_closed` to
|
||||
`_require_lane_approval`. The gate is still hardcoded, and a refusal is
|
||||
recorded as a `DecisionError` rather than named stance fields.
|
||||
|
|
@ -111,11 +116,16 @@ Acceptance:
|
|||
|
||||
```task
|
||||
id: SECRETS-WP-0008-T03
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "0b54cedf-9335-5fa0-bdcb-1efa9a9cd98d"
|
||||
```
|
||||
|
||||
Completed 2026-08-29. `evidence-classification.yaml` is the declaration.
|
||||
Load-bearing records are queued in `evidence_dir/outbox/` before JSONL.
|
||||
`secrets-engine evidence heartbeat` emits a positive claim. Drain never sits
|
||||
on a mutation path and an audit-core outage leaves the queue in place.
|
||||
|
||||
Classify each privileged action as load-bearing or attributive. Today's trail
|
||||
is attributive local JSONL plus best-effort State Hub notes; completeness is
|
||||
already not claimed and must stay that way until the destination is
|
||||
|
|
@ -142,11 +152,14 @@ Acceptance:
|
|||
|
||||
```task
|
||||
id: SECRETS-WP-0008-T04
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "581aeee3-3d99-5034-992b-7d42e6542a19"
|
||||
```
|
||||
|
||||
Completed 2026-08-29. Contract published at `docs/ssh-ca-signing-contract.md`.
|
||||
No OpenBao SSH-CA write was added. `layer.yaml` owner_status remains proposed.
|
||||
|
||||
ops-warden's `ssh-ca-signing-write` gap names this engine as intended owner.
|
||||
Accept the **engine API**, decline the Staff lane. Publish a contract
|
||||
ops-warden can call after an `access-engine` decision: sign a short-lived
|
||||
|
|
@ -168,11 +181,15 @@ Acceptance:
|
|||
|
||||
```task
|
||||
id: SECRETS-WP-0008-T05
|
||||
status: todo
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "3100d28c-9494-5b21-9d5a-af583cd8aa55"
|
||||
```
|
||||
|
||||
Completed 2026-08-29. Contract published at
|
||||
`docs/secret-use-evidence-contract.md`. `layer.yaml` owner_status remains
|
||||
proposed. `route`/`audit` are still not this surface.
|
||||
|
||||
kings-guard's secret-abuse posture is fixture-driven because no engine exposes
|
||||
lease, revocation, mount, rotation, and delivery-session metadata. `route` and
|
||||
`audit` are operator summaries over local JSONL and are not that surface.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue