Snowflake DinoAI Agent Key-Pair Setup
We recommend creating a dedicated Snowflake service user for the DinoAI agent environment, with the minimum permissions required to read and write to your database.
IP Restrictions If your Snowflake account uses network policies, make sure to allowlist the Paradime IPs for your data region.
👉 See: Paradime IP addresses
👉 See: Paradime IP addresses
Step 1. Generate the Key Pair
Run the following commands in your terminal to generate an RSA private key and extract the public key. Option A — Encrypted private key (recommended)Copy only the content between the header and footer lines — not the lines themselves.
i.e. everything between
i.e. everything between
-----BEGIN PUBLIC KEY----- and -----END PUBLIC KEY-----Step 2. Create the Snowflake Service User
Run the SQL below in a Snowflake worksheet to create a dedicated service user, role, and warehouse. Create user, role, and warehouse
Replace the database names below with your actual Snowflake databases.
If your source and production data live in the same database but different schemas, replace the database-level grants with schema-level grants.
e.g.
e.g.
grant select on all tables in schema <your_database>.<your_schema> to role transformer;Step 3. Assign the Public Key to the User
Once the user is created, assign the RSA public key to enable key-pair authentication.RSA_PUBLIC_KEY column is populated.
(Optional) Verify the fingerprint
Cross-check that the key in Snowflake matches your local key.
Step 4. Configure the Connection in Paradime
- Click Settings in the top menu bar
- Click Connections in the left sidebar
- Click Add New next to DinoAI Background Agent Environment
- Select Snowflake as the connection type
- Choose Key-Pair Authentication
Step 5. Allowlist Paradime IPs (if using network policies)
If your Snowflake account has IP restrictions, allowlist the Paradime IPs for your data region.Troubleshooting
JWT token errors on connection test- Run
DESC USER paradime_dinoai_user;and verifyRSA_PUBLIC_KEYis populated - Make sure the private key in Paradime includes the header/footer lines
- If using an encrypted key, confirm the passphrase is correct
- Verify grants were run as
SYSADMIN, notSECURITYADMIN - Check future grants are in place — new schemas/tables won’t inherit permissions without them
- Run
SHOW GRANTS TO ROLE transformer;to audit what the role can access - If DinoAI can’t read source or prod data, double-check read grants on those databases
- Ensure Paradime IPs are allowlisted in your Snowflake network policy (Step 5)
- Verify the account identifier format matches Snowflake’s documentation