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.

3 min read

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.