@viperhq/secrets

AWS related secret management helpers

Usage no npm install needed!

<script type="module">
  import viperhqSecrets from 'https://cdn.skypack.dev/@viperhq/secrets';
</script>

README

AWS related secret management helpers

npm

Usage

SSM

batchGet

const ssm = new SSM({
  region: "us-east-1"
});
const params = [
  {
    name: "/production/service/secrets.json",
    default: JSON.stringify({
      password: process.env.PASSWORD
    })
  },
  {
    name: "/production/service/private.pem",
    target: path.join(rootDir, "certs", "private.pem")
  }
];
const result = await ssm.batchGet(params);
console.log(result);
/*
{
  "/production/service/secrets.json": "{\"password\":\"123\"}",
  "/production/service/private.pem": "PEM_FILE_CONTENTS"
}
*/

batchDelete

const ssm = new SSM({
  region: "us-east-1"
});
const params = [
  {
    name: "/production/service/secrets.json",
    default: JSON.stringify({
      password: process.env.PASSWORD
    })
  }
];
await ssm.batchDelete(params);
const result = await ssm.batchGet(params);
console.log(result);
/*
{
  "/production/service/secrets.json": "{\"password\":\"process.env.PASSWORD\"}"
}
*/

put

const ssm = new SSM({
  region: "us-east-1"
});
const params = [
  {
    name: "/production/service/secrets.json",
    content: JSON.stringify({
      password: process.env.PASSWORD
    }),
    encrypted: true,
    overwrite: true
  }
];
await ssm.put(params[0]);
const result = await ssm.batchGet(params);
console.log(result);
/*
{
  "/production/service/secrets.json": "{\"password\":\"process.env.PASSWORD\"}"
}
*/