52 lines
2.0 KiB
Markdown
52 lines
2.0 KiB
Markdown
# Fixture Tools
|
|
|
|
Generate deterministic, privacy-safe synthetic test fixtures entirely in the
|
|
browser. Fixture Tools is a local-first module in the add·ideas Toolbox.
|
|
|
|
## v0.1.0 capabilities
|
|
|
|
- Import a focused subset of JSON Schema, SQL `CREATE TABLE` DDL, XSD, CSV
|
|
headings, or the app's portable fixture-model JSON
|
|
- Review and edit normalized tables, fields, types, required/unique rules,
|
|
numeric and length ranges, enumerations, and foreign-key relationships
|
|
- Generate reproducible rows from a text seed with uniform, sequential,
|
|
normal, and constant distributions
|
|
- Deliberately exercise boundary values or inject invalid values, with a
|
|
separate violation ledger so negative-test fixtures cannot be mistaken for
|
|
valid data
|
|
- Preserve referential integrity and field uniqueness for valid generated rows
|
|
- Export JSON, spreadsheet-safe CSV, NDJSON, XML, SQL `INSERT` statements, or a
|
|
reusable fixture recipe
|
|
- Use only reserved example domains for generated email addresses
|
|
|
|
## Honest scope
|
|
|
|
The importers normalize common declarative constructs; they are not complete
|
|
JSON Schema, SQL, or XML Schema validators. Remote references, schema code,
|
|
database connections, XML entities, XSD `choice`/identity constraints, SQL
|
|
dialects beyond common table/column clauses, and production-scale data loads are
|
|
out of scope in v0.1.0.
|
|
|
|
Inputs are capped at 2 MiB. A recipe can contain at most 20 tables and 100
|
|
fields per table; generation is capped at 50,000 total rows and 8 MiB per
|
|
serialized output, with no more than 100,000 generated field values. Synthetic
|
|
data is not anonymization and must not be assumed
|
|
to represent real populations. The seeded generator is reproducible, not
|
|
cryptographically random.
|
|
|
|
## Development
|
|
|
|
```sh
|
|
npm ci
|
|
npm run check
|
|
npm run test:browser
|
|
```
|
|
|
|
`npm run release:artifact` creates a deterministic release ZIP and SHA-256
|
|
sidecar after all checks pass.
|
|
|
|
## License
|
|
|
|
GPL-3.0-or-later. See [LICENSE](LICENSE). Dependency notices are recorded in
|
|
[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
|