Templates
A session template is the blueprint a session runs. It is a JSON document that names the processing steps, the order they run in and the default settings of each step. Open Workloads, then Templates (/admin/templates).
Every session created in HEAT uses one of these blueprints. A template names each step by its node template, so a template can only be registered when every node template it references already exists on the environment.
A session template is not a .heat manifest. A manifest registers runners and node templates as a feature. A session template uses those node templates in a graph.
The template list
The list shows every template registered on the environment, with its name and description. Templates are registered per environment, not per project, so any project can create a session from any template. Upload registers a template from a JSON file.
Opening a template shows four tabs:
- Overview with the template metadata, including the authoring tool and version where recorded.
- DAG, the node graph drawn as a diagram.
- Nodes, each node with its node template and default configuration.
- Export, which downloads the template as JSON for backup or to promote it to another environment.
Create or update on import
When a template is uploaded, HEAT compares the name in the file with the templates already registered.
| Situation | Result |
|---|---|
| The name is new | A new template is created |
| The name exists and the upload does not ask to update | Rejected with “template name already exists” |
| The name exists, the upload asks to update, and the node graph is unchanged | The existing template is updated. Only the description, the template configuration and each node’s default configuration change |
| The name exists, the upload asks to update, and the node graph differs | Rejected with “template structure does not match the existing template” |
The node graph is unchanged when the set of node names, each node’s node template and each node’s parent links all match the stored template. An update never adds, removes or rewires nodes.
Revisions
Session templates are runtime artefacts. Sessions that already ran keep pointing at the template they were created from, so a change to the graph must not overwrite that template in place.
When a template needs a new node, loses a node, changes a parent link or swaps a node’s node template, save it under a new name. The convention is a revision suffix, for example fn-shots-basic-r032 becomes fn-shots-basic-r033. Then point the ingests and project defaults that should use the new graph at the new template.
Use an in-place update only when the graph is unchanged and you are changing the description, retention settings or a node’s default configuration. To change the graph, upload under a new name.
Validation errors
An upload is rejected when the file fails one of these checks.
| Check | What to fix |
|---|---|
| The file is not valid JSON | Fix the syntax and upload again |
The file is a .heat manifest, not a session template | A manifest registers a feature. It is not uploaded here. See Features |
name is not lowercase and hyphenated | Names use lowercase letters, digits and hyphens, and are at most 100 characters. Node names follow the same rule |
nodes is empty | A template needs at least one node |
| A node references an unregistered node template | Register the feature that provides them first, and confirm it is enabled |
| A node references a parent not in the file | Every parent must be the name of another node in the same file |
| The graph contains a cycle | Parent links must form a directed acyclic graph (DAG) |
Related
- Session template concept
- Runners
- Features
- Sessions