From ece5a8f15a8eb8c08211b80f4d0437b7555cec43 Mon Sep 17 00:00:00 2001 From: armandocomellas1 Date: Thu, 8 Feb 2024 13:33:14 -0600 Subject: [PATCH 1/5] adds a User-Agent header to existing API requests in this package to clearly identify API requests from this Google Cloud Storage Signed-off-by: armandocomellas1 --- .changeset/neat-kiwis-joke.md | 5 +++++ .../src/reading/GoogleGcsUrlReader.test.ts | 15 +++++++++++++++ .../src/reading/GoogleGcsUrlReader.ts | 6 +++++- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 .changeset/neat-kiwis-joke.md diff --git a/.changeset/neat-kiwis-joke.md b/.changeset/neat-kiwis-joke.md new file mode 100644 index 0000000000..4ed8ae6b88 --- /dev/null +++ b/.changeset/neat-kiwis-joke.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': minor +--- + +adds a User-Agent header to existing API requests in this package to clearly identify API requests from this Google Cloud Storage. headers are formatted as follows where `libVersion` represents the current dotted version number of the Backstage GCs package and `libName` represent the current Google API used at backstage. diff --git a/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts b/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts index 66edbcc49a..9e71cb01f5 100644 --- a/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts +++ b/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts @@ -20,6 +20,7 @@ import { getVoidLogger } from '../logging'; import { DefaultReadTreeResponseFactory } from './tree'; import { GoogleGcsUrlReader } from './GoogleGcsUrlReader'; import { UrlReaderPredicateTuple } from './types'; +import packageinfo from '../../package.json'; const bucketGetFilesMock = jest.fn(); jest.mock('@google-cloud/storage', () => { @@ -77,6 +78,20 @@ describe('GcsUrlReader', () => { }); expect(entries).toHaveLength(1); }); + it('check if userAgent has been called with this key value', async () => { + const getStorage: any = { + userAgent: `backstage/kubernetes-backend.GkeClusterLocator/${packageinfo.version}`, + }; + jest.mock('@google-cloud/storage', () => { + return { + Storage: jest.fn(() => getStorage), + }; + }); + const getUserAgent = getStorage.userAgent.toString(); + expect(getUserAgent).toBe( + `backstage/kubernetes-backend.GkeClusterLocator/${packageinfo.version}`, + ); + }); describe('predicates', () => { const readers = createReader({ diff --git a/packages/backend-common/src/reading/GoogleGcsUrlReader.ts b/packages/backend-common/src/reading/GoogleGcsUrlReader.ts index c9f5a58895..78528ac6b6 100644 --- a/packages/backend-common/src/reading/GoogleGcsUrlReader.ts +++ b/packages/backend-common/src/reading/GoogleGcsUrlReader.ts @@ -30,6 +30,7 @@ import { } from '@backstage/integration'; import { Readable } from 'stream'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; +import packageinfo from '../../package.json'; const GOOGLE_GCS_HOST = 'storage.cloud.google.com'; @@ -68,13 +69,16 @@ export class GoogleGcsUrlReader implements UrlReader { logger.info( 'googleGcs credentials not found in config. Using default credentials provider.', ); - storage = new Storage(); + storage = new Storage({ + userAgent: `backstage/kubernetes-backend.GkeClusterLocator/${packageinfo.version}`, + }); } else { storage = new Storage({ credentials: { client_email: gcsConfig.clientEmail || undefined, private_key: gcsConfig.privateKey || undefined, }, + userAgent: `backstage/kubernetes-backend.GkeClusterLocator/${packageinfo.version}`, }); } const reader = new GoogleGcsUrlReader(gcsConfig, storage); From 046755cfe768a6b9cfbbb5b9cd34f9e3e1212a4b Mon Sep 17 00:00:00 2001 From: armandocomellas1 Date: Thu, 8 Feb 2024 13:40:37 -0600 Subject: [PATCH 2/5] Modify the route of the key value for the UserAgent Signed-off-by: armandocomellas1 --- .../backend-common/src/reading/GoogleGcsUrlReader.test.ts | 4 ++-- packages/backend-common/src/reading/GoogleGcsUrlReader.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts b/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts index 9e71cb01f5..6fdc19a9ca 100644 --- a/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts +++ b/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts @@ -80,7 +80,7 @@ describe('GcsUrlReader', () => { }); it('check if userAgent has been called with this key value', async () => { const getStorage: any = { - userAgent: `backstage/kubernetes-backend.GkeClusterLocator/${packageinfo.version}`, + userAgent: `backstage/backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, }; jest.mock('@google-cloud/storage', () => { return { @@ -89,7 +89,7 @@ describe('GcsUrlReader', () => { }); const getUserAgent = getStorage.userAgent.toString(); expect(getUserAgent).toBe( - `backstage/kubernetes-backend.GkeClusterLocator/${packageinfo.version}`, + `backstage/backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, ); }); diff --git a/packages/backend-common/src/reading/GoogleGcsUrlReader.ts b/packages/backend-common/src/reading/GoogleGcsUrlReader.ts index 78528ac6b6..a158e88692 100644 --- a/packages/backend-common/src/reading/GoogleGcsUrlReader.ts +++ b/packages/backend-common/src/reading/GoogleGcsUrlReader.ts @@ -70,7 +70,7 @@ export class GoogleGcsUrlReader implements UrlReader { 'googleGcs credentials not found in config. Using default credentials provider.', ); storage = new Storage({ - userAgent: `backstage/kubernetes-backend.GkeClusterLocator/${packageinfo.version}`, + userAgent: `backstage/backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, }); } else { storage = new Storage({ @@ -78,7 +78,7 @@ export class GoogleGcsUrlReader implements UrlReader { client_email: gcsConfig.clientEmail || undefined, private_key: gcsConfig.privateKey || undefined, }, - userAgent: `backstage/kubernetes-backend.GkeClusterLocator/${packageinfo.version}`, + userAgent: `backstage/backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, }); } const reader = new GoogleGcsUrlReader(gcsConfig, storage); From 5065f45d01af0ec9d0e3287e4068e3f4a05492a9 Mon Sep 17 00:00:00 2001 From: armandocomellas1 Date: Thu, 8 Feb 2024 13:48:59 -0600 Subject: [PATCH 3/5] Modify the description of the changeset Signed-off-by: armandocomellas1 --- .changeset/neat-kiwis-joke.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/neat-kiwis-joke.md b/.changeset/neat-kiwis-joke.md index 4ed8ae6b88..a93a2e755c 100644 --- a/.changeset/neat-kiwis-joke.md +++ b/.changeset/neat-kiwis-joke.md @@ -2,4 +2,4 @@ '@backstage/backend-common': minor --- -adds a User-Agent header to existing API requests in this package to clearly identify API requests from this Google Cloud Storage. headers are formatted as follows where `libVersion` represents the current dotted version number of the Backstage GCs package and `libName` represent the current Google API used at backstage. +adds a User-Agent header to existing API requests in this package to clearly identify API requests from this Google Cloud Storage. headers are formatted as follows where `userAgent` is the property and the value is `backstage/kubernetes-backend.GkeClusterLocator/${packageinfo.version}` From 91f5447e98cc95d81a79d75912308d0a88cd6add Mon Sep 17 00:00:00 2001 From: armandocomellas1 Date: Thu, 8 Feb 2024 14:15:36 -0600 Subject: [PATCH 4/5] Modify the route backstage/backstage was duplicated Signed-off-by: armandocomellas1 --- .../backend-common/src/reading/GoogleGcsUrlReader.test.ts | 4 ++-- packages/backend-common/src/reading/GoogleGcsUrlReader.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts b/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts index 6fdc19a9ca..25bce25686 100644 --- a/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts +++ b/packages/backend-common/src/reading/GoogleGcsUrlReader.test.ts @@ -80,7 +80,7 @@ describe('GcsUrlReader', () => { }); it('check if userAgent has been called with this key value', async () => { const getStorage: any = { - userAgent: `backstage/backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, + userAgent: `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, }; jest.mock('@google-cloud/storage', () => { return { @@ -89,7 +89,7 @@ describe('GcsUrlReader', () => { }); const getUserAgent = getStorage.userAgent.toString(); expect(getUserAgent).toBe( - `backstage/backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, + `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, ); }); diff --git a/packages/backend-common/src/reading/GoogleGcsUrlReader.ts b/packages/backend-common/src/reading/GoogleGcsUrlReader.ts index a158e88692..9cf6bbcd61 100644 --- a/packages/backend-common/src/reading/GoogleGcsUrlReader.ts +++ b/packages/backend-common/src/reading/GoogleGcsUrlReader.ts @@ -70,7 +70,7 @@ export class GoogleGcsUrlReader implements UrlReader { 'googleGcs credentials not found in config. Using default credentials provider.', ); storage = new Storage({ - userAgent: `backstage/backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, + userAgent: `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, }); } else { storage = new Storage({ @@ -78,7 +78,7 @@ export class GoogleGcsUrlReader implements UrlReader { client_email: gcsConfig.clientEmail || undefined, private_key: gcsConfig.privateKey || undefined, }, - userAgent: `backstage/backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, + userAgent: `backstage/backend-common.GoogleGcsUrlReader/${packageinfo.version}`, }); } const reader = new GoogleGcsUrlReader(gcsConfig, storage); From 652ccd65df6963ea6cd7a36711a593331e25924d Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 13 Feb 2024 13:21:12 +0100 Subject: [PATCH 5/5] Update .changeset/neat-kiwis-joke.md Signed-off-by: Patrik Oldsberg --- .changeset/neat-kiwis-joke.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/neat-kiwis-joke.md b/.changeset/neat-kiwis-joke.md index a93a2e755c..852ec1d430 100644 --- a/.changeset/neat-kiwis-joke.md +++ b/.changeset/neat-kiwis-joke.md @@ -1,5 +1,5 @@ --- -'@backstage/backend-common': minor +'@backstage/backend-common': patch --- -adds a User-Agent header to existing API requests in this package to clearly identify API requests from this Google Cloud Storage. headers are formatted as follows where `userAgent` is the property and the value is `backstage/kubernetes-backend.GkeClusterLocator/${packageinfo.version}` +Add a User-Agent header for calls towards Google Cloud Storage.