Skip to main content
Complete reference for the buster.yml configuration file.

File Location

The file must be named buster.yml or buster.yaml and placed in your repository root.

Complete Schema

# Required: At least one project
projects:
  - name: string              # Required
    data_source: string       # Required
    database: string          # Optional (required for some warehouses)
    schema: string            # Required
    include:                  # Optional
      - "**/*.yml"
    exclude:                  # Optional
      - "**/draft-*.yml"

# Optional: Paths to agent files
agents:
  - .buster/agents/my-agent.yml

# Optional: Query logs writeback
logs:
  data_source: string         # Optional
  database: string            # Required
  schema: string              # Required
  table_name: string          # Optional: defaults to "buster_query_logs"

# Optional: Data quality monitors
monitors:
  - name: string              # Required
    type: string              # Required
    schedule: string          # Required
    data_source: string       # Optional
    enabled: boolean          # Optional: defaults to true

# Optional: Default data source for monitors
data_source: string

# Optional: Path to dbt project
dbt_project_path: string

Fields

projects

projects
array
required
List of project configurations. At least one project is required.
projects:
  - name: analytics
    data_source: postgres_prod
    schema: public

agents

agents
array
Paths to agent YAML files, relative to buster.yml.
agents:
  - .buster/agents/documentation.yml
  - .buster/agents/pr-reviewer.yml
See Agent YAML Reference for agent file format.

logs

logs
object
Configure query logs writeback to store Buster query history in your warehouse.
logs:
  database: analytics
  schema: logs
  table_name: buster_query_logs

monitors

monitors
array
Data quality monitors that run on a schedule to detect schema changes, data anomalies, and staleness.
monitors:
  - name: daily_schema_check
    type: schema_drift
    schedule: "0 9 * * *"
    enabled: true

  - name: hourly_freshness
    type: freshness
    schedule: hourly

  - name: volume_check
    type: volume_anomaly
    schedule: daily

data_source

data_source
string
Default data source for all monitors.
data_source: postgres_prod

dbt_project_path

dbt_project_path
string
Path to your dbt project root, relative to buster.yml. If omitted, Buster searches for dbt_project.yml automatically.
dbt_project_path: ./dbt

Examples

Minimal

projects:
  - name: analytics
    data_source: postgres_prod
    schema: public

With Agents

projects:
  - name: analytics
    data_source: postgres_prod
    schema: public

agents:
  - .buster/agents/documentation.yml
  - .buster/agents/pr-reviewer.yml

Multiple Data Sources

projects:
  - name: production
    data_source: snowflake_prod
    database: analytics
    schema: marts

  - name: staging
    data_source: snowflake_staging
    database: analytics_dev
    schema: marts

agents:
  - .buster/agents/documentation.yml

Full Configuration

projects:
  - name: analytics
    data_source: postgres_prod
    database: analytics
    schema: public
    include:
      - "models/**/*.yml"
    exclude:
      - "**/draft-*.yml"

agents:
  - .buster/agents/documentation.yml
  - .buster/agents/pr-reviewer.yml

logs:
  database: analytics
  schema: logs
  table_name: buster_query_logs

monitors:
  - name: daily_schema_check
    type: schema_drift
    schedule: "0 9 * * *"
    enabled: true

  - name: hourly_freshness
    type: freshness
    schedule: hourly

  - name: json_structure_check
    type: json_drift
    schedule: daily

  - name: volume_anomaly_check
    type: volume_anomaly
    schedule: "0 */6 * * *"

data_source: postgres_prod

dbt_project_path: ./dbt

Project Structure

Recommended repository structure:
my-repo/
├── buster.yml              # Main configuration
├── .buster/
│   └── agents/
│       ├── documentation.yml
│       └── pr-reviewer.yml
├── models/
│   ├── staging/
│   └── marts/
└── dbt_project.yml

Deploying

Deploy your configuration:
buster deploy
Validate without deploying:
buster deploy --dry-run