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
104 lines
5.1 KiB
YAML
104 lines
5.1 KiB
YAML
# GENERATED by scripts/emit_high_risk_paths.py -- do not edit by hand.
|
|
# Concrete KV data paths for lanes ops-warden grades `risk: high`.
|
|
#
|
|
# This is an INPUT, not a policy. ops-warden states which paths it grades
|
|
# high; railiance-platform owns what agent-high-risk-boundary denies and may
|
|
# deny more, deny less, or dispute a grade (ADR-0002, ADR-0008).
|
|
#
|
|
# Grades cover every field a read of the path discloses, not the field the
|
|
# lane is named after (ADR-0008). `fields` is recorded where an owning CCR
|
|
# declares it, and is null where the field set has not been established --
|
|
# null means unknown, never 'one field'.
|
|
|
|
generated_at: "2026-08-29T00:44:23Z"
|
|
source: ops-warden/registry/routing/catalog.yaml
|
|
catalog_revision: "ee94c189385271194f22a53998b2c6e12e961ea9"
|
|
catalog_revision_date: "2026-08-28T22:00:09+02:00"
|
|
catalog_dirty: false
|
|
high_risk_lane_count: 23
|
|
concrete_path_count: 14
|
|
|
|
# Graded high but not a single KV address -- a routing pattern, a broker
|
|
# grant, or a non-KV lane. Nothing here for a policy to deny.
|
|
no_concrete_path:
|
|
- database-dynamic-credentials
|
|
- inter-hub-bootstrap-ssh
|
|
- net-kingdom-lldap-bind-credential
|
|
- net-kingdom-privacyidea-admin-token
|
|
- object-storage-sts
|
|
- openbao-api-key
|
|
- openbao-platform-admin-login
|
|
- openbao-shamir-recovery-ceremony
|
|
- ops-warden-warden-sign-token
|
|
|
|
paths:
|
|
- id: agent-harness-binky-mail-approle
|
|
data_path: tenants/data/binky/company-email/imap
|
|
metadata_path: tenants/metadata/binky/company-email/imap
|
|
owner_repo: railiance-platform
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: agent-harness-forgejo-deploy
|
|
data_path: platform/data/workloads/agent-harness/forgejo-deploy-key
|
|
metadata_path: platform/metadata/workloads/agent-harness/forgejo-deploy-key
|
|
owner_repo: railiance-platform
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: audit-core-senders
|
|
data_path: platform/data/workloads/audit-core/senders
|
|
metadata_path: platform/metadata/workloads/audit-core/senders
|
|
owner_repo: ops-mason
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: binky-company-email-imap
|
|
data_path: tenants/data/binky/company-email/imap
|
|
metadata_path: tenants/metadata/binky/company-email/imap
|
|
owner_repo: railiance-platform
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: binky-qonto-api
|
|
data_path: tenants/data/binky/qonto-api
|
|
metadata_path: tenants/metadata/binky/qonto-api
|
|
owner_repo: railiance-platform
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: email-connect-transactional
|
|
data_path: platform/data/workloads/email-connect/transactional
|
|
metadata_path: platform/metadata/workloads/email-connect/transactional
|
|
owner_repo: railiance-platform
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: forgejo-admin-api-token
|
|
data_path: platform/data/workloads/forgejo/forgejo-admin
|
|
metadata_path: platform/metadata/workloads/forgejo/forgejo-admin
|
|
owner_repo: railiance-platform
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: issue-core-ingestion-api-key
|
|
data_path: platform/data/workloads/issue-core/issue-core/issue-core-runtime
|
|
metadata_path: platform/metadata/workloads/issue-core/issue-core/issue-core-runtime
|
|
owner_repo: railiance-platform
|
|
fields: [ISSUE_CORE_API_KEY, GITEA_BACKEND_TOKEN]
|
|
- id: openrouter-llm-connect
|
|
data_path: platform/data/workloads/activity-core/llm-connect/llm-connect-provider-secrets
|
|
metadata_path: platform/metadata/workloads/activity-core/llm-connect/llm-connect-provider-secrets
|
|
owner_repo: railiance-platform
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: railiance-backup-offsite-lane
|
|
data_path: platform/data/workloads/railiance/backup/offsite-lane
|
|
metadata_path: platform/metadata/workloads/railiance/backup/offsite-lane
|
|
owner_repo: railiance-platform
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: rapp-qonto-keycape-client
|
|
data_path: platform/data/workloads/rapp-qonto/keycape-client
|
|
metadata_path: platform/metadata/workloads/rapp-qonto/keycape-client
|
|
owner_repo: key-cape
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: reuse-surface-hub-write-token
|
|
data_path: platform/data/workloads/reuse/reuse-surface/runtime-secrets
|
|
metadata_path: platform/metadata/workloads/reuse/reuse-surface/runtime-secrets
|
|
owner_repo: railiance-platform
|
|
fields: [REUSE_SURFACE_TOKEN, REUSE_SURFACE_FORGEJO_WEBHOOK_SECRET]
|
|
- id: scaleway-bootstrap
|
|
data_path: platform/data/workloads/railiance/scaleway/bootstrap
|
|
metadata_path: platform/metadata/workloads/railiance/scaleway/bootstrap
|
|
owner_repo: railiance-platform
|
|
fields: null # field set not established -- unknown, not one
|
|
- id: whynot-design-npm-publish
|
|
data_path: platform/data/workloads/coulomb/whynot-design/npm-publish
|
|
metadata_path: platform/metadata/workloads/coulomb/whynot-design/npm-publish
|
|
owner_repo: railiance-platform
|
|
fields: null # field set not established -- unknown, not one
|