Skip to content

Generate OpenAPI contracts for native REST mutations - #157

Draft
DandyLyons wants to merge 1 commit into
mainfrom
codex/issue-108-mutation-openapi
Draft

DandyLyons wants to merge 1 commit into
mainfrom
codex/issue-108-mutation-openapi

Conversation

@DandyLyons

@DandyLyons DandyLyons commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

Generated OpenAPI omitted the native server's enabled mutation routes. It now describes CRUD, identity edits, UUID repair, named/path aliases, operation status, and recovery from the same immutable endpoint plan used by Hummingbird.

Request schemas follow each resource's writable codec, creation identifiers, and identity-edit fields. Shared components describe canonical revision tokens, durable receipts, validation diagnostics/fix-its, conformance changes, and committed-but-unpublished recovery outcomes. DELETE is documented with its implemented 200 receipt response. Read contracts retain pagination/search behavior and now document freshness, generation, and revision headers.

Refs #108; follows completed #155 and precedes #152 → #142 in #93. No mutation behavior changes.

Validation:

  • Full macOS Swift suite: 1,520 tests passed; subsequent final contract suite: 9 tests passed, including the added metadata-only codec case.
  • Build, CLI help, deterministic JSON/YAML, strict OpenAPI 3.1 validation, served/offline byte parity, and exact route-registration parity passed.
  • Actual Hummingbird receipt/error bodies validate against generated schemas across all mutation actions and all five receipt states.
  • Linux: server build/smoke, 129 focused server/template tests, and CLI/server release builds passed. The final committed OpenAPI source/tests also passed all 9 contract tests in the Linux image.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant