Schema Validator
Validate a schema before publishing — in a single call. The Validator combines your registry's compatibility check, event7 governance rules evaluation, and a field-level diff preview into one unified report. No more “push and pray”.
The problem
Today, a developer who wants to publish a new schema version has to push it to the registry and find out after the fact whether it's compatible. There's no single place to check compatibility, governance rules, and the actual diff — all before publishing.
Confluent's UI shows the compatibility mode but offers no visual dry-run. Apicurio has no “test before publish” feature. Conduktor and Lenses focus on runtime ops, not pre-publish validation. And none of them evaluate governance rules (naming conventions, required fields, documentation standards) alongside technical compatibility.
event7's Schema Validator solves this by combining three checks in one report — so you know if your schema is ready before it touches the registry.
Three checks, one report
Proxies your registry's compatibility API (Confluent, Apicurio via ccompat/v7, Karapace, Redpanda). Returns whether the schema is compatible with the current version, plus detailed error messages if not.
Evaluates all event7 governance rules applicable to the subject — naming conventions, required fields, documentation standards, field count limits, and regex patterns. Returns score, violations count, and details per rule.
Field-level diff against the current version — fields added, removed, or modified. Uses the same LCS-based diff engine as the Visual Diff Viewer. Flags breaking changes independently of the SR.
Verdict logic
The three checks are combined into a single verdict. event7 applies a defense-in-depth strategy: even if the SR says “compatible”, event7 independently detects breaking changes by crossing the compatibility mode with the actual diff.
SR reports incompatible
Governance violations with severity error or critical
Breaking changes detected + strict compatibility mode (BACKWARD, FORWARD, FULL, *_TRANSITIVE)
Breaking changes detected + non-strict mode (NONE, unknown)
Governance violations with severity warning or info only
SR compatible + no governance violations (error/critical) + no breaking changes in strict mode
Governance evaluators
The Validator runs five built-in evaluators against the candidate schema. Each evaluator maps to governance rule categories defined in event7. Only rules with scope declarative or audit are evaluated — runtime and control_plane rules are skipped (with a note in the report).
require_doc_fieldsChecks that all fields have documentation (doc for Avro, description for JSON Schema).
Example: “Field "email" missing doc annotation”
require_fieldsVerifies that mandatory fields are present (via rule params.required_fields or heuristic detection).
Example: “Required field "id" not found in schema”
naming_conventionValidates record name, namespace, and subject name against regex patterns defined in the rule.
Example: “Record name "user_event" does not match pattern "^[A-Z][a-zA-Z0-9]+$"”
max_fieldsFlags schemas with too many fields (default threshold: 30). Catches god-schemas.
Example: “Schema has 42 fields, exceeds maximum of 30”
field_regexValidates all field names against a regex pattern (e.g. camelCase, snake_case enforcement).
Example: “Field "ZIP_CODE" does not match pattern "^[a-z][a-zA-Z0-9]*$"”
How to use
Navigate to Validate in the sidebar (Explore group). The page is split in two:
Left — Input form
Select the target subject (autocomplete from cache), pick the format (Avro / JSON Schema / Protobuf), paste your schema JSON or upload a .avsc / .json file. Click Validate.
Right — Validation report
Verdict badge (PASS / WARN / FAIL), three collapsible sections: Compatibility (mode + result + SR messages), Governance Rules (score + violations), Diff Preview (fields +/−/~ with breaking indicator).
Before calling the API, the frontend validates that the input parses as valid JSON — saving a round-trip for syntax errors. The schema content area uses a monospace font with line numbers for readability.
Provider support
| Provider | Compatibility check | Governance rules | Diff preview |
|---|---|---|---|
| Confluent Cloud | |||
| Confluent Platform | |||
| Apicurio v3 | |||
| Karapace (Aiven) | |||
| Redpanda SR | |||
| AWS Glue (future) | N/A | ||
| Azure SR (future) | N/A |
Providers without a dry-run compatibility API (AWS Glue, Azure) will return governance rules + diff only — the compatibility section shows “not available for this provider”.
What's next
Apicurio native dry-run
Use the X-Registry-DryRun header on Apicurio's native v3 API to validate all artifact rules — not just compatibility.
Impact Analysis
After the diff, show which schemas reference this subject (via the References Graph) and estimate the downstream impact of the change.
CI/CD integration
The endpoint is already REST-friendly. A CLI wrapper or GitHub Action that calls POST /schemas/validate and returns exit code 0 (PASS) or 1 (FAIL) for pipeline gates.
Batch validation
Validate multiple schemas in a single call — useful for monorepos with N schemas that evolve together.