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 type
snowflake — the shape of the credential every script on this page expects.
| 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 |
All resource types
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.