DEV Community

augusto kiniama rosa
augusto kiniama rosa

Posted on • Originally published at augustokrosa.Medium on

The Unofficial Snowflake Monthly Release Notes: January 2025

Monthly Snowflake Unofficial Release Notes #New features #Previews #Clients #Behavior Changes!


Photo by Cristian Escobar on Unsplash

Welcome to the fantastic Unofficial Release Notes for Snowflake for January 2025. You’ll find all the latest features, drivers, and more in one convenient place.

As an unofficial source, I am excited to share my insights and thoughts. Let’s dive in! You can also find all of Snowflake’s releases here.

A few things:

  • This covers up to release 9.1
  • GA means General Availability, and Preview means Public Previews, PrPr means Private Previews

Behavior change bundles 2024_06 are active by default, 2024_07 is enabled by default but can be disabled, and 2024_08 can be enabled, and 2025_01 is planned mode.

What’s New in Snowflake

New Features

  • Organization account (GA), a new type of account that global organization administrators use to perform tasks that affect the entire organization
  • Snowflake Python Demos API (Preview), scaffold demos for Snowflake Notebooks by automating environment setup tasks such as configuring the database, schema, role, permissions, and dataset access, to streamline getting started with Snowflake Notebooks
  • Outbound private connectivity for Snowflake features (GA), create private endpoints in Snowflake to access a cloud platform using the platform’s private connectivity solution rather than the Internet
  • External stages using Azure Private Link (GA), configure an external stage and create a private endpoint so bulk loading from Azure storage occurs over Azure Private Link
  • External volumes using Azure Private Link (GA), configure an external volume and create a private endpoint so you can connect Snowflake to your external cloud storage for Apache Iceberg™ tables using Azure Private Link instead of the public Internet
  • Snowpipe automation using Azure Private Link (GA), configure an external stage and notification integration, and create a private endpoint, so that automatic Snowpipe data loads that are triggered by Microsoft Azure Event Grid use Azure Private Link instead of the public Internet
  • External stages using AWS PrivateLink (GA), configure an external stage and create a private endpoint so bulk loading from Amazon S3 storage occurs over AWS PrivateLink
  • External volumes using AWS PrivateLink (GA), configure an external volume and create a private endpoint so you can connect Snowflake to your external cloud storage for Apache Iceberg™ tables using AWS PrivateLink instead of the public Internet

Snowsight Updates

  • Snowflake Notebooks warehouse runtime on AWS PrivateLink and Azure Private Link (GA), ability to run notebooks warehouses through a private network
  • Snowsight enhancements to contact email management (GA), enhancements to how you manage your contact emails, ensuring you never miss important updates about your account

Snowflake Applications

  • Snowflake Native Apps with Snowpark Container Services support for AWS PrivateLink (Preview), support for AWS PrivateLink in Snowflake Native Apps with Snowpark Container Services

Data Lake Updates

  • External stage and external volume support for Amazon S3 access points (GA), support for using an Amazon S3 access point to connect Snowflake to Amazon S3 using an external stage or external volume
  • Apache Iceberg™ tables: Automated refresh (GA), support for automated refreshes of Apache Iceberg™ tables that use an external catalog. With automated refreshes, Snowflake polls your external Iceberg catalog in a continuous and serverless fashion to synchronize the metadata with the most recent remote changes

Streamlit Updates

  • Support for future grants in Streamlit in Snowflake (GA), future grants in Streamlit in Snowflake

SQL Updates

  • ARRAY_AGG function support for window frames, Support for row-based and range-based window frames in the ARRAY_AGG function, aggregate subsets of data by collecting the values from moving window frames into an array.

AI Updates (Cortex, ML, DocumentAI)

  • Cortex AI LLM Playground (Preview), perform side-by-side comparisons of text completions between any two language models available in Cortex AI or different settings of a single model
  • Custom instructions in Cortex Analyst (Preview), more control over the response using natural language, you can tell Cortex Analyst exactly how to generate SQL queries from within your semantic model YAML file
  • Document AI on GCP (GA), you can now run the service on GCP with full support

Hybrid Table Updates

  • Optimized COPY and INSERT bulk loads on empty hybrid tables (GA); when empty, get optimized bulk loading

Data Pipelines/Data Loading/Unloading Updates

  • Triggered tasks now support Data Shares (GA), trigger tasks to run when new data arrives from streams on Data Shares to optimize resource usage and automate pipeline execution
  • CREATE DYNAMIC TABLE command: New REQUIRE USER parameter added (GA), support for the REQUIRE USER parameter, which enables users to ensure that a dynamic table cannot refresh unless a user is specified via COPY SESSION
  • ALTER DYNAMIC TABLE command: New COPY SESSION parameter (GA), support for the COPY SESSION parameter, which enables you to run a refresh operation in a copy of the current session, using the same user and warehouse

