Skip to content

Commit

Permalink
Use aws-sdk v3 for secrets manager (#616)
Browse files Browse the repository at this point in the history
* use v3 aws sdk

* adjust test

* pin to version last supporting ndoe 16
  • Loading branch information
DylanLovesCoffee authored Feb 5, 2025
1 parent c163362 commit 4724a63
Show file tree
Hide file tree
Showing 4 changed files with 723 additions and 11 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
},
"devDependencies": {
"@aws-sdk/client-kms": "^3.366.0",
"@aws-sdk/client-secrets-manager": "^3.721.0",
"@types/aws-lambda": "^8.10.136",
"@types/aws-sdk": "^2.7.0",
"@types/jest": "^26.0.23",
Expand Down
14 changes: 6 additions & 8 deletions src/metrics/listener.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,12 @@ import StatsDClient from "hot-shots";
import { Context } from "aws-lambda";
jest.mock("hot-shots");

jest.mock("aws-sdk/clients/secretsmanager", () => {
return jest.fn().mockImplementation(() => ({
getSecretValue: jest.fn().mockReturnValue({
promise: jest.fn().mockResolvedValue({
SecretString: "api-key-secret",
}),
}),
}));
jest.mock("@aws-sdk/client-secrets-manager", () => {
return {
SecretsManager: jest.fn().mockImplementation(() => ({
getSecretValue: jest.fn().mockResolvedValue({ SecretString: "api-key-secret" }),
})),
};
});

const siteURL = "example.com";
Expand Down
6 changes: 3 additions & 3 deletions src/metrics/listener.ts
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,9 @@ export class MetricsListener {

if (config.apiKeySecretARN !== "") {
try {
const { default: secretsClient } = await import("aws-sdk/clients/secretsmanager");
const secretsManager = new secretsClient();
const secret = await secretsManager.getSecretValue({ SecretId: config.apiKeySecretARN }).promise();
const { SecretsManager } = await import("@aws-sdk/client-secrets-manager");
const secretsManager = new SecretsManager();
const secret = await secretsManager.getSecretValue({ SecretId: config.apiKeySecretARN });
return secret?.SecretString ?? "";
} catch (error) {
logError("couldn't get secrets manager api key", error as Error);
Expand Down
Loading

0 comments on commit 4724a63

Please sign in to comment.