ops-warden/tests
tegwick f815bb35ca Implement §5.3 machine-readably — layer.yaml, checker, conformance tests
The security layer model moved v0.1 -> v0.4 (accepted) after ops-warden's
assent. Both §5 asks from ADR-0010 were adopted: §5.2 now sanctions the conduit
shape on the supplied-authority property, and §5.3 is the declared engine gap
amendment, carrying the four fields verbatim and crediting ops-warden's
delegation machinery as prior art.

Which creates an obligation. §5.3 requires those fields MACHINE-READABLY, and
§11 makes "every direct Tooling client maps to a declared §5.1/§5.2/§5.3 entry"
a mechanical check. ops-warden's declaration was prose in INTENT.md — the repo
that proposed the shape was not implementing it.

layer.yaml is the map: 5 contacts (2 declared gaps, 1 read-only observation,
2 conduits) plus the non-Tooling clients recorded explicitly so the check is
total rather than silently selective.

scripts/check_layer_conformance.py enforces it and found three undeclared
modules on its first run — all false positives (help text, a docstring, and the
doubles library that SIMULATES bao rather than calling it), which is why the
scan now matches invocation shapes instead of the word: an httpx call built
against the configured OpenBao address, or an argv whose first element is the
bao binary.

tests/test_layer_conformance.py adds the §5.2 test the standard says SHOULD
exist: _caller_env() returns the caller's environment unchanged, and proxy.py
is asserted not to reference X-Vault-Token, approle login, or token create — a
conduit that presents its own token is not a conduit.

No assertion on review dates, deliberately: a date-triggered failure breaks the
build on a calendar day with no code change, the same reasoning WP-0033-T05
recorded for blocker staleness.

398 tests pass, ruff clean.

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

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 4014535@bnt-lap001
Assistant-Session: d0036016-73e8-4da1-8e47-563e3ab39a3c
2026-08-29 02:45:29 +02:00
..
__init__.py Initial Commit 2026-03-28 00:45:43 +00:00
conftest.py Implement WARDEN-WP-0024 experiential memory and agent sessions. 2026-07-02 23:40:45 +02:00
test_access.py feat(WARDEN-WP-0019): route secret-exec lanes to secrets-engine (route-primary, proxy fallback) 2026-06-29 17:41:49 +02:00
test_agent_read_boundary_check.py WARDEN-WP-0033-T03: emit the high-risk data-path artifact 2026-08-21 08:38:13 +02:00
test_audit.py Implement WP-0022 audit trail and WP-0023 INTENT–SCOPE closeout 2026-07-01 23:32:38 +02:00
test_ca.py feat(warden): WARDEN-WP-0003 — test coverage, permissions, status --state-dir 2026-05-15 17:05:38 +02:00
test_cli.py feat(warden): WARDEN-WP-0003 — test coverage, permissions, status --state-dir 2026-05-15 17:05:38 +02:00
test_config.py feat: adopt security zones and explicit workload refs 2026-08-22 15:36:37 +02:00
test_desk.py feat: adopt security zones and explicit workload refs 2026-08-22 15:36:37 +02:00
test_doubles.py Fix warden access proxy for catalog fetch commands with shell pipes. 2026-07-07 16:42:26 +02:00
test_flex_auth_registry.py feat: adopt security zones and explicit workload refs 2026-08-22 15:36:37 +02:00
test_integration.py feat(warden): WARDEN-WP-0003 — test coverage, permissions, status --state-dir 2026-05-15 17:05:38 +02:00
test_inventory.py feat(bootstrap): WARDEN-WP-0001 initial implementation — 42 tests passing 2026-05-15 13:27:49 +02:00
test_layer_conformance.py Implement §5.3 machine-readably — layer.yaml, checker, conformance tests 2026-08-29 02:45:29 +02:00
test_mask.py WARDEN-WP-0026 T03: masking display filter (defense-in-depth) 2026-07-16 14:54:55 +02:00
test_memory.py feat: adopt security zones and explicit workload refs 2026-08-22 15:36:37 +02:00
test_models.py Initial Commit 2026-03-28 00:45:43 +00:00
test_plan.py fix: contain attended OpenBao login output 2026-08-23 01:31:05 +02:00
test_policy.py feat: adopt security zones and explicit workload refs 2026-08-22 15:36:37 +02:00
test_posture.py WARDEN-WP-0029: implement plan front door, org posture, desk, freshness 2026-07-18 16:59:37 +02:00
test_posture_conformance.py feat(WARDEN-WP-0015): T3 conformance checker + T4 dev-tier contract doubles 2026-06-27 19:30:30 +02:00
test_principals_drift.py feat: close WP-0009/WP-0013 production integration stewardship strand 2026-06-24 12:44:32 +02:00
test_proxy.py fix: contain attended OpenBao login output 2026-08-23 01:31:05 +02:00
test_routing.py Add NetKingdom SSO credential routing lanes 2026-08-23 21:43:12 +02:00
test_scorecard.py WARDEN-WP-0029: implement plan front door, org posture, desk, freshness 2026-07-18 16:59:37 +02:00
test_taint.py feat: adopt security zones and explicit workload refs 2026-08-22 15:36:37 +02:00
test_tunnel_cert_readiness.py feat(WARDEN-WP-0016): ops-bridge cert_command readiness gate + handoff 2026-06-27 19:50:28 +02:00
test_vault.py Implement WP-0022 audit trail and WP-0023 INTENT–SCOPE closeout 2026-07-01 23:32:38 +02:00
test_worker.py feat(WARDEN-WP-0021): T3-T5 — visibility, approve loop, runbook (scheduled worker complete) 2026-06-30 15:24:10 +02:00
test_workload_join.py Re-emit the high-risk path artifact after the NetKingdom SSO lanes 2026-08-28 21:55:33 +02:00