Virgil
006a065ea0
feat(openapi): document WebSocket endpoint
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 02:33:31 +00:00
Virgil
273bc3d70a
feat(openapi): document GraphQL playground endpoint
...
Adds GraphQL Playground coverage to the generated OpenAPI spec when the GraphQL playground option is enabled, and wires the engine metadata through so runtime docs match the mounted route.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 02:29:20 +00:00
Virgil
86c2150a21
feat(openapi): document SSE endpoint
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 01:44:49 +00:00
Virgil
02082db8f4
fix(openapi): document graphql cache headers
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 01:40:05 +00:00
Virgil
08a2d93776
fix(openapi): fall back to Describe for nil iterators
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 01:27:40 +00:00
Virgil
e23d8e9780
feat(openapi): sort generated tags deterministically
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 00:47:51 +00:00
Virgil
812400f303
feat(openapi): keep empty describable group tags
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 00:39:04 +00:00
Virgil
0bb07f43f0
feat(openapi): hide undocumented routes
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 00:35:17 +00:00
Virgil
68bf8dcaf8
feat(openapi): document GraphQL endpoint
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 00:17:26 +00:00
Virgil
47e8c8a795
feat(openapi): document route headers on all responses
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:21:56 +00:00
Virgil
eb7e1e51cb
feat(openapi): reuse deprecation header components
2026-04-01 23:12:40 +00:00
Virgil
29324b0a0b
feat(api): add sunset deprecation middleware
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 23:02:52 +00:00
Virgil
ccfbe57faf
feat(openapi): document response headers
2026-04-01 22:42:13 +00:00
Virgil
b2116cc896
feat(openapi): omit auth errors on public routes
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:46:06 +00:00
Virgil
f62933f570
feat(openapi): document example-only request bodies
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:12:14 +00:00
Virgil
b0adb53dec
fix(openapi): snapshot describable groups once
...
Prepare route descriptions once per group before building paths and tags so iterator-backed DescribeIter implementations are consumed safely and deterministically.
Adds a regression test covering a one-shot iterator-backed group.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 21:07:04 +00:00
Virgil
eceda4e5c1
feat(openapi): support iterator-backed route descriptions
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:55:33 +00:00
Virgil
7e4d8eb179
feat(openapi): add route examples to spec
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:51:02 +00:00
Virgil
bb7d88f3ce
feat(openapi): add external docs metadata
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:47:38 +00:00
Virgil
4d7f3a9f99
feat(openapi): add terms of service metadata
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:44:01 +00:00
Virgil
071de51bb5
feat(openapi): mark deprecated operations in spec
...
Expose route-level deprecation in generated OpenAPI operations and cover it with a regression test.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:40:53 +00:00
Virgil
a589d3bac6
feat(api): add OpenAPI contact metadata
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:35:08 +00:00
Virgil
d3737974ce
feat(openapi): add info license metadata
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:21:06 +00:00
Virgil
cd4e24d15f
feat(api): document custom success statuses
2026-04-01 20:04:34 +00:00
Virgil
6017ac7132
feat(api): collapse equivalent OpenAPI servers
...
Normalise server metadata so trailing-slash variants deduplicate to a single entry.
Adds a regression test covering both absolute and relative server URLs.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:01:34 +00:00
Virgil
6034579c00
feat(openapi): fall back to group tags
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 19:57:10 +00:00
Virgil
408a709a43
feat(openapi): allow route-level security overrides
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 19:54:13 +00:00
Virgil
7c3e8e7ba6
feat(openapi): support gin-style path params
...
Normalise Gin colon and wildcard route segments into OpenAPI template parameters so documented paths match the framework's route syntax.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 19:46:07 +00:00
Virgil
13cc93f4f4
fix(openapi): skip blank tags in generated specs
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 19:35:36 +00:00
Virgil
3f010b855e
feat(api): declare explicit OpenAPI tags
2026-04-01 19:27:04 +00:00
Virgil
ea94081231
feat(api): normalise OpenAPI path joins
...
Normalise the concatenation of BasePath() and RouteDescription paths so trailing or missing slashes do not produce malformed OpenAPI entries.
Add a regression test for mixed slash formatting.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 19:21:46 +00:00
Virgil
0ed72c4952
feat(api): document explicit route parameters
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 19:12:51 +00:00
Virgil
edb1cf0c1e
feat(openapi): document path parameters
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 18:25:00 +00:00
Virgil
164a1d4f0e
feat(api): document cache hits in OpenAPI
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 17:52:14 +00:00
Virgil
c48effb6b7
feat(api): normalise OpenAPI server metadata
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 17:31:45 +00:00
Virgil
1cc0f2fd48
feat(api): standardise panic responses
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:25:45 +00:00
Virgil
ac59d284b1
feat(api): document rate limit headers on all responses
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:18:10 +00:00
Virgil
3b92eda93a
feat(api): add shared response envelope schema
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:12:50 +00:00
Virgil
e713fb9f56
feat(api): emit rate limit headers on success and reject
...
Adds X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset to successful responses and 429 rejections, and documents the headers in OpenAPI.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 16:01:09 +00:00
Virgil
4420651fcf
feat(api): document request ID response headers
...
Add X-Request-ID to the generated OpenAPI response headers so the spec matches the runtime contract for request ID propagation.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:39:38 +00:00
Virgil
1bb2f68b3f
feat(api): document rate limit response headers
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:32:01 +00:00
Virgil
fd09309ce9
feat(api): document rate limit and timeout responses
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:26:17 +00:00
Virgil
726938f04a
feat(api): add auth responses to openapi
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:18:25 +00:00
Virgil
321ced1a36
feat(api): add OpenAPI server metadata
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 15:13:39 +00:00
Virgil
4bc132f101
feat(api): fall back to group tags in openapi
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:46:15 +00:00
Virgil
90e237ae31
feat(api): include HEAD request bodies in OpenAPI
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:29:30 +00:00
Virgil
fb6812df09
feat(api): emit request bodies for non-GET operations
...
Keep OpenAPI requestBody generation aligned with the RouteDescription contract by allowing non-GET operations, including DELETE, to declare JSON bodies.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 14:04:04 +00:00
Virgil
9afaed4d7c
feat(api): document bearer auth in openapi
...
Add a bearerAuth security scheme to the generated OpenAPI document and mark non-public operations as secured, while keeping /health explicitly public.
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 09:08:34 +00:00
Virgil
f030665566
feat(api): preserve path params in operationId
2026-04-01 08:11:33 +00:00
Virgil
16abc45efa
feat(api): add stable openapi operation ids
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 07:36:35 +00:00