Query Snowflake from any Windmill script, flow or app. SQL runs natively — no client library, no boilerplate.
Set up in 3 steps
Set up a key pair
Snowflake authenticates with an RSA key pair rather than a password. Generate one, assign the public key to your user, and keep the private key.
Collect the account details
You need the account identifier, and the warehouse, database, schema and role the queries should run under — all in the Snowflake console.
Add the resource in Windmill
Open Resources, add a resource of type snowflake, and fill the fields.
Scripts
Building blocks, if none of the projects above fit. Fork one, run it, or call it as a step inside your own flow.
Resource types
The credential shapes the scripts on this page expect — pick the one your script asks for.
snowflake
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| account_identifier | string | Yes | <orgname>-<account_name> |
| database | string | No | |
| private_key | string | Yes | -----BEGIN PRIVATE KEY----- .... -----END PRIVATE KEY----- |
| public_key | string | Yes | -----BEGIN PUBLIC KEY----- .... -----END PUBLIC KEY----- |
| role | string | No | |
| schema | string | No | |
| username | string | Yes | |
| warehouse | string | No |
snowflake_oauth
View raw schema →| Field | Type | Required | What it is |
|---|---|---|---|
| account_identifier | string | Yes | <orgname>-<account_name> |
| token | string | Yes | OAuth access token, filled in and refreshed by Windmill's Snowflake OAuth connection |
| database | string | No | Database to use. dbt requires one. |
| warehouse | string | No | Warehouse to use. The user's default warehouse when empty. |
| role | string | No | Role to use. The user's default role when empty. |
| schema | string | No | Schema to use. |
Questions
Why a key pair and not a password?
It is what Snowflake expects for programmatic access, and it sidesteps the MFA prompts that break an unattended run.
Why do I have to name a warehouse and a role?
Snowflake bills compute per warehouse and resolves access per role, so a session has to state both. Naming them here pins what every script costs and sees.
Are my credentials stored on the hub?
Never. They live only in your own Windmill workspace, encrypted at rest.