classy-lambda-common

2.0.4 • Public • Published

classy-lambda-common

Common configuration and tools for Classy Lambda modules.

installation

$ npm install --save classy-lambda-common

prerequisites

Minimally, you must have an environment.json and creds.example.json file in the root of your project. The JSON content provides a configuration based on which stage you are deployed to:

environment.json

{
  "dev": {
    "aws": {
      "region": "us-west-2"
    }
  },
  "staging": {
    "aws": {
      "region": "us-west-2"
    }
  },
  "production": {
    "aws": {
      "region": "us-east-1"
    }
  }
}

creds.example.json

{
  "SECRET": "SHHHH"
}

options

See prerequisites

supported toolset

Common.get(key): works for both static environment key/value pairs (i.e. environment.json), and also CredStash secrets. For static environment key/value pairs, you can specify nested keys in hierarchy via dot notation, i.e. Common.get('this.is.valid') returns "value" for:

{
  "dev": {
    "this": {
      "is": {
        "valid": "value"
      }
    }
  }
}

For CredStash, keys are generally all uppercase with snake case between words, i.e. SOME_SECRET.

Common.get('Logger'): Logging facility which requires 'log' configuration. See example below.

Common.get('PayClient'): Client which can be used for requests to Classy Pay. Requires 'pay' configuration.

Common.get('ApiClient'): Client which can be used for requests to Classy API. Requires 'api' configuration.

Common.get('Replacer'): Obfuscator for use with JSON.stringify replacer. Requires 'security' configuration.

usage

Bootstrap: Common.load(callback)

const Common = require('classy-lambda-common');
Common.load(function(error) {
  if (error) {
    console.error(error);
  } else {
    let logger = Common.get('Logger').create('my-logger');
    logger.info('Hello World');
  }
});

Get static config: Common.get(key)

let value = Common.get('some.key');
console.log(value);

Get CredStash secret: Common.get(key)

let value = Common.get('SOME_SECRET');
console.log(value);

Get Logger: See Bootstrap above

Get PayClient: Common.get(key)

let PayClient = Common.get('PayClient');
 
// PayClient.request(appId, method, resource, postBody, callback)
PayClient.request(0, 'GET', '/transaction/1', null, function(error, result) {
  if (error) {
    callback(error);
  } else {
    console.log(result);
  }
});

Get ApiClient: Common.get(key)

let ApiClient = Common.get('ApiClient');
 
// See classy-node for details
ApiClient.app().then(() => {
  ApiClient.organizations.retrieve(1, {
    token: 'app'
  }).then((result) => {
    console.log(result);
  });
});

Get Replacer: Common.get(key)

let Replacer = Common.get('Replacer').replacer;
console.log(JSON.stringify({
  cvv: '123'
}, replacer, 2));

Dependencies (9)

Dev Dependencies (6)

Package Sidebar

Install

npm i classy-lambda-common

Weekly Downloads

3

Version

2.0.4

License

MIT

Unpacked Size

77 kB

Total Files

25

Last publish

Collaborators

  • brownjava
  • jdeon-classy
  • jingram
  • timothyk7