diff --git a/packages/backend-common/api-report.md b/packages/backend-common/api-report.md index ebafb3dda0..ebdd7315c9 100644 --- a/packages/backend-common/api-report.md +++ b/packages/backend-common/api-report.md @@ -6,6 +6,7 @@ /// /// +import { AwsCredentialsManager } from '@backstage/integration-aws-node'; import { AwsS3Integration } from '@backstage/integration'; import { AzureIntegration } from '@backstage/integration'; import { BackendFeature } from '@backstage/backend-plugin-api'; @@ -66,7 +67,7 @@ import { Writable } from 'stream'; // @public export class AwsS3UrlReader implements UrlReader { constructor( - defaultConfig: Config, + credsManager: AwsCredentialsManager, integration: AwsS3Integration, deps: { treeResponseFactory: ReadTreeResponseFactory; diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts b/packages/backend-common/src/reading/AwsS3UrlReader.test.ts index 094bdc9d65..dad12c7660 100644 --- a/packages/backend-common/src/reading/AwsS3UrlReader.test.ts +++ b/packages/backend-common/src/reading/AwsS3UrlReader.test.ts @@ -23,6 +23,7 @@ import { AwsS3Integration, readAwsS3IntegrationConfig, } from '@backstage/integration'; +import { DefaultAwsCredentialsManager } from '@backstage/integration-aws-node'; import { UrlReaderPredicateTuple } from './types'; import path from 'path'; import { NotModifiedError } from '@backstage/errors'; @@ -440,8 +441,10 @@ describe('AwsS3UrlReader', () => { secretAccessKey: 'fake-secret-key', }); + const credsManager = DefaultAwsCredentialsManager.fromConfig(config); + awsS3UrlReader = new AwsS3UrlReader( - config, + credsManager, new AwsS3Integration(readAwsS3IntegrationConfig(config)), { treeResponseFactory }, ); diff --git a/packages/backend-common/src/reading/AwsS3UrlReader.ts b/packages/backend-common/src/reading/AwsS3UrlReader.ts index a0984b5e34..d06e2d0ad6 100644 --- a/packages/backend-common/src/reading/AwsS3UrlReader.ts +++ b/packages/backend-common/src/reading/AwsS3UrlReader.ts @@ -33,7 +33,6 @@ import { ScmIntegrations, AwsS3IntegrationConfig, } from '@backstage/integration'; -import { Config } from '@backstage/config'; import { ForwardedError, NotModifiedError } from '@backstage/errors'; import { fromTemporaryCredentials } from '@aws-sdk/credential-providers'; import { AwsCredentialIdentityProvider } from '@aws-sdk/types'; @@ -134,9 +133,10 @@ export function parseUrl( export class AwsS3UrlReader implements UrlReader { static factory: ReaderFactory = ({ config, treeResponseFactory }) => { const integrations = ScmIntegrations.fromConfig(config); + const credsManager = DefaultAwsCredentialsManager.fromConfig(config); return integrations.awsS3.list().map(integration => { - const reader = new AwsS3UrlReader(config, integration, { + const reader = new AwsS3UrlReader(credsManager, integration, { treeResponseFactory, }); const predicate = (url: URL) => @@ -146,7 +146,7 @@ export class AwsS3UrlReader implements UrlReader { }; constructor( - private readonly defaultConfig: Config, + private readonly credsManager: AwsCredentialsManager, private readonly integration: AwsS3Integration, private readonly deps: { treeResponseFactory: ReadTreeResponseFactory; @@ -210,11 +210,10 @@ export class AwsS3UrlReader implements UrlReader { } private async buildS3Client( - defaultConfig: Config, + credsManager: AwsCredentialsManager, region: string, integration: AwsS3Integration, ): Promise { - const credsManager = DefaultAwsCredentialsManager.fromConfig(defaultConfig); const credentials = await AwsS3UrlReader.buildCredentials( credsManager, region, @@ -257,7 +256,7 @@ export class AwsS3UrlReader implements UrlReader { try { const { path, bucket, region } = parseUrl(url, this.integration.config); const s3Client = await this.buildS3Client( - this.defaultConfig, + this.credsManager, region, this.integration, ); @@ -306,7 +305,7 @@ export class AwsS3UrlReader implements UrlReader { try { const { path, bucket, region } = parseUrl(url, this.integration.config); const s3Client = await this.buildS3Client( - this.defaultConfig, + this.credsManager, region, this.integration, );