{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/json-schema-secure.json#", "title": "Meta-schema for the security assessment of JSON Schemas", "description": "If a JSON Schema fails validation against this meta-schema, it may be unsafe to validate untrusted data", "definitions": { "schemaArray": { "type": "array", "minItems": 1, "items": {"$ref": "#"} } }, "dependencies": { "patternProperties": { "description": "prevent slow validation of large property names", "required": ["propertyNames"], "properties": { "propertyNames": { "required": ["maxLength"] } } }, "uniqueItems": { "description": "prevent slow validation of large non-scalar arrays", "if": { "properties": { "uniqueItems": {"const": true}, "items": { "properties": { "type": { "anyOf": [ { "enum": ["object", "array"] }, { "type": "array", "contains": {"enum": ["object", "array"]} } ] } } } } }, "then": { "required": ["maxItems"] } }, "pattern": { "description": "prevent slow pattern matching of large strings", "required": ["maxLength"] }, "format": { "description": "prevent slow format validation of large strings", "required": ["maxLength"] } }, "properties": { "additionalItems": {"$ref": "#"}, "additionalProperties": {"$ref": "#"}, "dependencies": { "additionalProperties": { "anyOf": [ {"type": "array"}, {"$ref": "#"} ] } }, "items": { "anyOf": [ {"$ref": "#"}, {"$ref": "#/definitions/schemaArray"} ] }, "definitions": { "additionalProperties": {"$ref": "#"} }, "patternProperties": { "additionalProperties": {"$ref": "#"} }, "properties": { "additionalProperties": {"$ref": "#"} }, "if": {"$ref": "#"}, "then": {"$ref": "#"}, "else": {"$ref": "#"}, "allOf": {"$ref": "#/definitions/schemaArray"}, "anyOf": {"$ref": "#/definitions/schemaArray"}, "oneOf": {"$ref": "#/definitions/schemaArray"}, "not": {"$ref": "#"}, "contains": {"$ref": "#"}, "propertyNames": {"$ref": "#"} } }