googleapis / googleapis/google-cloud-node
refactor!: Revamp `apiEndpoint`
- 主要语言
- TypeScript
- 星标
- 3.2k
- 派生
- 712
- 平均合并
- 2 天 9 小时
- 30 天内合并 PR
- 104
描述
With the advent of TPC and PSC, there’s a lot of complexity with apiEndpoints. To improve, we should:
- expose an `async Storage#getEndpoint()` method
- make the `apiEndpoint` property private
- remove the `useAuthWithCustomEndpoint` parameter/property
- remove the internal `customEndpoint` parameter/property
Additionally, if `STORAGE_EMULATOR_HOST` is detected and used the [`PassThrough`](https://github.com/googleapis/google-auth-library-nodejs/blob/b070ffbfeb35a7f4552e86bf1840645096951b58/src/auth/passthrough.ts#L19-L26) `AuthClient` should be used by default (which can be overwritten via the existing `authClient` parameter) - removing the need for the `useAuthWithCustomEndpoint` parameter.
This will greatly clean-up the code base as:
- Customers will not be required to manually provide the `universeDomain` - as we can determine it asynchronously via `GoogleAuth#getUniverseDomain`. This is a **major** convenience for TPC customers.
- We can offer a predictable, secure experience by not disabling auth by default when an `apiEndpoint` has been provided
- Classes will no longer have to distinguish between auth and non-auth contexts - we can simply use `auth` everywhere uniformly
Related:
- https://github.com/googleapis/nodejs-storage/issues/2400
- https://github.com/googleapis/nodejs-storage/issues/2092
- https://github.com/googleapis/google-auth-library-nodejs/pull/1771
We this change we can remove the following:
https://github.com/googleapis/nodejs-common/blob/0b4380af5e347ef0855d1e0ad45e055a2a9c6120/src/util.ts#L140-L148
https://github.com/googleapis/nodejs-common/blob/0b4380af5e347ef0855d1e0ad45e055a2a9c6120/src/util.ts#L766-L777
贡献指南
调研方向
首先跟踪 Storage API 及其 apiEndpoint、useAuthWithCustomEndpoint 和 customEndpoint 参数与属性。阅读链接的 nodejs-common src/util.ts 范围,以及相关的 storage issues 和 auth-library pull request,以了解背景。完成标准是暴露 getEndpoint()、将 apiEndpoint 设为 private、移除过时参数,并让 emulator auth 默认使用 PassThrough,同时 authClient 仍可被覆盖。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- gcp, nodejs, typescript
- 领域
- api, backend, cloud
- Issue 类型
- 重构
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 25/100