This opt-in check exercises the deployed ingestion path:
local discovery
-> Temporal source/batch/document workflows
-> immutable MinIO artifacts
-> Postgres publication
-> Qdrant route/evidence projections
-> FalkorDB structural/link graph
-> dense, sparse, and hybrid authoritative retrieval
Start the data and Temporal stacks with the fixture directory mounted into the worker:
HARBORRAG_LOCAL_SOURCE_DIR="$PWD/packages/harborrag-runtime/tests/runtime_ingestion/smoke/fixtures" \
docker compose \
--env-file env/.env.database \
--env-file env/.env.temporal \
-f deploy/compose/docker-compose.temporal.yml \
--profile worker up -d --build
Then run:
.venv/bin/python \
packages/harborrag-runtime/tests/runtime_ingestion/smoke/ingestion_flow.py
The runner loads the ignored database, Temporal, and model env files without printing secret values. It publishes the two Markdown fixtures and verifies:
The smoke test deliberately calls FLUSHALL on the configured Redis database.
Run it only against the disposable ingestion cache, never a shared Redis
deployment.
To inspect bounded live Confluence and Jira samples using the ignored connector credentials, run:
.venv/bin/python \
packages/harborrag-runtime/tests/runtime_ingestion/smoke/configured_sources_flow.py
This live check prints counts, hashes, locators, and structural observations; it does not print source content or secret values.
The manual release gate is
.github/workflows/ingestion-release-gate.yml. It requires a self-hosted runner
next to an already deployed worker, an exact deployed commit SHA, the protected
ingestion-release environment, and explicit confirmation that Redis is
disposable. It has no push, tag, release, or package-publishing trigger.