2.7 KiB
Schema Tools
Inspect, validate, compare, and derive examples from schemas locally in the browser.
Schema Tools is a standalone local-first application in the add·ideas Toolbox. Files and pasted schemas are processed in the browser and are not uploaded.
Version 0.1 scope
- Safe local workspaces of up to 20 JSON Schema, OpenAPI, XSD, Relax NG XML-syntax, or Schematron documents
- Reference inventory and graph with local relative resolution, fragments, missing-target diagnostics, and explicit blocking of remote, absolute, and escaping references
- Focused, CSP-safe JSON Schema instance validation for Draft 6/7, 2019-09, and 2020-12 with bounded local JSON Pointer references
- Focused OpenAPI 3.0/3.1 structural inspection, operation inventory, component/request-schema sample generation, and obvious breaking-change signals
- Well-formedness and structural inspection for XSD, Relax NG XML syntax, and Schematron, plus bounded heuristic XSD/Relax NG samples
- Conservative comparisons for required properties, types, enums, declarations, operations, parameters, and responses
- Inert rendering, offline PWA support, responsive Toolbox shell integration, and deterministic release archives
Each document is limited to 2 MiB of text, the workspace to 8 MiB and 20 documents, and parsed trees, references, instances, samples, validation work, and diagnostic output have independent bounds. One shared generator budget limits samples to 50,000 monotonic work steps, 2,000 generated JSON values or XML elements, exactly 20 generated nesting levels, 512 KiB of aggregate derived text, 1,024 UTF-16 code units per literal without splitting surrogate pairs, and 2 MiB of serialized output. Generation is refused if another work step would exceed that ceiling; structural and text ceilings instead return a visibly bounded heuristic sample where one can still be formed. DTD/entity declarations, remote references, Schematron XPath, extension code, JSON Schema pattern, and patternProperties are never executed. JSON Schema validation covers a documented assertion subset rather than claiming full specification conformance. XML languages receive structural inspection—not instance validation—and OpenAPI checks are intentionally focused.
See Architecture and Privacy and security for the exact capability boundaries.
Development
Requires Node.js 22 and npm 11.
npm ci
npm run check
npm run test:browser
Release
npm run release:artifact creates deterministic release/schema-tools-0.1.2.zip and checksum files.
Licence
GPL-3.0-or-later. Runtime dependencies retain their own licences; see THIRD_PARTY_NOTICES.md.