Metadata model¶
Unlike traditional model platforms, trac is built around a structural metadata model which catalogues and describes everything on the platform. The model consists of two layers:
OBJECTS |
The model’s structural elements. Each object type (e.g. models or data) has its own metadata structure |
TAGS |
Used to index, describe and control objects. Some tags are controlled by the platform, some are user-defined |
By recording object creation and tag modification actions in a time-consistent manner, trac builds a comprehensive audit history of the entire platform and its contents.
Objects¶
Data, Models, Flows and Jobs are main ones, but trac uses six object types.
SCHEMA |
Defines the names, types, constraints, and relationships of fields in a Data object. Schema objects can be re-used across Data objects. Two sub-types are supported: Table and Structured (or ‘Struct’). |
DATA |
Collections of data records that are available for use on the platform. Data objects contain their schemas, stored either as part of the Data object definition or by mapping to a Schema object. |
MODEL |
Discrete units of code stored in a repository that have been made available for use on the platform. A Model metadata object refers to and describes a versioned unit of code stored in the repository. |
FLOW |
The blueprint of a complex calculation involving multiple models which trac can run on demand, represented as a graph. Flows exist only as metadata and do not refer to any external resource or asset. |
JOB |
A calculation or process that trac has or will orchestrate — for example, to execute calculation using a Model or Flow and some data inputs. |
FILE |
A discrete unit of digital information that is available on trac. Files can be used as job inputs, but unlike Data, trac cannot describe or assure the contents of a File. |
Note
‘Model schema’ refers to the set of schemas which describe a model’s inputs, outputs and parameters. This is not a separate object type, it’s part of the model object.
This diagram shows the interactions between different object types. See Virtual Deployment for more details.

Note
Parameters are data inputs provided when initiating a calculation - they are stored as part of the Job definition, not as separate data objects.