@burgan-tech/vnext-schema
Version:
JSON Schema definitions for vNext vNext Workflow components validation
235 lines • 9.04 kB
JSON
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://vnext.com/schemas/schema-definition.schema.json",
"title": "vNext Schema Definition",
"description": "Schema for vNext Schema Component Definition JSON files (sys-schemas flow)",
"type": "object",
"required": [
"key",
"version",
"domain",
"flow",
"flowVersion",
"tags",
"attributes"
],
"properties": {
"$schema": {
"type": "string",
"description": "JSON Schema reference"
},
"key": {
"type": "string",
"description": "Schema key identifier",
"pattern": "^[a-z0-9-]+$"
},
"version": {
"type": "string",
"description": "Version in Major.Minor.Patch format",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"domain": {
"type": "string",
"description": "Domain identifier",
"pattern": "^[a-z0-9-]+$"
},
"flow": {
"type": "string",
"description": "Flow identifier for schemas",
"const": "sys-schemas"
},
"flowVersion": {
"type": "string",
"description": "Flow version",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"tags": {
"type": "array",
"description": "Schema tags",
"items": {
"type": "string"
},
"minItems": 1
},
"attributes": {
"type": "object",
"description": "Schema definition attributes",
"required": [
"type",
"schema"
],
"properties": {
"type": {
"type": "string",
"description": "Schema type identifier"
},
"schema": {
"type": "object",
"description": "JSON Schema definition",
"required": [
"$schema",
"$id",
"title",
"type"
],
"properties": {
"$schema": {
"type": "string",
"description": "JSON Schema specification version",
"const": "https://json-schema.org/draft/2020-12/schema"
},
"$id": {
"type": "string",
"description": "Schema identifier URI",
"format": "uri"
},
"title": {
"type": "string",
"description": "Schema title",
"minLength": 1
},
"description": {
"type": "string",
"description": "Schema description"
},
"type": {
"type": "string",
"description": "JSON type",
"enum": [
"object",
"array",
"string",
"number",
"integer",
"boolean",
"null"
]
},
"properties": {
"type": "object",
"description": "Object properties definitions"
},
"items": {
"description": "Array items schema definition"
},
"required": {
"type": "array",
"description": "Required properties list",
"items": {
"type": "string"
}
},
"additionalProperties": {
"type": "boolean",
"description": "Whether additional properties are allowed"
},
"enum": {
"type": "array",
"description": "Enum values"
},
"oneOf": {
"type": "array",
"description": "One of schema alternatives"
},
"anyOf": {
"type": "array",
"description": "Any of schema alternatives"
},
"allOf": {
"type": "array",
"description": "All of schema requirements"
},
"if": {
"description": "Conditional schema if"
},
"then": {
"description": "Conditional schema then"
},
"else": {
"description": "Conditional schema else"
},
"format": {
"type": "string",
"description": "String format validation"
},
"pattern": {
"type": "string",
"description": "String pattern (regex) validation"
},
"minimum": {
"type": "number",
"description": "Numeric minimum value"
},
"maximum": {
"type": "number",
"description": "Numeric maximum value"
},
"minLength": {
"type": "integer",
"description": "String minimum length"
},
"maxLength": {
"type": "integer",
"description": "String maximum length"
},
"minItems": {
"type": "integer",
"description": "Array minimum items"
},
"maxItems": {
"type": "integer",
"description": "Array maximum items"
},
"uniqueItems": {
"type": "boolean",
"description": "Whether array items must be unique"
},
"$ref": {
"type": "string",
"description": "Schema reference"
},
"const": {
"description": "Constant value"
},
"default": {
"description": "Default value"
},
"examples": {
"type": "array",
"description": "Example values"
}
},
"additionalProperties": true
},
"labels": {
"type": "array",
"description": "Multi-language labels for schema",
"items": {
"type": "object",
"required": [
"label",
"language"
],
"properties": {
"label": {
"type": "string",
"minLength": 1
},
"language": {
"type": "string",
"pattern": "^[a-z]{2}-[A-Z]{2}$",
"examples": [
"en-US",
"tr-TR",
"de-DE"
]
}
}
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}