2026 年 Node.js Driver 版本说明

本文包含 Node.js Driver 的版本说明,包括以下内容(如果适用):

  • 行为变更

  • 新功能

  • 面向客户的错误修复

Snowflake 对 Node.js Driver 更新使用语义版本控制。

有关文档,请参阅 Node.js 驱动程序

版本 2.4.0(2026 年 4 月 7 日)

新功能和更新

  • 添加了 browserRedirectPort 连接选项,用于自定义接收 EXTERNALBROWSER 身份验证回调的本地服务器端口。

  • 升级了 @aws-sdk/* 依赖项,以修复 fast-xml-parser 的安全漏洞。

  • 改进了保持活动状态 HTTP 代理,新增 30 秒空闲套接超时机制,可在服务器关闭连接前主动丢弃过期连接,从而防止套接字挂起 ECONNRESET 错误。

错误修复

  • 修复了在使用 EXTERNALBROWSER 或 OAUTH_AUTHORIZATION_CODE 身份验证器时,连接池会为每个池化连接重复触发浏览器身份验证提示的问题。现在,第一个连接会在后续池连接启动之前完成身份验证并缓存令牌。

  • 修复了由于格式错误的请求而导致会话令牌续订失败的问题,该问题会导致长时间运行的连接断开连接,而不是刷新过期的会话令牌。

  • 修复了查询上下文缓存未在查询失败时更新的问题,该问题可能导致后续查询落到不同 GS 节点时仍使用过期缓存。

版本 2.3.6(2026 年 3 月 25 日)

新功能和更新

  • connect() 中添加了对每种身份验证器类型(包括外部浏览器和 Okta)的支持,与 connectAsync() 保持一致。

  • 移除了 @google-cloud/storage 依赖项。GCS 传输现在直接使用 JSON API。forceGCPUseDownscopedCredential 连接选项已被移除,因为不再需要它。

  • 更新了默认的 jsonColumnVariantParser,对于非 JSON 兼容的变体值(如 undefinedNaNInfinity)将回退到基于 eval 的解析方式,恢复了 2.3.5 之前的行为,同时保持 JSON.parse 作为主要解析器。

错误修复

  • 修复了 OAUTH_AUTHORIZATION_CODE 身份验证器未遵循 openExternalBrowserCallback 连接选项的问题。

  • 修复了 createConnection()createPool() 的类型,使其可以不传入任何实参,与从 connections.toml 加载配置的运行时行为保持一致。

  • ConnectionOptions 类型中的 account 字段修复为可选,因为它可以派生自 accessUrlhost

  • 修复了 SSO URL 请求返回服务器端错误时,外部浏览器 SSO 身份验证崩溃的问题。

版本 2.3.5(2026 年 3 月 17 日)

新功能和更新

  • 添加了通过使用 SF_SKIP_TOKEN_FILE_PERMISSIONS_VERIFICATION 环境变量来跳过令牌文件权限检查的功能。

  • 在引擎中添加了 Node 18+,这是自 2.x 版本以来官方支持的最低版本。

  • PLATFORM 字段添加到了 login-request 遥测。

  • 向以前未发现的查询执行路径添加了请求重试。

  • 添加了 rowStreamHighWaterMark 连接选项,用于控制通过 statement.streamRows() 流式传输查询结果时缓冲的行数。

  • 添加了将查询结果转换为具有精度损失的 JavaScript 数字。

  • 增加了在通过 createConnection() 且不带参数加载 connections.toml 时对 snake_case 键的支持。

  • 导出了 normalizeConnectionOptions() 工具函数,用于将 snake_case(蛇形命名法)的连接配置键转换为 camelCase(驼峰命名法),并支持键别名和特定缩略词的覆盖处理。

  • login-request 遥测中,添加了 LIBC_FAMILYLIBC_VERSION 字段。

  • 添加了 crlDownloadMaxSize 配置选项,用于在下载 CRL 文件时强制执行最大响应大小限制。

  • 为 CRL 验证增加了 RSASSA-PSS 签名验证支持。

  • 改进了 OAuth 失败时的错误详细信息。

  • 将默认的 jsonColumnVariantParser 更改为 JSON.parse

  • 更新了 Linux GNU minicore 二进制文件,以 glibc 2.18 为目标版本,从而实现对旧版 Linux 发行版更广泛的兼容性。

错误修复

  • 修复了使用捆绑包时 OAuth 崩溃问题。

  • 修复了 Binds 类型,使其允许只读数组。

  • 修复了 connectAsync() 方法在连接完成前就已返回的问题。

  • 修复了 connect()connectAsync() 中应为可选的回调参数处理不正确的问题。

  • 修复了以下错误:如果用户在配置中意外设置了账户和主机,则会生成无效的 JWT。

  • 修复了以下错误:当解析包含 Microsoft Identity Platform v2.0 令牌的可选参数的 JSON 媒体类型失败时,会导致 OAuth 客户端凭证流程失败。

  • 修复了 disableSamlUrlCheck 的类型,使其使用正确的大小写:disableSamlURLCheck

  • 修复了 getDefaultCacheDir() 在未配置用户主目录的环境中崩溃的问题,现在会回退到 os.tmpdir()

  • 修复了 SF_OCSP_RESPONSE_CACHE_DIR 未被直接用作 OCSP 缓存目录的问题。

  • 修复了 noProxyNO_PROXY 处理中的错误:

    • .domain.com 通配符格式未能正确匹配目标主机。

    • . 被错误地匹配为“任意字符”而非“字面量点号”。

    • 部分字符串被错误地匹配了,而不是要求与目标字符串完全匹配。

  • 修复了 CRL ADVISORY 模式以警告级别而非调试级别记录故障。

  • 修复了在缓存的访问令牌过期时,OAuth 授权码重新认证未使用刷新后的访问令牌的问题。

  • 修复了当 IDP 未返回新的刷新令牌时,OAuth 授权码的刷新令牌被从缓存中移除的问题。

  • 修复了当服务器返回格式错误的查询响应时,未处理的 Promise 拒绝问题。

版本 2.3.4(2026 年 2 月 9 日)

新功能和更新

  • 减少了 PUT 操作期间的内存使用量。

  • APPLICATION_PATH 添加到了 login-request 遥测。

  • 将从 /etc/os-release 解析的Linux 发行详细信息添加到了 login-request 遥测。

  • 将 axios 升级到了版本 1.13.4,以解决 axios 拦截器中的一个错误。

  • 将其他依赖项升级到了最新次要版本。

错误修复

  • 修复了 HTTP 请求中不一致的重试行为,并确保正确重试所有可恢复的失败。

  • 修复了当连接配置中缺少 roleoauthScope 时,导致的 oauth 范围无效问题。

  • 修复了连接配置中的 APPLICATION 字段未传递到 login-request 遥测的问题。

  • 修复了由 minicore 模块导致的捆绑包构建错误。