REST API follow-up — OpenAPI docs and optional external gateway
Summary¶
After FEAT-013 lands an in-process REST surface in WebServer.cpp, a second phase can
add external-facing tooling around it:
- OpenAPI-style schema/docs generation
- optional lightweight external gateway or proxy
- optional event fan-out layer if polling proves insufficient
This is no longer the primary architecture. It is an additive follow-up only.
Why Sidecar-First Work Is Deferred¶
For the current milestone, adding a sidecar or separate transport first would create unnecessary drift and enlarge the stabilization surface:
- two auth/transport layers instead of one
- two failure modes instead of one
- more moving parts before the core JSON API is proven useful
The app should first expose a stable JSON API directly from the existing web server.
Follow-up Scope¶
Possible later work:
- generate machine-readable route/schema docs from the in-process REST surface
- add a thin external gateway for:
- API-key/JWT wrappers
- SSE/event fan-out
- integration tooling
- ship a small CLI/client SDK for automation
Acceptance Criteria¶
- [ ] FEAT-013 exists first and defines the stable JSON route surface
- [ ] OpenAPI or equivalent machine-readable schema can be generated from that surface
- [ ] Any external gateway remains optional and does not become a runtime prerequisite
Progress¶
- 2026-05-02: Added
docs/rest/REST-API-OPENAPI.yamlas the canonical target contract for the pre-release resource-oriented/api/v1redesign. The item remains open until implementation and tests are aligned to that schema. - 2026-05-10: Refreshed the OpenAPI metadata to beta
0.7.3and added native route execution-model reporting to the REST smoke harness. The beta closure path treats the checked-in OpenAPI contract plus native route drift tests as the supported schema surface; the optional external gateway remains deferred and must not become a runtime prerequisite.
Prerequisite¶
- FEAT-013 — the primary WebServer REST surface must land first