Skip to content

docs/API_INTEGRATION.md documents 8 of 22 live routes #207

Closed

Description

@amar-python

Context

Found while closing #164. docs/API_INTEGRATION.md is current but incomplete: it documents 8 of the 22 live routes at 74c248f (6 in its endpoint table, plus POST /api/auth/login and /api/auth/oidc in prose). It is linked from README.md:146, docs/QUICKSTART.md:7,299,310 and docs/STARTER_GUIDE.md, and a reader will reasonably take it as the endpoint list.

Routes not documented (14)

Area Routes
Auth GET /api/auth/me, POST /api/auth/logout, POST /api/auth/password, POST /api/auth/users/{username}/password
Audit GET /api/audit/log, GET /api/audit/verify
T&E GET /api/te/tables
Review (M4) GET /api/csv/uploads, GET /api/csv/uploads/{upload_id}, GET /api/csv/uploads/{upload_id}/original, GET /api/csv/uploads/{upload_id}/rows, GET /api/csv/uploads/{upload_id}/rows/{row_number}/history, PUT /api/csv/uploads/{upload_id}/rows/{row_number}/cells/{column}, PUT /api/csv/uploads/{upload_id}/rows/{row_number}/decision

Route inventory taken from the @router/@app decorators in api/routers/*.py and api/main.py.

Options

  • (a) Add the 14 routes to the endpoint table, with auth and tenant-scope notes.
  • (b) Cut the endpoint table down to a pointer at the OpenAPI schema (/api/docs) so there is one source of truth that cannot drift.

(b) is smaller and removes the drift risk, but loses the prose on guards and known gaps that makes the file worth keeping. Product owner's call.

Done when

  • Option chosen and recorded in a comment
  • Every live route is either documented or the file explicitly defers to /api/docs
  • Optional: a test that fails when a route is added without a doc entry

Related


Generated by Claude Code

Activity

  1. amar-python commented on Nov 9, 2026

    @amar-python
    OwnerAuthor

    Option (b) implemented in #206

    Per the owner's decision: the API_INTEGRATION.md endpoint table is replaced with a pointer to the generated OpenAPI schema. The auth section, findings and migrations sections stay. #206 now has Closes #207.

    Correction to this issue's body: it said /api/docs. That path 404s. FastAPI is served with default settings (no docs_url in api/main.py), so the correct paths are /docs (Swagger UI) and /openapi.json. Checked with TestClient against the real app: /docs 200, /openapi.json 200 with 22 operations, /api/docs 404. Neither needs a key (auth is per-router). The wrong path had come from #164's text; it was also in earlier revisions of #206 and is fixed in 295c450.

    Not done: the "optional test that fails when a route is added without a doc entry" is moot under (b), since there is no hand-kept list to drift.


    Claude Code


    Generated by Claude Code

  2. amar-python commented on Nov 9, 2026

    @amar-python
    OwnerAuthor

    Resolved by #206 (merged as 016329e): option (b), route table replaced with a pointer to /docs and /openapi.json. Closing manually because GitHub only auto-closed #166 from the "Closes #166 and #207" wording.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    docsDocumentation and records

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions