UNPKG

@updating-secrets/aws-secrets-manager-adapter

Version:

AWS Secrets Manager adapter for the updating-secrets package.

34 lines (33 loc) 1.46 kB
import { type GetSecretValueCommand, type GetSecretValueCommandOutput } from '@aws-sdk/client-secrets-manager'; import { BaseSecretsAdapter, type ProcessedSecretDefinitions } from 'updating-secrets'; /** * Minimal subset of AWS's `SecretsManagerClient` from the * [`@aws-sdk/client-secrets-manager`](https://www.npmjs.com/package/@aws-sdk/client-secrets-manager) * package required for {@link AwsSecretsManagerAdapter}. * * For testing purposes use `MockAwsSecretsManagerClient` to create a mock instance of this. * * @category Internal */ export type NeededAwsSecretsManagerClient = { /** * Same as AWS's `SecretsManagerClient.send()` method but this only accepts the * `GetSecretValueCommand` command. */ send(command: GetSecretValueCommand): Promise<GetSecretValueCommandOutput>; }; /** * Loads secrets from AWS Secrets Manager. A `SecretsManagerClient` instance must be provided. * * @category Adapters */ export declare class AwsSecretsManagerAdapter extends BaseSecretsAdapter { protected readonly awsSecretsManager: Readonly<NeededAwsSecretsManagerClient>; constructor(awsSecretsManager: Readonly<NeededAwsSecretsManagerClient>); /** Loads secrets from the provided `SecretsManagerClient`. */ loadSecrets(secrets: ProcessedSecretDefinitions): { [x: string]: Error | Promise<any>; }; /** Load an entire individual secret from AWS. */ loadSingleSecret(secretId: string): Promise<any>; }