v0.15.0 — Spec in, working sandbox out: OpenAPI import
The third G19 sandbox vertical (ADR 0011): hand Mockifyr an OpenAPI 3.0/3.1 document and get a working mock — or, with Stateful CRUD on, a working sandbox whose POST creates what GET returns.
OpenAPI import (G19c)
POST /__admin/openapi/importand a new OpenAPI channel in the dashboard's Add-stub flow — paste JSON or YAML, import, done- One stub per operation: declared examples serve as-is; example-less schemas synthesize samples (Faker-backed
uuid/email/uri, enum-first, deterministic dates) ?stateful=true: resource-shaped path pairs (/things+/things/{id}) become a live CRUD set wired to the state directive — create answers 201 with aLocationheader, list renders count+items- Imported stubs are ordinary mappings — generated as mapping JSON and read back through the same reader as any bundle: dialect compliance by construction, listable/editable/exportable like anything else
Enterprise guards, delivered
- External
$refs are refused before parsing with the offending pointer named — remote references are never fetched (no SSRF surface) - Spec bombs bounce: 5 MiB size guard + 32-level recursion guard → typed 413/422s, never a hang
- Transactional: on any refusal, nothing is created
Validation: golden-file fixtures pin the generated output byte-for-byte (petstore + a real-world-shaped YAML spec); wire tests prove import by serving — including the full stateful CRUD loop driven from YAML; Stryker 97.3 % with all five survivors analyzed as equivalents in the parity docs; 210 oracle-backed differential tests green untouched; verified in-browser end-to-end.
Docs: admin API and dashboard guides updated.
🤖 Generated with Claude Code