120 lines
3.2 KiB
JSON
120 lines
3.2 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "urn:awoooi:security-mirror-readiness-v1",
|
|
"title": "AWOOOI Security Supply Chain Mirror Readiness (v1)",
|
|
"description": "整理 Security Supply Chain contracts 是否已可供 AwoooP mirror/read-only consumption。此契約不授權 runtime execution。",
|
|
"type": "object",
|
|
"required": [
|
|
"schema_version",
|
|
"status",
|
|
"date",
|
|
"default_enforcement_level",
|
|
"runtime_execution_authorized",
|
|
"summary",
|
|
"mirror_destinations",
|
|
"contract_readiness",
|
|
"still_forbidden"
|
|
],
|
|
"properties": {
|
|
"schema_version": {
|
|
"const": "security_mirror_readiness_v1"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"enum": ["draft"]
|
|
},
|
|
"date": {
|
|
"type": "string"
|
|
},
|
|
"default_enforcement_level": {
|
|
"type": "string",
|
|
"enum": ["mirror_only"]
|
|
},
|
|
"runtime_execution_authorized": {
|
|
"type": "boolean",
|
|
"const": false
|
|
},
|
|
"summary": {
|
|
"type": "object",
|
|
"required": [
|
|
"total_contracts",
|
|
"ready_for_mirror_count",
|
|
"partial_ready_count",
|
|
"contract_only_count",
|
|
"blocked_count"
|
|
],
|
|
"properties": {
|
|
"total_contracts": {"type": "integer", "minimum": 0},
|
|
"ready_for_mirror_count": {"type": "integer", "minimum": 0},
|
|
"partial_ready_count": {"type": "integer", "minimum": 0},
|
|
"contract_only_count": {"type": "integer", "minimum": 0},
|
|
"blocked_count": {"type": "integer", "minimum": 0}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"mirror_destinations": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "string",
|
|
"enum": [
|
|
"awooop_operator_console",
|
|
"awooop_runtime_state",
|
|
"awooop_channel_event",
|
|
"awooop_audit_evidence",
|
|
"awooop_approval_queue"
|
|
]
|
|
},
|
|
"uniqueItems": true
|
|
},
|
|
"contract_readiness": {
|
|
"type": "array",
|
|
"minItems": 1,
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"contract",
|
|
"readiness",
|
|
"consumption_mode",
|
|
"mirror_allowed",
|
|
"execution_allowed",
|
|
"snapshot_paths",
|
|
"human_docs",
|
|
"notes"
|
|
],
|
|
"properties": {
|
|
"contract": {"type": "string"},
|
|
"readiness": {
|
|
"type": "string",
|
|
"enum": ["ready_for_mirror", "partial_ready", "contract_only", "blocked"]
|
|
},
|
|
"consumption_mode": {
|
|
"type": "string",
|
|
"enum": ["mirror_only", "read_only_policy", "suggest_only", "approval_only"]
|
|
},
|
|
"mirror_allowed": {"type": "boolean"},
|
|
"execution_allowed": {
|
|
"type": "boolean",
|
|
"const": false
|
|
},
|
|
"snapshot_paths": {
|
|
"type": "array",
|
|
"items": {"type": "string"}
|
|
},
|
|
"human_docs": {
|
|
"type": "array",
|
|
"items": {"type": "string"}
|
|
},
|
|
"notes": {"type": "string"}
|
|
},
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"still_forbidden": {
|
|
"type": "array",
|
|
"items": {"type": "string"}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|