Snow Compliance DemoBoard review · v1

Snowflake options

Simulating Snowflake offline & sandbox accounts

Per board direction, the Snowflake component is simulated for now. Here are the offline tooling and sandbox-account options, and our recommendation.

Bottom line

There is no true offline Snowflake

Snowflake is a hosted service; nothing runs the real engine locally. What exists falls into two buckets: emulators that accept Snowflake SQL/drivers but do not implement governance, and a free trial account that is the genuine article. Because the whole point of this demo is governance (row access policies, masking, audit), the emulators can carry the SQL while a simulation layer or a trial account carries the behaviour.

Recommendation Proceed now with our own simulation layer (poc/snowflake_sim.py) for governance behaviour and use an emulator only for SQL/DDL portability and CI. When the board approves, validate the same sql/01…05 unchanged on a free 30-day Snowflake trial.
Offline / local

Offline emulation options

OptionWhat it isGovernance?Best for
fakesnow Apache-2.0 Patches the Snowflake Python connector (or runs an HTTP server) and executes against DuckDB, translating SQL with sqlglot. Persists to disk. No row access / masking Running our DDL/scripts locally; SQL portability; CI
LocalStack for Snowflake Managed, Docker-based Snowflake-compatible endpoint; works with the Snowflake CLI (snow). Free Hobby tier for non-commercial use. Partial Driver/CLI compatibility, local dev
snowflake-emulator MIT · Rust DataFusion-backed engine speaking the Snowflake SQL API v2; Docker image. No (GRANT/REVOKE are no-ops) Driver/SQL compatibility testing
DuckDB MIT The analytical engine underneath fakesnow; excellent local SQL. No Local analytics on the CORE/MARTS layer
dbt-duckdb Runs the transformation layer (RAW → CORE → MARTS) offline; swap the adapter to dbt-snowflake later. No Portable modeling / tests
Snowpark local testing framework official Emulates Snowpark Python DataFrames locally without a connection. No Unit-testing Snowpark DataFrame code
The catch Every emulator above explicitly omits access control. They can prove our SQL runs; they cannot prove a matter wall holds. That is exactly why we built the simulation layer.
Sandbox account

Free trial / sandbox account

OptionWhat you getLimits
Snowflake 30-day trial $400 in free credits; Enterprise Edition features incl. row access policies and dynamic data masking; no credit card required; AWS/Azure/GCP + region choice; sample data preloaded. 30 days or until credits run out; external network access, hybrid tables, Openflow limited; AI features off without a card; account suspended at end.
AWS Marketplace trial Equivalent $400 / 30-day Snowflake offer through AWS Marketplace. Same as above; some AWS infra costs may apply.

Our footprint is tiny (30 contracts, X-Small warehouses, 60-second auto-suspend), so $400 of credits is far more than the demo needs. The trial is the only faithful way to validate row access policies and masking end-to-end.

Plan

How we'll simulate now, validate later

  1. Now — govern in simulation

    poc/snowflake_sim.py emulates role context, the row access policy, masking, and query history offline. Demonstrated in the interactive demo's Snowflake console.

  2. Now — prove SQL portability

    Run sql/01…05 through fakesnow (or LocalStack) to catch syntax/portability issues in CI, and optionally model MARTS with dbt-duckdb.

  3. When approved — validate for real

    Stand up the 30-day trial, run the same DDL unchanged, and capture real QUERY_HISTORY / POLICY_REFERENCES evidence.