Virgil
3b75dc1701
fix(openapi): preserve example-only response schemas
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 06:33:24 +00:00
Virgil
a469a78b2a
feat(openapi): document GraphQL GET queries
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 03:25:25 +00:00
Virgil
d9ccd7c49a
feat(openapi): export swagger ui path metadata
...
Preserve the Swagger UI mount path in generated OpenAPI output and expose it through the spec and sdk CLI builders.\n\nCo-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 03:16:08 +00:00
Virgil
c3143a5029
feat(openapi): declare json schema dialect
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 03:09:28 +00:00
Virgil
e8d54797bf
feat(openapi): include graphql tag for playground default path
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 03:04:55 +00:00
Virgil
85d6f6dd6e
feat(openapi): default graphql path for playground specs
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 03:00:51 +00:00
Virgil
f53617c507
feat(openapi): document sunsetted operations as gone
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 02:56:13 +00:00
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