The Snowflake connector talks to your Snowflake account over TLS using the officialDocumentation Index
Fetch the complete documentation index at: https://docs.summand.com/llms.txt
Use this file to discover all available pages before exploring further.
snowflake-sdk (Node.js) and snowflake-connector-python libraries. Available on Enterprise plans.
Summand follows Snowflake’s documented best practices for service connectors: dedicated read-only role, modern authentication (key-pair JWT or programmatic access tokens), structured query tags for cost attribution, and a 1-hour statement timeout to bound runaway queries.
What Summand needs
A dedicated Snowflake role with read-only access to the database, schema, and tables you intend to analyze. Snowflake’s access control best practices recommend creating an integration-specific role rather than reusing a human user’s role. The role needs:USAGEon the warehouseUSAGEon the database and schemasSELECTon the tables and views to be analyzed (orSELECT ON ALL TABLES IN SCHEMA …plusSELECT ON FUTURE TABLES IN SCHEMA …for new tables)
Authentication
Snowflake is deprecating single-factor password authentication for service users by October 2026. Summand supports three auth methods, listed in order of preference:| Method | Recommended for | Snowflake’s stance |
|---|---|---|
| Key-pair (JWT) | Production, all customers | ✅ Required for service users post-Oct 2026 |
| Programmatic Access Token (PAT) | Quick setup, rotation-friendly service auth | ✅ Supported (introduced 2024) |
| Password | Initial trial only | ⚠️ Being deprecated for service users |
Key-pair JWT (recommended)
Generate a key pair
On any machine with The private key (
openssl:summand_rsa_key.p8) goes into Summand. The public key (summand_rsa_key.pub) goes into Snowflake.Register the public key on the Snowflake user
Strip the PEM header/footer from Snowflake’s key rotation guide explains how to rotate via
summand_rsa_key.pub and run, in Snowflake:RSA_PUBLIC_KEY_2 without downtime.Programmatic Access Token (PAT)
Introduced in 2024, PATs are token-based credentials scoped to a single user — simpler than key-pair, more secure than passwords. Best for “OAuth without the redirect dance.”Generate a PAT in Snowflake
ALTER USER … REMOVE PROGRAMMATIC ACCESS TOKEN summand_token.Password (legacy)
Supported for backward compatibility but Snowflake is enforcing key-pair / OAuth for service users by October 2026. Existing password-auth connectors should be migrated before then; new connectors should default to key-pair or PAT.Setup script — least-privilege role
Run this in Snowflake (asSECURITYADMIN or SYSADMIN) before adding the connector. Adjust <DB>, <SCHEMA>, and <WAREHOUSE> to your environment:
Network access
By default Summand connects from a fixed pool of egress NAT IPs (visible in Settings → Connectivity). Three deployment options exist:1. Public endpoint with IP allowlist (default)
Add Summand’s egress IPs to your Snowflake network policy:2. AWS PrivateLink (Enterprise only)
For accounts that disable public traffic via AWS PrivateLink, Summand can be added to your VPC peering. Contact sales@summand.com — this is a managed-peering setup and requires both sides to coordinate.3. Hostname allowlist on customer side
If your firewall blocks outbound by hostname, allow:<account>.snowflakecomputing.com(account-specific URL)<account>.<region>.privatelink.snowflakecomputing.com(PrivateLink endpoint, if applicable)*.snowflakecomputing.comif you prefer broad allowlisting
Adding the connector
From Connectors → Add connector → Snowflake:| Field | Value |
|---|---|
| Account | The <org>-<account> identifier (e.g. xy12345-MYACCT). Summand auto-strips a trailing .snowflakecomputing.com and converts _ → - so you can paste the URL directly. |
| Warehouse (optional) | The Snowflake warehouse the role has USAGE on. Leave blank to use the user’s DEFAULT_WAREHOUSE per Snowflake’s recommended pattern |
| Database | The database to analyze |
| Username | The Snowflake user (e.g. SUMMAND_READER) |
| Authentication | Pick Key pair, Programmatic Access Token, or Password |
| Role (advanced, optional) | Override the user’s default role — pin to SUMMAND_READER if you have multiple roles |
| Schema (advanced, optional) | Default schema for the session. Leave blank to discover all schemas the role can read |
What Summand sets on every Snowflake session
For predictable cost and operational behavior, Summand applies these session parameters automatically:| Parameter | Value | Why |
|---|---|---|
application | Summand_Connector | Identifies our queries in your audit logs and Snowflake support tickets |
QUERY_TAG | JSON {service, action, connector_id, request_id} | Lets your FinOps team attribute Snowflake credits via ACCOUNT_USAGE.QUERY_HISTORY — see Snowflake’s cost-attribution guide |
STATEMENT_TIMEOUT_IN_SECONDS | 3600 (1 hour) | Bounds runaway queries — the Snowflake account default is 172800 (2 days) |
TIMESTAMP_TYPE_MAPPING | TIMESTAMP_NTZ | Deterministic timezone handling across ingestion runs |
CLIENT_SESSION_KEEP_ALIVE | false | Short-lived ingestion sessions don’t pin warehouse credits |
Cost attribution
Every Summand query carries a JSONQUERY_TAG. To see credits attributable to Summand:
Picking tables, views, and datasets
Summand discovers base tables, views, and materialized views in the schema(s) you have access to. View support means dbt-style “raw tables → curated views” pipelines work out of the box — point Summand at the curated view and analyze it directly. Same UX as any other database connector: toggle on the tables/views to analyze, set targets per dataset, run.Common errors
”Snowflake view metadata is stale”
Snowflake views can drift when an underlying table gains columns and the view’s stored column shape becomes out of sync. The fix must be in Snowflake (ALTER VIEW cannot do this):
”Connection succeeded but no warehouse is bound”
The role lacksUSAGE on the warehouse. Run:
“Account identifier not found”
Most often caused by:- Using the legacy
<locator>.<region>.<cloud>form — switch to<org>-<account> - Trailing
.snowflakecomputing.com(Summand auto-strips this, but other tools may not) - Underscores in the identifier — Snowflake’s Python connector requires hyphens (Summand auto-converts on the way in)