Project configuration
Keep the project contract in version control
Section titled “Keep the project contract in version control”marivo.toml is optional. Without it, the project name is the project-root directory
name, semantic.layer_paths is empty, and local telemetry is enabled. Missing tables or
fields use those defaults; an existing invalid TOML document or explicitly invalid field
fails closed. There is no project version setting.
Use marivo.toml to load semantic-layer packages that are maintained in other
repositories. Add each authored models/ directory to [semantic].layer_paths:
[semantic]layer_paths = [ "../sales-domain/models", "/opt/company/finance-domain/models",]Marivo always loads the current project’s models/ directory first. It then
loads layer_paths in the listed order. Relative paths are resolved from the
directory containing marivo.toml; absolute paths are used as-is. Every external
semantic-layer root must contain both datasources/ and semantic/.
Names must stay unique across every configured root: datasource names, domain
names, and semantic IDs cannot be duplicated. A duplicate stops the semantic
layer from loading. marivo doctor, semantic previews, verification, and
analysis sessions all resolve semantic objects and layer datasources through
these configured roots.
When configuration or declarations must travel with the project, commit marivo.toml
and models/. Add .marivo/ to .gitignore; it contains local sessions, evidence,
telemetry, and cached metadata rather than shared declarations.