Skip to content

v0.15.0 — Spec in, working sandbox out: OpenAPI import

Choose a tag to compare

@omercelikdev omercelikdev released this 27 Jul 20:34

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/import and 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 a Location header, 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