Connect a warehouse
Point Zug Zug at a warehouse column with a read-only credential and start scanning source values.
Zug Zug reads your warehouse; it never writes to it unless you explicitly opt in. A read-only credential is enough to get started.
Attach the warehouse
Set these in your server environment (server/.env):
ATTACH_WAREHOUSE=true
WAREHOUSE_ADAPTER=motherduck # or: snowflake
MOTHERDUCK_TOKEN=... # read-only tokenWith ATTACH_WAREHOUSE=false (the default demo mode), the whole
record-and-publish workflow still works against Postgres — handy for trying
things out without a warehouse at all.
Snowflake (experimental)
Snowflake uses key-pair (JWT) auth. Set WAREHOUSE_ADAPTER=snowflake and register
the connection in Settings → Warehouse with these fields:
| Field | Notes |
|---|---|
account | Your account identifier (e.g. orgname-account). |
user | The Snowflake user the key belongs to. |
privateKey | PEM-encoded private key; the public key is set on the user in Snowflake. |
privateKeyPassphrase | Optional — only if the key is encrypted. |
warehouse | Compute warehouse to run scans on. |
database / schema | Where your source tables live. |
Experimental — register sources by path
The scan and publish paths work, but warehouse catalog auto-discovery isn't wired
up yet: Zug Zug can't enumerate your databases and schemas for you. Register sources by
their explicit database.schema.table path rather than browsing. Validate against a
non-critical schema first, and prefer pull-first publishing.
Register a source
A source is a warehouse column you want Zug Zug to watch. Register one
against a table, and Zug Zug scans its DISTINCT values — with frequency counts
— and surfaces the ones still waiting for a mapping in Review.
Read-only, always
Scanning issues SELECT DISTINCT and nothing else. Your warehouse is never
modified unless you configure a writable adapter and turn it on.
Next
Once values are mapped and approved, publish to
materialize the dim_<x> / map_<x> tables.