dokkaiv0.1.0
API Reference

Start an ingestion pipeline

Enqueue the full cgr → chunk → describe → upsert pipeline as a background job.

POST/instances/pipelineadmin, user

Enqueue the full pipeline as a background job and return immediately with a job_id. Poll GET /instances/jobs/{job_id} for progress and the final result.

recreate drops and rebuilds the entire collection (all projects) before inserting — needed only once after a schema change. Day-to-day ingestion should use recreate: false, which upserts by deterministic UUID.

Fail-loud descriptor policy. describe defaults to true; while true the descriptor is checked before the job is created — if it's missing or unavailable the request fails with 400 and no job is created. Set describe: false to opt out.

Body

repo_pathstringrequired
Absolute path to the repository to ingest.
recreateboolean
Drop & rebuild the whole collection (all projects) before inserting. Default false.
describeboolean
Generate per-entity LLM descriptions. Default true; false skips the descriptor pre-flight.

Request

cURL
bash
curl -X POST localhost:8000/instances/pipeline \
  -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \
  -d '{"repo_path":"/absolute/path/to/your/repo","recreate":false}'
dokkai CLI
bash
dokkai ingest /absolute/path/to/your/repo
dokkai ingest /absolute/path/to/your/repo --no-describe

Responses

200Job accepted and queued
json
{
  "job_id": "b0dc2159-5b52-4b73-a7ca-9f094496d64b",
  "status": "queued"
}
400No / unavailable descriptor model — no job created
json
{ "detail": "descriptor model 'qwen2.5-coder:3b' is not available in Ollama at http://localhost:11434 — pull it with 'ollama pull qwen2.5-coder:3b'" }
409A job is already running for this project
json
{ "detail": "another job is running for project 'your-repo'" }