@updating-secrets/aws-secrets-manager-adapter
Version:
AWS Secrets Manager adapter for the updating-secrets package.
32 lines (31 loc) • 1.36 kB
TypeScript
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): Promise<{
[x: string]: Error | Promise<any>;
}>;
}