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

All processes on trac are built from six object types.

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

Tags are key-value attributes attached to objects. There are three categories:

Version control

Platform-assigned identifiers including object ID and version ID. These are immutable and uniquely identify every version of every object.

System attributes

Platform-generated metadata including lineage information, creation timestamp, created-by, and source repository reference. These are set automatically and cannot be modified by users.

User-defined attributes

Attributes assigned by users, such as Key, Name, and Description. These make objects searchable and allow teams to classify and organise content by business segment, model type, or any other relevant attribute.

Tag updates are versioned independently of the objects they describe, preserving a complete history of how objects have been classified and described over time.