Register hourly cadence receiver and deploy verified durable Qonto collector
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:
tegwick 2026-10-15 21:43:38 +02:00
parent 1ae0fe337a
commit bd1bed731f
26 changed files with 2178 additions and 15 deletions

View file

@ -0,0 +1,22 @@
[
{
"op": "test",
"path": "/metadata/uid",
"value": "8b44c901-024f-4472-a822-2fd07aa2be5f"
},
{
"op": "test",
"path": "/metadata/resourceVersion",
"value": "75772235"
},
{
"op": "replace",
"path": "/spec/template/spec/containers/0/image",
"value": "forgejo.coulomb.social/coulomb/approval-engine@sha256:16e5d222d58e179f4836f649e8f8128321a8b644d29dc426b4d21a65ff97845d"
},
{
"op": "replace",
"path": "/spec/template/spec/initContainers/0/image",
"value": "forgejo.coulomb.social/coulomb/approval-engine@sha256:16e5d222d58e179f4836f649e8f8128321a8b644d29dc426b4d21a65ff97845d"
}
]

View file

@ -0,0 +1,593 @@
{
"source_window": {
"source": "approval-engine",
"tenant": "tenant:platform",
"since": "2026-09-13T23:02:55+00:00",
"until": "2026-10-15T19:38:39.029733+00:00",
"bounds": "since-inclusive-until-exclusive",
"window_basis": "created_at",
"counts": {
"issuance": {
"committed": 47,
"drained": 47,
"pending": 0,
"acknowledged_in_window": 47
},
"use": {
"committed": 11,
"drained": 11,
"pending": 0,
"acknowledged_in_window": 11
},
"supersession": {
"committed": 0,
"drained": 0,
"pending": 0,
"acknowledged_in_window": 0
},
"revocation": {
"committed": 0,
"drained": 0,
"pending": 0,
"acknowledged_in_window": 0
},
"heartbeat": {
"committed": 33,
"drained": 33,
"pending": 0,
"acknowledged_in_window": 33
}
},
"means": "Source occurrence counts and local acknowledgments; receiver acceptance-time comparison requires drain-lag and boundary accounting. Agreement does not prove completeness."
},
"outbox_coordinates": [
{
"event_id": "b4f82b2f-c63e-4e56-8eaf-b7019feb0d11",
"class": "heartbeat",
"created_at": "2026-09-13T23:02:55+00:00",
"drained_at": "2026-09-13T23:02:56+00:00"
},
{
"event_id": "7f302456-dccb-4c65-b017-fab8fa3b0a29",
"class": "issuance",
"created_at": "2026-09-14T01:05:11+00:00",
"drained_at": "2026-09-14T01:05:13+00:00"
},
{
"event_id": "c6a4bfef-29db-447e-bc03-feca26b49367",
"class": "issuance",
"created_at": "2026-09-14T01:05:49+00:00",
"drained_at": "2026-09-14T01:05:53+00:00"
},
{
"event_id": "337dc3e2-c531-4e73-bbc1-e2fd680b03c5",
"class": "issuance",
"created_at": "2026-09-14T01:06:17+00:00",
"drained_at": "2026-09-14T01:06:18+00:00"
},
{
"event_id": "1db440ca-4e92-454c-befa-7fb2276a9b26",
"class": "heartbeat",
"created_at": "2026-09-14T23:02:59+00:00",
"drained_at": "2026-09-14T23:02:59+00:00"
},
{
"event_id": "ba93918f-cdbf-4e93-be65-b74b25bd296d",
"class": "heartbeat",
"created_at": "2026-09-15T23:03:01+00:00",
"drained_at": "2026-09-15T23:03:01+00:00"
},
{
"event_id": "ff2d2273-576a-445f-9fac-cc1ca03b09c7",
"class": "issuance",
"created_at": "2026-09-15T23:53:32+00:00",
"drained_at": "2026-09-15T23:53:36+00:00"
},
{
"event_id": "669bf0fb-8a30-4470-a810-c1c3be7a2efc",
"class": "issuance",
"created_at": "2026-09-15T23:56:08+00:00",
"drained_at": "2026-09-15T23:56:11+00:00"
},
{
"event_id": "fadbdb84-ec2e-4572-99a0-13fcb5ecc8a3",
"class": "issuance",
"created_at": "2026-09-15T23:56:41+00:00",
"drained_at": "2026-09-15T23:56:46+00:00"
},
{
"event_id": "4d2b4918-e23d-4e72-91f8-97d0ceb6be5c",
"class": "use",
"created_at": "2026-09-16T00:05:09+00:00",
"drained_at": "2026-09-16T00:05:11+00:00"
},
{
"event_id": "0fbf7112-8835-4967-be01-629ce99fbc1f",
"class": "use",
"created_at": "2026-09-16T00:05:11+00:00",
"drained_at": "2026-09-16T00:05:16+00:00"
},
{
"event_id": "ad6e96ab-2e8b-4ebd-b5ec-8a027477c931",
"class": "use",
"created_at": "2026-09-16T00:08:32+00:00",
"drained_at": "2026-09-16T00:08:36+00:00"
},
{
"event_id": "74f4019b-1dac-46f6-9126-a86f63075ecb",
"class": "heartbeat",
"created_at": "2026-09-16T23:03:03+00:00",
"drained_at": "2026-09-16T23:03:03+00:00"
},
{
"event_id": "b224ac95-1df7-462a-b7b9-fc0e49388319",
"class": "heartbeat",
"created_at": "2026-09-17T23:03:05+00:00",
"drained_at": "2026-09-17T23:03:05+00:00"
},
{
"event_id": "06044e25-0436-43f4-8552-4f7b49f867d3",
"class": "heartbeat",
"created_at": "2026-09-18T23:03:07+00:00",
"drained_at": "2026-09-18T23:03:07+00:00"
},
{
"event_id": "18f2b687-f3f7-40db-a056-3e91c39401be",
"class": "heartbeat",
"created_at": "2026-09-19T23:03:10+00:00",
"drained_at": "2026-09-19T23:03:10+00:00"
},
{
"event_id": "ef66421f-3cd8-457a-8f8f-c6f4310667c6",
"class": "heartbeat",
"created_at": "2026-09-20T23:03:12+00:00",
"drained_at": "2026-09-20T23:03:12+00:00"
},
{
"event_id": "75cbfc23-3f48-4dfd-99b1-5234fa327915",
"class": "issuance",
"created_at": "2026-09-21T19:51:29+00:00",
"drained_at": "2026-09-21T19:51:30+00:00"
},
{
"event_id": "dfb1220b-25e0-43c6-b74e-1575bf5188af",
"class": "heartbeat",
"created_at": "2026-09-21T23:03:12+00:00",
"drained_at": "2026-09-21T23:03:12+00:00"
},
{
"event_id": "2b125feb-7363-4187-a776-f3961f8e991e",
"class": "heartbeat",
"created_at": "2026-09-22T23:03:12+00:00",
"drained_at": "2026-09-22T23:03:12+00:00"
},
{
"event_id": "c0b97e60-3198-46b1-a482-d38030817768",
"class": "heartbeat",
"created_at": "2026-09-23T23:03:16+00:00",
"drained_at": "2026-09-23T23:03:16+00:00"
},
{
"event_id": "5e735adb-b9ca-457a-bbcf-aac1669384db",
"class": "heartbeat",
"created_at": "2026-09-24T23:03:20+00:00",
"drained_at": "2026-09-24T23:03:20+00:00"
},
{
"event_id": "4c8c19be-378b-49f3-9207-a4e8091044b1",
"class": "heartbeat",
"created_at": "2026-09-25T23:03:20+00:00",
"drained_at": "2026-09-25T23:03:20+00:00"
},
{
"event_id": "6bf120bb-ff63-46a8-b3cb-5486ace348a9",
"class": "heartbeat",
"created_at": "2026-09-26T23:03:24+00:00",
"drained_at": "2026-09-26T23:03:24+00:00"
},
{
"event_id": "7fc26b94-9fb8-4492-b2d8-3ee48942ff73",
"class": "issuance",
"created_at": "2026-09-27T18:05:35+00:00",
"drained_at": "2026-09-27T18:05:36+00:00"
},
{
"event_id": "8984622e-193c-42c5-812c-372e17d836f9",
"class": "issuance",
"created_at": "2026-09-27T18:22:57+00:00",
"drained_at": "2026-09-27T18:23:02+00:00"
},
{
"event_id": "11e42f81-84c2-4d5a-9743-ed598faea076",
"class": "issuance",
"created_at": "2026-09-27T19:23:59+00:00",
"drained_at": "2026-09-27T19:24:02+00:00"
},
{
"event_id": "c89e909f-f576-44ed-b107-69f64dc3d686",
"class": "issuance",
"created_at": "2026-09-27T19:24:15+00:00",
"drained_at": "2026-09-27T19:24:17+00:00"
},
{
"event_id": "c2677abf-e3ff-44c2-9818-86838c259f5f",
"class": "issuance",
"created_at": "2026-09-27T19:24:32+00:00",
"drained_at": "2026-09-27T19:24:32+00:00"
},
{
"event_id": "c9d418c8-1f74-4561-82d5-3510c2439172",
"class": "issuance",
"created_at": "2026-09-27T19:24:43+00:00",
"drained_at": "2026-09-27T19:24:47+00:00"
},
{
"event_id": "33254695-544c-4da6-a22d-c0dc360d1f89",
"class": "issuance",
"created_at": "2026-09-27T19:24:55+00:00",
"drained_at": "2026-09-27T19:24:57+00:00"
},
{
"event_id": "5ec40d6f-351f-4b02-ae2a-db73af6ff43c",
"class": "issuance",
"created_at": "2026-09-27T19:25:10+00:00",
"drained_at": "2026-09-27T19:25:12+00:00"
},
{
"event_id": "e81c0b4c-cc0f-4dc9-94e1-dbe0646505e7",
"class": "use",
"created_at": "2026-09-27T19:48:20+00:00",
"drained_at": "2026-09-27T19:48:23+00:00"
},
{
"event_id": "d35d0720-33bc-4d0d-8307-05b9b67b5cdb",
"class": "use",
"created_at": "2026-09-27T19:48:22+00:00",
"drained_at": "2026-09-27T19:48:23+00:00"
},
{
"event_id": "27044b2d-1aab-4239-bf38-59118dfd06bb",
"class": "use",
"created_at": "2026-09-27T19:48:25+00:00",
"drained_at": "2026-09-27T19:48:28+00:00"
},
{
"event_id": "c5c9220c-29d7-4aaa-bd93-3df355caf59c",
"class": "use",
"created_at": "2026-09-27T19:48:30+00:00",
"drained_at": "2026-09-27T19:48:33+00:00"
},
{
"event_id": "9a0c1fec-3105-4d6f-b062-991a8345d16d",
"class": "use",
"created_at": "2026-09-27T20:01:37+00:00",
"drained_at": "2026-09-27T20:01:38+00:00"
},
{
"event_id": "66b91546-36c0-4a25-82ca-4a52eb1eae21",
"class": "use",
"created_at": "2026-09-27T20:01:38+00:00",
"drained_at": "2026-09-27T20:01:38+00:00"
},
{
"event_id": "496e4119-3112-4818-93b8-658ad24c745f",
"class": "heartbeat",
"created_at": "2026-09-27T23:03:25+00:00",
"drained_at": "2026-09-27T23:03:25+00:00"
},
{
"event_id": "a65454b3-0db9-4cb7-9c7d-9c35d9e15e57",
"class": "heartbeat",
"created_at": "2026-09-28T23:03:27+00:00",
"drained_at": "2026-09-28T23:03:27+00:00"
},
{
"event_id": "79a37132-a514-4c95-ac6c-65d08b6967d0",
"class": "heartbeat",
"created_at": "2026-09-29T23:03:28+00:00",
"drained_at": "2026-09-29T23:03:28+00:00"
},
{
"event_id": "0c281084-cb88-44be-9666-5c3e6a59b035",
"class": "heartbeat",
"created_at": "2026-09-30T23:03:32+00:00",
"drained_at": "2026-09-30T23:03:32+00:00"
},
{
"event_id": "36224702-dedd-4bfa-a0a4-383e30f1f781",
"class": "heartbeat",
"created_at": "2026-10-01T23:03:33+00:00",
"drained_at": "2026-10-01T23:03:33+00:00"
},
{
"event_id": "c64733d3-f474-4266-a5ed-6be5cb3ac3a5",
"class": "heartbeat",
"created_at": "2026-10-02T23:03:33+00:00",
"drained_at": "2026-10-02T23:03:33+00:00"
},
{
"event_id": "bd40f557-3927-4fdf-984a-cf8af60f4b5e",
"class": "issuance",
"created_at": "2026-10-03T18:45:15+00:00",
"drained_at": "2026-10-03T18:45:17+00:00"
},
{
"event_id": "f2b199d5-2cca-47c9-ba27-389e79edcc59",
"class": "heartbeat",
"created_at": "2026-10-03T23:03:34+00:00",
"drained_at": "2026-10-03T23:03:34+00:00"
},
{
"event_id": "8589a736-f8e7-42b5-8b1d-6b0681fd7450",
"class": "issuance",
"created_at": "2026-10-04T00:16:08+00:00",
"drained_at": "2026-10-04T00:16:09+00:00"
},
{
"event_id": "02ff2545-0628-4dc3-8428-31246c0e5a98",
"class": "issuance",
"created_at": "2026-10-04T13:14:06+00:00",
"drained_at": "2026-10-04T13:14:51+00:00"
},
{
"event_id": "9511a221-f392-484f-8984-54b4a0be1ac8",
"class": "issuance",
"created_at": "2026-10-04T13:14:20+00:00",
"drained_at": "2026-10-04T13:14:51+00:00"
},
{
"event_id": "3942043a-4cfd-41d4-9c61-ef6510e12f97",
"class": "issuance",
"created_at": "2026-10-04T13:15:31+00:00",
"drained_at": "2026-10-04T13:15:36+00:00"
},
{
"event_id": "46d1d50c-ff4c-45d3-a23d-1ee33fdc10ad",
"class": "issuance",
"created_at": "2026-10-04T13:15:51+00:00",
"drained_at": "2026-10-04T13:15:56+00:00"
},
{
"event_id": "f4b74a51-06c1-43e7-b751-d2ddd2bd1171",
"class": "issuance",
"created_at": "2026-10-04T14:45:00+00:00",
"drained_at": "2026-10-04T14:45:01+00:00"
},
{
"event_id": "1471937f-315a-4cc2-8bd6-6675ba3113b4",
"class": "issuance",
"created_at": "2026-10-04T14:45:11+00:00",
"drained_at": "2026-10-04T14:45:11+00:00"
},
{
"event_id": "34040261-f64d-484a-90e0-aaf3ce68e233",
"class": "issuance",
"created_at": "2026-10-04T14:45:29+00:00",
"drained_at": "2026-10-04T14:45:31+00:00"
},
{
"event_id": "92f9ca1d-c11d-4c89-b685-6b8ac3609900",
"class": "use",
"created_at": "2026-10-04T15:10:13+00:00",
"drained_at": "2026-10-04T15:10:17+00:00"
},
{
"event_id": "a13f7c5d-1e33-480c-8367-64ef088b4e9a",
"class": "use",
"created_at": "2026-10-04T15:10:19+00:00",
"drained_at": "2026-10-04T15:10:22+00:00"
},
{
"event_id": "cc55501a-eba5-4584-81cb-bf9e96000bc0",
"class": "issuance",
"created_at": "2026-10-04T22:17:19+00:00",
"drained_at": "2026-10-04T22:17:20+00:00"
},
{
"event_id": "dedea3c2-fa4b-433c-a035-697cbd6ae6d5",
"class": "heartbeat",
"created_at": "2026-10-04T23:03:35+00:00",
"drained_at": "2026-10-04T23:03:35+00:00"
},
{
"event_id": "a0975609-d8d1-4807-bc51-734584bfc6b8",
"class": "issuance",
"created_at": "2026-10-05T22:31:45+00:00",
"drained_at": "2026-10-05T22:31:46+00:00"
},
{
"event_id": "57f20fdc-dbca-44a5-b888-7c51846f1430",
"class": "issuance",
"created_at": "2026-10-05T22:32:21+00:00",
"drained_at": "2026-10-05T22:32:26+00:00"
},
{
"event_id": "d0a58fc8-a3bc-4d81-a53a-0b260c04b627",
"class": "issuance",
"created_at": "2026-10-05T22:32:41+00:00",
"drained_at": "2026-10-05T22:32:46+00:00"
},
{
"event_id": "a10e31d7-1316-4120-9b75-8ac5881d03f7",
"class": "issuance",
"created_at": "2026-10-05T22:33:00+00:00",
"drained_at": "2026-10-05T22:33:01+00:00"
},
{
"event_id": "89724e03-1740-4f61-aefa-b1351424f7d2",
"class": "issuance",
"created_at": "2026-10-05T22:33:20+00:00",
"drained_at": "2026-10-05T22:33:21+00:00"
},
{
"event_id": "f8508c41-1c83-4dde-a9c1-f8da3af838c4",
"class": "issuance",
"created_at": "2026-10-05T22:33:42+00:00",
"drained_at": "2026-10-05T22:33:46+00:00"
},
{
"event_id": "73a369d4-e559-4518-93f1-4254fcb9021f",
"class": "heartbeat",
"created_at": "2026-10-05T23:03:36+00:00",
"drained_at": "2026-10-05T23:03:36+00:00"
},
{
"event_id": "b867057c-1d26-4bf9-b6c0-9d69437f0a6a",
"class": "heartbeat",
"created_at": "2026-10-06T23:03:38+00:00",
"drained_at": "2026-10-06T23:03:38+00:00"
},
{
"event_id": "f3b7020b-7fd3-4a80-8bee-beb01f944681",
"class": "heartbeat",
"created_at": "2026-10-07T23:03:39+00:00",
"drained_at": "2026-10-07T23:03:39+00:00"
},
{
"event_id": "67d7aae5-43e9-40ca-ab7a-7e3cb40439d4",
"class": "issuance",
"created_at": "2026-10-08T21:51:11+00:00",
"drained_at": "2026-10-08T21:51:14+00:00"
},
{
"event_id": "621a0f5b-65e2-40c9-b263-58434898709e",
"class": "issuance",
"created_at": "2026-10-08T21:56:39+00:00",
"drained_at": "2026-10-08T21:56:39+00:00"
},
{
"event_id": "4248054f-5cda-4b3e-9896-4dbe7a1179f2",
"class": "heartbeat",
"created_at": "2026-10-08T23:03:39+00:00",
"drained_at": "2026-10-08T23:03:39+00:00"
},
{
"event_id": "e58d50c2-5f6f-4cdb-8b1a-dce2373b1d9f",
"class": "issuance",
"created_at": "2026-10-09T10:12:25+00:00",
"drained_at": "2026-10-09T10:12:29+00:00"
},
{
"event_id": "ca825088-173e-47ed-ab2c-b07587399772",
"class": "heartbeat",
"created_at": "2026-10-09T23:03:39+00:00",
"drained_at": "2026-10-09T23:03:39+00:00"
},
{
"event_id": "712df824-df06-4674-a3c3-f75a2bed8625",
"class": "heartbeat",
"created_at": "2026-10-10T23:03:40+00:00",
"drained_at": "2026-10-10T23:03:40+00:00"
},
{
"event_id": "f0bd2e80-cde7-49bd-9d4b-0695290114a8",
"class": "issuance",
"created_at": "2026-10-10T23:23:31+00:00",
"drained_at": "2026-10-10T23:23:35+00:00"
},
{
"event_id": "044a520f-cc68-4a69-8be6-b173ffabbaeb",
"class": "issuance",
"created_at": "2026-10-10T23:23:53+00:00",
"drained_at": "2026-10-10T23:23:55+00:00"
},
{
"event_id": "09c05fcb-5426-4c0c-ad27-45aba842b6e5",
"class": "issuance",
"created_at": "2026-10-11T00:48:11+00:00",
"drained_at": "2026-10-11T00:48:15+00:00"
},
{
"event_id": "c2040c95-8a38-405b-be58-39d146cab281",
"class": "issuance",
"created_at": "2026-10-11T01:14:23+00:00",
"drained_at": "2026-10-11T01:14:31+00:00"
},
{
"event_id": "ce26d525-e8c8-4e8b-bd74-3640167ce744",
"class": "issuance",
"created_at": "2026-10-11T01:46:25+00:00",
"drained_at": "2026-10-11T01:46:26+00:00"
},
{
"event_id": "80e6f45f-0071-4161-9a80-c1f0b2214744",
"class": "issuance",
"created_at": "2026-10-11T02:07:09+00:00",
"drained_at": "2026-10-11T02:07:11+00:00"
},
{
"event_id": "8966501f-a75f-44a5-a8dd-76f3e6458a7c",
"class": "issuance",
"created_at": "2026-10-11T02:34:20+00:00",
"drained_at": "2026-10-11T02:34:21+00:00"
},
{
"event_id": "db163410-52bd-4ef9-9da8-43b553650b24",
"class": "issuance",
"created_at": "2026-10-11T06:47:39+00:00",
"drained_at": "2026-10-11T06:47:43+00:00"
},
{
"event_id": "9a81f17a-cbac-438d-8e2d-27a0bd8d774e",
"class": "issuance",
"created_at": "2026-10-11T06:53:43+00:00",
"drained_at": "2026-10-11T06:53:48+00:00"
},
{
"event_id": "901d01ac-8655-4596-803a-8f8d2ab95dad",
"class": "issuance",
"created_at": "2026-10-11T10:40:55+00:00",
"drained_at": "2026-10-11T10:40:55+00:00"
},
{
"event_id": "3cf709a4-e867-4ecd-9f4f-843093ecc4eb",
"class": "issuance",
"created_at": "2026-10-11T17:19:01+00:00",
"drained_at": "2026-10-11T17:19:03+00:00"
},
{
"event_id": "0d1763bf-7407-4b84-9fe3-a7655b2a60ac",
"class": "heartbeat",
"created_at": "2026-10-11T23:03:41+00:00",
"drained_at": "2026-10-11T23:03:41+00:00"
},
{
"event_id": "32257a42-f68f-4f6e-9815-507f13bdc940",
"class": "heartbeat",
"created_at": "2026-10-12T23:03:41+00:00",
"drained_at": "2026-10-12T23:03:41+00:00"
},
{
"event_id": "dafdf67b-7be0-4c8e-9063-c7a8d9c40c0d",
"class": "heartbeat",
"created_at": "2026-10-13T23:03:42+00:00",
"drained_at": "2026-10-13T23:03:42+00:00"
},
{
"event_id": "3160500d-f313-4055-96d2-8a3e7ba1d235",
"class": "issuance",
"created_at": "2026-10-14T07:37:00+00:00",
"drained_at": "2026-10-14T07:37:01+00:00"
},
{
"event_id": "2ceb8f47-bdcb-4637-a371-f8145b9caef4",
"class": "heartbeat",
"created_at": "2026-10-14T23:03:46+00:00",
"drained_at": "2026-10-14T23:03:46+00:00"
},
{
"event_id": "d66c2b9f-c30b-4db6-8ec0-2c12857d1dc8",
"class": "issuance",
"created_at": "2026-10-15T03:19:34+00:00",
"drained_at": "2026-10-15T03:19:38+00:00"
},
{
"event_id": "76df9dbb-837b-47c4-8026-56db990a59bb",
"class": "heartbeat",
"created_at": "2026-10-15T18:54:55+00:00",
"drained_at": "2026-10-15T18:54:55+00:00"
}
],
"observed_at": "2026-10-15T19:38:37.453790+00:00",
"boundary": "Source-owned occurrence and local acknowledgment coordinates only; independent receiver event-ID/acceptance comparison pending. Existing probe events outside this outbox must be accounted separately."
}

View file

@ -0,0 +1,26 @@
{
"expected_schema_version": 5,
"foreign_key_violations": 0,
"integrity": [
"ok"
],
"ok": true,
"persistent": true,
"required_tables": {
"approvals": true,
"entries": true,
"outbox": true
},
"schema_current": true,
"schema_version": 5,
"live_table_counts": {
"approvals": 54,
"entries": 47,
"outbox": 91
},
"local_copy": "/tmp/nk-wp-0035-approval-backup/pre-schema6.sqlite",
"local_mode": "0600",
"sha256": "70ebf5d0f6218655b3ad3ddb5cc50c52a8210cf061735e45bd0f96d8452367ed",
"persistent_path": "/data/nk-wp-0035-pre-schema6-20261015.sqlite",
"observed_at": "2026-10-15T19:27:13.223863+00:00"
}

View file

@ -0,0 +1,63 @@
{
"storage": {
"schema_version": 6,
"expected_schema_version": 6,
"schema_current": true,
"persistent": true,
"required_tables": {
"approvals": true,
"entries": true,
"outbox": true
},
"integrity": [
"ok"
],
"foreign_key_violations": 0,
"ok": true
},
"outbox": {
"total": 91,
"pending": 0,
"max_age_seconds": 0,
"attempts": 101,
"failed_pending": 0,
"counts": {
"issuance": 47,
"use": 11,
"supersession": 0,
"revocation": 0,
"heartbeat": 33
}
},
"table_counts": {
"approvals": 54,
"entries": 47,
"outbox": 91
},
"new_class_heartbeats": [
{
"asserted_class": "heartbeat",
"created_at": "2026-10-15T18:54:55+00:00",
"drained_at": "2026-10-15T18:54:55+00:00"
},
{
"asserted_class": "heartbeat",
"created_at": "2026-10-14T23:03:46+00:00",
"drained_at": "2026-10-14T23:03:46+00:00"
},
{
"asserted_class": "heartbeat",
"created_at": "2026-10-13T23:03:42+00:00",
"drained_at": "2026-10-13T23:03:42+00:00"
},
{
"asserted_class": "heartbeat",
"created_at": "2026-10-12T23:03:41+00:00",
"drained_at": "2026-10-12T23:03:41+00:00"
}
],
"readiness": 200,
"observed_at": "2026-10-15T19:29:46.446307+00:00",
"pod_uid": "0aff01bc-8719-4229-8f2f-c26781d2e033",
"image": "forgejo.coulomb.social/coulomb/approval-engine@sha256:16e5d222d58e179f4836f649e8f8128321a8b644d29dc426b4d21a65ff97845d"
}