Security, Privacy &Governance Updates

  • External key store integration for Tri-Secret Secure (GA), integration support for Tri-Secret Secure (TSS) with AWS external key stores to securely store and manage a customer-managed key (CMK) outside AWS. Snowflake currently only tests and supports Thales HSM and Thales CCKM data encryption products
  • Data metric functions: Support for referential integrity checks, a user-defined data metric function (DMF) can accept multiple tables as arguments, which simplifies referential integrity, matching and comparison, or conditional checking across different datasets
  • Join policies(Preview), means of protecting tables and views. When a join policy is applied to a table, queries either require or do not require a join. In addition, when joins are required, they can be restricted to certain joining columns
  • Pinning private endpoints (GA), configuring inbound AWS PrivateLink or Azure Private Link, pinning your private endpoint ensures that only an authorized private endpoint is used to send traffic from the customer network to an authorized Snowflake account. This helps you harden your security posture by reducing the network attack surface to your Snowflake account

Open-Source Updates

  • terraform-snowflake-provider 1.0.2 (published an overview of the grant_ownership resource, and other minor improvements and bug fixes)
  • Snowflake VS Code Extension 1.11.2 (Upgraded to snowflake-sdk v2.0.1 to fix invalid proxyport regression, )

Client, Drivers, Libraries and Connectors Updates

