Admit source evidence snapshots and harden stream completeness
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a06e89-93a2-7aa2-82b3-ce5ccd2682e6
This commit is contained in:
parent
824fb1b966
commit
31e9963933
34 changed files with 1057 additions and 122 deletions
|
|
@ -31,7 +31,7 @@ The following rules apply to every integration below:
|
|||
4. `kings-guard` must preserve **tenant isolation**: any retained evidence or
|
||||
memory must stay bounded by declared confidentiality rules.
|
||||
5. `kings-guard` is a **Staff-layer** repository and is bound by §5 of the
|
||||
NetKingdom Security Layer Model v0.6: it never holds a direct client for a
|
||||
NetKingdom Security Layer Model v0.7: it never holds a direct client for a
|
||||
Tooling-layer system. Evidence from Tooling (OpenBao, key-cape components)
|
||||
is consumed **through the owning engine**. Where no engine surface exists,
|
||||
the lane stays fixture-driven and the gap is declared in `INTENT.md`.
|
||||
|
|
|
|||
40
docs/SecretUseSnapshotAdmission.md
Normal file
40
docs/SecretUseSnapshotAdmission.md
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# Secret-use snapshot admission
|
||||
|
||||
`adapters.secrets_engine.snapshot_from_engine` consumes the non-secret envelope
|
||||
returned by `secrets-engine secret-use snapshot --json`. It opens no client and
|
||||
reads no Engine evidence directory. The caller obtains the Engine response and
|
||||
supplies an explicit `catalog_id -> (tenant_id, subject_id)` binding; unbound or
|
||||
duplicate lanes are rejected. Catalog identifiers alone do not establish scope.
|
||||
|
||||
| Source field | Consumer meaning |
|
||||
| --- | --- |
|
||||
| `surface`, `completeness_claimed` | Require `secret-use-evidence` and explicit `false`. |
|
||||
| Envelope and lane `as_of` | Snapshot creation time; lane times must match. Not the times of underlying events. |
|
||||
| `catalog_id`, `stage`, `kind` | Scoped catalog metadata. |
|
||||
| `ready`, `revocation_attempted`, `revocation_succeeded` | Optional historical booleans. Absence stays unknown; false stays false. |
|
||||
| `lifecycle_operation`, `evidence_kind` | Source-reported metadata, not a new event or inferred evidence classification. |
|
||||
| `cadence.form`, `cadence.interval` | Require heartbeat form and a positive interval; translate `1d` to 86400 seconds. |
|
||||
| Decision IDs, session handles, paths, mounts, field names, extra fields | Not retained in the normalized observation. |
|
||||
|
||||
The result is a separate `SecretUseSnapshot`, because `ImmuneObservation`
|
||||
requires an event actor, event time, and outcome this surface cannot provide.
|
||||
Readiness never becomes allow/deny. A snapshot older than the declared interval
|
||||
receives `snapshot:stale`; a future snapshot receives `snapshot:future_timestamp`.
|
||||
Even a fresh snapshot has **unknown completeness**. Its cadence declaration is
|
||||
not a received heartbeat. It supplies neither heartbeat assertions nor
|
||||
reconciliation counts, so generic stream evaluation is not invoked.
|
||||
|
||||
Each lane merges independently selected historical evidence. A newly created
|
||||
snapshot may contain old readiness or revocation information. No content posture
|
||||
or response proposal is generated from these untimed fields. KG-IN-0005 tracks
|
||||
source event timestamps/provenance, evidence-class bindings, scoped heartbeat and
|
||||
reconciliation evidence, and an authorized deployment capture before that lane
|
||||
can support posture. Snapshot parsing is locally admitted; secret-abuse posture
|
||||
remains pending.
|
||||
|
||||
Cadence examples for Qonto now follow InfoTechCanon
|
||||
`standard/emission-cadence` 0.1. `extensions.net-kingdom` holds source evidence
|
||||
classification and rate-monitoring metadata; `extensions.kings-guard` holds
|
||||
provenance. The old handover spec is historical. Tests validate both fixtures
|
||||
against the external owner schema when its checkout is available, without a
|
||||
copied generic schema. NetKingdom profile adoption remains with NK-WP-0035.
|
||||
|
|
@ -71,8 +71,8 @@ client request
|
|||
| `protocol` | `protocol` | `rest` or `mcp` |
|
||||
| `decision` | `decision` | `allow` / `deny` |
|
||||
| `deny_reason` | `deny_reason` | Pilot currently exercises `credential_exfil` |
|
||||
| derived constant | `identity_binding` | `self_asserted` until key-cape integration lands |
|
||||
| derived constant | `egress_destination` | `qonto-thirdparty-api` for this pilot |
|
||||
| `identity_binding` | `identity_binding` | Direct mapping; legacy records fall back to the genome normalization hint |
|
||||
| `egress_destination` | `egress_destination` | Direct mapping; legacy records fall back to the genome normalization hint |
|
||||
| genome `evidence_sources` | `evidence_class` / `event_class` | Copied from the source declaration. `audit.deny` is load-bearing; `audit.allow` is attributive. Not inferred from `decision`. |
|
||||
|
||||
## 6. Output Shape
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue