Configuration Overview
This document summarizes how Baselinr configuration is organized and where to place different settings.
Top-Level Structure
config.yml— global defaults and service settings (profiling defaults, drift defaults, validation defaults, hooks, storage, UI settings).datasets/— dataset-specific configuration files (table, schema, database). Controlled by:datasets:
datasets_dir: ./datasets
auto_discover: true
recursive: truehooks/,storage,connections— defined inconfig.ymlas before.
What Belongs Where
- Global defaults: Keep in
config.yml(profiling defaults, drift defaults, validation defaults, anomaly defaults). - Dataset-specific overrides: Use files under
datasets/(seeDATASET_CONFIGURATION.md). - Column-level settings: Place under the table file’s
columnssection. - dbt imports: When enabled, imported models land in
datasets/files.
Precedence (Most Specific Wins)
- Table file (
datasets/{table}.yml) - Schema file (
datasets/{schema}_schema.yml) - Database file (
datasets/{database}_database.yml) - Global defaults in
config.yml
Column-level rules follow the same hierarchy inside a table file.
Recommended Workflow
- Define global defaults in
config.yml. - Create database or schema files for broad defaults.
- Add table files for specific datasets and column overrides.
- Use the dashboard Datasets page to preview merged configs and validate.
Validation & Preview
- CLI:
baselinr validate-config --config config.yml - Dashboard: Datasets page provides merged preview, precedence view, and validation.
Migration
- Use
baselinr migrate-config --config config.yml --output-dir datasetsto convert inline configs. - See
docs/migration/DATASET_CONFIG_MIGRATION.mdfor step-by-step guidance.