Releases: snowflakedb/snowflake-cli
Releases · snowflakedb/snowflake-cli
v2.5.0-rc0
Backward incompatibility
Deprecations
New additions
- Added
snow app bundle
command that prepares a local folder in the project directory with artifacts to be uploaded to a stage as part of creating a Snowflake Native App.- Snowflake Native App projects can now optionally generate CREATE FUNCTION or CREATE PROCEDURE declarations in setup scripts from Snowpark python code that includes decorators (e.g. @ sproc, @ udf).
- Added
snow app validate
command that validates the setup script SQL used to create a Snowflake Native App for syntax validity, invalid object references, and best practices- Added new
native_app.scratch_stage
field tosnowflake.yml
schema to allow customizing the stage that the CLI uses to run the validation
- Added new
- Changed
snow app deploy
andsnow app run
to trigger validation of the uploaded setup script SQL and block uploads on validation failure, pass--no-validate
to disable - Changed
snow app version create --patch
to require an integer patch number, aligning with what Snowflake expects - Added
snow notebook
commands:snow notebook execute
enabling head-less execution of a notebook.snow notebook create
proving an option to create a Snowflake Notebook from a file on stage.
- Added templating support for project definition file.
- Template variables can now be used anywhere in the project definition file.
- Added
--default
flag tosnow connection add
commands allowing users to mark the new connection as default.
Fixes and improvements
- Fixed error handling for malformatted
config.toml
- Fixed ZIP packaging of Snowpark project dependencies containing implicit namespace packages like
snowflake
. - Deploying function/procedure with
--replace
flag now copies all grants - Fixed MFA caching
- Fixed
DeprerationWarning
/SyntaxWarning
due to invalid escape sequences - Improved error message in
snow spcs image-registry login
when docker is not installed. - Improved detection of conflicts between artifact rules for native application projects
- Fixed URL generation for applications, streamlits, and notebooks that use a quoted identifier with spaces.
v2.4.1
Backward incompatibility
Deprecations
New additions
Fixes and improvements
- Fixed MFA caching
v2.4.0
v2.4.0
Backward incompatibility
Deprecations
New additions
- Added the
--cascade
option tosnow app teardown
command that drops all application objects owned by the application. - Add external access integration to snow object commands
- Add aliases for
snow object list/describe/drop
commands under:snow stage
for stagessnow git
for git repository stagessnow streamlit
for streamlit appssnow snowpark
for procedures and functionssnow spcs compute-pool
for compute poolssnow spcs image-repository
for image repositoriessnow spcs service
for services
snow sql
works now withsnowflake.yml
file. The variables defined in the newenv
section
ofsnowflake.yml
will be used to expand templates.snow sql
support executing multiple files. Users can use-f/--file
flag more than once to execute queries
from many files.snow git execute
andsnow stage execute
support passing input variables for SQL execution.- Added
snow cortex
commands:complete
- Given a prompt, the command generates a response using your choice of language model.
In the simplest use case, the prompt is a single string. You may also provide a JSON file with conversation history including multiple prompts and responses for interactive chat-style usage.extract-answer
- Extracts an answer to a given question from a text document.
The document may be a plain-English document or a string representation of a semi-structured (JSON) data object.sentiment
- Returns sentiment as a score between -1 to 1 (with -1 being the most negative and 1 the most positive, with values around 0 neutral) for the given English-language input text.summarize
- Summarizes the given English-language input text.translate
- Translates text from the indicated or detected source language to a target language.search
- for integration with Cortex Search Service
- When invoked without command help is displayed by default with list of available commands.
- Add tab-completion for
snow
command.
Fixes and improvements
- Improved support for quoted identifiers.
- Fixed creating patches with
snow app version create
when there are 2 or more existing patches on a version - Using
--format=json
adds trailing new line to avoid%
being added by some terminals to signal no new line at the end of output. - Fixed
--interactive
flag to be enabled by default in interactive environments and added the--no-interactive
flag to be able to turn off prompting.
v2.4.0-rc1
Backward incompatibility
Deprecations
New additions
- Added the
--cascade
option tosnow app teardown
command that drops all application objects owned by the application. - Add external access integration to snow object commands
- Add aliases for
snow object list/describe/drop
commands under:snow stage
for stagessnow git
for git repository stagessnow streamlit
for streamlit appssnow snowpark
for procedures and functionssnow spcs compute-pool
for compute poolssnow spcs image-repository
for image repositoriessnow spcs service
for services
snow sql
works now withsnowflake.yml
file. The variables defined in the newenv
section
ofsnowflake.yml
will be used to expand templates.snow sql
support executing multiple files. Users can use-f/--file
flag more than once to execute queries
from many files.snow git execute
andsnow stage execute
support passing input variables for SQL execution.- Added
snow cortex
commands:complete
- Given a prompt, the command generates a response using your choice of language model.
In the simplest use case, the prompt is a single string. You may also provide a JSON file with conversation history including multiple prompts and responses for interactive chat-style usage.extract-answer
- Extracts an answer to a given question from a text document.
The document may be a plain-English document or a string representation of a semi-structured (JSON) data object.sentiment
- Returns sentiment as a score between -1 to 1 (with -1 being the most negative and 1 the most positive, with values around 0 neutral) for the given English-language input text.summarize
- Summarizes the given English-language input text.translate
- Translates text from the indicated or detected source language to a target language.search
- for integration with Cortex Search Service
- When invoked without command help is displayed by default with list of available commands.
- Add tab-completion for
snow
command.
Fixes and improvements
- Improved support for quoted identifiers.
- Fixed creating patches with
snow app version create
when there are 2 or more existing patches on a version - Using
--format=json
adds trailing new line to avoid%
being added by some terminals to signal no new line at the end of output. - Fixed
--interactive
flag to be enabled by default in interactive environments and added the--no-interactive
flag to be able to turn off prompting.
v2.4.0-rc0
Backward incompatibility
Deprecations
New additions
- Added the
--cascade
option tosnow app teardown
command that drops all application objects owned by the application. - Add external access integration to snow object commands
- Add aliases for
snow object list/describe/drop
commands under:snow stage
for stagessnow git
for git repository stagessnow streamlit
for streamlit appssnow snowpark
for procedures and functionssnow spcs compute-pool
for compute poolssnow spcs image-repository
for image repositoriessnow spcs service
for services
snow sql
works now withsnowflake.yml
file. The variables defined in the newenv
section
ofsnowflake.yml
will be used to expand templates.snow sql
support executing multiple files. Users can use-f/--file
flag more than once to execute queries
from many files.snow git execute
andsnow stage execute
support passing input variables for SQL execution.- Added
snow cortex
commands:complete
- Given a prompt, the command generates a response using your choice of language model.
In the simplest use case, the prompt is a single string. You may also provide a JSON file with conversation history including multiple prompts and responses for interactive chat-style usage.extract-answer
- Extracts an answer to a given question from a text document.
The document may be a plain-English document or a string representation of a semi-structured (JSON) data object.sentiment
- Returns sentiment as a score between -1 to 1 (with -1 being the most negative and 1 the most positive, with values around 0 neutral) for the given English-language input text.summarize
- Summarizes the given English-language input text.translate
- Translates text from the indicated or detected source language to a target language.search
- for integration with Cortex Search Service
- When invoked without command help is displayed by default with list of available commands.
- Add tab-completion for
snow
command.
Fixes and improvements
- Improved support for quoted identifiers.
- Fixed creating patches with
snow app version create
when there are 2 or more existing patches on a version - Using
--format=json
adds trailing new line to avoid%
being added by some terminals to signal no new line at the end of output. - Fixed
--interactive
flag to be enabled by default in interactive environments and added the--no-interactive
flag to be able to turn off prompting.
v2.3.1
Backward incompatibility
Deprecations
New additions
Fixes and improvements
- Fixed bugs in source artifact mapping logic for native applications
v2.3.0
Backward incompatibility
Deprecations
New additions
- New
snow sql
functionality:-D/--variable
allows variable substitutions in a SQL input (client-side query templating)
- New
snow app deploy
functionality:- Passing files and directories as arguments syncs these only:
snow app deploy some-file some-dir
. --recursive
syncs all files and subdirectories recursively.--prune
deletes specified files from the stage if they don't exist locally.
- Passing files and directories as arguments syncs these only:
Fixes and improvements
- More human-friendly errors in case of corrupted
config.toml
file. - Fixed a bug in
snow app
that caused files to be re-uploaded unnecessarily. - Optimize snowpark dependency search to lower the size of .zip artifacts and
the number of anaconda dependencies for snowpark projects. - Added support for fully qualified stage names in stage and git execute commands.
- Fixed a bug where
snow app run
was not upgrading the application when the local state and remote stage are identical (for example immediately aftersnow app deploy
). - Fixed handling of stage path separators on Windows
- The
--info
callback returns info about configured feature flags.
v2.3.0-rc1
Backward incompatibility
Deprecations
New additions
- New
snow sql
functionality:-D/--variable
allows variable substitutions in a SQL input (client-side query templating)
- New
snow app deploy
functionality:- Passing files and directories as arguments syncs these only:
snow app deploy some-file some-dir
. --recursive
syncs all files and subdirectories recursively.--prune
deletes specified files from the stage if they don't exist locally.
- Passing files and directories as arguments syncs these only:
Fixes and improvements
- More human-friendly errors in case of corrupted
config.toml
file. - Fixed a bug in
snow app
that caused files to be re-uploaded unnecessarily. - Optimize snowpark dependency search to lower the size of .zip artifacts and
the number of anaconda dependencies for snowpark projects. - Added support for fully qualified stage names in stage and git execute commands.
- Fixed a bug where
snow app run
was not upgrading the application when the local state and remote stage are identical (for example immediately aftersnow app deploy
). - Fixed handling of stage path separators on Windows
- The
--info
callback returns info about configured feature flags.
v2.3.0-rc0
Backward incompatibility
Deprecations
New additions
- New
snow sql
functionality:-D/--data
allows variable substitutions in a SQL input (client-side query templating)
- New
snow app deploy
functionality:- Passing files and directories as arguments syncs these only:
snow app deploy some-file some-dir
. --recursive
syncs all files and subdirectories recursively.--prune
deletes specified files from the stage if they don't exist locally.
- Passing files and directories as arguments syncs these only:
Fixes and improvements
- More human-friendly errors in case of corrupted
config.toml
file. - Fixed a bug in
snow app
that caused files to be re-uploaded unnecessarily. - Optimize snowpark dependency search to lower the size of .zip artifacts and
the number of anaconda dependencies for snowpark projects. - Added support for fully qualified stage names in stage and git execute commands.
- Fixed a bug where
snow app run
was not upgrading the application when the local state and remote stage are identical (for example immediately aftersnow app deploy
). - Fixed handling of stage path separators on Windows
- The
--info
callback returns info about configured feature flags.
v2.2.0
Deprecations
snow snowpark package lookup
no longer performs check against PyPi. Using--pypi-download
or--yes
has no effect and will cause a warning. In this way the command has single responsibility - check if package is
available in Snowflake Anaconda channel.snow snowpark package create
:--pypi-download
or--yes
flags are deprecated, have no effect and will cause a warning.
create
command always checks against PyPi.--allow-native-libraries
is deprecated in favour of boolean flag--allow-shared-libraries
.
Using old flag will cause a warning.
snow snowpark build
:--pypi-download
flag is deprecated, have no effect and will cause a warning. Build command always check against PyPi.--check-anaconda-for-pypi-depts
is deprecated and using it will cause warning, the functionality is replaced by--ignore-anaconda
--package-native-libraries
is deprecated and using it will cause warning, the functionality is replaced by--allow-shared-libraries
snow object stage
commands are deprecated and using them will cause a warning.
Functionality is replaced bysnow stage
commands.
New additions
- Added support for fully qualified name (
database.schema.name
) inname
parameter in streamlit project definition - Added support for fully qualified image repository names in
spcs image-repository
commands. - Added
--if-not-exists
option tocreate
commands forservice
, andcompute-pool
. Added--replace
and--if-not-exists
options forimage-repository create
. - Added support for python connector diagnostic report.
- Added
snow app deploy
command that creates an application package and syncs the local changes to the stage without creating or updating the application. - Added
is_default
column tosnow connection list
output to highlight default connection. snow snowpark package create
:- new
--ignore-anaconda
flag disables package lookup in Snowflake Anaconda channel.
All dependencies will be downloaded from PyPi. - new
--skip-version-check
skips comparing versions of dependencies between requirements and Anaconda. - new
--index-url
flag sets up Base URL of the Python Package Index to use for package lookup.
- new
snow snowpark build
:- new
--skip-version-check
skips comparing versions of dependencies between requirements and Anaconda. - new
--index-url
flag sets up Base URL of the Python Package Index to use for package lookup.
- new
- Added
--recursive
flag for copy from stage, it will reproduce the directory structure locally. - Added support for snowgit. New commands:
snow git setup
- wizard setting up a git repository stage and creating all necessary objectssnow git fetch
- fetches latest changes from the origin repository into Snowflake repositorysnow git list-branches
- lists all branches in the repositorysnow git list-tags
- lists all tags in the repositorysnow git list-files
- lists all files on provided branch/tag/commitsnow git copy
- copies files from provided branch/tag/commit into stage or local directorysnow git execute
- execute immediate files from repository
- Added command for execute immediate
snow stage execute
- Fetching available packages list from Snowflake instead of directly from Anaconda with fallback to the old method (for backward compatibility).
As the new method requires a connection to Snowflake, it adds connection options to the following commands:snow snowpark build
snow snowpark package lookup
snow snowpark package create
Fixes and improvements
- Adding
--image-name
option for image name argument inspcs image-repository list-tags
for consistency with other commands. - Fixed errors during
spcs image-registry login
not being formatted correctly. - Project definition no longer accept extra fields. Any extra field will cause an error.
- Changing imports in function/procedure section in
snowflake.yml
will cause the definition update on replace - Adding
--pattern
flag tostage list-files
command for filtering out results with regex. - Fixed snowpark build paths for builds with --project option (fixed empty zip issue).
- More clear error messages in
snow snowpark build
command - Adding support for any source supported by
pip
insnow snowpark
. - Fixed version parsing for packages lookup on Snowflake Anaconda Channel
- Fix handling database/schema/role identifiers containing dashes
- Fix schema override bug in
snow connection test
- Hidden incorrectly working config permissions warning on Windows
- Make errors from
snow connection test
more meaningful when role, warehouse or database does not exist.