View file

@ -0,0 +1,23 @@
{
"pre_schema": 5,
"post_storage": {
"schema_version": 6,
"expected_schema_version": 6,
"schema_current": true,
"persistent": true,
"required_tables": {
"approvals": true,
"entries": true,
"outbox": true
},
"integrity": [
"ok"
],
"foreign_key_violations": 0,
"ok": true
},
"counts_unchanged": true,
"live_database_overwritten": false,
"nonroot_uid": 10001,
"source_commit": "a786b061da4d7730c0827cf4919ab9206aed6d3e"
}

View file

@ -0,0 +1,107 @@
{
"apiVersion": "batch/v1",
"kind": "Job",
"metadata": {
"name": "audit-core-migrate-nk-wp-0035-r2",
"namespace": "audit-core",
"labels": {
"app.kubernetes.io/name": "audit-core",
"app.kubernetes.io/component": "migrate"
}
},
"spec": {
"backoffLimit": 0,
"ttlSecondsAfterFinished": 86400,
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "audit-core",
"app.kubernetes.io/component": "migrate"
}
},
"spec": {
"restartPolicy": "Never",
"securityContext": {
"runAsNonRoot": true,
"runAsUser": 10001,
"fsGroup": 10001,
"seccompProfile": {
"type": "RuntimeDefault"
}
},
"containers": [
{
"name": "migrate",
"image": "forgejo.coulomb.social/coulomb/audit-core@sha256:b479801b0bc76df66a36a85376c45aaf399c6d82feade9ba81430b774c4a8271",
"imagePullPolicy": "IfNotPresent",
"command": [
"python",
"-m",
"audit_core",
"migrate"
],
"env": [
{
"name": "AUDIT_CORE_CREDENTIAL_DIR",
"value": "/etc/audit-core/db"
},
{
"name": "AUDIT_CORE_DATABASE_SCHEMA",
"value": "audit_core"
},
{
"name": "AUDIT_CORE_MIGRATE_ROLE",
"value": "audit_core_migrate"
}
],
"resources": {
"requests": {
"cpu": "25m",
"memory": "64Mi"
},
"limits": {
"cpu": "250m",
"memory": "128Mi"
}
},
"securityContext": {
"allowPrivilegeEscalation": false,
"capabilities": {
"drop": [
"ALL"
]
},
"readOnlyRootFilesystem": true
},
"volumeMounts": [
{
"name": "tmp",
"mountPath": "/tmp"
},
{
"name": "database-credential",
"mountPath": "/etc/audit-core/db",
"readOnly": true
}
],
"terminationMessagePolicy": "FallbackToLogsOnError"
}
],
"volumes": [
{
"name": "tmp",
"emptyDir": {}
},
{
"name": "database-credential",
"secret": {
"secretName": "audit-core-database-migrate",
"defaultMode": 288
}
}
]
}
},
"activeDeadlineSeconds": 300
}
}

