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.
Documentation v0.9