UNPKG

@burgan-tech/vnext-schema

Version:

JSON Schema definitions for vNext vNext Workflow components validation

235 lines 9.04 kB
{ "$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 }