From dff2d6e9f7de1480c0cf8d39a7ba31c8f38827bc Mon Sep 17 00:00:00 2001 From: codex Date: Sat, 3 Oct 2026 20:24:57 +0200 Subject: [PATCH] Record verified root reader admission and empty custody publication Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a1029d-2c93-7500-a0e0-e3e089668b29 --- ...26-10-03-platform-root-custody-delivery.md | 68 +++++++++++++++++++ openbao/root-grant/README.md | 18 +++-- ...9-platform-root-custody-record-delivery.md | 32 ++++++--- 3 files changed, 106 insertions(+), 12 deletions(-) create mode 100644 docs/evidence/2026-10-03-platform-root-custody-delivery.md diff --git a/docs/evidence/2026-10-03-platform-root-custody-delivery.md b/docs/evidence/2026-10-03-platform-root-custody-delivery.md new file mode 100644 index 0000000..5d2651e --- /dev/null +++ b/docs/evidence/2026-10-03-platform-root-custody-delivery.md @@ -0,0 +1,68 @@ +# Platform-root custody delivery evidence — 2026-10-03 + +Owner: railiance-platform. Tracks RPF-WP-0049 / NK-WP-0045-T05. +Bounded operator execution is verified; full delivery/recovery acceptance is +still pending. This is a non-secret evidence summary, not a real custody grant. + +## Verified attended admission and publication + +The founder executed the reviewed attended commands under continued approval. +Fresh success receipts were independently read and checked locally: + +- /tmp/platform-root-admission-20261003T181954Z-333977.json +- /tmp/platform-root-publish-20261003T181954Z-333977.json + +Admission confirms namespace/SA user-engine/user-engine, role +user-engine-root-custody-reader on auth/kubernetes, audience openbao, active +OpenBao audit and per-key required CAS. Publication confirms whole-document +write and owner readback. Initial fact: nk-custody:platform-root, revision 1, +KV version 1, entries empty. It grants nobody root authority. + +Content SHA256: +33a2ae086385028db1b654aa5646b7a98bcde1c5878c804e19315dadc3f87248. +Publisher receipt time: 2026-10-03T18:21:14.370633+00:00. +Publisher baseline mode: 0600. Immutable history receipt equals the baseline, +and both equal the publication receipt digest and current initial candidate. +The old oidc-role-platform-admin.20260828T112740.json is role configuration, +not a success receipt for these October 3 acts. + +## Independent retained history and recovery requirement + +Operator-owned publisher state is on the workstation: +/home/worsch/.local/state/net-kingdom-root-custody/baseline.json and history/. +It is already off-host and independent of OpenBao on railiance01 and OpenBao +snapshots. No additional runtime/service is required merely to duplicate it. +The human operator owns retaining and backing up this receipt holder. Preserve +baseline.json, history/ and any pending publication journal together; never +reset state to an older OpenBao snapshot or discard an ambiguous journal. +Retain publication history until an explicitly reviewed custody record +retirement; root custody entries are never removed to simulate revocation. + +Remaining evidence, not a fresh generic approval: + +1. Record the workstation receipt-holder backup destination/procedure and + verify a copy/restore/readback of this non-secret state, retaining the exact + latest revision and digest. A local process fsync proves durability, not + workstation disaster recovery. +2. Run the attended restore-check against the current owner source with the + retained baseline and fresh receipt. This proves today's independent state + agrees with current owner readback; it is not proof of a snapshot exercise. +3. In the platform/OpenBao owner's isolated recovery procedure, restore a + snapshot and compare with the independently retained latest history. Prove + that an older/missing/mutated record is refused and source authority is not + reopened until retained latest content is restored and readback matches. + Do not roll back live OpenBao merely to manufacture a test receipt. +4. Complete reader identity success and wrong-identity/anonymous/list/sibling/ + write denial, outage/fail-closed and audit correlation receipts. The publisher + success receipt and configured reader policy do not alone prove workload + admission or workload denial behavior. Consumer rollout follows its owner. + +No genuine root ceremony is known. A future real grant requires signed human +ceremony evidence and exact issuer/subject; IAM projections and a planned +custody roster cannot ground it. Algorithm grant/revoke/supersession testing +uses synthetic fixtures; no real grant is created or revoked for acceptance. + +Security orientation reloaded: Emergent 0.2.4 root, verified-files, +orientation-only; digest +025aab4f38246219c924bc94954e70ea0e6e7f72bcaf8d4344cd599602d345c3. +No secret values, privileged role dump or token material are copied here. diff --git a/openbao/root-grant/README.md b/openbao/root-grant/README.md index 943ae6b..23767f5 100644 --- a/openbao/root-grant/README.md +++ b/openbao/root-grant/README.md @@ -112,8 +112,10 @@ readback and journal recovery. Bootstrap uses CAS=0. The publisher retains baseline.json and immutable history/ receipts. Restore `baseline.json`, history/ and any pending journal from independently retained latest evidence before a recovery check; restoring only an older OpenBao snapshot cannot establish -current authority. Off-host history backup destination, owner and readback -receipt remain an explicit acceptance dependency. Local state enables safe +current authority. The operator-workstation state is already off-host and independent of +railiance01/OpenBao. Documenting backup and readback of that receipt holder +remains an explicit acceptance dependency; no new service is required merely +to duplicate it. Local state enables safe publication but does not satisfy that independent recovery proof. `restore-check` takes the same source pins and state but no candidate or @@ -136,8 +138,8 @@ restart. A restored snapshot must not reactivate an older grant: suspend reads, compare restored record with independently retained latest baseline, reconcile all later custody actions, and re-enable only after owner receipts. Do not reset baselines, destroy versions or recreate an old record under the same ID. -KV CAS prevents races, but is not proof against snapshot rollback. Retention -settings and independent backup location remain an owner implementation gate. +KV CAS prevents races, but is not proof against snapshot rollback. Retention and workstation receipt-holder backup/readback proof remain owner +acceptance requirements, alongside isolated OpenBao recovery evidence. No control was relaxed and no live action was taken. Emergent knowledge 0.2.3 start was withheld/orientation-only (digest @@ -148,3 +150,11 @@ informed-decision README, plus the source NetKingdom contract/schema/validator. Producer delivery receipts complete RPF-WP-0049-T05 / NK-WP-0045-T05. Consumer integration and runtime acceptance follow in USER-WP-0037-T02 / NK-WP-0045-T06; they do not block initial producer delivery. + +## Attended execution outcome — 2026-10-03 + +The founder executed admission and empty publication. Fresh receipts, initial +revision 1/KV1/no-grant digest and exact residual recovery/reader evidence are +recorded in [delivery evidence](../../docs/evidence/2026-10-03-platform-root-custody-delivery.md). +This completes RPF-WP-0049-T04. T05 remains evidence-blocked; generic approval +is not pending. Old operator role configuration is not an execution receipt. diff --git a/workplans/RPF-WP-0049-platform-root-custody-record-delivery.md b/workplans/RPF-WP-0049-platform-root-custody-record-delivery.md index e3ae022..250b6f4 100644 --- a/workplans/RPF-WP-0049-platform-root-custody-record-delivery.md +++ b/workplans/RPF-WP-0049-platform-root-custody-record-delivery.md @@ -70,18 +70,17 @@ Implemented silent attended provision/publish/restore-check executor with exact reader admission, per-key required CAS, active-audit check, pinned canon, retained high-water baseline, fsynced pending journal and immutable local history. Readback is mandatory; replay is idempotent; conflicting existing role/policy, -missing state and rollback fail closed. Off-host history placement and actual -recovery evidence remain execution/acceptance dependencies in T04/T05. +missing state and rollback fail closed. Publisher state is independently retained on the operator workstation, outside +railiance01. Workstation receipt-holder backup/readback and actual isolated +OpenBao recovery evidence remain acceptance dependencies in T05. ## Execute authorized attended provisioning and establish initial baseline ```task id: RPF-WP-0049-T04 -status: wait +status: done priority: high depends_on: [RPF-WP-0049-T03] -needs_human: true -blocking_reason: "Go-forward covers the prepared no-grant empty baseline; founder terminal OIDC/MFA must execute reader admission and empty publication. Independent history backup owner/destination/readback receipt remain unresolved; no real ceremony or root grant is claimed." state_hub_task_id: "88b932e8-1010-56c6-be27-ad46f47e1e80" ``` @@ -94,8 +93,8 @@ examples/custody-record/initial-empty-record.json (entries=[]), with provenance docs/evidence/2026-10-03-root-grant-delivery-progress.md. Concrete admission and empty publication commands are in the packet; state is retained at /home/worsch/.local/state/net-kingdom-root-custody. No root grant is seeded. -Independent history backup destination/owner/readback proof is still required -for T05 acceptance. Any later real grant requires genuine signed human ceremony. +The operator workstation already holds history independently of OpenBao; +receipt-holder backup/readback and isolated recovery proof remain T05 requirements. Any later real grant requires genuine signed human ceremony. ## Return producer delivery receipts @@ -104,7 +103,7 @@ id: RPF-WP-0049-T05 status: wait priority: high depends_on: [RPF-WP-0049-T04] -blocking_reason: "Live authenticated/denial/outage/revocation/restore/audit producer delivery receipts remain absent." +blocking_reason: "Admission and empty publication receipts verified; workload success/denial/outage/audit correlation and independent workstation receipt-holder backup/readback plus isolated OpenBao rollback/restore evidence remain. No new generic approval gate." state_hub_task_id: "871e3236-61c0-58a1-a307-399cd662be6b" ``` @@ -143,3 +142,20 @@ attended admission then empty publication handoff without a real root grant or new generic approval gate. State directory is explicit outside Git; independent off-host history receipt remains an acceptance dependency. No login or live publication was executed by this agent. + +## Verified attended execution — 2026-10-03 + +T04 done: founder executed reviewed reader admission and empty publication. +Verified fresh receipts platform-root-admission-20261003T181954Z-333977.json +and platform-root-publish-20261003T181954Z-333977.json. Initial source revision 1, +KV version 1, no entries/root grants, content digest +33a2ae086385028db1b654aa5646b7a98bcde1c5878c804e19315dadc3f87248. +Publisher baseline and immutable history match, mode 0600. The August operator +role configuration file is not evidence of this execution. No agent human +admin login was performed. Details and exact remaining acceptance requirements: +[delivery evidence](../docs/evidence/2026-10-03-platform-root-custody-delivery.md). + +T05 remains wait for workload and independent recovery receipts; the source +workplan stays blocked on evidence, not another generic approval. The publisher +state holder is already independent/off-host relative to railiance01. No new +service dependency is introduced solely to duplicate that holder.