Skip to content

MattLloyd101/aws-parameter-store-json-writer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS Parameter Store JSON Writer

Build Status npm version dependencies Status devDependencies Status

A Node.js library that stores JSON in to AWS Parameter Store.

Meant to be used in conjunction with aws-parameter-store-json-reader.

Installation

via npm

npm install aws-parameter-store-json-writer

Usage

const AwsParameterStoreJsonWriter = require('aws-parameter-store-json-writer');

const parameterWriter = new AwsParameterStoreJsonWriter({
    "keyId": "arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e",
    "secrets": [ /\/ContentManagement\/ContentManagementAggregator\/(dev|prod)\/db\/password/ ],
    "retryOptions": {
        "retries": 5,
        "factor": 3,
        "minTimeout": 1 * 1000,
        "maxTimeout": 60 * 1000
    }
});

const config = {
    "dev": {
        "db": {
            "username": "dev-user",
            "password": "secret-password"
        },
        "tags": ["dev", "database"],
        "ids": [12, 42, 128],
        "objs": [{ "entry": 1 }, { "entry": 2 }, { "entry": 3 }]
    },
    "prod": {
        "db": {
            "username": "prod-user",
            "password": "super-secret-password"
        }
    }
};

async function writeConfig(config) {
    const prefix = "/ContentManagement/ContentManagementAggregator";
    return await parameterWriter.write(prefix, config);
}

writeConfig(config);

The above will yield the following parameters added:

Name Type Key ID Value
/ContentManagement/ContentManagementAggregator/dev/db/username String - dev-user
/ContentManagement/ContentManagementAggregator/dev/db/password SecureString arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e secret-password
/ContentManagement/ContentManagementAggregator/dev/tags StringList - "dev", "database"
/ContentManagement/ContentManagementAggregator/dev/ids StringList - "12", "42", "128"
/ContentManagement/ContentManagementAggregator/dev/objs/0/entry String - "1"
/ContentManagement/ContentManagementAggregator/dev/objs/1/entry String - "2"
/ContentManagement/ContentManagementAggregator/dev/objs/2/entry String - "3"
/ContentManagement/ContentManagementAggregator/prod/db/username String - prod-user
/ContentManagement/ContentManagementAggregator/prod/db/password SecureString arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e super-secret-password

Parameter Store Json Writer Configuration

apiVersion – (optional) The version of the AWS API you wish to be using.
keyId – (optional) The AWS KMS Key Id you wish to encrypt your secrets with.
secrets – (optional) A set of Regular Expressions or Strings which match the paths of the keys you wish to be secret.
retryOptions - (optional) The Parameter Store Json Writer uses retry as it's exponential backoff mechanism.

Versioning

This library uses the Semver versioning system. The numbers do not relate to maturity but the number of breaking changes introduced.

About

A library that stores JSON in to AWS Parameter Store.

Topics

Resources

License

Stars

Watchers

Forks

Packages