New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

parameter-store

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

parameter-store

Fetch key/value pairs from AWS Parameter Store and set them as environmental variables.

latest
Source
npmnpm
Version
0.0.11
Version published
Weekly downloads
11
266.67%
Maintainers
1
Weekly downloads
 
Created
Source

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
  })

Keywords

ssm

FAQs

Package last updated on 21 Jun 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts