Implement SECRETS-WP-0008 unblocked layer-model obligations
Some checks are pending
CI Smoke / host-smoke (push) Waiting to run
CI Smoke / container-smoke (push) Waiting to run

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:
tegwick 2026-08-29 12:52:55 +02:00
parent 57f6c4fa65
commit 3cd9955ac9
16 changed files with 1041 additions and 77 deletions

View file

@ -121,3 +121,12 @@ def test_production_handler_fails_closed_before_backend(tmp_path, monkeypatch):
"attempt",
"failed-DecisionError",
]
terminal = records[-1]
assert terminal["detail"]["stance_stage"] == "prod"
assert terminal["detail"]["stance_failure_mode"] == "fail_closed"
assert terminal["detail"]["approval_status"] == "rejected"
assert "stance_decision_id" not in terminal["detail"]
assert terminal["completeness_claimed"] is False
assert "SUPER-SECRET" not in json.dumps(records)
outbox = list((tmp_path / "evidence" / "outbox").glob("*.json"))
assert outbox, "production provision refusal is load-bearing and must be queued"