Skip to content

Commit 704ca6f

Browse files
authored
refactor(secretsmanager): migrate to aws sdk v3 (aws#8095)
## Problem AWS SDK V2 is at EOL. ## Solution Migrate SecretsManager client to V3 --- - Treat all work as PUBLIC. Private `feature/x` branches will not be squash-merged at release time. - Your code changes must meet the guidelines in [CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines). - License: I confirm that my contribution is made under the terms of the Apache 2.0 license.
1 parent 151292b commit 704ca6f

File tree

4 files changed

+162
-13
lines changed

4 files changed

+162
-13
lines changed

package-lock.json

Lines changed: 145 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/core/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,7 @@
591591
"@aws-sdk/client-s3-control": "^3.830.0",
592592
"@aws-sdk/client-sagemaker": "<3.696.0",
593593
"@aws-sdk/client-schemas": "~3.693.0",
594+
"@aws-sdk/client-secrets-manager": "~3.693.0",
594595
"@aws-sdk/client-sfn": "<3.731.0",
595596
"@aws-sdk/client-ssm": "<3.731.0",
596597
"@aws-sdk/client-sso": "<3.731.0",

packages/core/src/awsService/redshift/wizards/connectionWizard.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { RegionProvider } from '../../../shared/regions/regionProvider'
1616
import { createRegionPrompter } from '../../../shared/ui/common/region'
1717
import { ClustersMessage } from 'aws-sdk/clients/redshift'
1818
import { Prompter } from '../../../shared/ui/prompter'
19-
import { ListSecretsResponse } from 'aws-sdk/clients/secretsmanager'
19+
import { ListSecretsResponse } from '@aws-sdk/client-secrets-manager'
2020
import { SecretsManagerClient } from '../../../shared/clients/secretsManagerClient'
2121
import { redshiftHelpUrl } from '../../../shared/constants'
2222

packages/core/src/shared/clients/secretsManagerClient.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,24 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
import { SecretsManager } from 'aws-sdk'
7-
import globals from '../extensionGlobals'
86
import {
7+
CreateSecretCommand,
98
CreateSecretRequest,
109
CreateSecretResponse,
10+
ListSecretsCommand,
1111
ListSecretsRequest,
1212
ListSecretsResponse,
13-
} from 'aws-sdk/clients/secretsmanager'
13+
SecretsManagerClient as SecretsManagerSdkClient,
14+
} from '@aws-sdk/client-secrets-manager'
15+
import globals from '../extensionGlobals'
1416
import { productName } from '../constants'
1517

1618
export class SecretsManagerClient {
1719
public constructor(
1820
public readonly regionCode: string,
1921
private readonly secretsManagerClientProvider: (
2022
regionCode: string
21-
) => Promise<SecretsManager> = createSecretsManagerClient
23+
) => SecretsManagerSdkClient = createSecretsManagerClient
2224
) {}
2325

2426
/**
@@ -27,7 +29,7 @@ export class SecretsManagerClient {
2729
* @returns a list of the secrets
2830
*/
2931
public async listSecrets(filter: string): Promise<ListSecretsResponse> {
30-
const secretsManagerClient = await this.secretsManagerClientProvider(this.regionCode)
32+
const secretsManagerClient = this.secretsManagerClientProvider(this.regionCode)
3133
const request: ListSecretsRequest = {
3234
IncludePlannedDeletion: false,
3335
Filters: [
@@ -38,11 +40,11 @@ export class SecretsManagerClient {
3840
],
3941
SortOrder: 'desc',
4042
}
41-
return secretsManagerClient.listSecrets(request).promise()
43+
return secretsManagerClient.send(new ListSecretsCommand(request))
4244
}
4345

4446
public async createSecret(secretString: string, username: string, password: string): Promise<CreateSecretResponse> {
45-
const secretsManagerClient = await this.secretsManagerClientProvider(this.regionCode)
47+
const secretsManagerClient = this.secretsManagerClientProvider(this.regionCode)
4648
const request: CreateSecretRequest = {
4749
Description: `Database secret created with ${productName}`,
4850
Name: secretString ? secretString : '',
@@ -59,10 +61,13 @@ export class SecretsManagerClient {
5961
],
6062
ForceOverwriteReplicaSecret: true,
6163
}
62-
return secretsManagerClient.createSecret(request).promise()
64+
return secretsManagerClient.send(new CreateSecretCommand(request))
6365
}
6466
}
6567

66-
async function createSecretsManagerClient(regionCode: string): Promise<SecretsManager> {
67-
return await globals.sdkClientBuilder.createAwsService(SecretsManager, { computeChecksums: true }, regionCode)
68+
function createSecretsManagerClient(regionCode: string): SecretsManagerSdkClient {
69+
return globals.sdkClientBuilderV3.createAwsService({
70+
serviceClient: SecretsManagerSdkClient,
71+
clientOptions: { region: regionCode },
72+
})
6873
}

0 commit comments

Comments
 (0)