haiku.rag/haiku_rag_slim/haiku/rag/ingester
Tres Seaver b78f0ae9ed
feat(ingester): serve control plane under a configurable base path
Add `ingester.api.root_path` so the HTTP control plane (dashboard + API)
can be reverse-proxied behind a sub-path (e.g. /ingester/) on a shared
origin, instead of needing nginx sub_filter URL-rewriting.

- APIConfig.root_path: normalized ('', or single leading slash, no trailing
  slash) via a field_validator; validate_assignment so CLI overrides
  normalize the same way as config-file values.
- Forwarded to FastAPI(root_path=) and uvicorn.Config(root_path=) so
  OpenAPI/docs links are prefix-aware.
- Dashboard route injects a <base href> matching root_path; all dashboard
  fetches are now base-relative, so they resolve under the prefix while
  staying identical at the root.
- `serve --root-path` CLI flag.
- Docs: "Behind a reverse proxy" section with an nginx example.

Closes #431

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 23:02:43 -04:00
..
api feat(ingester): serve control plane under a configurable base path 2026-06-09 23:02:43 -04:00
pollers Merge pull request #394 from mcdonc/perf/max-file-size-validation 2026-06-01 18:49:18 +03:00
queue Make the ingester worker circuit breaker per-source 2026-06-09 09:41:54 +03:00
sources Add configurable max_file_size to reject oversized files before ingestion 2026-06-01 18:40:46 +03:00
workers Make the ingester worker circuit breaker per-source 2026-06-09 09:41:54 +03:00
__init__.py
app.py feat(ingester): serve control plane under a configurable base path 2026-06-09 23:02:43 -04:00
cli.py feat(ingester): serve control plane under a configurable base path 2026-06-09 23:02:43 -04:00
exceptions.py worker pool, rety policy, pipeline 2026-05-26 11:41:54 +03:00