Skip to content

02 — Concepts

Entity Model

The entity model is the runtime configuration that describes what the application can manage.

It includes:

  • entity types,
  • hierarchy rules,
  • property groups,
  • property definitions,
  • tag groups,
  • tags,
  • relationship definitions,
  • templates,
  • view definitions,
  • permissions metadata,
  • validation rules.

Entity Type

An entity type describes a category of entity.

Examples:

text
customer
site
building
room
asset
credential
connection_method
tag
group

An entity type should define:

  • key,
  • name,
  • description,
  • icon,
  • whether it can appear in hierarchy,
  • whether it can be a root,
  • whether it can contain children,
  • allowed parent types,
  • allowed child types,
  • allowed property groups,
  • allowed tag groups,
  • allowed relationship types,
  • lifecycle policy.

Property Group

A property group organizes related properties into a UI and validation section.

Examples:

text
Device
Network
BACnet
Commissioning
Credentials

Property groups make forms and detail pages easier to use.

Property Definition

A property definition describes a single typed field that can be attached to entities.

Examples:

text
hostname
ip_address
serial_number
firmware_version
bacnet_device_id
commissioning_status

A property definition should define:

  • key,
  • display name,
  • data type,
  • validation rules,
  • required/optional status,
  • searchable/filterable behavior,
  • sensitivity,
  • default value,
  • display order.

Sensitive values should not be stored as ordinary property values. They should use Vault-backed secret references.

Tag Group

A tag group organizes related tags.

Examples:

text
Criticality
Vendor
Commissioning Status
Environment

A tag group can define whether selection is:

  • single-select,
  • multi-select,
  • system-managed,
  • user-managed.

Relationship Definition

A relationship definition describes a permitted association between entity types.

Examples:

text
asset depends_on asset
asset uses credential
asset connects_to asset
connection_method applies_to site
user manages asset

Relationship definitions are separate from hierarchy.

Hierarchy answers:

text
Where is this entity located?

Relationships answer:

text
How is this entity associated with another entity?

Template

A template is a reusable bundle of configuration for creating entities.

Example:

text
BACnet Controller Template
├── Entity Type: asset
├── Property Groups: Device, Network, BACnet
├── Tag Groups: Vendor, Criticality, Commissioning Status
└── Default Relationships: uses_credential allowed

Templates should speed up entity creation without hiding the underlying entity model.

Model Version

A model version is a snapshot of the metadata configuration.

The platform should support draft and published versions:

text
Draft Model
    editable, validated, not used by runtime users

Published Model
    active, used by API and frontend

Generated CRUD API

The generated CRUD API is a generic API layer that uses the published metadata model to validate and manipulate entities.

It should be type-aware, permission-aware, and audit-aware.

It should not bypass application services for sensitive workflows.