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:
| Template | For | Bind to |
|---|---|---|
text_embedding_index | PDF / docx / HTML / text → vector index (RAG) | Vector collection |
code_embedding_index | Source code → vector index (AST-aware chunking) | Vector collection |
visual_embedding_index | Images / video / audio / PDF pages → vector index | Vector collection |
entity_pii_extraction | Structured entities + PII → rows | Warehouse table |
summarization | Multi-level summaries + keywords → rows | Warehouse table |
audio_transcription | Whisper transcripts (+ optional diarization) | Warehouse table |
object_detection | YOLOv8 detections → rows | Warehouse 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.
| Flag | Type | Description |
|---|---|---|
--category | string | Filter by category. Valid values: actions, core, ecommerce, embedding, financials, vision. Server-side. |
--search | string | Free-text match against name + description. Server-side. |
--label | string 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
--labelis accepted and then ignored. Verified against the live API:--label modality=text,--label warehouse_compatible=trueand even--label nonsense=zzzall return the entire 34-template catalog.ListTemplatesRequest.labelsreaches 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 modalitywith 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 / --bucketis declared on this subcommand “for symmetry; not required”; you can omit it.
| Flag | Type | Description |
|---|---|---|
--search | string | Free-text match against name + description |
--label | string 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
--categoryis not exposed here. Vector templates are alwayscategory=embedding; nothing to filter on. Use--searchand--labelto 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_index → text_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) | Modality | Use case |
|---|---|---|
text_embedding_index | text, pdf, docx, html, audio, video | Canonical RAG ingest. Chunks + embeds documents. |
code_embedding_index | code (rust, python, javascript, typescript, go, java, c, cpp, …) | AST-aware chunking (tree-sitter) at function / class boundaries |
visual_embedding_index | image, video, audio, pdf | Multimodal — frames / spectrograms / page renders |
face_embedding_index | image | SCRFD detection + face embeddings |
object_embedding_index | image | Open-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 templatesvsdodil data template listvsdodil data table templates— same--search/--labelfilter shape across all three.dodil data template listreturns all templates across facets;dodil data vector templatesfilters tocategory=embedding;dodil data table templatesfilters towarehouse_compatible=true. All three are org-scoped (no-bneeded).
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 jsonWalk 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
- Templates — API Reference — full HTTP / gRPC surface
dodil data table templates— the Tables-pillar subset (facet=TABLE, server-pre-filtered)dodil data pipeline— spawn pipelines from templatesdodil data vector collection— spawn a vector collection from an embedding template- Core Concepts → Template — type signature