UNPKG

aws-secret-manager-client

Version:

Modern AWS Secrets Manager client for Node.js with TypeScript support, built on AWS SDK v3

105 lines (102 loc) 3.44 kB
import { SecretsManagerClientConfig, CreateSecretCommandInput, UpdateSecretCommandInput, RotateSecretCommandInput } from '@aws-sdk/client-secrets-manager'; export { CancelRotateSecretCommandInput, CreateSecretCommandInput, DeleteSecretCommandInput, GetSecretValueCommandInput, RotateSecretCommandInput, UpdateSecretCommandInput } from '@aws-sdk/client-secrets-manager'; import { Logger } from '@aws-sdk/types'; interface SecretsManagerOptions extends SecretsManagerClientConfig { retryPolicy?: { maxRetries?: number; retryDelayOptions?: { base?: number; customBackoff?: (retryCount: number) => number; }; }; timeout?: number; logger?: Logger; } interface SecretValue { arn?: string | undefined; name?: string | undefined; value?: string | undefined; versionId?: string | undefined; versionStages?: string[] | undefined; createdDate?: Date | undefined; } declare class SecretsManagerError extends Error { readonly code?: string | undefined; readonly statusCode?: number | undefined; readonly originalError?: Error | undefined; constructor(message: string, code?: string | undefined, statusCode?: number | undefined, originalError?: Error | undefined); } declare class SecretsManagerClient { private awsClient; private options; private logger; constructor(options?: SecretsManagerOptions); /** * Validates that a secret ID is provided and not empty */ private validateSecretId; /** * Handles AWS SDK errors and converts them to SecretsManagerError */ private handleError; /** * Retrieves a secret value from AWS Secrets Manager */ getSecret(secretId: string, versionId?: string, versionStage?: string): Promise<SecretValue>; /** * Retrieves and parses a JSON secret value */ getSecretJson<T = unknown>(secretId: string, versionId?: string, versionStage?: string): Promise<T>; /** * Creates a new secret in AWS Secrets Manager */ createSecret(params: CreateSecretCommandInput): Promise<{ arn: string; name: string; versionId: string; }>; /** * Updates an existing secret in AWS Secrets Manager */ updateSecret(params: UpdateSecretCommandInput): Promise<{ arn: string; name: string; versionId: string; }>; /** * Deletes a secret from AWS Secrets Manager */ deleteSecret(secretId: string, forceDeleteWithoutRecovery?: boolean, recoveryWindowInDays?: number): Promise<{ arn: string; name: string; deletionDate: Date; }>; /** * Rotates a secret in AWS Secrets Manager */ rotateSecret(params: RotateSecretCommandInput): Promise<{ arn: string; name: string; versionId: string; }>; /** * Cancels secret rotation in AWS Secrets Manager */ cancelRotateSecret(secretId: string): Promise<{ arn: string; name: string; versionId: string; }>; /** * Health check method to verify the client can connect to AWS */ healthCheck(): Promise<{ status: 'healthy' | 'unhealthy'; message: string; }>; /** * Closes the client connection */ close(): Promise<void>; } export { SecretValue, SecretsManagerClient, SecretsManagerError, SecretsManagerOptions, SecretsManagerClient as default };