Skip to Content
We are live but in Staging 🎉
API ReferencePipelineService API

PipelineService API

Package: dodil.k3.pipeline.v1

PipelineService owns pipeline definitions and template discovery.

What It Is For

  • Create reusable processing pipelines in a bucket.
  • Bind a pipeline to a destination store entity (vector collection or table).
  • Discover Scriptum templates used to spawn or reference pipeline scripts.

Endpoint Map

Pipelines

gRPC methodHTTP route
CreatePipelinePOST /:bucket/pipelines
ListPipelinesGET /:bucket/pipelines
GetPipelineGET /:bucket/pipelines/:pipeline_id
UpdatePipelinePATCH /:bucket/pipelines/:pipeline_id
DeletePipelineDELETE /:bucket/pipelines/:pipeline_id

Templates

gRPC methodHTTP route
ListTemplatesGET /admin/templates
GetTemplateGET /admin/templates/:template_id

Key Arguments

Create pipeline

FieldTypeRequiredPurpose
bucketstringyesOwning bucket
namestringyesPipeline display name
script_sourceoneofyesExactly one source of script
optionsmap<string,string>noRuntime option overlay
store_entity_idstringnoDestination binding (vector or warehouse)

script_source options:

  1. scriptum_template: reference existing Scriptum script name.
  2. spawn_from_template: template ID to spawn a new script.

List pipelines

FieldTypeRequiredPurpose
bucketstringyesBucket scope
store_entity_kindstringnoFilter (vector, warehouse, free)
store_entity_idstringnoFilter by destination
paginationobjectnoCursor pagination

Update pipeline

FieldTypeRequiredPurpose
nameoptional stringnoRename pipeline
scriptum_templateoptional stringnoReplace script template reference
optionsStringMap wrappernoUpdate/clear option map
store_entity_idoptional stringnoRebind or clear destination

Examples

Create from existing scriptum template name

curl -sS -X POST "https://k3.dev.dodil.io/kb-prod/pipelines" \ -H "Authorization: Bearer $K3_TOKEN" \ -H "x-organization-id: $K3_ORG" \ -H "Content-Type: application/json" \ -d '{ "bucket": "kb-prod", "name": "embed-contracts", "scriptum_template": "object_embedding_index", "options": { "chunk_size": "1000", "chunk_overlap": "150" } }'

Create by spawning from template ID

curl -sS -X POST "https://k3.dev.dodil.io/kb-prod/pipelines" \ -H "Authorization: Bearer $K3_TOKEN" \ -H "x-organization-id: $K3_ORG" \ -H "Content-Type: application/json" \ -d '{ "bucket": "kb-prod", "name": "lease-extraction", "spawn_from_template": "lease_extraction_template" }'

Rebind destination and update options

curl -sS -X PATCH "https://k3.dev.dodil.io/kb-prod/pipelines/pipeline_123" \ -H "Authorization: Bearer $K3_TOKEN" \ -H "x-organization-id: $K3_ORG" \ -H "Content-Type: application/json" \ -d '{ "bucket": "kb-prod", "pipeline_id": "pipeline_123", "store_entity_id": "collection_abc", "options": {"entries": {"rerank": "true"}} }'

Common Use Cases

  1. Separate extraction and embedding logic into distinct pipelines.
  2. Move an existing pipeline to a new destination without recreating rules.
  3. Roll out template updates while keeping existing pipeline IDs stable.

Next: IngestService