haiku.rag/tests/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
..
__init__.py ingester: add source-adapter scaffolding + FS source 2026-05-26 11:41:53 +03:00
conftest.py Support a dburi for the ingester queue (SQLite + Postgres) 2026-06-03 14:34:09 +03:00
test_api.py feat(ingester): serve control plane under a configurable base path 2026-06-09 23:02:43 -04:00
test_circuit_breaker.py additional config, pollers, serve 2026-05-26 11:41:54 +03:00
test_cli.py feat(ingester): serve control plane under a configurable base path 2026-06-09 23:02:43 -04:00
test_config.py feat(ingester): serve control plane under a configurable base path 2026-06-09 23:02:43 -04:00
test_filter.py Improve test coverage for cli, filter, registry, and migrations 2026-06-01 18:00:47 +03:00
test_fs_source.py Add configurable max_file_size to reject oversized files before ingestion 2026-06-01 18:40:46 +03:00
test_http_source.py Add configurable max_file_size to reject oversized files before ingestion 2026-06-01 18:40:46 +03:00
test_pipeline.py skip spurious ingester DELETE when the resource is back on its source 2026-06-03 14:05:53 +03:00
test_pollers.py Support a dburi for the ingester queue (SQLite + Postgres) 2026-06-03 14:34:09 +03:00
test_queue.py Make the ingester worker circuit breaker per-source 2026-06-09 09:41:54 +03:00
test_queue_postgres.py Add a docker-compose for integration test services 2026-06-04 11:13:16 +03:00
test_resolve_fetcher.py Improve test coverage for cli, filter, registry, and migrations 2026-06-01 18:00:47 +03:00
test_revision_round_trip.py record cassettes against new fixtures, fix stale assertions 2026-05-26 11:44:46 +03:00
test_run_batch.py Merge pull request #405 from mcdonc/fix/run-batch-hang-on-dead-workers 2026-06-01 17:51:49 +03:00
test_s3_source.py Add configurable max_file_size to reject oversized files before ingestion 2026-06-01 18:40:46 +03:00
test_serve_integration.py Support a dburi for the ingester queue (SQLite + Postgres) 2026-06-03 14:34:09 +03:00
test_sources_base.py Fix shutdown-order bug: close source clients after workers stop 2026-06-01 09:55:39 -04:00
test_webdav_source.py Add configurable max_file_size to reject oversized files before ingestion 2026-06-01 18:40:46 +03:00
test_workers.py Make the ingester worker circuit breaker per-source 2026-06-09 09:41:54 +03:00