diff --git a/plugins/catalog-backend-module-aws/api-report.md b/plugins/catalog-backend-module-aws/api-report.md index 491dbf497e..91e15dda5f 100644 --- a/plugins/catalog-backend-module-aws/api-report.md +++ b/plugins/catalog-backend-module-aws/api-report.md @@ -3,11 +3,11 @@ > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). ```ts +import { AwsCredentialIdentity } from '@aws-sdk/types'; import { CatalogProcessor } from '@backstage/plugin-catalog-node'; import { CatalogProcessorEmit } from '@backstage/plugin-catalog-node'; import { CatalogProcessorParser } from '@backstage/plugin-catalog-node'; import { Config } from '@backstage/config'; -import { Credentials } from 'aws-sdk'; import { EntityProvider } from '@backstage/plugin-catalog-node'; import { EntityProviderConnection } from '@backstage/plugin-catalog-node'; import { LocationSpec } from '@backstage/plugin-catalog-common'; @@ -19,7 +19,7 @@ import { UrlReader } from '@backstage/backend-common'; // @public export type AWSCredentialFactory = ( awsAccountId: string, -) => Promise; +) => Promise; // @public export class AwsEKSClusterProcessor implements CatalogProcessor { diff --git a/plugins/catalog-backend-module-aws/package.json b/plugins/catalog-backend-module-aws/package.json index 6cb50c917c..2774802d25 100644 --- a/plugins/catalog-backend-module-aws/package.json +++ b/plugins/catalog-backend-module-aws/package.json @@ -45,6 +45,8 @@ "clean": "backstage-cli package clean" }, "dependencies": { + "@aws-sdk/client-eks": "^3.328.0", + "@aws-sdk/client-organizations": "^3.328.0", "@aws-sdk/client-s3": "^3.208.0", "@aws-sdk/credential-providers": "^3.326.0", "@aws-sdk/middleware-endpoint": "^3.325.0", @@ -60,7 +62,6 @@ "@backstage/plugin-catalog-node": "workspace:^", "@backstage/plugin-kubernetes-common": "workspace:^", "@backstage/types": "workspace:^", - "aws-sdk": "^2.840.0", "lodash": "^4.17.21", "p-limit": "^3.0.2", "uuid": "^8.0.0", @@ -72,7 +73,6 @@ "@backstage/cli": "workspace:^", "@types/lodash": "^4.14.151", "aws-sdk-client-mock": "^2.0.0", - "aws-sdk-mock": "^5.2.1", "luxon": "^3.0.0", "yaml": "^2.0.0" }, diff --git a/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.test.ts b/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.test.ts index ecf3b1a961..ba172090e2 100644 --- a/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.test.ts +++ b/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.test.ts @@ -15,24 +15,28 @@ */ import { AwsEKSClusterProcessor } from './AwsEKSClusterProcessor'; -import AWSMock from 'aws-sdk-mock'; -import aws from 'aws-sdk'; +import { mockClient } from 'aws-sdk-client-mock'; +import { + EKS, + ListClustersResponse, + DescribeClusterResponse, + ListClustersCommand, + DescribeClusterCommand, +} from '@aws-sdk/client-eks'; describe('AwsEKSClusterProcessor', () => { - AWSMock.setSDKInstance(aws); - describe('readLocation', () => { const processor = new (AwsEKSClusterProcessor as any)({}); const location = { type: 'aws-eks', target: '957140518395/us-west-2' }; const emit = jest.fn(); it('generates cluster correctly', async () => { - const clusters: aws.EKS.Types.ListClustersResponse = { + const clusters: ListClustersResponse = { clusters: ['backstage-test'], nextToken: undefined, }; - const cluster: aws.EKS.Types.DescribeClusterResponse = { + const cluster: DescribeClusterResponse = { cluster: { name: 'backstage-test', arn: 'arn:aws:1', @@ -42,9 +46,10 @@ describe('AwsEKSClusterProcessor', () => { }, }, }; + const mock = mockClient(EKS); - AWSMock.mock('EKS', 'listClusters', clusters); - AWSMock.mock('EKS', 'describeCluster', cluster); + mock.on(ListClustersCommand).resolves(clusters); + mock.on(DescribeClusterCommand).resolves(cluster); await processor.readLocation(location, false, emit); diff --git a/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts b/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts index 05c85c7426..cf66d72fb5 100644 --- a/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts +++ b/plugins/catalog-backend-module-aws/src/processors/AwsEKSClusterProcessor.ts @@ -24,7 +24,8 @@ import { ANNOTATION_KUBERNETES_API_SERVER_CA, ANNOTATION_KUBERNETES_AUTH_PROVIDER, } from '@backstage/plugin-kubernetes-common'; -import { Credentials, EKS } from 'aws-sdk'; +import { AwsCredentialIdentity } from '@aws-sdk/types'; +import { EKS } from '@aws-sdk/client-eks'; import { AWSCredentialFactory } from '../types'; const ACCOUNTID_ANNOTATION: string = 'amazonaws.com/account-id'; @@ -73,20 +74,20 @@ export class AwsEKSClusterProcessor implements CatalogProcessor { ); } - let credentials: Credentials | undefined; + let credentials: AwsCredentialIdentity | undefined; if (this.credentialsFactory) { credentials = await this.credentialsFactory(accountId); } const eksClient = new EKS({ credentials, region }); - const clusters = await eksClient.listClusters({}).promise(); + const clusters = await eksClient.listClusters({}); if (clusters.clusters === undefined) { return true; } const results = clusters.clusters - .map(cluster => eksClient.describeCluster({ name: cluster }).promise()) + .map(cluster => eksClient.describeCluster({ name: cluster })) .map(async describedClusterPromise => { const describedCluster = await describedClusterPromise; if (describedCluster.cluster) { diff --git a/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.test.ts b/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.test.ts index b9b8ba7741..40637ba99e 100644 --- a/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.test.ts +++ b/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.test.ts @@ -14,7 +14,12 @@ * limitations under the License. */ +import { mockClient } from 'aws-sdk-client-mock'; import { AwsOrganizationCloudAccountProcessor } from './AwsOrganizationCloudAccountProcessor'; +import { + ListAccountsCommand, + Organizations, +} from '@aws-sdk/client-organizations'; describe('AwsOrganizationCloudAccountProcessor', () => { describe('readLocation', () => { @@ -23,26 +28,22 @@ describe('AwsOrganizationCloudAccountProcessor', () => { }); const location = { type: 'aws-cloud-accounts', target: '' }; const emit = jest.fn(); - const listAccounts = jest.fn(); + const mock = mockClient(Organizations); - processor.organizations.listAccounts = listAccounts; - afterEach(() => jest.resetAllMocks()); + afterEach(() => { + jest.resetAllMocks(); + mock.reset(); + }); it('generates component entities for accounts', async () => { - listAccounts.mockImplementation(() => { - return { - async promise() { - return { - Accounts: [ - { - Arn: 'arn:aws:organizations::192594491037:account/o-1vl18kc5a3/957140518395', - Name: 'testaccount', - }, - ], - NextToken: undefined, - }; + mock.on(ListAccountsCommand).resolves({ + Accounts: [ + { + Arn: 'arn:aws:organizations::192594491037:account/o-1vl18kc5a3/957140518395', + Name: 'testaccount', }, - }; + ], + NextToken: undefined, }); await processor.readLocation(location, false, emit); expect(emit).toHaveBeenCalledWith({ @@ -74,24 +75,18 @@ describe('AwsOrganizationCloudAccountProcessor', () => { type: 'aws-cloud-accounts', target: 'o-1vl18kc5a3', }; - listAccounts.mockImplementation(() => { - return { - async promise() { - return { - Accounts: [ - { - Arn: 'arn:aws:organizations::192594491037:account/o-1vl18kc5a3/957140518395', - Name: 'testaccount', - }, - { - Arn: 'arn:aws:organizations::192594491037:account/o-zzzzzzzzz/957140518395', - Name: 'testaccount2', - }, - ], - NextToken: undefined, - }; + mock.on(ListAccountsCommand).resolves({ + Accounts: [ + { + Arn: 'arn:aws:organizations::192594491037:account/o-1vl18kc5a3/957140518395', + Name: 'testaccount', }, - }; + { + Arn: 'arn:aws:organizations::192594491037:account/o-zzzzzzzzz/957140518395', + Name: 'testaccount2', + }, + ], + NextToken: undefined, }); await processor.readLocation(locationTest, false, emit); expect(emit).toHaveBeenCalledTimes(1); diff --git a/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.ts b/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.ts index c0ba1e3e98..8ef393f2b0 100644 --- a/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.ts +++ b/plugins/catalog-backend-module-aws/src/processors/AwsOrganizationCloudAccountProcessor.ts @@ -22,8 +22,13 @@ import { processingResult, } from '@backstage/plugin-catalog-node'; import { LocationSpec } from '@backstage/plugin-catalog-common'; -import AWS, { Credentials, Organizations } from 'aws-sdk'; -import { Account, ListAccountsResponse } from 'aws-sdk/clients/organizations'; +import { + Account, + ListAccountsResponse, + Organizations, +} from '@aws-sdk/client-organizations'; +import { fromTemporaryCredentials } from '@aws-sdk/credential-providers'; +import { AwsCredentialIdentityProvider } from '@aws-sdk/types'; import { Logger } from 'winston'; import { AwsOrganizationProviderConfig, @@ -59,13 +64,13 @@ export class AwsOrganizationCloudAccountProcessor implements CatalogProcessor { private static buildCredentials( config: AwsOrganizationProviderConfig, - ): Credentials | undefined { + ): AwsCredentialIdentityProvider | undefined { const roleArn = config.roleArn; if (!roleArn) { return undefined; } - return new AWS.ChainableTemporaryCredentials({ + return fromTemporaryCredentials({ params: { RoleSessionName: 'backstage-aws-organization-processor', RoleArn: roleArn, @@ -78,7 +83,7 @@ export class AwsOrganizationCloudAccountProcessor implements CatalogProcessor { const credentials = AwsOrganizationCloudAccountProcessor.buildCredentials( this.provider, ); - this.organizations = new AWS.Organizations({ + this.organizations = new Organizations({ credentials, region: AWS_ORGANIZATION_REGION, }); // Only available in us-east-1 @@ -143,9 +148,8 @@ export class AwsOrganizationCloudAccountProcessor implements CatalogProcessor { let nextToken = undefined; while (isInitialAttempt || nextToken) { isInitialAttempt = false; - const orgAccounts: ListAccountsResponse = await this.organizations - .listAccounts({ NextToken: nextToken }) - .promise(); + const orgAccounts: ListAccountsResponse = + await this.organizations.listAccounts({ NextToken: nextToken }); if (orgAccounts.Accounts) { awsAccounts = awsAccounts.concat(orgAccounts.Accounts); } diff --git a/plugins/catalog-backend-module-aws/src/types.ts b/plugins/catalog-backend-module-aws/src/types.ts index 3d9df38181..23460c104e 100644 --- a/plugins/catalog-backend-module-aws/src/types.ts +++ b/plugins/catalog-backend-module-aws/src/types.ts @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Credentials } from 'aws-sdk'; +import { AwsCredentialIdentity } from '@aws-sdk/types'; /** * A factory for providing user-specified AWS credentials for a given AWS account. @@ -22,4 +22,4 @@ import { Credentials } from 'aws-sdk'; */ export type AWSCredentialFactory = ( awsAccountId: string, -) => Promise; +) => Promise; diff --git a/yarn.lock b/yarn.lock index 404d12ff5f..52df129797 100644 --- a/yarn.lock +++ b/yarn.lock @@ -593,6 +593,94 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-eks@npm:^3.328.0": + version: 3.328.0 + resolution: "@aws-sdk/client-eks@npm:3.328.0" + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sts": 3.328.0 + "@aws-sdk/config-resolver": 3.310.0 + "@aws-sdk/credential-provider-node": 3.328.0 + "@aws-sdk/fetch-http-handler": 3.310.0 + "@aws-sdk/hash-node": 3.310.0 + "@aws-sdk/invalid-dependency": 3.310.0 + "@aws-sdk/middleware-content-length": 3.325.0 + "@aws-sdk/middleware-endpoint": 3.325.0 + "@aws-sdk/middleware-host-header": 3.325.0 + "@aws-sdk/middleware-logger": 3.325.0 + "@aws-sdk/middleware-recursion-detection": 3.325.0 + "@aws-sdk/middleware-retry": 3.327.0 + "@aws-sdk/middleware-serde": 3.325.0 + "@aws-sdk/middleware-signing": 3.325.0 + "@aws-sdk/middleware-stack": 3.325.0 + "@aws-sdk/middleware-user-agent": 3.327.0 + "@aws-sdk/node-config-provider": 3.310.0 + "@aws-sdk/node-http-handler": 3.328.0 + "@aws-sdk/protocol-http": 3.310.0 + "@aws-sdk/smithy-client": 3.325.0 + "@aws-sdk/types": 3.310.0 + "@aws-sdk/url-parser": 3.310.0 + "@aws-sdk/util-base64": 3.310.0 + "@aws-sdk/util-body-length-browser": 3.310.0 + "@aws-sdk/util-body-length-node": 3.310.0 + "@aws-sdk/util-defaults-mode-browser": 3.325.0 + "@aws-sdk/util-defaults-mode-node": 3.325.0 + "@aws-sdk/util-endpoints": 3.327.0 + "@aws-sdk/util-retry": 3.327.0 + "@aws-sdk/util-user-agent-browser": 3.310.0 + "@aws-sdk/util-user-agent-node": 3.310.0 + "@aws-sdk/util-utf8": 3.310.0 + "@aws-sdk/util-waiter": 3.310.0 + tslib: ^2.5.0 + uuid: ^8.3.2 + checksum: 04113d73efc6c90b54630757b3721c2a27b1310f58614a294870ae1bad2b4db6721c9aeef51a095ff8454cb9c2202c52e10d119de6347f86fbc144f98770bd2f + languageName: node + linkType: hard + +"@aws-sdk/client-organizations@npm:^3.328.0": + version: 3.328.0 + resolution: "@aws-sdk/client-organizations@npm:3.328.0" + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/client-sts": 3.328.0 + "@aws-sdk/config-resolver": 3.310.0 + "@aws-sdk/credential-provider-node": 3.328.0 + "@aws-sdk/fetch-http-handler": 3.310.0 + "@aws-sdk/hash-node": 3.310.0 + "@aws-sdk/invalid-dependency": 3.310.0 + "@aws-sdk/middleware-content-length": 3.325.0 + "@aws-sdk/middleware-endpoint": 3.325.0 + "@aws-sdk/middleware-host-header": 3.325.0 + "@aws-sdk/middleware-logger": 3.325.0 + "@aws-sdk/middleware-recursion-detection": 3.325.0 + "@aws-sdk/middleware-retry": 3.327.0 + "@aws-sdk/middleware-serde": 3.325.0 + "@aws-sdk/middleware-signing": 3.325.0 + "@aws-sdk/middleware-stack": 3.325.0 + "@aws-sdk/middleware-user-agent": 3.327.0 + "@aws-sdk/node-config-provider": 3.310.0 + "@aws-sdk/node-http-handler": 3.328.0 + "@aws-sdk/protocol-http": 3.310.0 + "@aws-sdk/smithy-client": 3.325.0 + "@aws-sdk/types": 3.310.0 + "@aws-sdk/url-parser": 3.310.0 + "@aws-sdk/util-base64": 3.310.0 + "@aws-sdk/util-body-length-browser": 3.310.0 + "@aws-sdk/util-body-length-node": 3.310.0 + "@aws-sdk/util-defaults-mode-browser": 3.325.0 + "@aws-sdk/util-defaults-mode-node": 3.325.0 + "@aws-sdk/util-endpoints": 3.327.0 + "@aws-sdk/util-retry": 3.327.0 + "@aws-sdk/util-user-agent-browser": 3.310.0 + "@aws-sdk/util-user-agent-node": 3.310.0 + "@aws-sdk/util-utf8": 3.310.0 + tslib: ^2.5.0 + checksum: 323875672ba6888f246059c1552e68f722dd4d6301ac49be26f86684365c081319d6baad7cb6ca5e5d3e6d5660c05ac1aaa4c2f81db8bb89b585f5367697a14f + languageName: node + linkType: hard + "@aws-sdk/client-s3@npm:^3.208.0": version: 3.312.0 resolution: "@aws-sdk/client-s3@npm:3.312.0" @@ -781,6 +869,46 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-sso-oidc@npm:3.328.0": + version: 3.328.0 + resolution: "@aws-sdk/client-sso-oidc@npm:3.328.0" + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/config-resolver": 3.310.0 + "@aws-sdk/fetch-http-handler": 3.310.0 + "@aws-sdk/hash-node": 3.310.0 + "@aws-sdk/invalid-dependency": 3.310.0 + "@aws-sdk/middleware-content-length": 3.325.0 + "@aws-sdk/middleware-endpoint": 3.325.0 + "@aws-sdk/middleware-host-header": 3.325.0 + "@aws-sdk/middleware-logger": 3.325.0 + "@aws-sdk/middleware-recursion-detection": 3.325.0 + "@aws-sdk/middleware-retry": 3.327.0 + "@aws-sdk/middleware-serde": 3.325.0 + "@aws-sdk/middleware-stack": 3.325.0 + "@aws-sdk/middleware-user-agent": 3.327.0 + "@aws-sdk/node-config-provider": 3.310.0 + "@aws-sdk/node-http-handler": 3.328.0 + "@aws-sdk/protocol-http": 3.310.0 + "@aws-sdk/smithy-client": 3.325.0 + "@aws-sdk/types": 3.310.0 + "@aws-sdk/url-parser": 3.310.0 + "@aws-sdk/util-base64": 3.310.0 + "@aws-sdk/util-body-length-browser": 3.310.0 + "@aws-sdk/util-body-length-node": 3.310.0 + "@aws-sdk/util-defaults-mode-browser": 3.325.0 + "@aws-sdk/util-defaults-mode-node": 3.325.0 + "@aws-sdk/util-endpoints": 3.327.0 + "@aws-sdk/util-retry": 3.327.0 + "@aws-sdk/util-user-agent-browser": 3.310.0 + "@aws-sdk/util-user-agent-node": 3.310.0 + "@aws-sdk/util-utf8": 3.310.0 + tslib: ^2.5.0 + checksum: a88d02b301008250af03754791c8dfcd1e619e036a2e27b3a66dfd824a69a9722ae58210b3fff0f941b2818ae61df5d74f0fcb00071fcd9de4f54debf89a8633 + languageName: node + linkType: hard + "@aws-sdk/client-sso@npm:3.310.0": version: 3.310.0 resolution: "@aws-sdk/client-sso@npm:3.310.0" @@ -861,6 +989,46 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-sso@npm:3.328.0": + version: 3.328.0 + resolution: "@aws-sdk/client-sso@npm:3.328.0" + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/config-resolver": 3.310.0 + "@aws-sdk/fetch-http-handler": 3.310.0 + "@aws-sdk/hash-node": 3.310.0 + "@aws-sdk/invalid-dependency": 3.310.0 + "@aws-sdk/middleware-content-length": 3.325.0 + "@aws-sdk/middleware-endpoint": 3.325.0 + "@aws-sdk/middleware-host-header": 3.325.0 + "@aws-sdk/middleware-logger": 3.325.0 + "@aws-sdk/middleware-recursion-detection": 3.325.0 + "@aws-sdk/middleware-retry": 3.327.0 + "@aws-sdk/middleware-serde": 3.325.0 + "@aws-sdk/middleware-stack": 3.325.0 + "@aws-sdk/middleware-user-agent": 3.327.0 + "@aws-sdk/node-config-provider": 3.310.0 + "@aws-sdk/node-http-handler": 3.328.0 + "@aws-sdk/protocol-http": 3.310.0 + "@aws-sdk/smithy-client": 3.325.0 + "@aws-sdk/types": 3.310.0 + "@aws-sdk/url-parser": 3.310.0 + "@aws-sdk/util-base64": 3.310.0 + "@aws-sdk/util-body-length-browser": 3.310.0 + "@aws-sdk/util-body-length-node": 3.310.0 + "@aws-sdk/util-defaults-mode-browser": 3.325.0 + "@aws-sdk/util-defaults-mode-node": 3.325.0 + "@aws-sdk/util-endpoints": 3.327.0 + "@aws-sdk/util-retry": 3.327.0 + "@aws-sdk/util-user-agent-browser": 3.310.0 + "@aws-sdk/util-user-agent-node": 3.310.0 + "@aws-sdk/util-utf8": 3.310.0 + tslib: ^2.5.0 + checksum: db1c1c73a2d2ec03301661ff868cc6a46fc936b99e7caa91d9d22f444250305f9dc88af99df809c13814b9d1210e8be58a3c568d1003b70bd9e8bd1884b0c225 + languageName: node + linkType: hard + "@aws-sdk/client-sts@npm:3.312.0": version: 3.312.0 resolution: "@aws-sdk/client-sts@npm:3.312.0" @@ -905,7 +1073,7 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/client-sts@npm:3.327.0, @aws-sdk/client-sts@npm:^3.208.0": +"@aws-sdk/client-sts@npm:3.327.0": version: 3.327.0 resolution: "@aws-sdk/client-sts@npm:3.327.0" dependencies: @@ -949,6 +1117,50 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/client-sts@npm:3.328.0, @aws-sdk/client-sts@npm:^3.208.0": + version: 3.328.0 + resolution: "@aws-sdk/client-sts@npm:3.328.0" + dependencies: + "@aws-crypto/sha256-browser": 3.0.0 + "@aws-crypto/sha256-js": 3.0.0 + "@aws-sdk/config-resolver": 3.310.0 + "@aws-sdk/credential-provider-node": 3.328.0 + "@aws-sdk/fetch-http-handler": 3.310.0 + "@aws-sdk/hash-node": 3.310.0 + "@aws-sdk/invalid-dependency": 3.310.0 + "@aws-sdk/middleware-content-length": 3.325.0 + "@aws-sdk/middleware-endpoint": 3.325.0 + "@aws-sdk/middleware-host-header": 3.325.0 + "@aws-sdk/middleware-logger": 3.325.0 + "@aws-sdk/middleware-recursion-detection": 3.325.0 + "@aws-sdk/middleware-retry": 3.327.0 + "@aws-sdk/middleware-sdk-sts": 3.326.0 + "@aws-sdk/middleware-serde": 3.325.0 + "@aws-sdk/middleware-signing": 3.325.0 + "@aws-sdk/middleware-stack": 3.325.0 + "@aws-sdk/middleware-user-agent": 3.327.0 + "@aws-sdk/node-config-provider": 3.310.0 + "@aws-sdk/node-http-handler": 3.328.0 + "@aws-sdk/protocol-http": 3.310.0 + "@aws-sdk/smithy-client": 3.325.0 + "@aws-sdk/types": 3.310.0 + "@aws-sdk/url-parser": 3.310.0 + "@aws-sdk/util-base64": 3.310.0 + "@aws-sdk/util-body-length-browser": 3.310.0 + "@aws-sdk/util-body-length-node": 3.310.0 + "@aws-sdk/util-defaults-mode-browser": 3.325.0 + "@aws-sdk/util-defaults-mode-node": 3.325.0 + "@aws-sdk/util-endpoints": 3.327.0 + "@aws-sdk/util-retry": 3.327.0 + "@aws-sdk/util-user-agent-browser": 3.310.0 + "@aws-sdk/util-user-agent-node": 3.310.0 + "@aws-sdk/util-utf8": 3.310.0 + fast-xml-parser: 4.1.2 + tslib: ^2.5.0 + checksum: 2a4b35a7aedd892dde06d2e10afc0ba7fdf8e49dbe4c22769e9df94cd79ebf13840bcdb682b28c6e62e91841197919ce9b6c711e4c84a66e226f7faa041974fd + languageName: node + linkType: hard + "@aws-sdk/config-resolver@npm:3.310.0": version: 3.310.0 resolution: "@aws-sdk/config-resolver@npm:3.310.0" @@ -1031,6 +1243,23 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-ini@npm:3.328.0": + version: 3.328.0 + resolution: "@aws-sdk/credential-provider-ini@npm:3.328.0" + dependencies: + "@aws-sdk/credential-provider-env": 3.310.0 + "@aws-sdk/credential-provider-imds": 3.310.0 + "@aws-sdk/credential-provider-process": 3.310.0 + "@aws-sdk/credential-provider-sso": 3.328.0 + "@aws-sdk/credential-provider-web-identity": 3.310.0 + "@aws-sdk/property-provider": 3.310.0 + "@aws-sdk/shared-ini-file-loader": 3.310.0 + "@aws-sdk/types": 3.310.0 + tslib: ^2.5.0 + checksum: e25d03978650b7c9b5b1cceb187b0b0987728487df17512e9cd0fdcd6f936cf64cbbec68fb80441dc0713b48759e21ca1fb70fd6ebf3d7065b7dcc9dec4b3ae8 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-node@npm:3.310.0": version: 3.310.0 resolution: "@aws-sdk/credential-provider-node@npm:3.310.0" @@ -1049,7 +1278,7 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/credential-provider-node@npm:3.327.0, @aws-sdk/credential-provider-node@npm:^3.208.0": +"@aws-sdk/credential-provider-node@npm:3.327.0": version: 3.327.0 resolution: "@aws-sdk/credential-provider-node@npm:3.327.0" dependencies: @@ -1067,6 +1296,24 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-node@npm:3.328.0, @aws-sdk/credential-provider-node@npm:^3.208.0": + version: 3.328.0 + resolution: "@aws-sdk/credential-provider-node@npm:3.328.0" + dependencies: + "@aws-sdk/credential-provider-env": 3.310.0 + "@aws-sdk/credential-provider-imds": 3.310.0 + "@aws-sdk/credential-provider-ini": 3.328.0 + "@aws-sdk/credential-provider-process": 3.310.0 + "@aws-sdk/credential-provider-sso": 3.328.0 + "@aws-sdk/credential-provider-web-identity": 3.310.0 + "@aws-sdk/property-provider": 3.310.0 + "@aws-sdk/shared-ini-file-loader": 3.310.0 + "@aws-sdk/types": 3.310.0 + tslib: ^2.5.0 + checksum: dce37d28e771fa914e0b6945616ed3eeb6c493424579ca685c08bcbd036a3236ef87315105816d24c7ba485ea5af6041827b6af2b491c0cf39f9c85bd77e42fe + languageName: node + linkType: hard + "@aws-sdk/credential-provider-process@npm:3.310.0": version: 3.310.0 resolution: "@aws-sdk/credential-provider-process@npm:3.310.0" @@ -1107,6 +1354,20 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-sso@npm:3.328.0": + version: 3.328.0 + resolution: "@aws-sdk/credential-provider-sso@npm:3.328.0" + dependencies: + "@aws-sdk/client-sso": 3.328.0 + "@aws-sdk/property-provider": 3.310.0 + "@aws-sdk/shared-ini-file-loader": 3.310.0 + "@aws-sdk/token-providers": 3.328.0 + "@aws-sdk/types": 3.310.0 + tslib: ^2.5.0 + checksum: 1f40a31358b0e082312f865cad4bbe296ceff2ade2bf775e41af0c6100dd0da824dc877e1225bcc4bc77d5fe2160678e75f4cb4a87871a1104b88a10d29e17a3 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-web-identity@npm:3.310.0": version: 3.310.0 resolution: "@aws-sdk/credential-provider-web-identity@npm:3.310.0" @@ -1651,7 +1912,7 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/node-http-handler@npm:3.321.1, @aws-sdk/node-http-handler@npm:^3.208.0": +"@aws-sdk/node-http-handler@npm:3.321.1": version: 3.321.1 resolution: "@aws-sdk/node-http-handler@npm:3.321.1" dependencies: @@ -1664,6 +1925,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/node-http-handler@npm:3.328.0, @aws-sdk/node-http-handler@npm:^3.208.0": + version: 3.328.0 + resolution: "@aws-sdk/node-http-handler@npm:3.328.0" + dependencies: + "@aws-sdk/abort-controller": 3.310.0 + "@aws-sdk/protocol-http": 3.310.0 + "@aws-sdk/querystring-builder": 3.310.0 + "@aws-sdk/types": 3.310.0 + tslib: ^2.5.0 + checksum: 25be597f1e17ca9dc5656a2189d66b35323d56a442ce00b4dfb90ead8a06c7fbc07c98b5958981bcac9c0eaf6e6cdc7c2ac3f1040ee3b0f2629a094d5e72d36d + languageName: node + linkType: hard + "@aws-sdk/property-provider@npm:3.310.0": version: 3.310.0 resolution: "@aws-sdk/property-provider@npm:3.310.0" @@ -1809,6 +2083,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/token-providers@npm:3.328.0": + version: 3.328.0 + resolution: "@aws-sdk/token-providers@npm:3.328.0" + dependencies: + "@aws-sdk/client-sso-oidc": 3.328.0 + "@aws-sdk/property-provider": 3.310.0 + "@aws-sdk/shared-ini-file-loader": 3.310.0 + "@aws-sdk/types": 3.310.0 + tslib: ^2.5.0 + checksum: f79a5df2e0d1f10c934ec87e590b784154d66af167317d89729b72c3eac5134c451f412aa0c1ac294f56a238154607b15fc4d48da8f69db00db813ec752743a2 + languageName: node + linkType: hard + "@aws-sdk/types@npm:3.310.0, @aws-sdk/types@npm:^3.208.0, @aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.310.0": version: 3.310.0 resolution: "@aws-sdk/types@npm:3.310.0" @@ -5537,6 +5824,8 @@ __metadata: version: 0.0.0-use.local resolution: "@backstage/plugin-catalog-backend-module-aws@workspace:plugins/catalog-backend-module-aws" dependencies: + "@aws-sdk/client-eks": ^3.328.0 + "@aws-sdk/client-organizations": ^3.328.0 "@aws-sdk/client-s3": ^3.208.0 "@aws-sdk/credential-providers": ^3.326.0 "@aws-sdk/middleware-endpoint": ^3.325.0 @@ -5556,9 +5845,7 @@ __metadata: "@backstage/plugin-kubernetes-common": "workspace:^" "@backstage/types": "workspace:^" "@types/lodash": ^4.14.151 - aws-sdk: ^2.840.0 aws-sdk-client-mock: ^2.0.0 - aws-sdk-mock: ^5.2.1 lodash: ^4.17.21 luxon: ^3.0.0 p-limit: ^3.0.2 @@ -18832,7 +19119,7 @@ __metadata: languageName: node linkType: hard -"aws-sdk@npm:^2.1231.0, aws-sdk@npm:^2.840.0, aws-sdk@npm:^2.948.0": +"aws-sdk@npm:^2.1231.0, aws-sdk@npm:^2.948.0": version: 2.1279.0 resolution: "aws-sdk@npm:2.1279.0" dependencies: