Repository navigation
v3.24.0
·
201 commits
to main
since this release
Backward incompatibility
snow appcommands for Snowflake App Runtime projects now always operate onAPPLICATION SERVICEobjects and no longer fall back to plain SPCSSERVICEobjects.snow app open --settingsalways uses theapp-serviceSnowsight URL segment, andsnow app teardownalways drops and verifies the app viaAPPLICATION SERVICE. Apps still deployed as legacy SPCS services are no longer supported by these commands.
Deprecations
New additions
- Added optional
--validation-profiletosnow spcs service remote-build(e.g.ML_JOB,NOTEBOOK). The value is forwarded asvalidation_profileonPOST /api/v2/remote-build/executeso the image builder can select a pre-baked validation ruleset. When omitted, no image validation is requested. Ignored for--build-type app. - Added
snow spcs service remote-build,remote-build-status, andremote-build-historycommands that submit and track SPCS image/app builds via the remote build REST API. These commands are hidden by default and gated by theenable_spcs_remote_buildCLI feature flag. snow dcm plannow supports the--deltaflag for incremental deployments. This option enables processing only statements that have changed since the last deploy, plus statements potentially impacted by those changes.snow dcmcommands are now generally available (GA). DCM provides infrastructure-as-code capabilities for managing Snowflake objects through declarative SQL files. All DCM commands are now available without needing to enable theenable_snowflake_projectsfeature flag.- DCM projects:
snow dcm deploy,snow dcm plan,snow dcm preview, andsnow dcm raw-analyzenow support environment variables and secrets declared in a project manifest'stemplating.env_vars/templating.env_secretssections. Declared values are collected from the shell environment, or from a.envfile passed via--env-file/-e(the shell always wins for a name declared in both), and forwarded to the server;raw-analyzepreviously had no support for this at all. - Added
snow helpers check-version, which reports the installed Snowflake CLI version alongside the latest published version and whether an upgrade is available. Use--refreshto bypass the local cache and query PyPI/Homebrew directly. This is the on-demand equivalent of the automatic upgrade banner and always reports its result, even whenignore_new_version_warningis set. - Added
snow dbt copy, which copies files between a local directory and a stage (or between stages) for a dbt project. It is an alias ofsnow stage copyand supports the same paths and options (--recursive,--overwrite,--parallel,--auto-compress,--refresh). snow app eventsnow surfaces app health telemetry for Snowflake App Runtime projects.--type log|metric|lifecycleselects the stream (defaultlog);--since/--untilaccept relative shorthand (e.g.30m,6h,2d) or absolute UTC timestamps and switch logs to the historical event table, whilemetricandlifecycleare always historical and default to the last hour.--metric cpu|memory|networknarrows metric output and--rawemits unconverted values (bytes, cores). The baresnow app eventslive log tail is unchanged.snow dcm deploy,snow dcm purge,snow dcm plan,snow dcm preview,snow dcm refresh, andsnow dcm testnow show live, per-step progress as an interactive checklist instead of a single generic spinner.
Fixes and improvements
snow dcmcommands now summarize the files being uploaded as a tree beneath the upload step, instead of listing every file on its own line.- Recursive stage uploads now upload directories concurrently instead of one at a time. This applies to every command that uploads a directory tree to a stage (e.g.
snow stage copy --recursive,snow dcmdeploy/plan/analyze,snow dbt deploy,snow spcs service build-image). Upload wall-clock is dominated by per-PUT round-trip latency, so trees with many nested folders (e.g. one file per directory) see a large speedup. Total upload concurrency is bounded by theSNOWFLAKE_CLI_STAGE_UPLOAD_WORKERSsetting (config keycli.stage_upload_workers, default 16; set to 1 to restore the previous serial behavior). Forsnow stage copythis budget is shared with--parallelrather than multiplied by it, so existing invocations do not spawn more threads than before. snow dcm plan,deploy, andpurgenow render each altered object's changes as an indented tree, showing added, modified, and removed columns, constraints, grants, and other properties — with previous → new values — instead of only the object name. Long or multi-line values are collapsed to a single line.- A bare
USER$database resolved from the active connection is now expanded to the caller's personal database (USER$<username>) when the connection specifies a username, so commands validate and report against the fully-qualified name. snow appcommands (validate,open,events,deploy,teardown) now resolve their database and schema from the active connection like other CLI commands, so a bareUSER$database configured insnowflake.ymlis expanded to the caller's personal database.snow app setupnow defaults to a workspace for code storage on all databases (previously regular databases used a stage). When the role cannot create a workspace it uses a stage instead, andsnow app deployalso falls back to a stage if a workspace cannot be used.- Upgraded
GitPythonfrom 3.1.50 to 3.1.57. snow dcmcommands run with--save-outputnow write artifacts directly into theout/directory, with each command's response inout/<command>_result.json, instead of nesting them under a per-command subdirectory. Theout/directory is recreated empty at the start of every such run.