Skip to content

Key Concepts

Omnismith is designed around a flexible Entity-Attribute-Value (EAV) data model combined with a real-time Time-Series Metric Engine.

This model allows you to define, modify, and expand data schemas dynamically at runtime — without running database migrations, writing SQL scripts, or redeploying software code.


To understand how Omnismith works, compare it to traditional tools:

ConceptReal-World AnalogySoftware / Database EquivalentOmnismith Building Block
AttributeA blank field label on a form (e.g. Price, Status)Column definition / Field metadataAttribute
TemplateA reusable paper form layout (e.g. Support Ticket Form)Database Table Schema / Class DefinitionTemplate
EntityA completed, submitted paper form (e.g. Ticket #104)Database Row / Object InstanceEntity
ValueThe text/number written inside a field on a specific formCell value / Property valueAttribute Value

1. Attributes — The Data Building Blocks

Section titled “1. Attributes — The Data Building Blocks”

Attributes define the individual fields and data types that can be attached to templates.

Omnismith classifies attributes into two primary functional categories:

  1. Dimensions:
    • Represent static, categorical, or descriptive properties (e.g., Customer Name, Serial Number, Department).
    • Maintained in an Audit Change Log that records exact timestamps, old values, new values, and who made the change.
  2. Metrics:
    • Represent numeric parameters that change frequently over time (e.g., CPU Load, Temperature, Account Balance, Response Time).
    • Stored in high-performance time-series database storage (TimescaleDB) and rendered as interactive historical chart datasets with configurable aggregation buckets (minute, hour, day).
Data TypeDescriptionExample Usage
StringText stringsNames, email addresses, descriptions
NumberFloating point or integer numbersPrices, quantities, measurements
BooleanTrue/False binary flagActive status, verified flag, VIP status
DateCalendar date without timeBirthday, release date, expiration date
DateTimeFull precise timestampEvent timestamp, system creation time
ListPredefined set of selectable optionsPriority (Low, Medium, High), Status
ReferencePointer link connecting to another EntityLinking a Ticket entity to a Customer entity

A Template is a virtual schema that groups related attributes together to define a complete record structure.

For example, a Support Ticket template might combine the following attributes:

  • Title (String dimension)
  • Customer (Reference link to Customer template)
  • Priority (List option: Low / Medium / High)
  • Status (List option: Open / In Progress / Resolved)
  • Resolution Time (min) (Metric number)
  • Runtime Modularity: Add or remove attributes from a template at any time. Existing entities automatically adapt to the updated template structure.
  • Blueprint Export/Import: Templates can be packaged into Blueprints and shared across projects or deployed from the Marketplace.

An Entity is an individual record created from a specific Template.

If your Template is Customer, an entity represents a real customer record (e.g. “ACME Corp”). If your Template is Server Node, an entity represents a specific server instance (e.g. “prod-db-master-01”).

flowchart TD
subgraph Data Modeling
A[Attribute Definitions] -->|attached to| T[Template Blueprint]
end
subgraph Live Records
T -->|instantiates| E1[Entity Record #1]
T -->|instantiates| E2[Entity Record #2]
E1 --> V1[Dimensions: Name, Status]
E1 --> V2[Metrics: CPU, Memory over time]
E1 --> V3[Audit History Log]
end

4. References — Connecting Data Entities

Section titled “4. References — Connecting Data Entities”

References allow entities created under one template to link directly to entities of another template (e.g. linking an Invoice entity to a Company entity).

  • One-to-Many & Many-to-One: Relate multiple support tickets to a single customer record.
  • Relational Integrity: Search, filter, and navigate across related entities seamlessly in the UI.

[!NOTE] Schema-on-Read Flexibility with OpenAPI Support: For developers, Omnismith eliminates schema rigidity. Attributes and entity properties can be queried via standard REST APIs (OpenAPI) using flexible filter parameters (/api/v1/entity/template/{templateId}). Metrics are exposed via optimized time-series aggregation endpoints without writing custom SQL window functions.


[!TIP]