Skip to content

Templates

Templates are optional. A project works fine with free-text properties. Templates help when you want consistency, for example every Device having a serial number, a model, and a firmware version.

A template is a named list of fields. Each field has a key and a type:

Type Example value Notes
string Bay 3 Any text.
number 42
boolean true
date 2026-10-27
version v2.1.0, 5.0.2-build17 Any non-empty label. Deliberately not limited to semantic versioning, since vendors don’t follow it.
enum In service One of a list of options you define.
reference another node Points at another node in the project, such as the rack a cable connects to.

Fields can be marked required. A missing required value shows a warning rather than blocking you, and the inventory filters can list every node missing one.

The types live once in the project’s template list. Each node just records which template it uses, and its property values stay plain values in the file. That keeps Layertrail.layertrail readable: a firmware version is stored as "5.0.2", not wrapped in type metadata.

Properties that aren’t in a node’s template are still allowed and stay free text.

Template edits are real project changes. Adding a field or changing an enum’s options shows up in comparisons, alongside node changes.