Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a1046e-fdbf-7b93-a267-5f72b9b24526
196 lines
7.5 KiB
YAML
196 lines
7.5 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": 86400,
|
|
"assertion": "nothing-to-report",
|
|
"missing": "finding",
|
|
"extensions": {
|
|
"approval-engine": {
|
|
"asserted_class": "issuance",
|
|
"requested_observer_max_gap_seconds": 172800,
|
|
"observer_registration_status": "pending"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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": 86400,
|
|
"assertion": "nothing-to-report",
|
|
"missing": "finding",
|
|
"extensions": {
|
|
"approval-engine": {
|
|
"asserted_class": "use",
|
|
"requested_observer_max_gap_seconds": 172800,
|
|
"observer_registration_status": "pending"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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": 86400,
|
|
"assertion": "nothing-to-report",
|
|
"missing": "finding",
|
|
"extensions": {
|
|
"approval-engine": {
|
|
"asserted_class": "supersession",
|
|
"requested_observer_max_gap_seconds": 172800,
|
|
"observer_registration_status": "pending"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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": 86400,
|
|
"assertion": "nothing-to-report",
|
|
"missing": "finding",
|
|
"extensions": {
|
|
"approval-engine": {
|
|
"asserted_class": "revocation",
|
|
"requested_observer_max_gap_seconds": 172800,
|
|
"observer_registration_status": "pending"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
}
|