Releases: snowflakedb/snowflake-connector-python
Releases · snowflakedb/snowflake-connector-python
4.1.0
- v4.1.0(November 18,2025)
- Added the
SNOWFLAKE_AUTH_FORCE_SERVERenvironment variable to force the use of the local-listening server when using theexternalbrowserauth method.- This allows headless environments (like Docker or Airflow) running locally to auth via a browser URL.
- Fix compilation error when building from sources with libc++.
- Pin lower versions of dependencies to oldest version without vulnerabilities.
- Added no_proxy parameter for proxy configuration without using environmental variables.
- Added OAUTH_AUTHORIZATION_CODE and OAUTH_CLIENT_CREDENTIALS to list of authenticators that don't require user to be set
- Added
oauth_socket_uriconnection parameter allowing to separate server and redirect URIs for local OAuth server. - Made platform_detection logs silent and improved its timeout handling. Added support for ENV_VAR_DISABLE_PLATFORM_DETECTION environment variable.
- Fixed FIPS environments md5 hash issues with multipart upload on Azure.
- Added the
4.0.0
- v4.0.0(October 09,2025)
- Added support for checking certificates revocation using revocation lists (CRLs)
- Added
CERT_REVOCATION_CHECK_MODEtoCLIENT_ENVIRONMENT - Added the
workload_identity_impersonation_pathparameter to support service account impersonation for Workload Identity Federation on GCP and AWS workloads only - Fixed
get_results_from_sfqidwhen usingDictCursorand executing multiple statements at once - Added the
oauth_credentials_in_bodyparameter supporting an option to send the oauth client credentials in the request body - Fix retry behavior for
ECONNRESETerror - Added an option to exclude
botocoreandboto3dependencies by settingSNOWFLAKE_NO_BOTOenvironment variable during installation - Revert changing exception type in case of token expired scenario for
Oauthauthenticator back toDatabaseError - Enhanced configuration file security checks with stricter permission validation.
- Configuration files writable by group or others now raise a
ConfigSourceErrorwith detailed permission information, preventing potential credential tampering.
- Configuration files writable by group or others now raise a
- Fixed the return type of
SnowflakeConnection.cursor(cursor_class)to match the type ofcursor_class - Constrained the types of
fetchone,fetchmany,fetchall- As part of this fix,
DictCursoris no longer a subclass ofSnowflakeCursor; useSnowflakeCursorBaseas a superclass of both.
- As part of this fix,
- Fix "No AWS region was found" error if AWS region was set in
AWS_DEFAULT_REGIONvariable instead ofAWS_REGIONforWORKLOAD_IDENTITYauthenticator - Add
ocsp_root_certs_dict_lock_timeoutconnection parameter to set the timeout (in seconds) for acquiring the lock on the OCSP root certs dictionary. Default value for this parameter is -1 which indicates no timeout. - Fixed behaviour of trying S3 Transfer Accelerate endpoint by default for internal stages, and always getting HTTP403 due to permissions missing on purpose. Now /accelerate is not attempted.
3.18.0
- v3.18.0(October 03,2025)
- Added support for pandas conversion for Day-time and Year-Month Interval types
3.17.4
- v3.17.4(September 22,2025)
- Added support for intermediate certificates as roots when they are stored in the trust store
- Bumped up vendored
urllib3to2.5.0andrequeststov2.32.5
3.17.3
- v3.17.3(September 02,2025)
- Enhanced configuration file permission warning messages.
- Improved warning messages for readable permission issues to include clear instructions on how to skip warnings using the
SF_SKIP_WARNING_FOR_READ_PERMISSIONS_ON_CONFIG_FILEenvironment variable.
- Improved warning messages for readable permission issues to include clear instructions on how to skip warnings using the
- Fixed the bug with staging pandas dataframes on AWS - the regional endpoint is used when required
- This addresses the issue with
create_dataframecall on Snowpark
- This addresses the issue with
- Enhanced configuration file permission warning messages.
3.17.2
- v3.17.2(August 23,2025)
- Fixed a bug where platform_detection was retrying failed requests with warnings to non-existent endpoints.
- Added disabling endpoint-based platform detection by setting
platform_detection_timeout_secondsto zero.
3.17.1
- v3.17.1(August 17,2025)
- Added
infer_schemaparameter towrite_pandasto perform schema inference on the passed data. - Namespace
snowlakereverted back to non-module.
- Added
3.17.0
- v3.17.0(August 16,2025)
- Added in-band HTTP exception telemetry.
- Added an
unsafe_skip_file_permissions_checkflag to skip file permission checks on the cache and configuration. - Added
APPLICATION_PATHwithinCLIENT_ENVIRONMENTto distinguish between multiple scripts using the Python Connector in the same environment. - Added basic JSON support for Interval types.
- Added in-band OCSP exception telemetry.
- Added support for new authentication methods with Workload Identity Federation (WIF).
- Added the
WORKLOAD_IDENTITYvalue for the authenticator type. - Added the
workload_identity_providerandworkload_identity_entra_resourceparameters.
- Added the
- Added support for the
use_vectorized_scannerparameter in the write_pandas function. - Added support of proxy setup using connection parameters without emitting environment variables.
- Added populating of
type_codeinResultMetadatafor interval types. - Introduced the
snowflake_versionproperty to the connection. - Moved
OAUTH_TYPEtoCLIENT_ENVIROMENT. - Relaxed the
pyarrowversion constrain; versions >= 19 can now be used. - Disabled token caching for OAuth Client Credentials authentication.
- Fixed OAuth authenticator values.
- Fixed a bug where a PAT with an external session authenticator was used while
external_session_idwas not provided inSnowflakeRestful.fetch. - Fixed the case-sensitivity of
Oauthandprogrammatic_access_tokenauthenticator values. - Fixed unclear error messages for incorrect
authenticatorvalues. - Fixed GCS staging by ensuring the endpoint has a scheme.
- Fixed a bug where time-zoned timestamps fetched as a
pandas.DataFrameorpyarrow.Tablewould overflow due to unnecessary precision. A clear error will now be raised if an overflow cannot be prevented.
3.16.0
- v3.16.0(July 04,2025)
- Bumped numpy dependency from <2.1.0 to <=2.2.4.
- Added Windows support for Python 3.13.
- Added
bulk_upload_chunksparameter towrite_pandasfunction. Setting this parameter to True changes the behaviour of write_pandas function to first write all the data chunks to the local disk and then perform the wildcard upload of the chunks folder to the stage. In default behaviour the chunks are being saved, uploaded and deleted one by one. - Added support for new authentication mechanism PAT with external session ID.
- Added
client_fetch_use_mpparameter that enables multiprocessed fetching of result batches. - Added basic arrow support for Interval types.
- Fixed
write_pandasspecial characters usage in the location name. - Fixed usage of
use_virtual_urlwhen building the location for gcs storage client. - Added support for Snowflake OAuth for local applications.
3.15.0
- v3.15.0(Apr 29,2025)
- Bumped up min boto and botocore version to 1.24.
- OCSP: terminate certificates chain traversal if a trusted certificate already reached.
- Added new authentication methods support for programmatic access tokens (PATs), OAuth 2.0 Authorization Code Flow, OAuth 2.0 Client Credentials Flow, and OAuth Token caching.
- For OAuth 2.0 Authorization Code Flow:
- Added the
oauth_client_id,oauth_client_secret,oauth_authorization_url,oauth_token_request_url,oauth_redirect_uri,oauth_scope,oauth_disable_pkce,oauth_enable_refresh_tokensandoauth_enable_single_use_refresh_tokensparameters. - Added the
OAUTH_AUTHORIZATION_CODEvalue for the parameter authenticator.
- Added the
- For OAuth 2.0 Client Credentials Flow:
- Added the
oauth_client_id,oauth_client_secret,oauth_token_request_url, andoauth_scopeparameters. - Added the
OAUTH_CLIENT_CREDENTIALSvalue for the parameter authenticator.
- Added the
- For OAuth Token caching: Passing a username to driver configuration is required, and the
client_store_temporary_credential propertyis to be set totrue.
- For OAuth 2.0 Authorization Code Flow: