These standalone checks exercise real storage operations through HarborRAG’s repository APIs. They are opt-in and are not collected by pytest.
Read the shared smoke-test safety and exit-code guidance before using any non-local service. All targets should be disposable.
Install the provider clients before running the container-backed checks:
uv pip install -e \
"packages/harborrag-adapters[redis,qdrant,falkordb,postgres]"
Create the local database environment from the tracked template, review its credentials and ports, then start the Compose stack:
cp env-example/.env.database.example env/.env.database
scripts/deployment/dev.sh data
With the local database Compose stack running, load the same environment and run all five checks:
HARBOR_SMOKE_ENV_FILE=env/.env.database \
.venv/bin/python packages/harborrag-adapters/tests/repositories/smoke/run_all.py
Run a single backend by replacing run_all.py with sqlite.py,
postgresql.py, redis_cache.py, qdrant.py, or falkordb_graph.py.
run_all.py returns 1 when a configured operation fails, 2 when any target
is unavailable, and 0 only when all five targets pass. Run sqlite.py
independently when the container-backed services are intentionally absent.
The default endpoints match deploy/compose/docker-compose.database.yml:
| Backend | Default endpoint | Operation |
|---|---|---|
| SQLite | Temporary local file | Commit and reload document/chunk/outbox data |
| PostgreSQL | 127.0.0.1:5432 |
Create schema, then write/read in a rolled-back transaction |
| Redis | redis://127.0.0.1:6380/15 |
Set, compare-and-set, read, and delete |
| Qdrant | http://127.0.0.1:6333 |
Ensure collection, upsert, retrieve, search, and delete point |
| FalkorDB | 127.0.0.1:6379 |
Upsert nodes/edge, expand, and delete nodes |
Override endpoints with HARBOR_SMOKE_POSTGRES_URL,
HARBOR_SMOKE_REDIS_URL, HARBOR_SMOKE_QDRANT_URL, FALKORDB_HOST, and
FALKORDB_PORT. The standard POSTGRES_*, REDIS_PORT, and Qdrant port
variables from env/.env.database are also recognized.
Only use a disposable database. PostgreSQL creates the HarborRAG tables when
they are absent, and FalkorDB uses a separate harborrag_smoke graph by
default. Qdrant collections and other probe records are deleted or rolled back.