后端【免费下载链接】google-api-nodejs-clientGoogles officially supported Node.js client library for accessing Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT (Service Tokens) is included.项目地址https://gitcode.com/gh_mirrors/go/google-api-nodejs-client点击查看免费下载导读policyanalyzer是 Google 官方 Node.js 客户端库 google-api-nodejs-client 中以独立 npm 包googleapis/policyanalyzer发布的一个子模块用于在 Node.js 中调用 Google Cloud Policy Analyzer API查询云资源上的策略活动如服务账号的最近一次认证活动。本文以仓库中的 policyanalyzer 子包 CHANGELOG 为主线完整梳理该子包从 2022 年 12 月首个 1.0.0 到当前 9.0.1 的全部版本轨迹剖析其中的破坏性变更尤其是 Node 运行时版本要求的三轮提升、update the API 与 run the generator 两类自动生成更新、以及googleapis-common依赖升级对使用者的影响并结合子包源码与 Discovery 文档给出升级评估与实战验证方法。一、版本演进总览从 1.0.0 到 9.0.1 的完整时间线根据 CHANGELOG.md 的记录policyanalyzer子包自 2022-12-22 发布 1.0.0 以来共经历了 22 次发布当前版本为 9.0.12026-09-23。全部版本及关键变更汇总如下版本发布日期类型核心变更内容9.0.12026-09-23Bug Fixesupdate the API提交 64059ce与服务端 API 定义重新同步9.0.02026-09-14BREAKING将所有 apiary 生成包的 Node 最低版本重新提升至 22issue #40208.0.02026-09-10BREAKINGapiary 最低 Node 版本提升至 22#4011run the generator修复重新支持 Node 18、依赖升级到 Node 227.0.02026-09-10BREAKINGapiary 最低 Node 版本提升至 22#4011修复重新支持 Node 186.0.02026-09-09BREAKING同 #4011 Node 22 变更run the generator修复 Node 18 与依赖升级5.1.12026-09-09Bug Fixes重新支持 Node 18提交 eccac1d5.1.02026-09-02Featuresrun the generator#3992提交 5f7d438依赖升级到 Node 225.0.12025-12-05Bug Fixesupdate the API提交 d4cd33e5.0.02025-10-15BREAKINGrun the generator#3814提交 4ba19d04.0.02025-09-16BREAKINGreleasing for our libraries#3769升级googleapis-common至 8.0.0#37313.0.22025-08-07Bug Fixes升级googleapis-common至 8.0.0#37313.0.12025-07-08Bug Fixes两次update the API提交 273b3ce、84f072d3.0.02025-06-30BREAKING升级到 Node 18googleapis-common升级至 8.0.2-rcupdate the API2.0.12025-06-04Bug Fixesgoogleapis-common升级至 8.0.2-rc2.0.02025-05-29BREAKING升级到 Node 181.2.02024-06-21Featuresupdate the API提交 96053d3修复update the API提交 703ab7b1.1.02024-06-06Featuresupdate the API提交 96053d31.0.5 / 1.0.42024-05-02Bug Fixesupdate the API提交 703ab7b1.0.32023-10-11Bug Fixes依赖升级googleapis-common至 v7update the API提交 98148bf1.0.22023-08-25Bug Fixes依赖升级googleapis-common至 v71.0.12023-08-09Bug Fixesupdate the API提交 98148bf1.0.02022-12-22BREAKING首个正式版run the generator子模块现要求 Node 12#3073update the API提交 96abc5d从时间线可以观察到两个清晰规律其一主版本号Major的每一次递增都伴随着 BREAKING CHANGES 标记这是 release-please 语义化版本发布机制的直接体现其二绝大多数版本条目都包含自动生成性质的 update the API 或 run the generator 提交说明该子包的生命周期与 Google Cloud 服务端 API 定义Discovery 文档的演进保持高频同步。二、破坏性变更主线Node.js 运行时版本要求的三轮提升CHANGELOG 中反复出现的 BREAKING CHANGES 几乎都指向同一个主题——Node.js 最低支持版本的上调。整理后可以还原出清晰的三阶段演进1.0.02022-12-22随主仓库的生成器重构子模块的最低 Node 版本要求提升至Node 12issue #3073。2.0.0 / 3.0.02025-05-29、2025-06-30连续两个主版本都将最低版本提升至Node 18期间还伴随googleapis-common从 v7 到 8.0.0、再到 8.0.2-rc 的依赖升级。6.0.0 / 7.0.0 / 8.0.0 / 9.0.02026-09-09 至 2026-09-14短短数日内apiary 生成框架将全部子包的最低 Node 版本提升至Node 22issue #4011、#4020。一个值得注意的细节是在 6.0.0、7.0.0、8.0.0 这几个紧邻的版本中都同时出现了 add back support for node 18 与 upgrade dependencies in generated packages to Node 22 的修复项。结合版本日期来看可以推断生成器在向 Node 22 迁移的过程中曾经发生过一次先收紧、再回退、再收紧的快速调整5.1.1 与 8.0.0 先后重新加入 Node 18 支持而 9.0.0 最终确立了 Node 22 的底线。这一结论在当前仓库的 子包 package.json 中可以得到印证其engines字段明确声明engines: { node: 22.0.0 }升级提示如果你的部署环境CI 流水线、Cloud Functions、GKE 容器镜像等仍运行 Node 18 或更低版本使用该子包前必须先确认运行时满足22.0.0的要求否则安装或运行时可能触发 engines 校验错误。这是本子包历史上升级成本最高的一类变更。三、update the API 与 run the generator自动生成更新的两种形态浏览整个 CHANGELOG绝大多数条目只包含两类提交理解它们有助于解读每一次发版的实际含义update the API如提交 64059ce、d4cd33e、273b3ce、84f072d、96053d3、703ab7b、98148bf、96abc5d当 Google Cloud 服务端更新了 Policy Analyzer API 的 Discovery 文档时仓库会重新生成子包的 TypeScript 客户端代码并发布新版本。这类提交通常对应服务端 API 参数、枚举、Schema 的细微调整对使用者而言往往是透明的——但建议在升级后重新编译并运行一次基础调用确认行为未变。run the generator如提交 5f7d438、4ba19d0、eda0707当生成器框架本身升级例如 apiary 的最低 Node 版本策略调整时整个子包会全量重新生成。这类提交往往与 BREAKING CHANGES 一同出现因为生成产物package.json的engines、依赖版本、类型定义形态都可能发生变化。从发布节奏看update the API 几乎平均每年出现 24 次而 run the generator 则集中出现在生成框架的大版本升级节点上。这正是 Google 官方 API 客户端文档驱动、自动生成、语义化发版工作流的典型体现。四、依赖演进googleapis-common 的版本爬升googleapis-common是该子包唯一的运行时依赖承载了createAPIRequest、认证客户端类型、GoogleConfigurable等全部底层能力。CHANGELOG 记录了这一依赖的完整爬升轨迹版本节点googleapis-common 版本1.0.x2023v7issue 对应提交 9491ec12.x → 3.0.22025 年中8.0.0 → 8.0.2-rc当前9.0.1^9.0.0当前仓库 package.json 的依赖声明为dependencies: { googleapis-common: ^9.0.0 }对于只使用googleapis/policyanalyzer独立子包的用户googleapis-common是自动安装的传递依赖一般无需手动处理但若你的项目中同时引用了googleapis全家桶或其他 Google 子包需注意多个子包对googleapis-common版本要求的兼容性避免依赖冲突。五、从 CHANGELOG 到源码policyanalyzer 子包的实际能力CHANGELOG 只记录何时变了什么而子包现在能做什么则需要结合源码与 Discovery 文档来回答。以下内容可作为理解该子包 API 面的背景也有助于评估升级影响。5.1 双版本支持v1 与 v1beta1子包的 index.ts 通过VERSIONS映射表注册了两个 API 版本export const VERSIONS { v1: policyanalyzer_v1.Policyanalyzer, v1beta1: policyanalyzer_v1beta1.Policyanalyzer, };对应地src/index.ts 向主库导出policyanalyzer_v1与policyanalyzer_v1beta1两个命名空间src/apis/index.ts 将其注册为google.policyanalyzer。两种典型用法const {google} require(googleapis); // 方式一按版本名获取 const policyanalyzer google.policyanalyzer(v1); // 方式二显式指定选项 const policyanalyzerV1beta1 google.policyanalyzer({ version: v1beta1, auth: authClient, });两个版本的实现文件分别为 v1.ts 与 v1beta1.ts结构完全对称各 825 行。5.2 资源层级与唯一的核心方法从 v1.ts 的Policyanalyzer类可以看到客户端暴露出三条顶层资源路径且结构完全一致Policyanalyzer ├── folders → locations → activityTypes → activities.query ├── organizations → locations → activityTypes → activities.query └── projects → locations → activityTypes → activities.query也就是说整个 Policy Analyzer API 只有唯一一个核心 RPC——activities.query用于Queries policy activities on Google Cloud resources查询 Google Cloud 资源上的策略活动。该方法的底层请求定义可以在 Discovery 文档 中确认HTTP 方法为GET路径模板为v1/{parent}/activities:query服务端基址为https://policyanalyzer.googleapis.com/与 v1.ts 中硬编码的rootUrl一致。5.3 请求参数说明含默认值与取值范围以projects.locations.activityTypes.activities.query为例v1.ts该方法接受以下参数参数必填类型说明parent是string容器资源路径合法格式为projects/[PROJECT_ID\|PROJECT_NUMBER]/locations/[LOCATION]/activityTypes/[ACTIVITY_TYPE]folders、organizations 同理。对应路径正则^projects/[^/]/locations/[^/]/activityTypes/[^/]$filter否string过滤表达式。对serviceAccountLastAuthentication活动支持activities.full_resource_name {} [STRING]与activities.fullResourceName {} [STRING]对serviceAccountKeyLastAuthentication活动同理[STRING]为服务账号或服务账号密钥的完整资源名pageSize否integer (int32)单页最大结果数上限为 1000非正值被忽略若响应中存在nextPageToken说明还有更多结果pageToken否string翻页令牌取上一次响应的nextPageToken值且其余参数需与上一请求保持一致完整的调用示例直接内嵌在源码注释中v1.tsconst {google} require(googleapis); const policyanalyzer google.policyanalyzer(v1); async function main() { const auth new google.auth.GoogleAuth({ // 该 API 唯一声明的 OAuth scope scopes: [https://www.googleapis.com/auth/cloud-platform], }); const authClient await auth.getClient(); google.options({auth: authClient}); const res await policyanalyzer.projects.locations.activityTypes.activities.query( { // Required parent: projects/my-project/locations/my-location/activityTypes/my-activityType, // Optional filter: activities.full_resource_name {} projects/my-project/serviceAccounts/my-samy-project.iam.gserviceaccount.com, pageSize: 100, } ); console.log(res.data); } main().catch(e { console.error(e); throw e; });需要说明的是调用前需先在 Google Cloud Console 启用policyanalyzer.googleapis.comAPI并完成gcloud auth application-default login或等价的应用默认凭据配置详见源码注释中的前置步骤。5.4 响应结构Activity 与分页query方法的响应类型为Schema$GoogleCloudPolicyanalyzerV1QueryActivityResponse包含两个字段discovery/policyanalyzer-v1.jsonactivitiesGoogleCloudPolicyanalyzerV1Activity[]匹配过滤条件的一组活动nextPageToken存在更多结果时返回用于下一次请求的pageToken。单个Activity对象对应 v1.ts 中的Schema$GoogleCloudPolicyanalyzerV1Activity结构如下字段类型说明activityobject解释该活动的自定义字段结构key-value 形式activityTypestring活动类型fullResourceNamestring标识资源的完整资源名full resource nameobservationPeriodObservationPeriod构建该活动所依据的数据观测区间其中ObservationPeriod的startTime/endTime是google-datetime格式的时间戳且文档明确指出这两个时间的时间部分始终为07:00:00Z即观测区间以固定的 UTC 7 点为边界进行对齐。六、版本策略与升级建议如何安全地跟随发布节奏综合 CHANGELOG 与仓库现状可以给出以下可操作的升级建议先核对 Node 运行时本子包当前要求node 22.0.0见 package.json。升级任何版本前先确认运行环境满足该底线这是历史上最频繁的 BREAKING CHANGES 来源。区分破坏性变更的信号版本号递增至新的 Major如 5 → 6、8 → 9时优先查看 CHANGELOG 中标注⚠ BREAKING CHANGES的条目若仅包含 update the API / Bug Fixes通常可放心升级但仍建议跑一遍回归测试。使用语义化版本约束独立子包以googleapis/policyanalyzer发布建议在package.json中采用^9.0.1之类的 caret 约束让 patch 与 minor 更新自动进入同时避免未经评估就跨越 Major。验证 API 行为升级后可用上文 5.3 节的最小调用示例做一次冒烟测试重点检查parent路径构造与filter表达式是否与服务端最新文档一致——update the API 类发布偶尔会调整参数语义。关注生成器与公共依赖若同时使用主包googleapis或其它 Google 子包注意googleapis-common的版本一致性当前为^9.0.0尽量让各子包处于相近的发布时间窗口。七、延伸阅读子包 CHANGELOG 全文本文所有版本条目的原始依据子包 README安装与使用入口v1 客户端源码Policyanalyzer类、资源层级与query方法完整实现v1beta1 客户端源码beta 版本的同构实现Discovery 文档v1服务端 API 定义、参数模式与响应 Schema 的权威来源子包 index.ts版本注册与getAPI派发逻辑release-please-config.json确认policyanalyzer作为独立发布单元由 release-please 管理赞分享后端【免费下载链接】google-api-nodejs-clientGoogles officially supported Node.js client library for accessing Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT (Service Tokens) is included.项目地址https://gitcode.com/gh_mirrors/go/google-api-nodejs-client点击查看免费下载相关推荐googleapis/gkeonprem 版本演进全解google-api-nodejs-client 中 GKE On-Prem 客户端包的 35 次发布史与升级要点googleapis/gkeonprem 版本演进全解google api nodejs client 中 GKE On Prem 客户端包的 35 次发布后端google-api-nodejs-client 之 clouderrorreporting 包版本演进、Node 版本要求与 Error Reporting API 接入指南google api nodejs client 之 clouderrorreporting 包版本演进、Node 版本要求与 Error Reporting后端google-api-nodejs-client 中 alertcenter 子包CHANGELOG 版本演进与 v1beta1 API 实现解析google api nodejs client 中 alertcenter 子包CHANGELOG 版本演进与 v1beta1 API 实现解析 本文以 s后端上一篇SZTextView开源项目贡献指南从 Fork 到 PR 的完整流程下一篇Thorium轻量级浏览器内存优化与性能提升的开源解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考