Record native receiver custody and prepare actual Approval lifecycle readback
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a13eab-1e6a-7b33-9c37-372e90ada3a2
This commit is contained in:
codex 2026-10-15 21:40:48 +02:00
parent ce5344da69
commit 6e24b09eaa
8 changed files with 372 additions and 40 deletions

View file

@ -42,6 +42,21 @@ that deployed gate.
Run `apply` only inside the existing attended Warden platform-admin `--exec`
envelope. Use credential routing first; do not export a token into a shell.
Before starting OIDC, remove all three ambient token aliases from the launcher
environment without reading or printing their values:
```bash
env -u BAO_TOKEN -u VAULT_TOKEN -u OPENBAO_TOKEN \
warden access openbao-platform-admin-login --exec -- \
python3 /home/worsch/railiance-platform/scripts/cadence_receiver_custody.py apply <reviewed-arguments>
```
This is required for the custody and fresh observer-readback launches. The
initial native attempt demonstrated that OPENBAO_TOKEN is not scrubbed by the
existing Warden wrapper; the contained helper correctly refused it. Session
self-revocation was confirmed and no custody mutation occurred in that attempt.
Do not inspect, copy or relax the guard for an ambient credential.
The owner wrapper must preserve its independent exit/self-revocation receipt.
The contained command is:
@ -126,9 +141,12 @@ The sanitized event projection includes instance/sequence, action, observed
and accepted timestamps, and exact heartbeat coverage. Actual custody
accepted_at can distinguish a duplicate delivery receipt from original custody
time; a collector duplicate200 is not itself first-acceptance timing proof.
Approval Engine source/tenant is also allowed, but this helper requires an
instance-bearing source record and therefore cannot substitute for its
historical instance-free lifecycle acceptance path.
Approval Engine source/tenant is also allowed; omit --instance for its
instance-free lifecycle records. The helper does not invent process identity
or sequence for Approval and labels its conclusion as a bounded source
lifecycle acceptance window. Qonto still requires an explicit exact instance.
Receiver-normalized timezone spelling is compared by timestamp semantics;
source, tenant and actual instance bindings remain exact.
Exit0 reports `independent_custody_readback_complete`, which proves only the
bounded supplied custody reads. The source snapshot, contiguous startup/

View file

@ -0,0 +1,59 @@
{
"own_reconciliation_status": 200,
"own_reconciliation": {
"source": "qonto-assistant",
"tenant": "tenant:friendly:binky",
"since": "2026-10-15T19:36:00+00:00",
"until": "2026-10-15T19:37:05.369346+00:00",
"counts": [
{
"class": "audit-core.heartbeat",
"count": 1
},
{
"class": "audit.deny",
"count": 1
}
],
"stream_instance_id": "b351fa6b-e0d6-4f88-b7c9-6bacb1a112b7",
"means": "the count of events audit-core accepted and stored in this window. Divergence from the source's own count is a finding for the source; agreement proves neither completeness nor that any event occurred."
},
"duplicate_status": 200,
"wrong_source_status": 400,
"wrong_tenant_status": 400,
"read_refusal_status": 403,
"invalid_bearer_status": 401,
"global_pending_count": 0,
"instance_receipts": [
{
"accepted_at": "2026-10-15T19:36:30.769604+00:00",
"covered_event_classes": [
"audit.deny"
],
"event_id": "28dad6de11fb25fe6e0e145351f047360d6898afb53afd4cd677e560ec69132a",
"source": "qonto-assistant",
"status_code": 202,
"stream_instance_id": "b351fa6b-e0d6-4f88-b7c9-6bacb1a112b7",
"stream_sequence": 1,
"tenant": "tenant:friendly:binky",
"type": "audit-core.heartbeat"
},
{
"accepted_at": "2026-10-15T19:36:30.861014+00:00",
"covered_event_classes": [],
"event_id": "6a9f34445e13062e38ab309a6fc800dc9a2fa24cb8a46ecd919ae18fe9409874",
"source": "qonto-assistant",
"status_code": 202,
"stream_instance_id": "b351fa6b-e0d6-4f88-b7c9-6bacb1a112b7",
"stream_sequence": 2,
"tenant": "tenant:friendly:binky",
"type": "audit.deny"
}
],
"observed_at": "2026-10-15T19:37:03.422744+00:00",
"credential_values_emitted": false,
"source": "qonto-assistant",
"tenant": "tenant:friendly:binky",
"stream_instance_id": "b351fa6b-e0d6-4f88-b7c9-6bacb1a112b7",
"independent_readback": false
}

View file

