Files
clean-architecture-frontend…/schemas/config/frontend-capability-recipes.schema.json
T

88 lines
2.6 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "frontend-capability-recipes.schema.json",
"title": "Frontend optional capability recipe catalog",
"type": "object",
"additionalProperties": false,
"required": [
"$schema",
"schemaVersion",
"decisionId",
"defaultStatus",
"productionRuntimeDependencies",
"catalogOwner",
"reviewOn",
"vendorPackagePatterns",
"recipes"
],
"properties": {
"$schema": { "type": "string", "minLength": 1 },
"schemaVersion": { "const": 1 },
"decisionId": { "const": "VD-10" },
"defaultStatus": { "const": "NOT_INSTALLED" },
"productionRuntimeDependencies": {
"type": "array",
"maxItems": 0
},
"catalogOwner": { "type": "string", "minLength": 1 },
"reviewOn": { "type": "string", "minLength": 1 },
"vendorPackagePatterns": {
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": { "type": "string", "minLength": 1 }
},
"recipes": {
"type": "array",
"minItems": 12,
"maxItems": 12,
"items": { "$ref": "#/$defs/recipe" }
}
},
"$defs": {
"recipe": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"status",
"trigger",
"forbiddenWhen",
"boundary",
"port",
"fake",
"failureKinds",
"lifecycleMethods",
"owner",
"securityPrivacy",
"bundleBudgetGzipBytes",
"fallback",
"removal",
"serverStatePolicy"
],
"properties": {
"id": { "type": "string", "minLength": 1 },
"status": { "const": "RECIPE_AVAILABLE" },
"trigger": { "type": "string", "minLength": 1 },
"forbiddenWhen": { "$ref": "#/$defs/nonEmptyStrings" },
"boundary": { "type": "string", "minLength": 1 },
"port": { "type": "string", "minLength": 1 },
"fake": { "type": "string", "minLength": 1 },
"failureKinds": { "$ref": "#/$defs/nonEmptyStrings" },
"lifecycleMethods": { "$ref": "#/$defs/nonEmptyStrings" },
"owner": { "type": "string", "minLength": 1 },
"securityPrivacy": { "$ref": "#/$defs/nonEmptyStrings" },
"bundleBudgetGzipBytes": { "type": "integer", "minimum": 1 },
"fallback": { "type": "string", "minLength": 1 },
"removal": { "$ref": "#/$defs/nonEmptyStrings" },
"serverStatePolicy": { "type": "string", "minLength": 1 }
}
},
"nonEmptyStrings": {
"type": "array",
"minItems": 1,
"items": { "type": "string", "minLength": 1 }
}
}
}