View file

@ -0,0 +1,108 @@
{
"apiVersion": "batch/v1",
"kind": "Job",
"metadata": {
"name": "audit-core-migrate-nk-wp-0035-r3",
"namespace": "audit-core",
"labels": {
"app.kubernetes.io/name": "audit-core",
"app.kubernetes.io/component": "migrate"
}
},
"spec": {
"backoffLimit": 0,
"ttlSecondsAfterFinished": 86400,
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "audit-core",
"app.kubernetes.io/component": "migrate"
}
},
"spec": {
"restartPolicy": "Never",
"securityContext": {
"runAsNonRoot": true,
"runAsUser": 10001,
"fsGroup": 10001,
"seccompProfile": {
"type": "RuntimeDefault"
}
},
"containers": [
{
"name": "migrate",
"image": "forgejo.coulomb.social/coulomb/audit-core@sha256:b479801b0bc76df66a36a85376c45aaf399c6d82feade9ba81430b774c4a8271",
"imagePullPolicy": "IfNotPresent",
"command": [
"python",
"-m",
"audit_core",
"migrate"
],
"env": [
{
"name": "AUDIT_CORE_CREDENTIAL_DIR",
"value": "/etc/audit-core/db"
},
{
"name": "AUDIT_CORE_DATABASE_SCHEMA",
"value": "audit_core"
},
{
"name": "AUDIT_CORE_MIGRATE_ROLE",
"value": "audit_core_migrate"
}
],
"resources": {
"requests": {
"cpu": "25m",
"memory": "64Mi"
},
"limits": {
"cpu": "250m",
"memory": "128Mi"
}
},
"securityContext": {
"allowPrivilegeEscalation": false,
"capabilities": {
"drop": [
"ALL"
]
},
"readOnlyRootFilesystem": true
},
"volumeMounts": [
{
"name": "tmp",
"mountPath": "/tmp"
},
{
"name": "database-credential",
"mountPath": "/etc/audit-core/db",
"readOnly": true
}
],
"terminationMessagePolicy": "FallbackToLogsOnError"
}
],
"volumes": [
{
"name": "tmp",
"emptyDir": {}
},
{
"name": "database-credential",
"secret": {
"secretName": "audit-core-database-migrate",
"defaultMode": 288
}
}
],
"automountServiceAccountToken": false
}
},
"activeDeadlineSeconds": 300
}
}

View file

@ -0,0 +1,106 @@
{
"apiVersion": "batch/v1",
"kind": "Job",
"metadata": {
"name": "audit-core-migrate-nk-wp-0035",
"namespace": "audit-core",
"labels": {
"app.kubernetes.io/name": "audit-core",
"app.kubernetes.io/component": "migrate"
}
},
"spec": {
"backoffLimit": 0,
"ttlSecondsAfterFinished": 86400,
"template": {
"metadata": {
"labels": {
"app.kubernetes.io/name": "audit-core",
"app.kubernetes.io/component": "migrate"
}
},
"spec": {
"restartPolicy": "OnFailure",
"securityContext": {
"runAsNonRoot": true,
"runAsUser": 10001,
"fsGroup": 10001,
"seccompProfile": {
"type": "RuntimeDefault"
}
},
"containers": [
{
"name": "migrate",
"image": "forgejo.coulomb.social/coulomb/audit-core@sha256:b479801b0bc76df66a36a85376c45aaf399c6d82feade9ba81430b774c4a8271",
"imagePullPolicy": "IfNotPresent",
"command": [
"python",
"-m",
"audit_core",
"migrate"
],
"env": [
{
"name": "AUDIT_CORE_CREDENTIAL_DIR",
"value": "/etc/audit-core/db"
},
{
"name": "AUDIT_CORE_DATABASE_SCHEMA",
"value": "audit_core"
},
{
"name": "AUDIT_CORE_MIGRATE_ROLE",
"value": "audit_core_migrate"
}
],
"resources": {
"requests": {
"cpu": "25m",
"memory": "64Mi"
},
"limits": {
"cpu": "250m",
"memory": "128Mi"
}
},
"securityContext": {
"allowPrivilegeEscalation": false,
"capabilities": {
"drop": [
"ALL"
]
},
"readOnlyRootFilesystem": true
},
"volumeMounts": [
{
"name": "tmp",
"mountPath": "/tmp"
},
{
"name": "database-credential",
"mountPath": "/etc/audit-core/db",
"readOnly": true
}
]
}
],
"volumes": [
{
"name": "tmp",
"emptyDir": {}
},
{
"name": "database-credential",
"secret": {
"secretName": "audit-core-database-migrate",
"defaultMode": 288
}
}
]
}
},
"activeDeadlineSeconds": 300
}
}

View file

@ -0,0 +1,17 @@
[
{
"op": "test",
"path": "/metadata/uid",
"value": "b85fe3d0-75c9-4e0d-8c34-c6f1df0881bb"
},
{
"op": "test",
"path": "/metadata/resourceVersion",
"value": "75782608"
},
{
"op": "replace",
"path": "/spec/template/spec/containers/0/image",
"value": "forgejo.coulomb.social/coulomb/audit-core@sha256:b479801b0bc76df66a36a85376c45aaf399c6d82feade9ba81430b774c4a8271"
}
]

View file

@ -0,0 +1,69 @@
{
"apiVersion": "networking.k8s.io/v1",
"kind": "NetworkPolicy",
"metadata": {
"name": "audit-core-migrate-egress",
"namespace": "audit-core"
},
"spec": {
"podSelector": {
"matchLabels": {
"app.kubernetes.io/name": "audit-core",
"app.kubernetes.io/component": "migrate"
}
},
"policyTypes": [
"Egress"
],
"egress": [
{
"to": [
{
"namespaceSelector": {
"matchLabels": {
"kubernetes.io/metadata.name": "databases"
}
},
"podSelector": {
"matchLabels": {
"cnpg.io/cluster": "platform-pg"
}
}
}
],
"ports": [
{
"protocol": "TCP",
"port": 5432
}
]
},
{
"to": [
{
"namespaceSelector": {
"matchLabels": {
"kubernetes.io/metadata.name": "kube-system"
}
},
"podSelector": {
"matchLabels": {
"k8s-app": "kube-dns"
}
}
}
],
"ports": [
{
"protocol": "UDP",
"port": 53
},
{
"protocol": "TCP",
"port": 53
}
]
}
]
}
}

View file

