Skip to Content
We are live but in Staging 🎉
PipelinesCLI Guidedodil data template

dodil data template

Browse the Scriptum template catalog. Two operations — list and get — both proxied through K3 to Scriptum. Templates are org-scoped, not bucket-scoped.

K3 ships a production catalog of 34 templates across six categories — embedding (10), core (9), actions (7), vision (4), ecommerce (2), financials (2). Full list with descriptions and modalities is at API Reference → Templates → The catalog. The most common entry points:

TemplateForBind to
text_embedding_indexPDF / docx / HTML / text → vector index (RAG)Vector collection
code_embedding_indexSource code → vector index (AST-aware chunking)Vector collection
visual_embedding_indexImages / video / audio / PDF pages → vector indexVector collection
entity_pii_extractionStructured entities + PII → rowsWarehouse table
summarizationMulti-level summaries + keywords → rowsWarehouse table
audio_transcriptionWhisper transcripts (+ optional diarization)Warehouse table
object_detectionYOLOv8 detections → rowsWarehouse table

See Core Concepts → Template for the type. Pipelines reference templates either by name (existing script) or by ID (spawn fresh) — see Pipelines — API Reference.

dodil data template list

dodil data template list [--category CAT] [--search TEXT] [--label KEY=VALUE]

Lists templates available to your org.

FlagTypeDescription
--categorystringFilter by category. Valid values: actions, core, ecommerce, embedding, financials, vision. Server-side.
--searchstringFree-text match against name + description. Server-side.
--labelstring list (repeat)Label key=value. Parsed and sent — but currently ignored by the server, see below.

Examples:

# All 34 templates dodil data template list -o json # The 10 embedding templates (5 index + 5 search pairs) dodil data template list --category embedding # The 9 core analysis templates dodil data template list --category core # Free-text — find PII-related templates dodil data template list --search pii

--label is accepted and then ignored. Verified against the live API: --label modality=text, --label warehouse_compatible=true and even --label nonsense=zzz all return the entire 34-template catalog. ListTemplatesRequest.labels reaches the server and is not applied. Until that is fixed, filter labels client-side:

dodil data template list -o json \ | jq '[.templates[] | select(.labels.warehouse_compatible == "true") | .id]'

The flag still validates its own syntax — a bare --label modality with no = errors out locally.

The one filter that genuinely narrows per pillar is facet on the API. The CLI doesn’t expose it as a flag, but two commands hardcode it: dodil data table templates (PIPELINE_FACET_TABLE, 17 templates) and dodil data vector templates (PIPELINE_FACET_VECTOR).

The full catalog with all label keys lives at API Reference → Templates → The catalog.

dodil data vector templates

Browse the vector-facet subset of the catalog. This is PipelineService.ListTemplates with facet = PIPELINE_FACET_VECTOR, which pins category=embedding server-side — only embedding templates (*_embedding_index / *_embedding_search pairs) come back. The pinned category wins over any caller-supplied category. It is the CLI entry point for the auto-embed-on-ingest vector collections.

dodil data vector templates [--search TEXT] [--label KEY=VALUE]

The catalog is org-scoped — same templates regardless of which bucket you call from (the route is GET /admin/templates, no bucket in the path). -b / --bucket is declared on this subcommand “for symmetry; not required”; you can omit it.

FlagTypeDescription
--searchstringFree-text match against name + description
--labelstring list (repeat)Filter by label key=value. Repeat for multiple — all must match (AND).
# All vector-facet templates dodil data vector templates -o json | jq '.templates[] | {id, modalities}' # Free-text search dodil data vector templates --search code # Label filter — only image-modality templates dodil data vector templates --label modality=image

--category is not exposed here. Vector templates are always category=embedding; nothing to filter on. Use --search and --label to narrow.

The vector catalog at a glance

Each vector template ships as an index + search pair. You create a collection with the _index variant via dodil data vector collection add; K3 derives the query-side id by stripping _index and appending _search (text_embedding_indextext_embedding_search) and spawns that pipeline best-effort. If the spawn fails, the collection is still indexable but search skips it with a warning.

Template (index)ModalityUse case
text_embedding_indextext, pdf, docx, html, audio, videoCanonical RAG ingest. Chunks + embeds documents.
code_embedding_indexcode (rust, python, javascript, typescript, go, java, c, cpp, …)AST-aware chunking (tree-sitter) at function / class boundaries
visual_embedding_indeximage, video, audio, pdfMultimodal — frames / spectrograms / page renders
face_embedding_indeximageSCRFD detection + face embeddings
object_embedding_indeximageOpen-vocabulary object detection embeddings (requires a labels: [string] template input — use the API; --set sends strings only)

Full descriptions and dims: API Reference → Templates → What’s in the vector catalog.

dodil data vector templates vs dodil data template list vs dodil data table templates — same --search / --label filter shape across all three. dodil data template list returns all templates across facets; dodil data vector templates filters to category=embedding; dodil data table templates filters to warehouse_compatible=true. All three are org-scoped (no -b needed).

dodil data template get

dodil data template get [template_id]

Returns one template with its full typed ScriptContract (input fields, output schema, required tools). Useful for inspecting what options a template accepts before creating a pipeline from it.

Example:

dodil data template get text_embedding_index -o json

Walk the contract to discover required + optional fields:

dodil data template get text_embedding_index -o json \ | jq '.contract.inputs'

K3 validates caller-supplied inputs against this contract server-side — invalid inputs fail at create time. It also reads the contract to resolve a vector collection’s schema-shaping facts (embed_model, dimensions, distance_metric, sparse_mode, embedding_type), which is why callers cannot override them: a template whose contract resolves no embed_model, or a non-positive dimensions, is refused with FAILED_PRECONDITION.

Both list and get are served from /admin/templates — templates are org-scoped, so --bucket on this group is inert.


See also