@ -0,0 +1,37 @@
{
"receipts": [
{
"accepted_at": "2026-10-15T19:36:30.769604+00:00",
"covered_event_classes": [
"audit.deny"
],
"event_id": "28dad6de11fb25fe6e0e145351f047360d6898afb53afd4cd677e560ec69132a",
"source": "qonto-assistant",
"status_code": 202,
"stream_instance_id": "b351fa6b-e0d6-4f88-b7c9-6bacb1a112b7",
"stream_sequence": 1,
"tenant": "tenant:friendly:binky",
"type": "audit-core.heartbeat"
},
{
"accepted_at": "2026-10-15T19:36:30.861014+00:00",
"covered_event_classes": [],
"event_id": "6a9f34445e13062e38ab309a6fc800dc9a2fa24cb8a46ecd919ae18fe9409874",
"source": "qonto-assistant",
"status_code": 202,
"stream_instance_id": "b351fa6b-e0d6-4f88-b7c9-6bacb1a112b7",
"stream_sequence": 2,
"tenant": "tenant:friendly:binky",
"type": "audit.deny"
}
],
"pending_count": 0,
"started_at": "2026-10-15T19:37:41.503622+00:00",
"pod_uid_before": "1a39bd4b-19dc-4c1f-adaa-56a11423d945",
"native_admission_receipt": "qonto-collector-native-admission.json",
"pod_uid_after": "92ef9104-469c-4b28-a0cc-f781f53bb26e",
"observed_at": "2026-10-15T19:38:35.874453+00:00",
"first_202_receipts_preserved": true,
"pvc": "rapp-qonto-audit-outbox",
"image": "forgejo.coulomb.social/coulomb/rapp-qonto-audit-collector@sha256:82bfd4100e14ddb2cefc4acc02b6b74609846b4a26ad40d9089ed564693f250a"
}

View file

@ -0,0 +1,87 @@
{
"schema_version": "platform.cadence-custody/v1",
"status": "delivered_pending_native_producer_and_independent_acceptance",
"credential_values_emitted": false,
"started_at": "2026-10-15T19:35:14.571483+00:00",
"packet_sha256": "81478f43abd2dbcb924966e9a3404e26bc226c91f2921b493ef0d5e2c23d4729",
"receiver_before": {
"image": "forgejo.coulomb.social/coulomb/audit-core@sha256:b479801b0bc76df66a36a85376c45aaf399c6d82feade9ba81430b774c4a8271",
"deployment_uid": "b85fe3d0-75c9-4e0d-8c34-c6f1df0881bb",
"deployment_resource_version": "75784583",
"pod_uid": "22e4df05-dfb0-4e70-8d5a-5a5950c860bd",
"capabilities": {
"load_bearing": true,
"redact": true,
"write_only": true,
"source_exact": true,
"tenant_exact": true
},
"synthetic_probe_only": true,
"credential_reads": 0,
"cadence_instance_capabilities": {
"cadence_registration": true,
"sqlite_instance_filter": true,
"postgres_instance_filter": true,
"synthetic_cadence_parse": true,
"synthetic_heartbeat_parse": true,
"synthetic_exact_scope": true
}
},
"phase": "delivery",
"registry_version_before": 15,
"custody_version": 1,
"custody_request_id": "77a526ef-dbcc-147d-b98b-a339f4efcd62",
"approval": {
"sender": "approval-engine",
"source": "approval-engine",
"tenant": "tenant:platform",
"may_read": false,
"emission_cadence_sha256": "cc58c8d53ebf50acf540d73b7607d579942bda7734c3e8722108e9c9204af655",
"heartbeat_classes": {
"issuance": 7200,
"use": 7200,
"supersession": 7200,
"revocation": 7200
},
"effective_deadline_seconds": 10800,
"changed": true,
"credentials_preserved": true,
"other_registry_fields_preserved": true
},
"registry_request_id": "47ca933d-4a5d-699b-c474-094947f78fb9",
"registry_version_after": 16,
"registry_readback_matches": true,
"other_senders_preserved": true,
"approval_credentials_preserved": true,
"reader_exact_path_negatives_and_revocation": true,
"wrong_identity_denied": true,
"coding_agent_deny_wins": true,
"projection_matches": true,
"receiver_registry_projection_matches": true,
"receiver_after": {
"image": "forgejo.coulomb.social/coulomb/audit-core@sha256:b479801b0bc76df66a36a85376c45aaf399c6d82feade9ba81430b774c4a8271",
"deployment_uid": "b85fe3d0-75c9-4e0d-8c34-c6f1df0881bb",
"deployment_resource_version": "75785764",
"pod_uid": "8333754a-eca0-4dd0-9230-72e41bb1e632",
"capabilities": {
"load_bearing": true,
"redact": true,
"write_only": true,
"source_exact": true,
"tenant_exact": true
},
"synthetic_probe_only": true,
"credential_reads": 0,
"cadence_instance_capabilities": {
"cadence_registration": true,
"sqlite_instance_filter": true,
"postgres_instance_filter": true,
"synthetic_cadence_parse": true,
"synthetic_heartbeat_parse": true,
"synthetic_exact_scope": true
}
},
"receiver_reloaded": true,
"receiver_runtime_registry_matches": true,
"completed_at": "2026-10-15T19:35:47.205117+00:00"
}