Snowflake Semantic Layer with Bonnard
Connect Bonnard to Snowflake and ship governed metrics to AI agents, dashboards, and your product. YAML semantic layer with MCP and React SDK.
Bonnard gives you a Snowflake semantic layer defined in YAML, version-controlled, and queryable from AI agents, React components, and REST APIs. If your team runs dbt models, stores event data, or centralizes reporting in Snowflake, Bonnard connects directly and exposes governed metrics through MCP, React SDK, REST API, and markdown dashboards.
How does Bonnard connect to Snowflake?
Add Snowflake as a datasource in your Bonnard project. Define the connection in your datasources.yml:
# datasources.yml
datasources:
- name: snowflake_warehouse
type: snowflake
account: xy12345.us-east-1
username: BONNARD_USER
password: ${SNOWFLAKE_PASSWORD}
database: ANALYTICS
warehouse: COMPUTE_WH
schema: PUBLIC
role: BONNARD_ROLE
Then run:
bon datasource add snowflake_warehouse
bon deploy
Bonnard validates the connection, introspects your schema, and deploys your semantic layer. No drivers to install, no middleware. Your Snowflake data is queryable through every surface Bonnard supports within minutes.
What do you get?
Once connected, your Snowflake data is available through four surfaces:
MCP server. Run bon mcp and your AI agents (Claude, ChatGPT, Cursor) query governed Snowflake metrics with row-level security. Generate publishable keys per tenant for customer-facing agentic analytics.
React SDK. Drop BarChart, LineChart, and BigValue components into your product. Every chart queries your Snowflake warehouse through the semantic layer with multi-tenant access controls applied automatically.
REST API. Query metrics programmatically from any language or platform. Type-safe queries with the TypeScript SDK or raw HTTP from anywhere.
Markdown dashboards. Author dashboards in markdown, deploy with bon deploy, and share governed views with your team or customers.
How does Bonnard compare to native Snowflake analytics?
| Capability | Snowflake native | Bonnard + Snowflake |
|---|---|---|
| Metric definitions | SQL views, Snowsight worksheets | YAML semantic layer (version-controlled) |
| AI agent access | None | MCP server with publishable keys |
| Embedded analytics | Snowsight (internal only) | React SDK with multi-tenant auth |
| Dashboards | Snowsight | Markdown dashboards, deployed via CLI |
| Multi-tenancy | Manual role management | Publishable keys + row-level security |
| Pre-aggregation | Materialized views (manual) | Automatic pre-aggregation cache |
| dbt integration | Native dbt support | bon datasource add --from-dbt imports models |
| Access control | Snowflake RBAC | YAML-defined RBAC + audit logging |
| Deployment | SQL scripts | bon deploy (no restart, no SSH) |
FAQ
Does Bonnard support Snowflake?
Yes. Snowflake is a first-class Bonnard datasource. All Snowflake editions (Standard, Enterprise, Business Critical) are supported. Configure your connection in YAML, run bon datasource add, and deploy.
Can I use pre-aggregations with Snowflake?
Yes. The pre-aggregation cache handles this automatically. Define rollups in your cube YAML files and Bonnard builds and refreshes them on schedule. This reduces Snowflake compute costs and speeds up repeated queries without manual materialized view management.
How does multi-tenancy work with Snowflake?
Generate publishable keys per tenant. Bonnard maps each key to a security context with row-level filters. Every query against your Snowflake warehouse is filtered automatically. No per-tenant Snowflake roles or databases required.
Can I import dbt models on Snowflake?
Yes. Run bon datasource add --from-dbt pointed at your dbt project. Bonnard imports your models as cubes and your metrics as measures. Layer the semantic layer on top of your existing dbt transformations without rewriting anything.
Connect Snowflake. Ship governed analytics.
Define your metrics in YAML, connect to Snowflake, and expose governed analytics through MCP, React SDK, and REST API.