38 lines
2.7 KiB
Markdown
38 lines
2.7 KiB
Markdown
# 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](https://git.add-ideas.de/lotobo/toolbox-portal). 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](docs/ARCHITECTURE.md) and [Privacy and security](docs/PRIVACY-SECURITY.md) for the exact capability boundaries.
|
|
|
|
## Development
|
|
|
|
Requires Node.js 22 and npm 11.
|
|
|
|
```sh
|
|
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](THIRD_PARTY_NOTICES.md).
|