feat(reporting-governance): add package-first portability smoke
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://cowbay.org/schemas/reporting-governance/capability-descriptor.schema.json",
|
||||
"title": "Reporting Governance Capability Descriptor",
|
||||
"description": "Canonical package-level capability descriptor for reporting-governance runtime compositions.",
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "./adapter-capabilities.schema.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://cowbay.org/schemas/reporting-governance/deployment-profile.schema.json",
|
||||
"title": "Reporting Governance Deployment Profile",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["apiVersion", "kind", "metadata", "spec"],
|
||||
"properties": {
|
||||
"apiVersion": {
|
||||
"type": "string",
|
||||
"const": "reporting-governance/v1alpha1"
|
||||
},
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"const": "DeploymentProfile"
|
||||
},
|
||||
"metadata": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["id", "version", "runtime"],
|
||||
"properties": {
|
||||
"id": { "type": "string", "minLength": 1 },
|
||||
"title": { "type": "string", "minLength": 1 },
|
||||
"version": { "type": "string", "minLength": 1 },
|
||||
"runtime": { "type": "string", "minLength": 1 },
|
||||
"summary": { "type": "string", "minLength": 1 }
|
||||
}
|
||||
},
|
||||
"spec": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["package", "adapters", "notifications", "audit", "capability_expectations"],
|
||||
"properties": {
|
||||
"package": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["pluginVersion"],
|
||||
"properties": {
|
||||
"pluginVersion": { "type": "string", "minLength": 1 }
|
||||
}
|
||||
},
|
||||
"adapters": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["hook", "watchdog", "queue", "dispatcher", "bridge", "sender", "orchestrator"],
|
||||
"properties": {
|
||||
"hook": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["enabled"],
|
||||
"properties": {
|
||||
"enabled": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
"watchdog": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["enabled"],
|
||||
"properties": {
|
||||
"enabled": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
"queue": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["enabled"],
|
||||
"properties": {
|
||||
"enabled": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
"dispatcher": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["enabled"],
|
||||
"properties": {
|
||||
"enabled": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
"bridge": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["enabled"],
|
||||
"properties": {
|
||||
"enabled": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
"sender": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["mode"],
|
||||
"properties": {
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"enum": ["openclaw-cli", "shim_or_openclaw_cli", "dry-run_or_external"]
|
||||
},
|
||||
"enabled": { "type": "boolean" }
|
||||
}
|
||||
},
|
||||
"orchestrator": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["enabled"],
|
||||
"properties": {
|
||||
"enabled": { "type": "boolean" }
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["operatorVisibleRecoveryRequired", "allowedTerminalStates"],
|
||||
"properties": {
|
||||
"operatorVisibleRecoveryRequired": { "type": "boolean" },
|
||||
"allowedTerminalStates": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": ["acked", "blocked", "pending_external_send"]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"audit": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["portableArtifactsRequired", "requiredArtifacts"],
|
||||
"properties": {
|
||||
"portableArtifactsRequired": { "type": "boolean" },
|
||||
"requiredArtifacts": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true,
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"canonical_events",
|
||||
"evidence_records",
|
||||
"decision_records",
|
||||
"queue_items",
|
||||
"spool_artifacts",
|
||||
"bridge_receipts",
|
||||
"capability_descriptor",
|
||||
"profile_snapshot"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"allOf": [
|
||||
{
|
||||
"if": {
|
||||
"properties": {
|
||||
"portableArtifactsRequired": { "const": true }
|
||||
},
|
||||
"required": ["portableArtifactsRequired"]
|
||||
},
|
||||
"then": {
|
||||
"properties": {
|
||||
"requiredArtifacts": {
|
||||
"allOf": [
|
||||
{
|
||||
"contains": { "const": "canonical_events" }
|
||||
},
|
||||
{
|
||||
"contains": { "const": "queue_items" }
|
||||
},
|
||||
{
|
||||
"contains": { "const": "bridge_receipts" }
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"capability_expectations": {
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"required": ["required"],
|
||||
"properties": {
|
||||
"required": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "minLength": 1 }
|
||||
},
|
||||
"preferred": {
|
||||
"type": "array",
|
||||
"items": { "type": "string", "minLength": 1 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user