What is a Template?
A template in Dakora is a YAML file that defines:- A unique identifier and version
- A Jinja2 template string
- Input specifications with types and validation
- Optional metadata
Template Structure
Template ID
The template ID is used to retrieve templates from the vault:Jinja2 Templating
Dakora uses Jinja2 for template rendering. All Jinja2 features are supported:Variables
Conditionals
Loops
Built-in Filters
Dakora includes custom Jinja2 filters:default Filter
Provide fallback values:
yaml Filter
Convert objects to YAML format:
File Location
Templates are stored in the directory specified indakora.yaml:
.yaml file:
Best Practices
Use Descriptive IDs
Use Descriptive IDs
Choose clear, descriptive template IDs:
- ✅
customer-email-template - ❌
template1
Version Semantically
Version Semantically
Follow semantic versioning:
- Major: Breaking changes to inputs or output format
- Minor: New features, backward compatible
- Patch: Bug fixes, typos
Document Inputs
Document Inputs
Use descriptions to explain what each input does:
Provide Defaults
Provide Defaults
Make templates easier to use with sensible defaults: