Commit e8450af
committed
feat(api): drive the route-spec ratchet to zero and delete the baseline
The published document described 151 of the 244 operations createApp() actually
serves. It now describes all 244, and src/openapi/unspecced-routes-baseline.json
is gone -- there is no longer anywhere to record an exception.
The 93 newly-described routes include the entire ORB management surface
(/v1/orb/*, /v1/internal/orb/*), the fleet kill-switch and config-push, the
per-repo BYO-key routes, and the 32 internal job endpoints. Each carries a
stable operationId, real tags, and an auth level that DERIVES its security
stanza rather than having one bolted on afterwards by path prefix.
Three fixes the work forced:
- RouteAuth gained 'orb' and 'webhook'. The ORB ingress genuinely does not
authenticate the way the rest of the API does, and the old model published it
as needing no credential at all. It needs a different one: an ORB-issued
bearer for the relay and token endpoints, an HMAC signature header for the
webhook. Both now have their own security scheme.
- registerRouteSpec never emitted path parameters, so every templated segment it
registered was a Cloudflare 30046 schema-validation warning and a hole in any
generated client. Derived from the path now, because there is no case where a
path parameter is optional.
- test/unit/openapi.test.ts asserted /v1/internal/jobs/generate-signal-snapshots
/run must be ABSENT from the document as a removed route. It is live. The
assertion was requiring the document to stay wrong.
The ratchet's other direction earned its keep immediately: it rejected two job
routes I had assumed existed, because two of the internal jobs are
operator-triggered repairs with a /run form and no enqueue sibling.1 parent 5111e92 commit e8450af
8 files changed
Lines changed: 3713 additions & 160 deletions
File tree
- apps/loopover-ui/public
- src/openapi
- test/unit
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
| 24 | + | |
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
49 | 63 | | |
50 | 64 | | |
51 | 65 | | |
52 | 66 | | |
53 | 67 | | |
54 | | - | |
55 | | - | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
56 | 78 | | |
57 | 79 | | |
58 | 80 | | |
| 81 | + | |
| 82 | + | |
59 | 83 | | |
60 | 84 | | |
61 | 85 | | |
| |||
138 | 162 | | |
139 | 163 | | |
140 | 164 | | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
141 | 170 | | |
142 | 171 | | |
143 | 172 | | |
| |||
0 commit comments