@secretary/aws-secrets-manager

AWS SecretsManager adapter for Secretary

Usage no npm install needed!

<script type="module">
  import secretaryAwsSecretsManager from 'https://cdn.skypack.dev/@secretary/aws-secrets-manager';
</script>

README

Secretary - AWS Secrets Manager Adapter

This is the AWS Secrets Manager adapter for Secretary

Installation

$ npm install @secretary/core @secretary/aws-secrets-manager

Usage

Creating the manager

import {Adapter, Secretary} from '@secretary/aws-secrets-manager';
import {SecretsManager} from 'aws-sdk';

const manager = new Secretary(new Adapter({client: new SecretsManager({region: 'us-east-1'})}));

Fetching a secret

const someSecret = await manager.getSecret({path: 'databases/redis', key: 'dsn'});
console.log(someSecret); // redis://localhost:6379

Fetching a secret path

const someSecrets = await manager.getSecrets({path: 'databases/redis'});
console.log(someSecrets); // {dsn: 'redis://localhost:6379', auth: 'foo'}

Create / Update a secret

await manager.putSecret({path: 'databases/redis', key: 'dsn', value: 'redis://localhost:6379'});
await manager.putSecret({path: 'databases/redis', key: 'auth', value: 'foo'});

Create / Update multiple secrets

Note, this fires off a request for every secret that you send.

await manager.putSecrets([
    {path: 'databases/redis', key: 'dsn', value: 'redis://localhost:6379'},
    {path: 'databases/redis', key: 'auth', value: 'foo'},
]);