UNPKG

@adikari/config-manager

Version:

Tool to deploy configs to different stores

45 lines (36 loc) 1.15 kB
'use strict'; const Bluebird = require('bluebird'); const chalk = require('chalk'); const get = require('lodash.get'); const mapKeys = require('lodash.mapkeys'); const { log } = require('../../utils/logger'); // TODO: access using settingsService. Maybe use async? const makePopulateSecret = ({ parameterStore, promptRequiredConfigs }) => ({ settings, interactive, missingOnly }) => { if (!get(settings, 'secret')) { log(chalk.white('Skipping population of secrets...')); return Bluebird.resolve(); } log(chalk.white('Populating secrets...')); const path = get(settings, 'secret.path'); const required = get(settings, 'secret.required'); if(!path) { return Bluebird.reject(new Error('Please specify ssmPath for populateSecret')); } return promptRequiredConfigs({ parameterNames: get(settings, 'secretParameters'), required, interactive, missingOnly }) .then(secrets => { const parameters = mapKeys(secrets, (_, key) => { return `${path}/${key}`; }); return parameterStore.updateSecrets({ parameters }) }); }; module.exports = { makePopulateSecret };