googleapis / googleapis/google-cloud-node

refactor!: Revamp `apiEndpoint`

Abierto
#7,828 0 comentarios 0 reacciones 0 asignados Ver en GitHub
api: common priority: p2 type: feature request
Lenguaje dominante
TypeScript
Estrellas
3.2k
Forks
712
Merge medio
2 d 3 h
PR fusionados (30 d)
99

Descripción

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

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.