@ -0,0 +1,60 @@
{
"prepared_at": "2026-10-15T19:22:57.217356+00:00",
"images": {
"approval-engine": "forgejo.coulomb.social/coulomb/approval-engine@sha256:16e5d222d58e179f4836f649e8f8128321a8b644d29dc426b4d21a65ff97845d",
"audit-core": "forgejo.coulomb.social/coulomb/audit-core@sha256:b479801b0bc76df66a36a85376c45aaf399c6d82feade9ba81430b774c4a8271",
"rapp-qonto-collector": "forgejo.coulomb.social/coulomb/rapp-qonto-audit-collector@sha256:82bfd4100e14ddb2cefc4acc02b6b74609846b4a26ad40d9089ed564693f250a"
},
"source_commits": {
"approval-engine": "a786b061da4d7730c0827cf4919ab9206aed6d3e",
"audit-core": "5227fb14e47f26a01930be4611360fd90f740662",
"rapp-qonto": "62a7cc0"
},
"scan_high_critical": {
"approval-engine": {
"count": 0,
"report_sha256": "5e787b9d4bf9514a8182476206bcc01d1d9497cee30efb876373964b1a6a6563",
"created_at": "2026-10-15T19:17:24.836393899Z"
},
"audit-core": {
"count": 0,
"report_sha256": "f7522e60a2f37e3a85cd5ba1f0754a73d637bcb430c2f4bdf0bec925ee5f0e88",
"created_at": "2026-10-15T19:20:34.959522138Z"
},
"rapp-qonto-collector": {
"count": 0,
"report_sha256": "0496a10c3f41925c7f2d2e92220ccc74a1814a2a924b7a3be76e88d8b8e58eb9",
"created_at": "2026-10-15T19:22:30.723382718Z"
}
},
"approval_migration": "v5 to v6; isolated actual backup migration verified with unchanged table counts",
"receiver_migration": "additive0007-import-receipts with native migration lease; no historical import",
"live_applied": false,
"server_dry_run": {
"approval_engine_images": 0,
"receiver_image": 0,
"receiver_migration_job": 0,
"collector_runtime_ingress": 0,
"hourly_observation_job": 0
},
"observation_job": "qonto-hourly-observation-job.json",
"new_sender_scope": {
"name": "rapp-qonto-collector",
"source": "qonto-assistant",
"tenant": "tenant:friendly:binky",
"may_write": true,
"may_read": false,
"secret_policy": "redact",
"bank_credentials_or_calls": false
},
"collector_access": {
"kubernetes": [
"namespace rapp-qonto: get/list pods, get pods/log"
],
"audit_custody": "only its exact writer bearer;1Gi persistent outbox",
"api_egress_ips": [
"10.43.0.1/32",
"92.205.62.239/32"
]
}
}

View file

@ -1,6 +1,6 @@
{
"workplan": "NK-WP-0035",
"status": "hourly runtime bindings deployed and verified; operational observer acceptance pending",
"status": "receiver registered; source/receiver upgrades and durable collector deployed; elapsed-hour and independent acceptance pending",
"profile_status": "proposed",
"live_observer_proved": false,
"source_files": {
@ -26,7 +26,7 @@
}
},
"approval_engine_registration_proposal": {
"status": "not-applied; founder selected configurable f=1h",
"status": "registered in protected registry version16 and verified after receiver reload",
"sender": "approval-engine",
"source": "approval-engine",
"tenant": "tenant:platform",
@ -51,10 +51,10 @@
"source_requested_bound_seconds": 7200,
"receiver_grace_factor": 1.5,
"live_steps": [
"Complete: founder approved timing-only rollout; Approval Engine backup/restart and Qonto candidate/promotion verified on unchanged images",
"Review exact protected-registry metadata-only patch preserving credentials and all unrelated entries",
"Obtain separate approval for exact registry metadata change; use governed owner custody with contained session and CAS/readback",
"Receiver reload under owner change gate; prove actual per-class registration and class-isolated heartbeats",
"Complete: approved immutable Approval schema6 and Audit schema7 releases; verified backups and readiness",
"Complete: protected metadata CAS changed Approval cadence/heartbeat waits only, preserving existing credentials and all other senders",
"Complete: explicit new CCR0047 approval; contained operator identity, CAS/readback, session revocation confirmed",
"Complete: exact runtime registry readback after ESO sync/reload; native per-class beats and independent observer findings remain observation-phase checks",
"Emit/drain actual lifecycle transitions under owner-scoped authority; correlate occurrence, acknowledgment and receiver acceptance windows including lag and duplicates",
"Independent readback/count comparison and missing-class/lag findings; retain value-safe receipts"
],
@ -72,7 +72,7 @@
},
"qonto": {
"required_owner": "rapp-qonto",
"missing": "Actual stdout collector/sender source/image/config and governed delivery lane",
"missing": "Elapsed real hourly periodic capture plus independent readback/observer acceptance (collector source/runtime and sender admission are now supplied)",
"authoritative_workload_tenant": "tenant:friendly:binky (rapp-qonto binding; collector mapping still needs source/receiver review)",
"receiver_commitment": "AUDIT-WP-0013-T05",
"receiver_instance_filter": "Implemented in AUDIT-WP-0013-T04; reviewed release and native proof still required",
@ -80,7 +80,9 @@
"observer_acceptance": "KG-WP-0005-T03 then QONTO-WP-0006-T03",
"historical_receipt_limit": "Source-path capture with startup and deny; not independent collector/feed acceptance",
"source_interval_seconds": 3600,
"runtime_status": "rapp-qonto-00010 promoted to 100 percent after candidate health, denial and source-count checks; periodic-hour and independent collector observation pending"
"runtime_status": "rapp-qonto-00010 hourly source unchanged; scanned durable collector82bfd deployed, admitted and restarted with original202 receipts preserved",
"native_admission_receipt": "qonto-collector-native-admission.json",
"collector_restart_receipt": "qonto-collector-restart-persistence.json"
},
"local_identity": {
"status": "explicit incompatibility retained",
@ -133,8 +135,23 @@
"backup_receipt": "approval-engine-frame-backup.json",
"qonto_candidate_receipt": "rapp-qonto-frame-candidate.json",
"qonto_rollout_receipt": "rapp-qonto-frame-rollout.json",
"receiver_registry_changed": false,
"registered_2f_and_effective_3f_live": false,
"periodic_hour_observed": false
"receiver_registry_changed": true,
"registered_2f_and_effective_3f_live": true,
"periodic_hour_observed": false,
"receiver_registry_receipt": "receiver-custody-live.json",
"receiver_image": "b479801b0bc76df66a36a85376c45aaf399c6d82feade9ba81430b774c4a8271",
"approval_image": "16e5d222d58e179f4836f649e8f8128321a8b644d29dc426b4d21a65ff97845d",
"collector_image": "82bfd4100e14ddb2cefc4acc02b6b74609846b4a26ad40d9089ed564693f250a"
},
"observation": {
"job": "default/nk-wp-0035-hourly-observation",
"uid": "f81f6e4b-b8ab-42d8-ac36-80f1386f9a14",
"started_at": "2026-10-15T19:36:07Z",
"expected_completion_utc": "2026-10-15T20:37:00Z",
"expected_completion_berlin": "2026-10-15T22:37:00+02:00",
"capture_monitor": "hourly-observation-monitor.json",
"capture_output": "hourly-observation-capture",
"status": "running; not accepted",
"fresh_operator_oidc_needed_for_independent_readback": true
}
}

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,64 @@
{
"apiVersion": "batch/v1",
"kind": "Job",
"metadata": {
"name": "nk-wp-0035-hourly-observation",
"namespace": "default",
"labels": {
"netkingdom.workplan": "NK-WP-0035"
}
},
"spec": {
"backoffLimit": 0,
"activeDeadlineSeconds": 3900,
"ttlSecondsAfterFinished": 86400,
"template": {
"metadata": {
"labels": {
"netkingdom.workplan": "NK-WP-0035"
}
},
"spec": {
"restartPolicy": "Never",
"automountServiceAccountToken": false,
"securityContext": {
"runAsNonRoot": true,
"runAsUser": 100,
"seccompProfile": {
"type": "RuntimeDefault"
}
},
"containers": [
{
"name": "observe",
"image": "docker.io/curlimages/curl@sha256:94e9e444bcba979c2ea12e27ae39bee4cd10bc7041a472c4727a558e213744e6",
"command": [
"sh",
"-ec",
"set -eu\nu=http://rapp-qonto.rapp-qonto.svc.cluster.local\ncurl -fsS --max-time 50 \"$u/v1/health\" >/dev/null\ncurl -fsS --max-time 30 \"$u/v1/audit/reconciliation\"\necho\nstatus=$(curl -sS --max-time 30 -o /dev/null -w '%{http_code}' -H 'X-Actor-ID: nk-wp-0035-hourly-observation' -H 'X-Actor-Lane: agent' \"$u/v1/accounts\")\n[ \"$status\" = 403 ]\necho '{\"denial_status\":403,\"bank_operation_requested\":false}'\nend=$(( $(date +%s) + 3630 ))\nwhile [ \"$(date +%s)\" -lt \"$end\" ]; do\n curl -fsS --max-time 30 \"$u/v1/health\" >/dev/null\n sleep 20\ndone\ncurl -fsS --max-time 30 \"$u/v1/audit/reconciliation\"\necho\n"
],
"securityContext": {
"allowPrivilegeEscalation": false,
"readOnlyRootFilesystem": true,
"capabilities": {
"drop": [
"ALL"
]
}
},
"resources": {
"requests": {
"cpu": "5m",
"memory": "8Mi"
},
"limits": {
"cpu": "100m",
"memory": "32Mi"
}
}
}
]
}
}
}
}

View file

@ -0,0 +1,23 @@
{
"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
}
}

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"
}

View file

@ -0,0 +1,236 @@
{
"schema_version": "platform.cadence-custody-packet/v1",
"sha256": "81478f43abd2dbcb924966e9a3404e26bc226c91f2921b493ef0d5e2c23d4729",
"status": "proposed",
"credential_values_emitted": false,
"qonto_sender_metadata": {
"name": "rapp-qonto-collector",
"sources": [
"qonto-assistant"
],
"tenants": [
"tenant:friendly:binky"
],
"may_write": true,
"may_read": false,
"secret_policy": "redact",
"evidence_kind": "load-bearing",
"heartbeat_classes": {
"audit.deny": 7200
},
"emission_cadence": {
"schema_version": "0.1",
"declaration_id": "qonto-assistant.audit.v1",
"source": "qonto-assistant",
"stream_id": "qonto-assistant.audit",
"sources": [
{
"source_id": "qonto-assistant.audit.allow",
"source_system": "qonto-assistant",
"event_class": "audit.allow",
"form": "heartbeat-or-reconciliation",
"heartbeat": {
"event_class": "audit.heartbeat",
"interval": "PT3600S",
"assertion": "nothing-to-report",
"missing": "finding",
"extensions": {
"qonto-assistant": {
"assertion_scope": "no-deny-transitions-in-window",
"active_instance_only": true
}
}
},
"extensions": {
"netkingdom": {
"evidence_class": "attributive",
"completeness_claimed": false
}
},
"reconciliation": {
"compare_local": "source_transition_counts.audit.allow",
"compare_observed": "evidence_counts.audit.allow",
"divergence": "finding",
"undrained_local": "lag-not-divergence"
}
},
{
"source_id": "qonto-assistant.audit.deny",
"source_system": "qonto-assistant",
"event_class": "audit.deny",
"form": "heartbeat-or-reconciliation",
"heartbeat": {
"event_class": "audit.heartbeat",
"interval": "PT3600S",
"assertion": "nothing-to-report",
"missing": "finding",
"extensions": {
"qonto-assistant": {
"assertion_scope": "no-deny-transitions-in-window",
"active_instance_only": true
}
}
},
"extensions": {
"netkingdom": {
"evidence_class": "load-bearing",
"completeness_claimed": false,
"rate_monitoring": "forbidden"
}
},
"reconciliation": {
"compare_local": "source_transition_counts.audit.deny",
"compare_observed": "evidence_counts.audit.deny",
"divergence": "finding",
"undrained_local": "lag-not-divergence"
}
},
{
"source_id": "qonto-assistant.audit.heartbeat",
"source_system": "qonto-assistant",
"event_class": "audit.heartbeat",
"form": "heartbeat-or-reconciliation",
"heartbeat": {
"event_class": "audit.heartbeat",
"interval": "PT3600S",
"assertion": "nothing-to-report",
"missing": "finding",
"extensions": {
"qonto-assistant": {
"assertion_scope": "no-deny-transitions-in-window",
"active_instance_only": true
}
}
},
"extensions": {
"netkingdom": {
"evidence_class": "load-bearing",
"completeness_claimed": false
}
}
}
],
"extensions": {
"netkingdom": {
"contract_digest": "b08b4d95fc4b0bd3",
"contract_document_version": "0.2.0",
"coordination_frame": {
"ref": "coordination-engine/config/coordination-frame.json",
"sha256": "d15e092387f128ffdfd00b9815707a05ff77c5bb0ba4d9a428fbc37b8c440b67",
"frame_seconds": 3600,
"heartbeat_frames": 1,
"registered_wait_frames": 2,
"effective_deadline_frames": 3
}
},
"qonto-assistant": {
"transport": "structured-stdout",
"instance_boundary": "process",
"ordering": {
"instance_field": "stream_instance_id",
"sequence_field": "stream_sequence",
"sequence_starts_at": 1,
"gap": "finding",
"reset": "permitted-only-when-stream_instance_id-changes"
},
"heartbeat": {
"event_class": "audit.heartbeat",
"interval": "PT3600S",
"interval_config": "QONTO_AUDIT_HEARTBEAT_INTERVAL_SECONDS",
"default_interval_seconds": 3600,
"lifecycle": {
"startup": "required",
"periodic_while_process_active": "required",
"shutdown": "best-effort"
},
"quiet_assertion": "nothing-to-report",
"active_instance_missing": "finding",
"scale_to_zero_semantics": "No periodic heartbeat is promised while no process instance exists. Observers track each stream_instance_id from its startup heartbeat until a shutdown heartbeat or expiry after a missing active-instance cadence.\n"
},
"reconciliation": {
"source_counts_field": "source_transition_counts",
"window_counts_field": "window_transition_counts",
"counted_classes": [
"audit.allow",
"audit.deny"
],
"snapshot_endpoint": "/v1/audit/reconciliation",
"compare_observed": "Count received request events by event_class and stream_instance_id, then compare them with the heartbeat source counts and stream sequence.\n",
"divergence": "finding",
"undrained_local": "lag-not-divergence",
"persistence": "process-local"
},
"event_context": {
"identity_binding_field": "identity_binding",
"egress_destination_field": "egress_destination",
"qonto_egress_destination": "qonto-thirdparty-api"
},
"operational_acceptance": "pending-audit-core-sender-mapping-and-independent-observer"
}
}
}
},
"source_file_checksums": [
{
"path": "railiance-platform/credential-change-requests/CCR-2026-0047-rapp-qonto-audit-sender.yaml",
"digest_sha256": "8a574c1bd1d8292b184b5bf0366b8fc09421e8aa5a7ec880cab2772c56df5be0"
},
{
"path": "railiance-platform/manifests/rapp-qonto-audit-sender.yaml",
"digest_sha256": "841d437a785fe453e23866a5caa5b6b707955a998143aae8923fcbe80f45901a"
},
{
"path": "railiance-platform/openbao/policies/workload-kv-read-rapp-qonto-audit.hcl",
"digest_sha256": "2d17cd763c9c36a7fb7110121d30c2e53731d04482412d6f99f98cfe52af3c0c"
},
{
"path": "railiance-platform/scripts/cadence_receiver_custody.py",
"digest_sha256": "3973ba4b332061d06a6280300df0847342846f5aa8b1545724ce1dfeb9c7539d"
},
{
"path": "railiance-platform/scripts/factory_audit_custody.py",
"digest_sha256": "3a4dbbed69a956bf0656d89b31f9de070626440d7dba289d1adf6493293721ee"
},
{
"path": "railiance-platform/scripts/factory_audit_delivery.py",
"digest_sha256": "a5b917435b01ac7982a9e9c7c480d53fbcd428c5a9b3e03856179a1ec3f070ef"
},
{
"path": "railiance-platform/scripts/keycape_approval_custody.py",
"digest_sha256": "18bddb524fe4c9f4c1c4b30f46d93cfa2b19ce8e4c1f138069df040f99a26fb2"
},
{
"path": "railiance-platform/scripts/state_hub_preflight_lane.py",
"digest_sha256": "8bf63beda028de7c2375084afb7c22fb00a731c54ebf0b3ba369a699d920e0f5"
},
{
"path": "railiance-platform/scripts/credential-change.py",
"digest_sha256": "54ca1bc33ed4bb7807917f71ed45b6b35da978bc789e013386e1e90a20bee06d"
},
{
"path": "approval-engine/cadence.yaml",
"digest_sha256": "cc58c8d53ebf50acf540d73b7607d579942bda7734c3e8722108e9c9204af655"
},
{
"path": "qonto-assistant/specs/audit-emission-cadence.yaml",
"digest_sha256": "adedbe06e04c38812057db97364557644157eb5f72f16adebb6f7beec1587005"
},
{
"path": "net-kingdom/generated/coordination-frame/approval-engine-receiver.json",
"digest_sha256": "c96cd1344193c1e146470d6b1d79f3033ff5f44a432293ef6a8db5dacc7d4c57"
},
{
"path": "audit-core/audit_core/cadence_registration.py",
"digest_sha256": "faf1c72fe06c8bc3de1a5fdde3aeb826c16e8e390ba70c1ef3218c2e25a599c7"
},
{
"path": "audit-core/audit_core/senders.py",
"digest_sha256": "bc091ce63dc2cd0fcdc9f26423b258cb94a6db863daced6706c11dba3bbf67e1"
},
{
"path": "audit-core/audit_core/emission_cadence.py",
"digest_sha256": "8852152bf65d25631f73b3553ae9036424ea4a99f34b7530c8773232f551f1f8"
}
],
"checksum_representation": "Lossless path/digest pairs; original packet hash retained unchanged. Offline plan contained no credential values."
}

View file

@ -0,0 +1,236 @@
{
"schema_version": "platform.cadence-custody-packet/v1",
"sha256": "0142744f57a10988c7cccf6384b4d5ddd65203b261bc05af6e104fe7b4c53e1d",
"status": "proposed",
"credential_values_emitted": false,
"qonto_sender_metadata": {
"name": "rapp-qonto-collector",
"sources": [
"qonto-assistant"
],
"tenants": [
"tenant:friendly:binky"
],
"may_write": true,
"may_read": false,
"secret_policy": "redact",
"evidence_kind": "load-bearing",
"heartbeat_classes": {
"audit.deny": 7200
},
"emission_cadence": {
"schema_version": "0.1",
"declaration_id": "qonto-assistant.audit.v1",
"source": "qonto-assistant",
"stream_id": "qonto-assistant.audit",
"sources": [
{
"source_id": "qonto-assistant.audit.allow",
"source_system": "qonto-assistant",
"event_class": "audit.allow",
"form": "heartbeat-or-reconciliation",
"heartbeat": {
"event_class": "audit.heartbeat",
"interval": "PT3600S",
"assertion": "nothing-to-report",
"missing": "finding",
"extensions": {
"qonto-assistant": {
"assertion_scope": "no-deny-transitions-in-window",
"active_instance_only": true
}
}
},
"extensions": {
"netkingdom": {
"evidence_class": "attributive",
"completeness_claimed": false
}
},
"reconciliation": {
"compare_local": "source_transition_counts.audit.allow",
"compare_observed": "evidence_counts.audit.allow",
"divergence": "finding",
"undrained_local": "lag-not-divergence"
}
},
{
"source_id": "qonto-assistant.audit.deny",
"source_system": "qonto-assistant",
"event_class": "audit.deny",
"form": "heartbeat-or-reconciliation",
"heartbeat": {
"event_class": "audit.heartbeat",
"interval": "PT3600S",
"assertion": "nothing-to-report",
"missing": "finding",
"extensions": {
"qonto-assistant": {
"assertion_scope": "no-deny-transitions-in-window",
"active_instance_only": true
}
}
},
"extensions": {
"netkingdom": {
"evidence_class": "load-bearing",
"completeness_claimed": false,
"rate_monitoring": "forbidden"
}
},
"reconciliation": {
"compare_local": "source_transition_counts.audit.deny",
"compare_observed": "evidence_counts.audit.deny",
"divergence": "finding",
"undrained_local": "lag-not-divergence"
}
},
{
"source_id": "qonto-assistant.audit.heartbeat",
"source_system": "qonto-assistant",
"event_class": "audit.heartbeat",
"form": "heartbeat-or-reconciliation",
"heartbeat": {
"event_class": "audit.heartbeat",
"interval": "PT3600S",
"assertion": "nothing-to-report",
"missing": "finding",
"extensions": {
"qonto-assistant": {
"assertion_scope": "no-deny-transitions-in-window",
"active_instance_only": true
}
}
},
"extensions": {
"netkingdom": {
"evidence_class": "load-bearing",
"completeness_claimed": false
}
}
}
],
"extensions": {
"netkingdom": {
"contract_digest": "b08b4d95fc4b0bd3",
"contract_document_version": "0.2.0",
"coordination_frame": {
"ref": "coordination-engine/config/coordination-frame.json",
"sha256": "d15e092387f128ffdfd00b9815707a05ff77c5bb0ba4d9a428fbc37b8c440b67",
"frame_seconds": 3600,
"heartbeat_frames": 1,
"registered_wait_frames": 2,
"effective_deadline_frames": 3
}
},
"qonto-assistant": {
"transport": "structured-stdout",
"instance_boundary": "process",
"ordering": {
"instance_field": "stream_instance_id",
"sequence_field": "stream_sequence",
"sequence_starts_at": 1,
"gap": "finding",
"reset": "permitted-only-when-stream_instance_id-changes"
},
"heartbeat": {
"event_class": "audit.heartbeat",
"interval": "PT3600S",
"interval_config": "QONTO_AUDIT_HEARTBEAT_INTERVAL_SECONDS",
"default_interval_seconds": 3600,
"lifecycle": {
"startup": "required",
"periodic_while_process_active": "required",
"shutdown": "best-effort"
},
"quiet_assertion": "nothing-to-report",
"active_instance_missing": "finding",
"scale_to_zero_semantics": "No periodic heartbeat is promised while no process instance exists. Observers track each stream_instance_id from its startup heartbeat until a shutdown heartbeat or expiry after a missing active-instance cadence.\n"
},
"reconciliation": {
"source_counts_field": "source_transition_counts",
"window_counts_field": "window_transition_counts",
"counted_classes": [
"audit.allow",
"audit.deny"
],
"snapshot_endpoint": "/v1/audit/reconciliation",
"compare_observed": "Count received request events by event_class and stream_instance_id, then compare them with the heartbeat source counts and stream sequence.\n",
"divergence": "finding",
"undrained_local": "lag-not-divergence",
"persistence": "process-local"
},
"event_context": {
"identity_binding_field": "identity_binding",
"egress_destination_field": "egress_destination",
"qonto_egress_destination": "qonto-thirdparty-api"
},
"operational_acceptance": "pending-audit-core-sender-mapping-and-independent-observer"
}
}
}
},
"source_file_checksums": [
{
"path": "railiance-platform/credential-change-requests/CCR-2026-0047-rapp-qonto-audit-sender.yaml",
"digest_sha256": "dc2e04a64449bde7c2cdee028752157cd38d2d21577fd8ecf4f847814bb7e4f6"
},
{
"path": "railiance-platform/manifests/rapp-qonto-audit-sender.yaml",
"digest_sha256": "c2aba320d124d86ea0042e57a9bf53c71a9db3e1edd54d10d6e1db73fd0c9f4b"
},
{
"path": "railiance-platform/openbao/policies/workload-kv-read-rapp-qonto-audit.hcl",
"digest_sha256": "2d17cd763c9c36a7fb7110121d30c2e53731d04482412d6f99f98cfe52af3c0c"
},
{
"path": "railiance-platform/scripts/cadence_receiver_custody.py",
"digest_sha256": "3973ba4b332061d06a6280300df0847342846f5aa8b1545724ce1dfeb9c7539d"
},
{
"path": "railiance-platform/scripts/factory_audit_custody.py",
"digest_sha256": "3a4dbbed69a956bf0656d89b31f9de070626440d7dba289d1adf6493293721ee"
},
{
"path": "railiance-platform/scripts/factory_audit_delivery.py",
"digest_sha256": "a5b917435b01ac7982a9e9c7c480d53fbcd428c5a9b3e03856179a1ec3f070ef"
},
{
"path": "railiance-platform/scripts/keycape_approval_custody.py",
"digest_sha256": "18bddb524fe4c9f4c1c4b30f46d93cfa2b19ce8e4c1f138069df040f99a26fb2"
},
{
"path": "railiance-platform/scripts/state_hub_preflight_lane.py",
"digest_sha256": "8bf63beda028de7c2375084afb7c22fb00a731c54ebf0b3ba369a699d920e0f5"
},
{
"path": "railiance-platform/scripts/credential-change.py",
"digest_sha256": "54ca1bc33ed4bb7807917f71ed45b6b35da978bc789e013386e1e90a20bee06d"
},
{
"path": "approval-engine/cadence.yaml",
"digest_sha256": "cc58c8d53ebf50acf540d73b7607d579942bda7734c3e8722108e9c9204af655"
},
{
"path": "qonto-assistant/specs/audit-emission-cadence.yaml",
"digest_sha256": "adedbe06e04c38812057db97364557644157eb5f72f16adebb6f7beec1587005"
},
{
"path": "net-kingdom/generated/coordination-frame/approval-engine-receiver.json",
"digest_sha256": "c96cd1344193c1e146470d6b1d79f3033ff5f44a432293ef6a8db5dacc7d4c57"
},
{
"path": "audit-core/audit_core/cadence_registration.py",
"digest_sha256": "faf1c72fe06c8bc3de1a5fdde3aeb826c16e8e390ba70c1ef3218c2e25a599c7"
},
{
"path": "audit-core/audit_core/senders.py",
"digest_sha256": "bc091ce63dc2cd0fcdc9f26423b258cb94a6db863daced6706c11dba3bbf67e1"
},
{
"path": "audit-core/audit_core/emission_cadence.py",
"digest_sha256": "8852152bf65d25631f73b3553ae9036424ea4a99f34b7530c8773232f551f1f8"
}
],
"checksum_representation": "Lossless path/digest pairs; original packet hash retained unchanged. Offline plan contained no credential values."
}

View file

@ -0,0 +1,11 @@
{
"initial_job": "audit-core-migrate-nk-wp-0035",
"initial_result": "failed; no pod retained after OnFailure/backoff0 controller cleanup",
"diagnostic_job": "audit-core-migrate-nk-wp-0035-r2",
"diagnostic_result": "failed DNS resolution; migration pods had no egress policy after old network policy was narrowed to receiver only",
"repair": "Added audit-core-migrate-egress selecting only name=audit-core AND component=migrate; DNS to kube-dns, TCP5432 to platform-pg pods only; no API or other egress",
"retry_job": "audit-core-migrate-nk-wp-0035-r3",
"retry_restart_policy": "Never",
"retry_service_account_automount": false,
"receiver_rollout_held_until_migration_success": true
}

View file

