Schema Validation · Schema
Schema Validation Configuration
JSON Schema for configuring schema validation pipelines, including validator selection, rule configuration, and output format.
API GovernanceContract TestingJSON SchemaOpenAPISchema Validation
Properties
| Name | Type | Description |
|---|---|---|
| validator | string | The schema validator to use for validation. |
| schema | object | The schema to validate against. |
| schemaType | string | The type/specification of the schema being validated. |
| draft | string | The JSON Schema draft version (for JSON Schema validation). |
| strictMode | boolean | Whether to apply strict validation mode rejecting unknown keywords. |
| coerceTypes | boolean | Whether to coerce data types to match schema type constraints. |
| allErrors | boolean | Whether to collect all validation errors or stop at the first error. |
| output | object | Output format configuration. |
| rules | array | Custom validation rules (Spectral-style rulesets). |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schema-validation.apievangelist.com/schema-validation-config-schema.json",
"title": "Schema Validation Configuration",
"description": "JSON Schema for configuring schema validation pipelines, including validator selection, rule configuration, and output format.",
"type": "object",
"properties": {
"validator": {
"type": "string",
"enum": ["ajv", "hyperjump", "spectral", "openapi-schema-validator", "blaze"],
"description": "The schema validator to use for validation."
},
"schema": {
"oneOf": [
{ "type": "string", "format": "uri", "description": "URL to JSON Schema or OpenAPI spec file" },
{ "type": "object", "description": "Inline JSON Schema object" }
],
"description": "The schema to validate against."
},
"schemaType": {
"type": "string",
"enum": ["json-schema", "openapi", "asyncapi", "graphql"],
"description": "The type/specification of the schema being validated."
},
"draft": {
"type": "string",
"enum": ["draft-04", "draft-06", "draft-07", "2019-09", "2020-12"],
"description": "The JSON Schema draft version (for JSON Schema validation)."
},
"strictMode": {
"type": "boolean",
"default": false,
"description": "Whether to apply strict validation mode rejecting unknown keywords."
},
"coerceTypes": {
"type": "boolean",
"default": false,
"description": "Whether to coerce data types to match schema type constraints."
},
"allErrors": {
"type": "boolean",
"default": false,
"description": "Whether to collect all validation errors or stop at the first error."
},
"output": {
"type": "object",
"description": "Output format configuration.",
"properties": {
"format": {
"type": "string",
"enum": ["json", "text", "junit", "sarif"],
"description": "The format for validation output."
},
"verbosity": {
"type": "string",
"enum": ["error", "warn", "info", "debug"],
"description": "Verbosity level for validation output."
}
}
},
"rules": {
"type": "array",
"description": "Custom validation rules (Spectral-style rulesets).",
"items": {
"$ref": "#/$defs/ValidationRule"
}
}
},
"$defs": {
"ValidationRule": {
"type": "object",
"required": ["name", "severity", "given", "then"],
"properties": {
"name": {
"type": "string",
"description": "Unique identifier for the rule."
},
"description": {
"type": "string",
"description": "Human-readable description of what the rule validates."
},
"severity": {
"type": "string",
"enum": ["error", "warn", "info", "hint"],
"description": "The severity level of a rule violation."
},
"given": {
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" } }
],
"description": "JSONPath expression(s) identifying the target nodes in the document."
},
"then": {
"type": "object",
"description": "The function and options to apply to the target nodes.",
"properties": {
"function": {
"type": "string",
"description": "The validation function to apply."
},
"functionOptions": {
"type": "object",
"description": "Options passed to the validation function.",
"additionalProperties": true
}
}
}
}
}
}
}