Skip to main content

Template Metadata Reference

Every template must have a template-info.yaml file with metadata fields. This file is read by the generation script to produce template-registry.json, which serves both the Docusaurus website and the DCT installer.

Fields

FieldRequiredTypeDescriptionExample
idYesstringUnique identifier. Must match the directory name.python-basic-webserver
versionYesstringVersion number (semver). Must be quoted."1.0.0"
nameYesstringHuman-readable display name.Python Basic Webserver
descriptionYesstringOne-line description (shown in tables and cards).Minimal Flask server with health endpoint
categoryYesstringCategory ID from parent folder's template-categories.yaml.BASIC_WEB_SERVER
install_typeYesstringHow the installer copies files: app, overlay, or stack.app
abstractYesstring1-2 sentence description for menus and cards.Provides a minimal starting point...
toolsNostringSpace-separated DCT install script IDs.dev-python
readmeYesstringREADME filename (must exist in the template directory).README-python-basic-webserver.md
tagsYeslistYAML list of keywords for search and filtering.[python, flask, webserver]
logoYesstringLogo filename (SVG in website/static/img/templates/).python-basic-webserver-logo.svg
websiteNostringExternal website URL. Empty string if none.""
docsYesstringURL to the template source on GitHub.https://github.com/helpers-no/...
summaryYesstringDetailed description for the template detail page.A minimal Python web server...
relatedNolistYAML list of related template IDs.[php-basic-webserver]
configure_commandNostringThe literal command a developer runs to provision the backend services this template needs. Rendered on the template's Environment card in the Configure / Install sub-section, and in the architecture diagram's sequence block. Omit for templates with no configure step (e.g. plain app templates without services)."dev-template configure"

Future fields (for templates with service dependencies): params, requires, provides. See the unified template system investigation for the full specification.

configure_command — when to set it and what to put in it

Template archetypeValue
App template with services (requires:)"dev-template configure"
Stack template (provides.services:)"uis template install <template-id>"
App template without servicesOmit the field
Overlay templateOmit the field

The field is the single source of truth for the configure command across three consumers: the <TemplateEnvironment> React component (rendered command line inside the Configure / Install sub-section), scripts/lib/build-architecture-mermaid.ts (flowchart cfg node label + sequence Dev->>DCT step), and scripts/lib/build-expected-output.ts (the "Expected output from …" dropdown summary). If you add a new template that needs a configure step, set this field so every downstream renderer reads the same value.

The field is also what fixed the earlier dev-template-configure (with hyphen, wrong form) bug — see PLAN-environment-card-improvements.md Phase 2 for the historical context.

Valid Categories

Defined in template-categories.yaml in each template folder.

Category IDDisplay NameFolder
BASIC_WEB_SERVERBasic Web Server Templatestemplates/
WEB_APPWeb Application Templatestemplates/
WORKFLOWWorkflow Templatesai-templates/

Complete Example

id: python-basic-webserver
version: "1.0.0"
name: Python Basic Webserver
description: Minimal Flask server with health endpoint and Docker support
category: BASIC_WEB_SERVER
install_type: app
abstract: >
Provides a minimal starting point for developers who want to
build a Python web server using Flask.
tools: dev-python
readme: README-python-basic-webserver.md
tags:
- python
- flask
- webserver
- api
- rest
logo: python-basic-webserver-logo.svg
website: ""
docs: https://github.com/helpers-no/dev-templates/tree/main/templates/python-basic-webserver
summary: >
A minimal Python web server using Flask with a health check endpoint,
Docker containerization, Kubernetes deployment manifests, and GitHub
Actions CI/CD workflow. Ideal for microservices and API backends.
related:
- php-basic-webserver
- typescript-basic-webserver

Validation

Run bash scripts/validate-metadata.sh to check that all fields are present, categories are valid, and the README file exists.