85 lines
1.6 KiB
JSON
85 lines
1.6 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://hub.example.com/schemas/common.schema.json",
|
|
"title": "ITWorx catalog common definitions",
|
|
"description": "Reusable JSON Schema definitions for catalog documents.",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"$defs": {
|
|
"slug": {
|
|
"type": "string",
|
|
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
|
|
"minLength": 2,
|
|
"maxLength": 80
|
|
},
|
|
"metadata": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": [
|
|
"name",
|
|
"slug"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 120
|
|
},
|
|
"slug": {
|
|
"$ref": "#/$defs/slug"
|
|
},
|
|
"labels": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"maxProperties": 32
|
|
}
|
|
}
|
|
},
|
|
"riskClass": {
|
|
"enum": [
|
|
"R0",
|
|
"R1",
|
|
"R2",
|
|
"R3",
|
|
"R4",
|
|
"RX"
|
|
]
|
|
},
|
|
"verification": {
|
|
"enum": [
|
|
"verified",
|
|
"unverified",
|
|
"external-input-required",
|
|
"fake-only"
|
|
]
|
|
},
|
|
"environmentName": {
|
|
"enum": [
|
|
"dev",
|
|
"test",
|
|
"staging",
|
|
"prod"
|
|
]
|
|
},
|
|
"uri": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
],
|
|
"maxLength": 2048
|
|
},
|
|
"patternList": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string",
|
|
"minLength": 1,
|
|
"maxLength": 200
|
|
},
|
|
"uniqueItems": true,
|
|
"maxItems": 256
|
|
}
|
|
}
|
|
}
|