secrets-engine/evidence-classification.yaml
tegwick 3cd9955ac9
Some checks are pending
CI Smoke / host-smoke (push) Waiting to run
CI Smoke / container-smoke (push) Waiting to run
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
2026-08-29 12:52:55 +02:00

62 lines
2 KiB
YAML

# secrets-engine — load-bearing vs attributive evidence (§9.6)
#
# Machine-readable classification next to the layer declaration.
# Completeness is not claimed. No control may branch on presence or
# absence of a local evidence record.
schema_version: "0.1"
framework: netkingdom-security-layer-model
standard_version: "0.7"
repository: secrets-engine
bound: "§9.6"
completeness_claimed: false
no_control_branches_on_presence: true
intended_destination: audit-core
destination_today: "local JSONL; load-bearing also queued in evidence_dir/outbox/"
sound_claim: >-
The archive proves the records it holds were not altered or truncated
after arrival. It does not prove a record was sent, and absence is not
evidence of non-occurrence.
cadence:
load_bearing_form: heartbeat
interval: 1d
action: evidence-heartbeat
claim: nothing-to-report
command: "secrets-engine evidence heartbeat"
# First match wins.
rules:
- id: heartbeat
kind: heartbeat
actions: [evidence-heartbeat]
stages: [build, test, prod, unknown]
emission: local-outbox
note: >-
Positive claim that can itself go missing. Queue depth is metadata,
not a permission.
- id: destroy
kind: load-bearing
actions: [lifecycle-destroy]
stages: [build, test, prod, unknown]
emission: local-outbox
note: Live destroy is currently disabled; refusals are still classified here.
- id: production-control-mutation
kind: load-bearing
actions: [revoke, lifecycle-suspend, lifecycle-deactivate, provision]
stages: [prod]
emission: local-outbox
note: >-
Production provision, revoke, and suspend/deactivate once enabled.
Production live remains fail-closed until an access-engine decision
record is served.
- id: default-attributive
kind: attributive
actions: ["*"]
stages: [build, test, prod, unknown]
emission: local-jsonl
trade: >-
State Hub progress posts are non-blocking. Completeness is not claimed.