New features:
- Added a CRL cache cleanup, so expired CRLs no longer accumulate in long-lived processes.
- Added new environment variables:
SF_CRL_CACHE_CLEANUP_INTERVAL(default 3600 seconds; set to 0 to disable). Sets the time between the cleanup background thread runs.SF_CRL_CACHE_VALIDITY_TIME(default 86400 seconds). Sets the lifetime of cached CRL in the memory.SF_CRL_ON_DISK_CACHE_REMOVAL_DELAY(default 604800 seconds). Sets the lifetime of cached CRLs on the disk.
(#1059)
- Added new environment variables:
- Added the
SF_CON_WIF_HOSTconnection attribute so the STS/IAM endpoint used for AWS and GCP Workload Identity Federation can override the connection domain (#1025). - Reverted the 2.9.0 AWS WIF default from
STS:GetWebIdentityToken(JWT) back to a signedGetCallerIdentitypresigned URL. The JWT path is now opt-in via theSF_CON_WIF_AWS_USE_OUTBOUND_TOKENconnection attribute or theWIF_AWS_USE_OUTBOUND_TOKENconnection-string key. The default isSF_BOOLEAN_FALSE/false(#1041). - Migrated Azure storage from azure-storage-cpplite to Azure SDK for C++ (azure-storage-blobs 12.18.0) (#1044, #1049).
- Updated curl to 8.21.0 (#1027).
Bug fixes:
- Restricted
WORKLOAD_IDENTITYauthentication to recognized Snowflake hosts before fetching ambient cloud credentials (#1068). The environment variableSNOWFLAKE_WIF_ALLOWED_HOST_SUFFIXESvariable can add extra trusted suffixes. - Fixed logging credentials in diagnostic traces (#1067).
- Fixed the HTTP retry path so the request buffer is reset correctly (#1054).
- Zero-initialized
Stopwatchso timing logs no longer report uptime-scale elapsed times (#1057). - Fixed a delay in the AWS identity detector (#1042).
- Removed the configurable WIF attestation audience introduced in 2.9.2: the
SF_CON_WIF_AUDIENCEattribute, theWIF_AUDIENCEconnection-string key, and theSF_SNOWFLAKE_WIF_AUDIENCEdefault (#1058). - Tightened
sf_strncpybounds checking after the Azure SDK migration to prevent a buffer overflow (#1044).