@ -0,0 +1,31 @@
{
"job": "audit-core-migrate-nk-wp-0035-r3",
"uid": "ba24c60e-ceb6-4cc2-b8c4-840381deea53",
"status": {
"completionTime": "2026-10-15T19:31:33Z",
"conditions": [
{
"lastProbeTime": "2026-10-15T19:31:33Z",
"lastTransitionTime": "2026-10-15T19:31:33Z",
"message": "Reached expected number of succeeded pods",
"reason": "CompletionsReached",
"status": "True",
"type": "SuccessCriteriaMet"
},
{
"lastProbeTime": "2026-10-15T19:31:33Z",
"lastTransitionTime": "2026-10-15T19:31:33Z",
"message": "Reached expected number of succeeded pods",
"reason": "CompletionsReached",
"status": "True",
"type": "Complete"
}
],
"ready": 0,
"startTime": "2026-10-15T19:31:24Z",
"succeeded": 1,
"terminating": 0,
"uncountedTerminatedPods": {}
},
"image": "forgejo.coulomb.social/coulomb/audit-core@sha256:b479801b0bc76df66a36a85376c45aaf399c6d82feade9ba81430b774c4a8271"
}

View file

@ -0,0 +1,9 @@
{
"name": "platform-pg-nk-wp-0035-pre-cadence",
"uid": "a9789e86-6d8a-414a-a805-404185863f64",
"phase": "completed",
"startedAt": "2026-10-15T19:27:07Z",
"stoppedAt": "2026-10-15T19:27:24Z",
"method": "barmanObjectStore",
"cluster": "platform-pg"
}

View file

@ -0,0 +1,49 @@
{
"observed_at": "2026-10-15T19:19:55.033457+00:00",
"cluster": {
"uid": "74c22737-fbdd-4fb0-b3ab-419484585fbf",
"phase": "Cluster in healthy state",
"conditions": [
{
"lastTransitionTime": "2026-09-24T13:50:15Z",
"message": "Cluster is Ready",
"reason": "ClusterIsReady",
"status": "True",
"type": "Ready"
},
{
"lastTransitionTime": "2026-08-19T00:55:48Z",
"message": "Continuous archiving is working",
"reason": "ContinuousArchivingSuccess",
"status": "True",
"type": "ContinuousArchiving"
},
{
"lastTransitionTime": "2026-10-15T02:15:29Z",
"message": "Backup was successful",
"reason": "LastBackupSucceeded",
"status": "True",
"type": "LastBackupSucceeded"
}
],
"lastSuccessfulBackup": "2026-10-15T02:15:22Z",
"firstRecoverabilityPoint": "2026-09-15T02:15:14Z"
},
"recent_backups": [
{
"name": "platform-pg-daily-20261013021500",
"phase": "completed",
"stoppedAt": "2026-10-13T02:15:21Z"
},
{
"name": "platform-pg-daily-20261014021500",
"phase": "completed",
"stoppedAt": "2026-10-14T02:15:21Z"
},
{
"name": "platform-pg-daily-20261015021500",
"phase": "completed",
"stoppedAt": "2026-10-15T02:15:22Z"
}
]
}

View file

@ -0,0 +1,14 @@
{
"apiVersion": "postgresql.cnpg.io/v1",
"kind": "Backup",
"metadata": {
"name": "platform-pg-nk-wp-0035-pre-cadence",
"namespace": "databases"
},
"spec": {
"method": "barmanObjectStore",
"cluster": {
"name": "platform-pg"
}
}
}

View file

@ -0,0 +1,37 @@
{
"image": "audit-core:nk-wp-0035-5227fb1",
"native_credentials_used": false,
"checks": {
"operational_ready": true,
"nonroot_readonly": true,
"approval-engine": {
"accepted": 202,
"duplicate": 200,
"wrong_source": 400,
"wrong_tenant": 400,
"read_routes_denied": 7,
"independent_read": 200,
"redacted": true,
"stored_once": true
},
"informed-decision": {
"accepted": 202,
"duplicate": 200,
"wrong_source": 400,
"wrong_tenant": 400,
"read_routes_denied": 7,
"independent_read": 200,
"redacted": true,
"stored_once": true
},
"sigterm": {
"exit_code": 0,
"inflight_committed_once": true,
"restart_retry_duplicate": true,
"chain_intact": true
}
},
"started_at": "2026-10-15T19:20:56.324227+00:00",
"status": "passed",
"own_fixture_cleanup": true
}

View file

@ -4,7 +4,7 @@ type: workplan
title: "Publish the NetKingdom emission-cadence security profile"
domain: infotech
repo: net-kingdom
status: blocked
status: active
flavor: implementation
owner: codex
topic_slug: netkingdom
@ -88,9 +88,7 @@ Python compilation and `git diff --check` pass.
```task
id: NK-WP-0035-T04
status: wait
blocked_on: message-from:approval-engine
blocking_reason: "Founder chose configurable frame f=1h: source heartbeat f, receiver wait 2f, effective deadline 3f. Hourly runtime bindings are deployed and verified after explicit founder approval. Receiver registry admission and actual lifecycle reconciliation remain pending. Qonto still needs an actual rapp-qonto collector and AUDIT-WP-0013-T05 sender admission before KG-WP-0005-T03 observation. Existing bearer-revocation proof is delivered; local-identity incompatibility remains explicit."
status: progress
priority: high
state_hub_task_id: "e3fbc8b8-00d5-57ce-ba0c-19b58044c950"
```
@ -354,3 +352,64 @@ existing scale-to-zero setting. Receiver registration of 2f=7200s / effective
lifecycle reconciliation and independent silence/lag findings remain T04;
local-identity's explicit incompatibility remains. Profile stays proposed and
the workplan stays 5/6 done.
## Receiver registration and operational setup — 2026-10-15
Founder explicitly approved the complete reviewed live packet as platform
operator and owner of Audit Core, rapp-qonto and qonto-assistant. Workers
implemented the missing durable collector, guarded credential-preserving
registry update, exact-path CCR0047 projection and independent capture/readback
seams. Source verification: Audit Core **333 passed including PostgreSQL**,
King's Guard **144 passed**, collector/capture package **51 passed**, platform
custody/readback **20 focused tests passed**. All three released images scanned
zero HIGH/CRITICAL findings. Source tests do not substitute for native receipts.
Approval Engine is now on scanned source a786b06/image16e5d222…, schema6,
with a fresh verified online backup, independent mode0600 copy, isolated
migration proof and unchanged 54 approval/47 entry counts. Audit Core is on
source5227fb1/imageb479801b…, additive migration0007, after a new completed
Barman backup. Initial migration attempts exposed absent migration DNS/database
egress after the receiver policy had been narrowed; a dedicated migration-only
DNS/platform-pg5432 policy repaired it. Successful r3 migration preceded the
receiver replacement; native readiness/cadence/instance support passed.
The first attended command refused an inherited OPENBAO_TOKEN variable before
writing a receipt; its session was revoked. A fresh contained login with all
three ambient token aliases removed completed successfully. Protected registry
CAS advanced **15→16**, preserving incumbent credentials and sibling entries.
Approval Engine now carries its exact declaration and all four class waits7200s
(effective10800s). CCR0047 independently generated the Qonto collector's exact
source/tenant writer bearer, delivered via its namespace-restricted ESO lane.
Reader path/identity/agent-deny negatives and revocation passed; complete ESO
projection and running receiver registry agreed after reload. Warden exit0
confirms session revocation and helper cleanup.
[Registry/custody receipt](../docs/evidence/2026-10-15-cadence-adoption/receiver-custody-live.json).
The scanned collector image82bfd410… is deployed with its own service account,
namespace-only pod/log reads, exact Kubernetes API egress, audit-core-only
receiver egress and 1Gi durable outbox. It has no bank Secret mount. A real
startup heartbeat and denied request were accepted202; duplicate200,
wrong-source400, wrong-tenant400, read403 and invalid-bearer401 passed. Source
own reconciliation reports heartbeat1/deny1, pending0. Controlled collector
replacement preserved original first202 receipts through the same PVC.
[Admission](../docs/evidence/2026-10-15-cadence-adoption/qonto-collector-native-admission.json)
and [restart persistence](../docs/evidence/2026-10-15-cadence-adoption/qonto-collector-restart-persistence.json).
The bounded hourly observation Job started **19:36:07UTC /21:36:07Berlin**;
expected finish is approximately **20:37UTC /22:37Berlin**. Health-only polling
keeps this one source instance alive while retaining normal scale-to-zero
configuration. Its only finance-route request is intentionally denied before
any bank call. Read-only capture monitoring automatically retains exact-instance
source JSONL/snapshots, durable collector receipts and observed pod inventory.
After elapsed capture, the separately implemented owner readback requires a
fresh attended login; King's Guard then verifies accepted counts, sequence,
coverage and lag. Approval Engine's four native class beats and actual source
outbox coordinates are retained/checked in this acceptance phase. Do not invent
an elapsed-hour or three-hour silence result from test timestamps.
T04 stays **progress**, plan active5/6, profile proposed. Receiver registration
and collector implementation are no longer missing. Remaining work is actual
elapsed-time capture, independent source/receiver correlation and observer
acceptance. Local-identity remains explicitly incompatible, with no completeness
claim. Detailed state: [owner acceptance plan](../docs/evidence/2026-10-15-cadence-adoption/owner-acceptance-plan.json).