Bruin CLI Step 3 of 4
Build a local DuckLake lakehouse
1) Configure .bruin.yml
Replace the root .bruin.yml with two DuckDB connections: one regular connection for the raw CSV data and one DuckLake connection for the finished tables.
default_environment: default
environments:
default:
connections:
duckdb:
# Local source database for the raw CSV data.
- name: duckdb-default
path: source.duckdb
# DuckDB engine + Postgres catalog + MinIO storage.
- name: ducklake-pg
path: engine.duckdb
lakehouse:
format: ducklake
catalog:
type: postgres
host: localhost
port: 5434
database: ducklake_meta
auth:
username: lakehouse
password: lakehouse
storage:
type: s3
path: s3://ducklake/warehouse
endpoint: localhost:9010
url_style: path
use_ssl: false
auth:
access_key: minioadmin
secret_key: minioadmin
duckdb-default holds the raw source data. ducklake-pg points to the lakehouse: Postgres stores metadata while MinIO stores the Parquet files. The DuckLake configuration reference documents the supported catalog and storage combinations.
endpoint, url_style: path, and use_ssl: false tell DuckDB how to connect to local MinIO over HTTP. The Postgres password is lakehouse, rather than ducklake, so Bruin's masked logs do not obscure the DuckLake schema name.