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
b341b4b860
docs(api): add AX usage examples
...
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-01 20:17:46 +00:00
Virgil
cd4e24d15f
feat(api): document custom success statuses
2026-04-01 20:04: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
Snider
753812ad57
feat(api): merge go-api + php-api into polyglot repo
...
Go source at root level (Option B), PHP under src/php/.
Module path: forge.lthn.ai/core/api
Package name: lthn/api
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-14 10:03:29 +00:00