New features:

  • Go Snowflake Driver 1.13.0 (The driver now handles UUID as varchars, The driver honors driver.Valuer/fmt.Stringer interfaces when binding parameters, The driver detects when a response is JSON-based and runs a regular chunk downloader when Arrow batches mode is enabled to allow fetching response as rows, Added a timeout configuration for cloud providers calls, support for GCS region-specific endpoints, Fixed minor documentation formatting, retry when calling HEAD requests to GCP, Bumped the x/crypto library to version v0.31.0)
  • JDBC Driver 3.22.0 (added the following connection parameters: CLEAR_BATCH_ONLY_AFTER_SUCCESSFUL_EXECUTION parameter to clear batches only after successful execution, disableOCSPChecks parameter to replace the deprecated insecureMode parameter, IMPLICIT_SERVER_SIDE_QUERY_TIMEOUT parameter to set timeouts for sychronous queries on both the client and server, Added the SnowflakeStatement.setAsyncQueryTimeout method to timeout asynchronous queries on the server, Added the net.snowflake.jdbc.commons_logging_wrapper java property to configure handling logs from commons-logging)
  • Node.js 2.0.2 (added support for regional Google Cloud Storage endpoints, added support for endpoints without protocols for GCS, Updated the following dependencies: azure/storage-blob to version 12.26.x, aws-sdk/client-s3 to version 3.726.0, smithy/node-http-handler to version 4.0.1)
  • PHP PDO Driver for Snowflake 3.1.0 (support for Visual Studio 2022 (VS17), added support for PHP 8.4)
  • .NET Driver 4.3.0 (Added support for configuring connection parameters in TOML files, Added an MFA token cache, Added support for GCP region-specific endpoints, Made encryption headers for files downloaded by GET be case insensitive, The driver was tested with .net9 framework, Extended documentation for checking CRL endpoints for Windows users)
  • Snowflake CLI 3.3.0 (Added the following Snowflake Native Apps features and updates: Added the following commands to support release directives:snow app release-directive list, snow app release-directive set, snow app release-directive unset, Added support for release channels, including the following: Added support release channels in the snow app version create and snow app version drop commands, added the ability to specify a release channel when creating an application instance from a release directive (snow app run --from-release-directive --channel=), added the snow app release-channel list to list available release channels, added the s:codenowrap:now app release-channel add-accounts and snow app release-channel remove-accounts commands to support adding and removing accounts from release channels, added the snow app release-channel add-version and snow app release-channel remove-version commands to add versions to and remove versions from release channels, added the snow app publish command to simplify publishing versions to release channels and to update release directives, Made the following changes to the snow app version create command: The command now returns the version, patch, and label in JSON format, added the --from-stage option to allow version creation from the content of a stage without needing to re-synchronize to the stage, added the snow helpers import-snowsql-connections command to import connections from existing SnowSQL configurations, support for restricting user access to Snowflake CLI only)
  • Snowflake Connector for Python 3.13.0 (Added the iobound_tpe_limit connection parameter to limit the sizes of IO-bound ThreadPoolExecutors during PUT and GET commands. By default, the size is calculated to the lesser of the number of files and the number of CPU cores, Added the Connection.is_valid() method that verifies whether a connection is stable enough to receive queries, Updated the log level for cursor’s chunk rowcount from INFO to DEBUG, Added support for base64-encoded DER private key strings in the private_key authentication type, Updated README.md to include instructions on how to verify package signatures using cosign)
  • Snowflake Connector for Python 3.13.2 (The connector no longer uses scoped temporary objects)
  • Snowpark ML 1.7.3 (New Cortex features: Cortex functions now have “snake_case” names. For example, ClassifyText is now classify_text. The old “CamelCase” names still work, but will be removed in a future release, New Model Registry features: Registry now supports more than 500,000 features, Added user_files argument to Registry.log_model for including images or other files with the model, Added support for handling Hugging Face model configurations with auto-mapping functionality, New Data features: Added the DataConnector.from_sql constructor)
  • SQLAlchemy 1.7.3 (Added the force_div_is_floordiv flag to override the new default value (False) for div_is_floor_div in SnowflakeDialect, When force_div_is_floordiv is False, the division (/) operator is treated as a float division, while the // operator is treated as floor division, This flag is added to maintain backward compatibility with the previous SnowflakeDialect behavior, This flag will be removed in a future release, and SnowflakeDialect will use div_is_floor_div as False)
  • Snowflake Connector for Google Analytics Raw Data 2.10.0 (Added support for ingesting data by using the FRESH_DAILY export type: By default, the FRESH_DAILY export type is disabled. To enable it, call the ENABLE_PROPERTIES stored procedure. For details, see Enabling or disabling the ingestion of a property, You can’t disable auto reloading data for the FRESH_DAILY export type. For more information, see Updating data ingestion options)
  • Snowflake Connector for ServiceNow® V2 5.16.0 (A new CONFIGURE_DISPLAY_VALUE_FETCHING procedure was added. It is used to set global, default configuration for handling display values. Display value synchronization can also be configured on the table level, using the ENABLE_TABLE procedure, Data with resolved display values can now be fetched, instead of only raw data)
  • Snowflake Connector for MySQL/PostgreSQL 6.10.1 (Behaviour Change: The snapshot load now resumes from the point of interruption. It’s supported only for specific column types described in Resuming snapshot load after failures. For other types, it starts from the beginning, The connector was optimized to result in a significant cloud services cost reduction)

Bug fixes:

  • .NET Driver 4.3.0 (Improved security of intermediary files placed in OS temporary directories, which makes the files no longer world-readable. For more information, see CVE-2025–24788, Fixed an issue with handling null data in failed responses, Fixed an issue with logging diagnostic information, Fixed an issue with handling of spaces in the file path for PUT command with Google Cloud Storage, Fixed an issue with handling GCS endpoints without https:// prefix, Fixed an issue with downloading files with a GET operation that don’t have the SFC_DIGEST property in their metadata, Fixed the ability to use STDOUT as the log path in Easy Logging feature)
  • Go Snowflake Driver 1.13.0 (Fixed a memory leak in handling Arrow responses that caused leakage of 64 bytes of memory, Fixed an issue with ignoring the region when us-west-2 is used, check for empty private key before trying to generate JWT from it, driver uses the correct transport for cloud providers calls, driver no longer performs OCSP calls for cloud providers when OCSP is disabled)
  • JDBC Driver 3.22.0 (Fixed handling endpoints without protocol in PUT/GET operations in Google Cloud Storage, Fixed a performance issue with too frequent calls of toString when fetching results containing structured types, Fixed an issue with createArrayOf case-insensitivity, Fixed an issue where downloadStream could download different files with the same prefix, Fixed the possibility of %PATH% privilege escalation when authentication is set as EXTERNALBROWSER and used in a Windows environment. For more information, see CVE-2025-24789, Fixed the verification of the file permissions and owner created in Linux environments and used for caching tokens when authentication is set to EXTERNALBROWSER or USERNAME_PASSWORD_MFA. For more information, see CVE-2025-24790)
  • Node.js 2.0.2 (Fixed the verification of the token caching file permissions and its owner when authentication is set to EXTERNALBROWSER or USERNAME_PASSWORD_MFA. For more information, see CVE-2025–24791, Fixed the FileAndStageBindStatement type in the typings file, Fixed an issue with aborting requests and inconsistent request methods in HttpClient, Fixed an issue with the proxy configuration settings used for sending requests to a GCS bucket)
  • PHP PDO Driver for Snowflake 3.1.0 (Fixed an issue with executing unsupported queries like PUT or GET on stages causes a signed-to-unsigned conversion error that crashes the application using the driver. For more information, see CVE-2025–24792)
  • Snowflake CLI 3.3.0 (Fixed the inability to add patches to lowercase quoted versions, Fixed an issue with setting label to blank instead of None when not provided, Fixed the snow connection generate-jwt command to preserve command line connection options, Fixed stage path handling for notebook commands)
  • Snowflake Connector for Python 3.13.1 (Hardened the snowflake.connector.pandas_tools module against SQL injection. For more information, see CVE-2025–24793, The local OCSP cache has been updated to use the json module instead of pickle to serialize its contents. For more information, see CVE-2025–24794, The Linux credential cache file permissions have been updated explicitly to be only be owner readable. For more information, see CVE-2025–24795)
  • Snowpark ML 1.7.3 (Registry bug fixes: Fixed a bug that occurred when providing a non-range index pandas DataFrame as the input to ModelVersion.run, Improved random model registry name generation to avoid collisions, Fixed an issue when inferring a signature or running inference with Snowpark DataFrame that has a column whose type is ARRAY and contains a NULL value,ModelVersion.run now accepts a fully-qualified service name, Fixed an error in log_model for any scikit-learn models with only data preprocessing, including preprocessing-only pipeline models, Monitoring bug fixes: Fixed an issue with creating monitors using fully-qualified names)
  • SQLAlchemy 1.7.3 (Fixed an issue with support for the SqlAlchemy ARRAY, Fixed the return value of snowflake get_table_names, Fixed incorrect quoting of identifiers beginning with an underscore (_), Fixed the “ARRAY type not supported in HYBRID tables” error)
  • Snowflake Connector for Google Analytics Raw Data 2.9.0 (Fixed an issue in the sink view where some columns were displayed multiple times, To reduce ingestion errors, Google OAuth2 security credentials are now refreshed more frequently, To optimize the performance of ingestion, Snowflake now limits the number of worker tasks that can use BigQuery data exports)
  • Snowflake Connector for Google Analytics Raw Data 2.9.1 (The USERS and PSEUDONYMOUS_USERS export types, which in some cases caused the connector to stop responding when they were defined, are no longer defined in these cases)
  • Snowflake Connector for ServiceNow® V2 5.16.1 (Fixed an issue where calling the CONFIGURE_DISPLAY_VALUE_FETCHING stored procedure would fail to configure the default display values for tables and cause the Snowflake Connector for ServiceNow® V2 to stop responding)
  • Snowflake Connector for ServiceNow® V2 5.16.0 (Fixes for the connector state export process, Improved handling of DNS errors, CREATE_VIEW_WITH_DISPLAY_VALUES and ENABLE_REFERENCED_TABLES procedures now handle included columns configuration)
  • Snowflake Connector for ServiceNow® V2 5.15.2 (The connector now handles an exception when a table that is getting exported has incomplete configuration, The upgrade process no longer fails if the GET_TROUBLESHOOTING_DATA procedure doesn’t get created, The connector no longer fails when an internal state snapshot doesn’t created because of its size)
  • Snowflake Connector for MySQL 6.10.1 (Fixed a certain JDBC connection not being returned to the pool after use, The connector no longer creates short-lived tables, which increased cloud services usage, Fixed a bug when the database agent might enter an infinite loop when it couldn’t start incremental load for any table from a single data source., Snapshot and incremental replications do not fail on MySQL DATE or DATETIME values 0000-00-00 or values containing all zeroes in month or day. They are all replicated as NULL)
  • Snowflake Connector for PostgreSQL 6.10.1 (Fixed a certain JDBC connection not being returned to the pool after use, The connector no longer creates short-lived tables, which increased cloud services usage, Fixed a bug when the database agent might enter an infinite loop when it couldn’t start incremental load for any table from a single data source)

Conclusion

January 2025 appears to be the lowest release rate in the last 24 months of my unofficial release notes. I observed that Snowflake slowed down quite a bit in January; maybe December required a lot of vacations. While, there is a quite a few goodies that come along, focus seems along security and compliances features this month and some ML.

Enjoy the reading.

I am Augusto Rosa, a Snowflake Data Super Hero and Snowflake SME. You can follow me on LinkedIn.

Subscribe to my Medium blog https://blog.augustorosa.com for the most interesting Software, Data Engineering, Security and Snowflake news.

Sources:

API Trace View

Struggling with slow API calls?

Dan Mindru walks through how he used Sentry's new Trace View feature to shave off 22.3 seconds from an API call.

Get a practical walkthrough of how to identify bottlenecks, split tasks into multiple parallel tasks, identify slow AI model calls, and more.

Read more →

Top comments (0)

Heroku

This site is powered by Heroku

Heroku was created by developers, for developers. Get started today and find out why Heroku has been the platform of choice for brands like DEV for over a decade.

Sign Up

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay