Templates
A Template is the schema definition in Omnismith. It combines a set of Attributes into a reusable blueprint that shapes how Entities (data records) are created, validated, searched, and visualized.
Think of a Template as a digital form design: once designed, you can create dozens, thousands, or millions of matching records from it.
1. Core Structure of a Template
Section titled “1. Core Structure of a Template”A Template consists of two main configuration areas:
- Basic Info:
- Name: Clear, descriptive template title (e.g.,
Support Ticket,Server Node,Customer Account). - Slug (Optional): A project-unique string identifier (e.g.
server_node,support_ticket) that enables deterministic API entity creation without querying template UUIDs. - Description: Optional operational notes explaining what data this template holds.
- Visual Styling: Icon and color customization for easy identification across the UI.
- Name: Clear, descriptive template title (e.g.,
- Attribute Composition:
- The list of attached Attributes (Dimensions, Metrics, Lists, References) that define the fields of records created under this template.
- Reordering fields to customize the entity form presentation.
2. Step-by-Step: Creating a Template
Section titled “2. Step-by-Step: Creating a Template”- Navigate to Data Modeling → Templates in the navigation launcher.
- Click + Create Template.
- Basic Details Tab:
- Enter a Name (e.g.
Server Node). - Enter an optional Slug (e.g.
server_node). - Set an optional description and visual icon.
- Enter a Name (e.g.
- Attributes Tab:
- Click + Attach Attribute.
- Select existing attributes from your project library (e.g. Hostname, Environment, Status, CPU Usage, Latency).
- Drag to reorder fields as desired.
- Click Save Changes.

3. Template Slugs & Deterministic API Workflows
Section titled “3. Template Slugs & Deterministic API Workflows”Templates support string-based project-unique slugs (template_slug):
- Zero-Lookup Ingestion: External ingestion pipelines can create entities directly by specifying
template_slug: "server_node"and attribute slugs, eliminating the need to look up template UUIDs. - Cross-Environment Consistency: Deploy schemas across development, staging, and production environments deterministically using static configuration files and matching slugs.
4. Template Attribute Groups (Form Sections & Layouts)
Section titled “4. Template Attribute Groups (Form Sections & Layouts)”Templates allow organizing attached attributes into structured, visual Attribute Groups (Sections) to create clean, intuitive form layouts:
- Named Sections: Group related fields into logical blocks (e.g. General Information, Hardware Specifications, Network & Connectivity, Operational Status).
- Custom Section Headers: Set a custom Name, Description, and Icon for each group.
- Responsive 1 or 2-Column Grid: Choose between single-column full-width layouts (
columns: 1) or compact 2-column side-by-side layouts (columns: 2). - Drag-and-Drop Organization:
- Drag individual attributes between groups or move them to the Ungrouped Attributes section.
- Drag and drop entire group containers to reorder the section hierarchy.
- Entity Form Rendering: When viewing or editing an entity record (
SH-020.png), fields are neatly compartmentalized into these styled section blocks according to the template’s group configuration.
{ "name": "Server Node", "slug": "server_node", "groups": [ { "name": "System Identity", "description": "Host and environment identification", "icon": "dns", "columns": 2, "attribute_ids": ["019fe205-c125-735b-98bd-86851e8baf15"] }, { "name": "Performance Telemetry", "description": "Real-time metrics and health indicators", "icon": "speed", "columns": 2, "attribute_ids": ["019fe206-e9d6-7349-b628-f9e9474622a2"] } ]}5. Dynamic Schema Evolution (Zero-Downtime Updates)
Section titled “5. Dynamic Schema Evolution (Zero-Downtime Updates)”One of Omnismith’s greatest strengths is runtime schema flexibility:
- Adding Fields: Attach a new attribute to an existing template at any time. All existing entities under that template instantly gain access to the new field without database migrations.
- Removing Fields: Detach an attribute from a template to hide it from entity forms and search tables without destroying historical metric logs.
- Restructuring Groups: Modify section headers, column grids, or field groupings at runtime without affecting stored entity values.
- No Downtime: Changes take effect immediately across the web UI, API endpoints, and dashboard views.