Templates
A template is a small declarative record: a name, optional description and author, a visibility flag, an optional default image, and the list of streams every vault built from it starts with.
| Field | Notes |
|---|---|
name | Required |
description, author | Optional |
required_streams | A flat list of stream names created with each vault |
public | Defaults false |
config | is_permissioned, is_searchable, is_ai_ready, is_dynamic_streams |
default_image, default_image_cid | Optional cover image |
status | UPLOAD_PENDING → UPLOADED, or DELETED / ERROR |
There are no per-field schemas, data types, validation rules, UI components or compliance rules on
a template. Structure beyond required_streams is your own concern — carry it in the vault's
json_payload.
Versioning
Template versioning is not available yet. Today a template is edited in place with
PUT /templates/{template_id}, or you create a new one; existing vaults keep their template_id
either way, so in-place edits do not disturb them.
The template routes
| Endpoint | Purpose |
|---|---|
GET /templates | List — page, page_size, public, search_term, sort_by, sort_type |
POST /templates | Create |
GET /templates/{template_id} | Detail |
PUT /templates/{template_id} | Update |
DELETE /templates/{template_id} | Soft-delete |
Template ids are UUIDs. A public template marketplace is on the roadmap; for now, share a
template by setting public: true.