Snowflake Connector

Snowflake's cloud data warehouse. Two distinguishing features: every query runs against a specific warehouse (which determines compute cost), and identifiers are uppercase by convention.

What it lets you do

  • Test that DagFlux can reach Snowflake with your credentials.
  • List databases, schemas, tables, and views.
  • List columns of any table.
  • Run any Snowflake SQL query.
  • Stream large query results in batches.
  • Insert rows in bulk.

Connection form

Field Required Sensitive Default
Account Yes Yes
Username Yes Yes
Password Yes Yes
Warehouse Yes No
Database Yes No
Schema No No PUBLIC
Role No No (empty)

The account identifier follows Snowflake's format — <account>.<region> (e.g. xy12345.us-east-1). The warehouse determines how compute is billed; the role can be used to run as a different Snowflake role for permission scoping.

Setting up credentials

Step 1 — Sign in as ACCOUNTADMIN

Open the Snowflake web UI and run the following in a worksheet as ACCOUNTADMIN (or another role with the privileges to create roles and users).

Step 2 — Create a dedicated role and user

USE ROLE ACCOUNTADMIN;

-- Create a role for DagFlux
CREATE ROLE dagflux_role;

-- Create a user with that role as default
CREATE USER dagflux
  PASSWORD = 'Choose-A-Strong-Password!'
  DEFAULT_ROLE = dagflux_role
  DEFAULT_WAREHOUSE = COMPUTE_WH
  MUST_CHANGE_PASSWORD = FALSE;

-- Assign the role to the user
GRANT ROLE dagflux_role TO USER dagflux;

Step 3 — Grant warehouse access

-- Allow the role to use the compute warehouse
GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE dagflux_role;

Step 4 — Grant database, schema, and table access

-- Allow accessing the database and one schema
GRANT USAGE ON DATABASE MYDB TO ROLE dagflux_role;
GRANT USAGE ON SCHEMA MYDB.PUBLIC TO ROLE dagflux_role;

-- Read + write on existing tables
GRANT SELECT, INSERT, UPDATE, DELETE
  ON ALL TABLES IN SCHEMA MYDB.PUBLIC TO ROLE dagflux_role;

-- Same permissions on tables created in the future
GRANT SELECT, INSERT, UPDATE, DELETE
  ON FUTURE TABLES IN SCHEMA MYDB.PUBLIC TO ROLE dagflux_role;

-- Allow creating new tables (needed for new-table transformations and joins)
GRANT CREATE TABLE ON SCHEMA MYDB.PUBLIC TO ROLE dagflux_role;

Step 5 — Read-only variant

If you'll only use the connection for sources:

GRANT USAGE ON WAREHOUSE COMPUTE_WH TO ROLE dagflux_role;
GRANT USAGE ON DATABASE MYDB TO ROLE dagflux_role;
GRANT USAGE ON SCHEMA MYDB.PUBLIC TO ROLE dagflux_role;
GRANT SELECT ON ALL TABLES IN SCHEMA MYDB.PUBLIC TO ROLE dagflux_role;
GRANT SELECT ON FUTURE TABLES IN SCHEMA MYDB.PUBLIC TO ROLE dagflux_role;

Step 6 — Find your account identifier

Your account identifier is in the Snowflake URL: https://<account>.snowflakecomputing.com — copy the part before .snowflakecomputing.com. For some regions Snowflake includes the region (e.g. xy12345.us-east-1).

Step 7 — Enter the credentials in DagFlux

  • Account — the identifier from step 6.
  • Username / Password — what you set in step 2.
  • Warehouse — the warehouse the role can use (e.g. COMPUTE_WH).
  • Database — the database you granted access to.
  • Schema — the schema you granted access to (defaults to PUBLIC).
  • Roledagflux_role. Leave empty to use the user's default role.

Behaviour notes

  • Schema defaults to PUBLIC (uppercase, as Snowflake stores them).
  • Identifier quoting uses double quotes.
  • Column metadata is reported in uppercase column names.
  • Primary keys are not enforced; the flag is informational only.
  • The AI's transform prompts produce Snowflake-flavoured SQL that uses the warehouse and role context you configured.