feat: add optional frontend adapter recipes
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
{
|
||||
"$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 }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user