From 07d7913be7f3e85ecf7933098384b80cd06070c4 Mon Sep 17 00:00:00 2001 From: Denes Antonio de Souza Date: Wed, 4 Jun 2025 17:55:12 -0300 Subject: [PATCH] feat(spanner): use credentials from connection options (#11492) * #11442 * Npm Format * JSON Array update command Spanner - FIX * Revert "JSON Array update command Spanner - FIX" This reverts commit 56a28e575686dcee770b5601041b7d76e3a3a5e2. --- .../SpannerConnectionCredentialsOptions.ts | 15 +++++++++++++++ src/driver/spanner/SpannerDriver.ts | 10 ++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/driver/spanner/SpannerConnectionCredentialsOptions.ts b/src/driver/spanner/SpannerConnectionCredentialsOptions.ts index aa9ba9111..512a9cc6f 100644 --- a/src/driver/spanner/SpannerConnectionCredentialsOptions.ts +++ b/src/driver/spanner/SpannerConnectionCredentialsOptions.ts @@ -16,4 +16,19 @@ export interface SpannerConnectionCredentialsOptions { * Database host port. */ readonly databaseId?: string + + /** + * Object containing client_email and private_key properties, or the external account client options. Cannot be used with apiKey. + */ + readonly credentials?: { + /** + * Client email connection credentials (Optional) + */ + readonly client_email: string + + /** + * Private key connection credentials (Optional) + */ + readonly private_key: string + } } diff --git a/src/driver/spanner/SpannerDriver.ts b/src/driver/spanner/SpannerDriver.ts index f1151387e..5728e2194 100644 --- a/src/driver/spanner/SpannerDriver.ts +++ b/src/driver/spanner/SpannerDriver.ts @@ -732,6 +732,16 @@ export class SpannerDriver implements Driver { protected loadDependencies(): void { try { const lib = this.options.driver || PlatformTools.load("spanner") + + if (this.options.credentials) { + this.spanner = new lib.Spanner({ + projectId: this.options.projectId, + credentials: this.options.credentials, + }) + + return + } + this.spanner = new lib.Spanner({ projectId: this.options.projectId, })