docs(templates): describe folder hierarchy and management commands
This commit is contained in:
@@ -23,6 +23,7 @@ Central cluster only. Sites receive flattened output and have no awareness of te
|
||||
- Perform comprehensive pre-deployment validation (see Validation section).
|
||||
- Provide on-demand validation for Design users during template authoring.
|
||||
- Enforce template deletion constraints — templates cannot be deleted if any instances or child templates reference them.
|
||||
- Organize templates into nested folders (`TemplateFolder` entity) and validate folder hierarchy invariants (acyclicity, sibling uniqueness, non-empty-on-delete).
|
||||
|
||||
## Key Entities
|
||||
|
||||
@@ -33,6 +34,14 @@ Central cluster only. Sites receive flattened output and have no awareness of te
|
||||
- Defines attributes, alarms, and scripts as first-class members.
|
||||
- Cannot be deleted if referenced by instances or child templates.
|
||||
- Concurrent editing uses **last-write-wins** — no pessimistic locking or conflict detection.
|
||||
- May belong to a `TemplateFolder` via nullable `FolderId`, or live at the tree root when null.
|
||||
|
||||
### TemplateFolder
|
||||
- Hierarchical organizational entity with a self-referencing `ParentFolderId` (null at the root).
|
||||
- Sibling folder names are unique (case-insensitive) within the same parent.
|
||||
- Folders carry **no semantic meaning** for template resolution, flattening, validation, or inheritance — they exist purely for UI organization.
|
||||
- Folder deletion is blocked if the folder contains any subfolders or templates.
|
||||
- The folder graph is enforced acyclic on move (a folder cannot become its own descendant).
|
||||
|
||||
### Attribute
|
||||
- Name, Value, Data Type (Boolean, Integer, Float, String), Lock Flag, Description.
|
||||
|
||||
Reference in New Issue
Block a user