Files
reporting-governance-plugin/schemas/reporting-governance/deployment-profile.schema.json

156 lines
4.9 KiB
JSON

{
"$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",
"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,
"items": { "type": "string", "minLength": 1 }
}
}
},
"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 }
}
}
}
}
}
}
}