Install Snowdag
Prerequisites
You need a Snowflake role that can install the Snowdag Native App and grant the privileges it requests. The app needs account-level privileges to create compute pools and bind service endpoints.
You also need a Snowflake image repository that contains your Dagster code server image. The same image is used for run workers, so it must include your project code and runtime dependencies.
Install the App
Install the Snowdag Native App from the package made available by the provider. After installation, grant the requested privileges to the application if they were not auto-granted:
GRANT CREATE COMPUTE POOL ON ACCOUNT TO APPLICATION snowdag_app;
GRANT BIND SERVICE ENDPOINT ON ACCOUNT TO APPLICATION snowdag_app;
Snowflake invokes the app grant callback after required privileges are granted. If startup needs to be retried manually, call:
CALL snowdag_app.app_public.start_app();
CALL snowdag_app.app_public.service_status();
Grant the Snowdag application role to users or roles that should open the Dagster UI:
GRANT APPLICATION ROLE snowdag_app.APP_USER TO ROLE <consumer_role>;
Prepare a Code Image Repository
Create a consumer-owned image repository and grant the installed application read access:
CREATE DATABASE IF NOT EXISTS SNOWDAG_CONSUMER_DB;
CREATE SCHEMA IF NOT EXISTS SNOWDAG_CONSUMER_DB.CODE;
CREATE IMAGE REPOSITORY IF NOT EXISTS SNOWDAG_CONSUMER_DB.CODE.CONSUMER_REPO;
GRANT USAGE ON DATABASE SNOWDAG_CONSUMER_DB TO APPLICATION snowdag_app;
GRANT USAGE ON SCHEMA SNOWDAG_CONSUMER_DB.CODE TO APPLICATION snowdag_app;
GRANT READ ON IMAGE REPOSITORY SNOWDAG_CONSUMER_DB.CODE.CONSUMER_REPO
TO APPLICATION snowdag_app;
Build and push your Dagster code image to that repository. The image must expose the Python module that contains your Dagster definitions.
Add a Code Location
Register the code-location service with Snowdag:
CALL snowdag_app.app_public.add_code_location(
'finance',
'/SNOWDAG_CONSUMER_DB/CODE/CONSUMER_REPO/finance-dagster:2026-05-29',
'finance.definitions'
);
Snowdag creates an app-owned service named CODE_LOCATIONS.FINANCE in its
code-location compute pool, then restarts the control-plane service so Dagster
regenerates workspace.yaml.
After the service is ready, open the Dagster UI from the Snowflake service
endpoint for core.dagster.