Metadata model

Every asset, action, and calculation on the trac platform is recorded in a structured metadata model. The model has two layers:

Objects

The structural elements of the platform. Each object type has its own metadata structure and an immutable, versioned history.

Tags

Key-value attributes used to index, describe, and control objects. Some tags are assigned automatically by the platform; others are defined by users.

Every object creation and tag modification is recorded in a time-indexed audit log, forming a comprehensive and tamper-proof history of the platform and its contents.

Objects

trac’s four principal object types — data, models, flows, and jobs — are the building blocks of most user-facing activity. Schema and file are two further object types that support them.

Schema

Defines the field names, types, constraints, and relationships of a dataset. Schema objects can be shared across multiple data objects. Two sub-types are supported: Table and Structured (Struct).

Data

A dataset available for use on the platform. Data objects contain or reference a schema, and are stored in internal storage using an append-only model.

Model

A versioned unit of code in an external repository that has been made available on the platform. The model object holds the model schema and a reference to the specific repository commit.

Flow

A directed graph of model and data object keys defining a multi-model calculation. The flow object contains only key references — schema consistency across all connected models and datasets is validated before execution using the schemas of the specific objects selected at runtime.

Job

The metadata record of a platform operation. RunModel and RunFlow job objects are calculation contracts — complete, self-contained specifications that both drive execution and persist as the authoritative record of what ran. ImportModel, ImportData, and ExportData jobs are operational records of data and model movement.

File

A discrete digital asset available on the platform. Files can be used as job inputs; trac stores and versions them but does not interpret their contents.

Note

The term model schema refers to the schemas describing a model’s inputs, outputs, and parameters. It is part of the model object, not a separate object type.

Tags

Every object carries four categories of metadata attribute:

Definition

The object type, its unique object ID, and when the object was first created.

Version

Where more than one version of an object exists, the record of when this specific version was created. Taken together, these records form the object’s complete version history.

Source

System-generated tags describing the object’s lineage. The content varies by object type and creation method.

Tags

Attributes assigned by users to describe the object and make it discoverable, such as Key, Name, Description, and business segment.

Updates to Tags are versioned independently of the object itself, preserving a complete history of how objects have been classified and described over time.

Of these, the Tags category is assigned by users to aid object discovery:

Tag

Use

Type

Applies to

Name

A short meaningful label for the object

String

All

Description

A fuller description with enough information to differentiate it from similar objects

String

All

Key

A unique descriptor used when searching for functionally interchangeable objects

String

Data, models, files

Show in search?

Objects are never deleted but setting this tag to N hides them. Changing it back to Y un-hides them

Boolean (default = Y)

All

Business segment

An optional tag which reflects hierarchical organisation-specific identifiers

String (categorical)

All

Note

In deployed instances, the metadata model is configurable, so additional tags can be defined when setting-up your installation (also see business segments).