Record approved hourly runtime rollout and native verification
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a13eab-1e6a-7b33-9c37-372e90ada3a2
This commit is contained in:
parent
9c4b1d7285
commit
1ae0fe337a
8 changed files with 312 additions and 6 deletions
|
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"at": "2026-10-15T18:54:13.416550+00:00",
|
||||
"integrity": "ok",
|
||||
"schema_version": 5,
|
||||
"table_counts": {
|
||||
"approvals": 54,
|
||||
"entries": 47,
|
||||
"outbox": 90
|
||||
},
|
||||
"sha256": "c338e008865c59d2b583a7236c531450dc4eaa0bf97681bc33b7d438b9867cf4",
|
||||
"local_copy": "/tmp/nk-wp-0035-approval-backup/pre-frame.sqlite",
|
||||
"local_mode": "0o600",
|
||||
"persistent_path": "/data/nk-wp-0035-pre-frame-20261015.sqlite",
|
||||
"owner_engine_isolated_backup_verify": {
|
||||
"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
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"storage": {
|
||||
"schema_version": 5,
|
||||
"expected_schema_version": 5,
|
||||
"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
|
||||
},
|
||||
"recent_heartbeat_rows": [
|
||||
{
|
||||
"created_at": "2026-10-15T18:54:55+00:00",
|
||||
"drained_at": "2026-10-15T18:54:55+00:00",
|
||||
"attempts": 1
|
||||
},
|
||||
{
|
||||
"created_at": "2026-10-14T23:03:46+00:00",
|
||||
"drained_at": "2026-10-14T23:03:46+00:00",
|
||||
"attempts": 1
|
||||
}
|
||||
],
|
||||
"readiness": 200,
|
||||
"anonymous_refusal": 401,
|
||||
"at": "2026-10-15T18:55:27.962077+00:00",
|
||||
"pod_uid": "423398d8-9705-4ab5-8b2d-aaa4f590d3a1",
|
||||
"image": "forgejo.coulomb.social/coulomb/approval-engine@sha256:251941a5cb2724b57cc32cff6b693b1ab0be695bee4f56f02d51961189c0fa49",
|
||||
"heartbeat_seconds": 3600,
|
||||
"frame_digest": "d15e092387f128ffdfd00b9815707a05ff77c5bb0ba4d9a428fbc37b8c440b67",
|
||||
"ready": true
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"workplan": "NK-WP-0035",
|
||||
"status": "source-verified; operational acceptance pending",
|
||||
"status": "hourly runtime bindings deployed and verified; operational observer acceptance pending",
|
||||
"profile_status": "proposed",
|
||||
"live_observer_proved": false,
|
||||
"source_files": {
|
||||
|
|
@ -51,9 +51,9 @@
|
|||
"source_requested_bound_seconds": 7200,
|
||||
"receiver_grace_factor": 1.5,
|
||||
"live_steps": [
|
||||
"Verify generated one-hour frame bindings, current runtime/source pins and separately approved rollout scope",
|
||||
"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",
|
||||
"Founder approves exact runtime change; use governed owner custody with contained session and CAS/readback",
|
||||
"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",
|
||||
"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"
|
||||
|
|
@ -80,7 +80,7 @@
|
|||
"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": "source settings prepared; not deployed in this session"
|
||||
"runtime_status": "rapp-qonto-00010 promoted to 100 percent after candidate health, denial and source-count checks; periodic-hour and independent collector observation pending"
|
||||
},
|
||||
"local_identity": {
|
||||
"status": "explicit incompatibility retained",
|
||||
|
|
@ -126,5 +126,15 @@
|
|||
"registered_wait_frames": 2,
|
||||
"effective_deadline_frames": 3,
|
||||
"decision_id": "1ac5a70f-082e-4d8f-9ac8-59e4c175da02"
|
||||
},
|
||||
"runtime_rollout": {
|
||||
"approval": "Explicit founder reply: i approve, following timing-only rollout proposal",
|
||||
"approval_engine_receipt": "approval-engine-frame-rollout.json",
|
||||
"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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"candidate_revision": "rapp-qonto-00010",
|
||||
"baseline_revision": "rapp-qonto-00009",
|
||||
"image": "forgejo.coulomb.social/coulomb/rapp-qonto@sha256:2e42b5e665a19ffa3b3ae8109a8aab64f5485329f72810be063263ff5086cb3f",
|
||||
"heartbeat_seconds": 3600,
|
||||
"pod_uid": "3576cdd4-06a9-4641-856d-7ff690bb4dea",
|
||||
"health": {
|
||||
"status": "ok",
|
||||
"service": "qonto-assistant",
|
||||
"version": "0.1.0",
|
||||
"policy_file": "/usr/local/lib/python3.12/site-packages/qonto_assistant/policy/qonto-v1.yaml"
|
||||
},
|
||||
"before": {
|
||||
"stream_id": "qonto-assistant.audit",
|
||||
"stream_instance_id": "fc354245-9cc0-4849-8f6e-cfdf3d69c2fc",
|
||||
"instance_started_at": "2026-10-15T18:54:38+00:00",
|
||||
"snapshot_at": "2026-10-15T18:54:56+00:00",
|
||||
"last_stream_sequence": 1,
|
||||
"last_heartbeat_at": "2026-10-15T18:54:39+00:00",
|
||||
"source_transition_counts": {
|
||||
"audit.allow": 0,
|
||||
"audit.deny": 0
|
||||
},
|
||||
"since_last_heartbeat_counts": {
|
||||
"audit.allow": 0,
|
||||
"audit.deny": 0
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"stream_id": "qonto-assistant.audit",
|
||||
"stream_instance_id": "fc354245-9cc0-4849-8f6e-cfdf3d69c2fc",
|
||||
"instance_started_at": "2026-10-15T18:54:38+00:00",
|
||||
"snapshot_at": "2026-10-15T18:54:56+00:00",
|
||||
"last_stream_sequence": 2,
|
||||
"last_heartbeat_at": "2026-10-15T18:54:39+00:00",
|
||||
"source_transition_counts": {
|
||||
"audit.allow": 0,
|
||||
"audit.deny": 1
|
||||
},
|
||||
"since_last_heartbeat_counts": {
|
||||
"audit.allow": 0,
|
||||
"audit.deny": 1
|
||||
}
|
||||
},
|
||||
"deny_status": 403,
|
||||
"events": [
|
||||
{
|
||||
"stream_id": "qonto-assistant.audit",
|
||||
"stream_instance_id": "fc354245-9cc0-4849-8f6e-cfdf3d69c2fc",
|
||||
"stream_sequence": 1,
|
||||
"event_class": "audit.heartbeat",
|
||||
"reason": "startup",
|
||||
"timestamp": "2026-10-15T18:54:39+00:00",
|
||||
"source_transition_counts": {
|
||||
"audit.allow": 0,
|
||||
"audit.deny": 0
|
||||
},
|
||||
"window_transition_counts": {
|
||||
"audit.allow": 0,
|
||||
"audit.deny": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"stream_id": "qonto-assistant.audit",
|
||||
"stream_instance_id": "fc354245-9cc0-4849-8f6e-cfdf3d69c2fc",
|
||||
"stream_sequence": 2,
|
||||
"event_class": "audit.deny",
|
||||
"timestamp": "2026-10-15T18:54:56+00:00",
|
||||
"qonto_http_status": null,
|
||||
"deny_reason": "authz_denied",
|
||||
"decision": "deny",
|
||||
"request_id": "ff67b156-1672-4afe-b1c0-f846c3aa5e85"
|
||||
}
|
||||
],
|
||||
"source_counts_match_direct_capture": true,
|
||||
"qonto_call_by_deny_probe": false,
|
||||
"observation_boundary": "Direct Kubernetes logs and source snapshots; independent collector and periodic-hour observation not established."
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
[
|
||||
{
|
||||
"op": "test",
|
||||
"path": "/metadata/uid",
|
||||
"value": "a665e1d0-3ada-4b27-ac56-a8d452499003"
|
||||
},
|
||||
{
|
||||
"op": "test",
|
||||
"path": "/metadata/resourceVersion",
|
||||
"value": "75772109"
|
||||
},
|
||||
{
|
||||
"op": "replace",
|
||||
"path": "/spec/traffic",
|
||||
"value": [
|
||||
{
|
||||
"revisionName": "rapp-qonto-00010",
|
||||
"percent": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"captured_at": "2026-10-15T18:56:02.381691+00:00",
|
||||
"baseline_revision": "rapp-qonto-00009",
|
||||
"promoted_revision": "rapp-qonto-00010",
|
||||
"traffic": [
|
||||
{
|
||||
"latestRevision": false,
|
||||
"percent": 100,
|
||||
"revisionName": "rapp-qonto-00010"
|
||||
}
|
||||
],
|
||||
"ready": true,
|
||||
"main_health": {
|
||||
"status": "ok",
|
||||
"service": "qonto-assistant",
|
||||
"version": "0.1.0",
|
||||
"policy_file": "/usr/local/lib/python3.12/site-packages/qonto_assistant/policy/qonto-v1.yaml"
|
||||
},
|
||||
"before": {
|
||||
"stream_id": "qonto-assistant.audit",
|
||||
"stream_instance_id": "fc354245-9cc0-4849-8f6e-cfdf3d69c2fc",
|
||||
"instance_started_at": "2026-10-15T18:54:38+00:00",
|
||||
"snapshot_at": "2026-10-15T18:55:49+00:00",
|
||||
"last_stream_sequence": 2,
|
||||
"last_heartbeat_at": "2026-10-15T18:54:39+00:00",
|
||||
"source_transition_counts": {
|
||||
"audit.allow": 0,
|
||||
"audit.deny": 1
|
||||
},
|
||||
"since_last_heartbeat_counts": {
|
||||
"audit.allow": 0,
|
||||
"audit.deny": 1
|
||||
}
|
||||
},
|
||||
"after": {
|
||||
"stream_id": "qonto-assistant.audit",
|
||||
"stream_instance_id": "fc354245-9cc0-4849-8f6e-cfdf3d69c2fc",
|
||||
"instance_started_at": "2026-10-15T18:54:38+00:00",
|
||||
"snapshot_at": "2026-10-15T18:55:50+00:00",
|
||||
"last_stream_sequence": 3,
|
||||
"last_heartbeat_at": "2026-10-15T18:54:39+00:00",
|
||||
"source_transition_counts": {
|
||||
"audit.allow": 0,
|
||||
"audit.deny": 2
|
||||
},
|
||||
"since_last_heartbeat_counts": {
|
||||
"audit.allow": 0,
|
||||
"audit.deny": 2
|
||||
}
|
||||
},
|
||||
"deny_status": 403,
|
||||
"candidate_evidence": "rapp-qonto-frame-candidate.json",
|
||||
"qonto_call_by_probe": false,
|
||||
"heartbeat_seconds": 3600,
|
||||
"independent_collector_acceptance": false,
|
||||
"hourly_periodic_observation": false
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"captured_at": "2026-10-15T18:56:40.337038+00:00",
|
||||
"cluster_uid": "a553c742-0115-43d4-99a4-a5ca56fe0786",
|
||||
"explicit_user_approval": "i approve",
|
||||
"scope": "Prepared hourly timing rollout, verified backup and controlled Approval Engine restart; Qonto zero-traffic candidate verification followed by promotion",
|
||||
"scope_checks": [
|
||||
{
|
||||
"resource": "approval-engine",
|
||||
"only_authorized_timing_annotation_and_qonto_traffic_changed": true
|
||||
},
|
||||
{
|
||||
"resource": "rapp-qonto",
|
||||
"only_authorized_timing_annotation_and_qonto_traffic_changed": true
|
||||
}
|
||||
],
|
||||
"receiver_registry_mutated": false,
|
||||
"secrets_read_or_rotated": false,
|
||||
"temporary_probe_pods_deleted": true
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue