parameter-store

0.0.11 • Public • Published

parameter-store

This is a tiny package comprised of three utility functions to handle loading environmental variables/secrets from AWS SSM.

loadEnv can be used to load environmental variables from SSM at a particular path/hierarchy into process.env.

patchEnv patches a plain object with values from AWS SSM using the syntax { SUPER_SECRET: "${ssm:/app/SECRET}" }

patchJson patches a json configuration file using patchEnv.

Example

Basic Usage

loadEnv(path: string, config: { region: 'us-east-1' }) => Promise<{}>

loads environmental variables at a hierarchy into process.env.

const { loadEnv } = require('parameter-store')
 
loadEnv('/prefix', { region: 'us-east-1' })
 .then(() => console.log(process.env))

patchEnv(environment: {}) => Promise<{}>

Takes a plain object, where some values are expected to refer to an SSM parameter using the familiar serverless syntax: "${ssm:PATH_TO_ENV_VAR}".

const { patchEnv } = require('parameter-store')
 
const env = {
  "PORT": "3000",
  "API_KEY": "${ssm:/app/API_KEY}"
}
 
patchEnv(env, { region: 'us-east-1' })
 .then(patched => {
   console.log(patched)
   // => {
   //  "PORT": "3000",
   //  "API_KEY": "03cae8ea-48c2-4fd0-aa70-533e0cf4a801"
   // }
 })
 

patchJson(path: string, key: string | Array<string>, config: { 'us-east-1' }) => Promise<() => void>

  • path: path to a json configuration file
  • key: a key to get the environment object to mutate (uses lodash.get)
  • config: AWS configuration for new AWS.SSM(config)

Returns a restore function that restores the json configuration file to its original state.

in up.json:

{
  "name": "app",
  "environment": {
    "API_KEY": "${ssm:/app/API_KEY}"
  }
}
const { patchJson } = require('parameter-store')
 
patchJson('up.json', 'environment')
  .then(restore => {
    console.log(require('fs').readFileSync('up.json'))
    // {
    //  "name": "app",
    //  "environment": {
    //    "API_KEY": "03cae8ea-48c2-4fd0-aa70-533e0cf4a801"
    //  }
    // }
    restore() // restore up.json to original state
  })

Package Sidebar

Install

npm i parameter-store

Weekly Downloads

0

Version

0.0.11

License

ISC

Unpacked Size

9.25 kB

Total Files

7

Last publish

Collaborators

  • menubar