snow app deploy

Uploads your project source to Snowflake, builds it remotely, and starts or upgrades the Application Service. This is the primary command for shipping changes to a Snowflake App Runtime project.

When the project snowflake.yml contains a snowflake-app entity, snow app deploy runs the Snowflake App Runtime flow (upload, build, deploy). When it contains a Native App entity, the command runs the Native App flow instead.

Syntax

snow app deploy
  --upload-only
  --build-only
  --deploy-only
  --connection <connection>
  --host <host>
  --port <port>
  --account <account>
  --user <user>
  --password <password>
  --authenticator <authenticator>
  --workload-identity-provider <workload_identity_provider>
  --private-key-file <private_key_file>
  --token <token>
  --token-file-path <token_file_path>
  --database <database>
  --schema <schema>
  --role <role>
  --warehouse <warehouse>
  --temporary-connection
  --mfa-passcode <mfa_passcode>
  --enable-diag
  --diag-log-path <diag_log_path>
  --diag-allowlist-path <diag_allowlist_path>
  --format <format>
  --verbose
  --debug
  --silent
  --enhanced-exit-codes

Arguments

None

Options

--upload-only

Re-upload source files without rebuilding or redeploying. Only one of --upload-only, --build-only, or --deploy-only can be used at a time. Default: False.

--build-only

Re-trigger the remote build without re-uploading or redeploying. Only one of --upload-only, --build-only, or --deploy-only can be used at a time. Default: False.

--deploy-only

Create or upgrade the Application Service without re-uploading or rebuilding. Only one of --upload-only, --build-only, or --deploy-only can be used at a time. Default: False.

--connection, -c, --environment TEXT

Name of the connection, as defined in your config.toml file. Default: default.

--host TEXT

Host address for the connection. Overrides the value specified for the connection.

--port INTEGER

Port for the connection. Overrides the value specified for the connection.

--account, --accountname TEXT

Name assigned to your Snowflake account. Overrides the value specified for the connection.

--user, --username TEXT

Username to connect to Snowflake. Overrides the value specified for the connection.

--password TEXT

Snowflake password. Overrides the value specified for the connection.

--authenticator TEXT

Snowflake authenticator. Overrides the value specified for the connection.

--workload-identity-provider TEXT

Workload identity provider (AWS, AZURE, GCP, OIDC). Overrides the value specified for the connection.

--private-key-file, --private-key-path TEXT

Snowflake private key file path. Overrides the value specified for the connection.

--token TEXT

OAuth token to use when connecting to Snowflake.

--token-file-path TEXT

Path to file with an OAuth token to use when connecting to Snowflake.

--database, --dbname TEXT

Database to use. Overrides the value specified for the connection.

--schema, --schemaname TEXT

Database schema to use. Overrides the value specified for the connection.

--role, --rolename TEXT

Role to use. Overrides the value specified for the connection.

--warehouse TEXT

Warehouse to use. Overrides the value specified for the connection.

--temporary-connection, -x

Uses a connection defined with command-line parameters, instead of one defined in config. Default: False.

--mfa-passcode TEXT

Token to use for multi-factor authentication (MFA).

--enable-diag

Whether to generate a connection diagnostic report. Default: False.

--diag-log-path TEXT

Path for the generated report. Defaults to system temporary directory.

--diag-allowlist-path TEXT

Path to a JSON file that contains allowlist parameters.

--format [TABLE|JSON|JSON_EXT|CSV]

Specifies the output format. Default: TABLE.

--verbose, -v

Displays log entries for log levels info and higher. Default: False.

--debug

Displays log entries for log levels debug and higher; debug logs contain additional information. Default: False.

--silent

Turns off intermediate output to console. Default: False.

--enhanced-exit-codes

Differentiate exit error codes based on failure type. Default: False.

--help

Displays the help text for this command.

Usage notes

Running snow app deploy with no phase flags performs the full pipeline:

  1. Upload: Syncs local source files to an internal stage.
  2. Build: Triggers a remote container build using the compute pool and external access integration specified in snowflake.yml.
  3. Deploy: Creates or upgrades the Application Service from the build output.

If a deploy fails partway through, retry just the failed phase:

  • snow app deploy --upload-only: Re-upload source files without rebuilding or redeploying.
  • snow app deploy --build-only: Re-trigger the build without re-uploading or redeploying.
  • snow app deploy --deploy-only: Create or upgrade the service without re-uploading or rebuilding.

Only one phase flag can be used at a time.

Examples

Deploy the full pipeline (upload, build, deploy):

snow app deploy

Re-trigger only the build after fixing a build error:

snow app deploy --build-only