Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a13eab-1e6a-7b33-9c37-372e90ada3a2
210 lines
8.1 KiB
YAML
210 lines
8.1 KiB
YAML
{
|
|
"schema_version": "0.1",
|
|
"declaration_id": "approval-engine-emission-cadence-v0.1",
|
|
"source": "approval-engine",
|
|
"sources": [
|
|
{
|
|
"source_id": "approval-engine:issuance",
|
|
"source_system": "approval-engine",
|
|
"event_class": "issuance",
|
|
"form": "heartbeat-or-reconciliation",
|
|
"reconciliation": {
|
|
"compare_local": "committed outbox issuance occurrence-time counts in the chosen since/until window; drained and pending are separated, local acknowledgment-window counts are distinct",
|
|
"compare_observed": "audit-core accepted action=approval.issuance counts for source=approval-engine, tenant=tenant:platform and identical since/until bounds; receiver windows use acceptance time, requiring explicit drain-lag, duplicate-acknowledgment and boundary accounting before comparison",
|
|
"divergence": "finding",
|
|
"undrained_local": "lag-not-divergence"
|
|
},
|
|
"extensions": {
|
|
"netkingdom": {
|
|
"evidence_class": "load-bearing",
|
|
"rate_monitoring": "forbidden"
|
|
},
|
|
"approval-engine": {
|
|
"action": "approval.issuance"
|
|
}
|
|
},
|
|
"heartbeat": {
|
|
"event_class": "audit-core.heartbeat",
|
|
"interval_seconds": 3600,
|
|
"assertion": "nothing-to-report",
|
|
"missing": "finding",
|
|
"extensions": {
|
|
"approval-engine": {
|
|
"asserted_class": "issuance",
|
|
"requested_observer_max_gap_seconds": 7200,
|
|
"observer_registration_status": "pending",
|
|
"effective_deadline_seconds": 10800
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"source_id": "approval-engine:use",
|
|
"source_system": "approval-engine",
|
|
"event_class": "use",
|
|
"form": "heartbeat-or-reconciliation",
|
|
"reconciliation": {
|
|
"compare_local": "committed outbox use occurrence-time counts in the chosen since/until window; drained and pending are separated, local acknowledgment-window counts are distinct",
|
|
"compare_observed": "audit-core accepted action=approval.use counts for source=approval-engine, tenant=tenant:platform and identical since/until bounds; receiver windows use acceptance time, requiring explicit drain-lag, duplicate-acknowledgment and boundary accounting before comparison",
|
|
"divergence": "finding",
|
|
"undrained_local": "lag-not-divergence"
|
|
},
|
|
"extensions": {
|
|
"netkingdom": {
|
|
"evidence_class": "load-bearing",
|
|
"rate_monitoring": "forbidden"
|
|
},
|
|
"approval-engine": {
|
|
"action": "approval.use"
|
|
}
|
|
},
|
|
"heartbeat": {
|
|
"event_class": "audit-core.heartbeat",
|
|
"interval_seconds": 3600,
|
|
"assertion": "nothing-to-report",
|
|
"missing": "finding",
|
|
"extensions": {
|
|
"approval-engine": {
|
|
"asserted_class": "use",
|
|
"requested_observer_max_gap_seconds": 7200,
|
|
"observer_registration_status": "pending",
|
|
"effective_deadline_seconds": 10800
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"source_id": "approval-engine:supersession",
|
|
"source_system": "approval-engine",
|
|
"event_class": "supersession",
|
|
"form": "heartbeat-or-reconciliation",
|
|
"reconciliation": {
|
|
"compare_local": "committed outbox supersession occurrence-time counts in the chosen since/until window; drained and pending are separated, local acknowledgment-window counts are distinct",
|
|
"compare_observed": "audit-core accepted action=approval.supersession counts for source=approval-engine, tenant=tenant:platform and identical since/until bounds; receiver windows use acceptance time, requiring explicit drain-lag, duplicate-acknowledgment and boundary accounting before comparison",
|
|
"divergence": "finding",
|
|
"undrained_local": "lag-not-divergence"
|
|
},
|
|
"extensions": {
|
|
"netkingdom": {
|
|
"evidence_class": "load-bearing",
|
|
"rate_monitoring": "forbidden"
|
|
},
|
|
"approval-engine": {
|
|
"action": "approval.supersession"
|
|
}
|
|
},
|
|
"heartbeat": {
|
|
"event_class": "audit-core.heartbeat",
|
|
"interval_seconds": 3600,
|
|
"assertion": "nothing-to-report",
|
|
"missing": "finding",
|
|
"extensions": {
|
|
"approval-engine": {
|
|
"asserted_class": "supersession",
|
|
"requested_observer_max_gap_seconds": 7200,
|
|
"observer_registration_status": "pending",
|
|
"effective_deadline_seconds": 10800
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"source_id": "approval-engine:revocation",
|
|
"source_system": "approval-engine",
|
|
"event_class": "revocation",
|
|
"form": "heartbeat-or-reconciliation",
|
|
"reconciliation": {
|
|
"compare_local": "committed outbox revocation occurrence-time counts in the chosen since/until window; drained and pending are separated, local acknowledgment-window counts are distinct",
|
|
"compare_observed": "audit-core accepted action=approval.revocation counts for source=approval-engine, tenant=tenant:platform and identical since/until bounds; receiver windows use acceptance time, requiring explicit drain-lag, duplicate-acknowledgment and boundary accounting before comparison",
|
|
"divergence": "finding",
|
|
"undrained_local": "lag-not-divergence"
|
|
},
|
|
"extensions": {
|
|
"netkingdom": {
|
|
"evidence_class": "load-bearing",
|
|
"rate_monitoring": "forbidden"
|
|
},
|
|
"approval-engine": {
|
|
"action": "approval.revocation"
|
|
}
|
|
},
|
|
"heartbeat": {
|
|
"event_class": "audit-core.heartbeat",
|
|
"interval_seconds": 3600,
|
|
"assertion": "nothing-to-report",
|
|
"missing": "finding",
|
|
"extensions": {
|
|
"approval-engine": {
|
|
"asserted_class": "revocation",
|
|
"requested_observer_max_gap_seconds": 7200,
|
|
"observer_registration_status": "pending",
|
|
"effective_deadline_seconds": 10800
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"source_id": "approval-engine:heartbeat",
|
|
"source_system": "approval-engine",
|
|
"event_class": "heartbeat",
|
|
"form": "heartbeat-or-reconciliation",
|
|
"reconciliation": {
|
|
"compare_local": "committed outbox heartbeat occurrence-time counts in the chosen since/until window; drained and pending are separated, local acknowledgment-window counts are distinct",
|
|
"compare_observed": "audit-core accepted action=audit-core.heartbeat counts for source=approval-engine, tenant=tenant:platform and identical since/until bounds; receiver windows use acceptance time, requiring explicit drain-lag, duplicate-acknowledgment and boundary accounting before comparison",
|
|
"divergence": "finding",
|
|
"undrained_local": "lag-not-divergence"
|
|
},
|
|
"extensions": {
|
|
"netkingdom": {
|
|
"evidence_class": "load-bearing",
|
|
"rate_monitoring": "forbidden"
|
|
},
|
|
"approval-engine": {
|
|
"action": "audit-core.heartbeat"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"extensions": {
|
|
"approval-engine": {
|
|
"lag_bound": {
|
|
"outbox_depth": 100,
|
|
"outbox_age_seconds": 3600,
|
|
"exceed": "finding",
|
|
"enforcement_status": "observer-delivery-pending"
|
|
},
|
|
"inventory": {
|
|
"load_bearing": [
|
|
"issuance",
|
|
"use",
|
|
"supersession",
|
|
"revocation",
|
|
"heartbeat"
|
|
],
|
|
"rare_load_bearing": [
|
|
"issuance",
|
|
"use",
|
|
"supersession",
|
|
"revocation"
|
|
],
|
|
"attributive": []
|
|
},
|
|
"contract": {
|
|
"owner": "info-tech-canon",
|
|
"document_version": "0.2.0",
|
|
"status": "candidate",
|
|
"schema_sha256": "6d52692eb1e4d1325e0d6062d95acded98beddaae5bcfe24c6f0e91f1b6be6ae"
|
|
}
|
|
},
|
|
"netkingdom": {
|
|
"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
|
|
}
|
|
}
|
|
}
|
|
}
|