Repository navigation
feat: version HTTP API under /v1 and publish OpenAPI (#12) - #40
Conversation
Dual-mount ingest/query/config at /v1 (canonical) and keep unversioned paths as deprecated aliases. Export OpenAPI for client codegen. JSON response bodies are unchanged; G7 is separate. Refs #12 Co-authored-by: Leonardo <leo-aa88@users.noreply.github.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
Code review — PR #40 (issue #12)must-fixNone Dual-mount is correct: Auth does not bypass via Contract test should-fixNone nice-to-have
Verdictmust-fix count: 0 |
Closes #12.
Serves ingest, query, and config under
/v1/as the stable contract. Unversioned/ingestions,/query/*, and/configremain as deprecated aliases for one release (Deprecation: trueplus aLinksuccessor header)./health, the UI, and/staticstay unversioned.JSON response bodies are unchanged; structured evidence schema is G7 (#16).
Canonical paths
POST /v1/ingestions,GET /v1/ingestions*POST /v1/query/{explain,ask,clusters,timeline,compare}GET /v1/configAuth treats
/v1/...the same as the unversioned paths. The web UI now calls/v1.OpenAPI and clients
make openapiwritesclients/openapi.jsonsrc.clients.v1.RaglogsClient(httpx, targets/v1)make client-gorunsoapi-codegenwhen installed, otherwise prints an install hintCompatibility policy: additive changes within
v1; breaking changes requirev2.Tests
Contract tests assert required
/v1paths exist onapp.openapi(). Existing unversioned TestClient tests still pass; new tests cover/v1parity and the Deprecation header.