Skip to main content
Snowflake is the typical source for analytics-shaped agents — the ones running ad-hoc SQL, filling dashboards, or building exports. These agents touch the widest column surface of any class, which makes intent governance most valuable here.

Why it matters

A Snowflake-connected analytics agent often has SELECT on dozens of schemas. Without governance, every prompt is “the agent might touch anything.” With Inviolet, each query carries an intent label, a intention match, and (Ultraviolet tier) a column allowlist enforced at the database proxy.

1. Create a service account + role

2. Add the data source in Inviolet

App dashboard → Data Sources → Add → Snowflake. Paste:
  • Account identifier (e.g., xy12345.us-east-1)
  • Username (INVIOLET_SVC) + password
  • Warehouse, default database, default role (INVIOLET_RO)
Inviolet performs a test query and lists the schemas it can see.

3. Run a query through the gateway

The intent_class typically returns reporting or analysis for analytics queries. The matched intention tells you which dashboard / export this query belongs to.
This is the evaluate path (intent.evaluate) — a lightweight pre-call check. For structural enforcement where the agent never holds the warehouse credential, mint a mandate and guard the call with @inviolet/agent-sdk-core and bind a short-lived role via credential brokering. See the Quickstart.

4. Verify

After connection, the query pattern map fills with Snowflake-shaped events. Look for surprises: schemas your agents touch that you didn’t realize they could.