UNPKG

@argodigital/qq-shared

Version:
49 lines (48 loc) 2.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var aws_sdk_1 = require("aws-sdk"); var js_yaml_1 = require("js-yaml"); var fs_1 = require("fs"); var logger_1 = require("../logger"); var ssm = new aws_sdk_1.SSM({ apiVersion: '2014-11-06', region: process.env.REGION ? process.env.REGION : 'us-east-1', /*In case SSM_ENDPOINT is an empty string we want to pass undefined so that SSM ignores it*/ endpoint: process.env.SSM_ENDPOINT || undefined }); function getSecureParameter(parameter) { var stage = process.env.STAGE; var environment = stage && stage.toUpperCase() === 'PROD' ? 'prod' : 'non-prod'; logger_1.log.trace("Getting " + parameter + " for the " + environment + " environment"); return ssm .getParameter({ Name: getParameter('SHARED_SERVICE_SSM_PATH') + "/" + environment + "/" + parameter, WithDecryption: true }) .promise() .then(function (res) { return res.Parameter.Value; }); } exports.getSecureParameter = getSecureParameter; function getParameter(key) { logger_1.log.trace("Getting the " + key + " parameter"); logger_1.log.trace("Looking for parameter in environment variable"); var parameter = process.env[key]; if (!parameter) { logger_1.log.trace("Looking for parameter in local configurations file"); parameter = getParameterFromLocalFile(key, 'infrastructure/configurations.yml'); } if (!parameter) { logger_1.log.trace("Looking for parameter in local credentials file"); parameter = getParameterFromLocalFile(key, 'local/credentials.local.yml'); } logger_1.log.trace((parameter ? 'Found' : "Didn't find") + " a value for the " + key + " parameter: " + parameter); return parameter; } exports.getParameter = getParameter; function getParameterFromLocalFile(key, directory) { key = key.replace(/[_-]/g, ''); var localFile = js_yaml_1.safeLoad(fs_1.readFileSync(directory, 'utf-8')); var matching = Object.keys(localFile).find(function (k) { return k.toUpperCase() === key.toUpperCase(); }); return matching ? localFile[matching] : ''; } exports.getParameterFromLocalFile = getParameterFromLocalFile;