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 <cgarmando@google.com>
This commit is contained in:
@@ -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.
|
||||
@@ -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({
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user