UNPKG

@cdklabs/cdk-amazonmq

Version:
86 lines 11.4 kB
"use strict"; /* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.replaceDynamicReferences = replaceDynamicReferences; /* eslint-disable import/no-extraneous-dependencies */ /** * When invoking custom resources dynamics references to SecretsManager's Secrets are not resolved although they appera to be passed. * As it is most likely that the users of this custom resource would like to use these to pass parameters not by actual value \ * the capability to resolve SecretsManager's Secrets (and SSM Parameters although it does not work with CFN ATM) has been added. * This is achieved by replacing the dynamic references with the actual values (encoded */ __exportStar(require("./secret"), exports); __exportStar(require("./string-parameter"), exports); __exportStar(require("./dynamic-reference-extractor"), exports); const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager"); const client_ssm_1 = require("@aws-sdk/client-ssm"); const dynamic_reference_extractor_1 = require("./dynamic-reference-extractor"); const smClient = new client_secrets_manager_1.SecretsManagerClient({}); const ssmClient = new client_ssm_1.SSMClient({}); async function replaceDynamicReferences(text) { if (!text) { return text; } let resultText = text; const [secrets, parameters] = dynamic_reference_extractor_1.DynamicReferenceExtractor.extract(text); resultText = await processSecrets(secrets, resultText); resultText = await processParameters(parameters, resultText); return resultText; } async function processParameters(parameters, resultText) { if (parameters) { for (const { reference, components } of parameters) { const { Parameter } = await ssmClient.send(new client_ssm_1.GetParameterCommand({ Name: components.version ? `${components.parameterName}:${components.version}` : components.parameterName, WithDecryption: components.isSecure, })); if (Parameter && Parameter.Value) { if (components.parameterName) { resultText = resultText.replace(reference, encodeURIComponent(Parameter.Value)); } } } } return resultText; } async function processSecrets(secrets, resultText) { if (secrets) { for (const { reference, components } of secrets) { const { SecretString } = await smClient.send(new client_secrets_manager_1.GetSecretValueCommand({ SecretId: components.secretId, VersionId: components.versionId, VersionStage: components.versionStage, })); if (!SecretString) { continue; } if (components.jsonKey) { resultText = resultText.replace(reference, encodeURIComponent(JSON.parse(SecretString)[components.jsonKey])); } else { resultText = resultText.replace(reference, encodeURIComponent(SecretString)); } } } return resultText; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvcmFiYml0bXEvY3VzdG9tLXJlc291cmNlL2hhbmRsZXIvZHluYW1pYy1yZWZlcmVuY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0VBR0U7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQkYsNERBYUM7QUF0Q0Qsc0RBQXNEO0FBRXREOzs7OztHQUtHO0FBRUgsMkNBQXlCO0FBQ3pCLHFEQUFtQztBQUNuQyxnRUFBOEM7QUFFOUMsNEVBR3lDO0FBQ3pDLG9EQUFxRTtBQUNyRSwrRUFBMEU7QUFJMUUsTUFBTSxRQUFRLEdBQUcsSUFBSSw2Q0FBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUM5QyxNQUFNLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFN0IsS0FBSyxVQUFVLHdCQUF3QixDQUFDLElBQWE7SUFDMUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxVQUFVLEdBQVcsSUFBSSxDQUFDO0lBRTlCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEdBQUcsdURBQXlCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRFLFVBQVUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkQsVUFBVSxHQUFHLE1BQU0saUJBQWlCLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRTdELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLFVBS2EsRUFDYixVQUFrQjtJQUVsQixJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsS0FBSyxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25ELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQ3hDLElBQUksZ0NBQW1CLENBQUM7Z0JBQ3RCLElBQUksRUFBRSxVQUFVLENBQUMsT0FBTztvQkFDdEIsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLGFBQWEsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO29CQUNyRCxDQUFDLENBQUMsVUFBVSxDQUFDLGFBQWE7Z0JBQzVCLGNBQWMsRUFBRSxVQUFVLENBQUMsUUFBUTthQUNwQyxDQUFDLENBQ0gsQ0FBQztZQUNGLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQzdCLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUM3QixTQUFTLEVBQ1Qsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUNwQyxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsS0FBSyxVQUFVLGNBQWMsQ0FDM0IsT0FFYSxFQUNiLFVBQWtCO0lBRWxCLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixLQUFLLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksT0FBTyxFQUFFLENBQUM7WUFDaEQsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FDMUMsSUFBSSw4Q0FBcUIsQ0FBQztnQkFDeEIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO2dCQUM3QixTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7Z0JBQy9CLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWTthQUN0QyxDQUFDLENBQ0gsQ0FBQztZQUVGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbEIsU0FBUztZQUNYLENBQUM7WUFFRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdkIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQzdCLFNBQVMsRUFDVCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUNqRSxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUM3QixTQUFTLEVBQ1Qsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQ2pDLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG5cbi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llcyAqL1xuXG4vKipcbiAqIFdoZW4gaW52b2tpbmcgY3VzdG9tIHJlc291cmNlcyBkeW5hbWljcyByZWZlcmVuY2VzIHRvIFNlY3JldHNNYW5hZ2VyJ3MgU2VjcmV0cyBhcmUgbm90IHJlc29sdmVkIGFsdGhvdWdoIHRoZXkgYXBwZXJhIHRvIGJlIHBhc3NlZC5cbiAqIEFzIGl0IGlzIG1vc3QgbGlrZWx5IHRoYXQgdGhlIHVzZXJzIG9mIHRoaXMgY3VzdG9tIHJlc291cmNlIHdvdWxkIGxpa2UgdG8gdXNlIHRoZXNlIHRvIHBhc3MgcGFyYW1ldGVycyBub3QgYnkgYWN0dWFsIHZhbHVlIFxcXG4gKiB0aGUgY2FwYWJpbGl0eSB0byByZXNvbHZlIFNlY3JldHNNYW5hZ2VyJ3MgU2VjcmV0cyAoYW5kIFNTTSBQYXJhbWV0ZXJzIGFsdGhvdWdoIGl0IGRvZXMgbm90IHdvcmsgd2l0aCBDRk4gQVRNKSBoYXMgYmVlbiBhZGRlZC5cbiAqIFRoaXMgaXMgYWNoaWV2ZWQgYnkgcmVwbGFjaW5nIHRoZSBkeW5hbWljIHJlZmVyZW5jZXMgd2l0aCB0aGUgYWN0dWFsIHZhbHVlcyAoZW5jb2RlZFxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL3NlY3JldFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RyaW5nLXBhcmFtZXRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZHluYW1pYy1yZWZlcmVuY2UtZXh0cmFjdG9yXCI7XG5cbmltcG9ydCB7XG4gIEdldFNlY3JldFZhbHVlQ29tbWFuZCxcbiAgU2VjcmV0c01hbmFnZXJDbGllbnQsXG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtc2VjcmV0cy1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBHZXRQYXJhbWV0ZXJDb21tYW5kLCBTU01DbGllbnQgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXNzbVwiO1xuaW1wb3J0IHsgRHluYW1pY1JlZmVyZW5jZUV4dHJhY3RvciB9IGZyb20gXCIuL2R5bmFtaWMtcmVmZXJlbmNlLWV4dHJhY3RvclwiO1xuaW1wb3J0IHsgU2VjcmV0RHluYW1pY1JlZmVyZWNlQ29tcG9uZW50cyB9IGZyb20gXCIuL3NlY3JldFwiO1xuaW1wb3J0IHsgU3RyaW5nUGFyYW1ldGVyRHluYW1pY1JlZmVyZWNlQ29tcG9uZW50cyB9IGZyb20gXCIuL3N0cmluZy1wYXJhbWV0ZXJcIjtcblxuY29uc3Qgc21DbGllbnQgPSBuZXcgU2VjcmV0c01hbmFnZXJDbGllbnQoe30pO1xuY29uc3Qgc3NtQ2xpZW50ID0gbmV3IFNTTUNsaWVudCh7fSk7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXBsYWNlRHluYW1pY1JlZmVyZW5jZXModGV4dD86IHN0cmluZykge1xuICBpZiAoIXRleHQpIHtcbiAgICByZXR1cm4gdGV4dDtcbiAgfVxuXG4gIGxldCByZXN1bHRUZXh0OiBzdHJpbmcgPSB0ZXh0O1xuXG4gIGNvbnN0IFtzZWNyZXRzLCBwYXJhbWV0ZXJzXSA9IER5bmFtaWNSZWZlcmVuY2VFeHRyYWN0b3IuZXh0cmFjdCh0ZXh0KTtcblxuICByZXN1bHRUZXh0ID0gYXdhaXQgcHJvY2Vzc1NlY3JldHMoc2VjcmV0cywgcmVzdWx0VGV4dCk7XG4gIHJlc3VsdFRleHQgPSBhd2FpdCBwcm9jZXNzUGFyYW1ldGVycyhwYXJhbWV0ZXJzLCByZXN1bHRUZXh0KTtcblxuICByZXR1cm4gcmVzdWx0VGV4dDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc1BhcmFtZXRlcnMoXG4gIHBhcmFtZXRlcnM6XG4gICAgfCB7XG4gICAgICAgIHJlZmVyZW5jZTogc3RyaW5nO1xuICAgICAgICBjb21wb25lbnRzOiBTdHJpbmdQYXJhbWV0ZXJEeW5hbWljUmVmZXJlY2VDb21wb25lbnRzO1xuICAgICAgfVtdXG4gICAgfCB1bmRlZmluZWQsXG4gIHJlc3VsdFRleHQ6IHN0cmluZyxcbikge1xuICBpZiAocGFyYW1ldGVycykge1xuICAgIGZvciAoY29uc3QgeyByZWZlcmVuY2UsIGNvbXBvbmVudHMgfSBvZiBwYXJhbWV0ZXJzKSB7XG4gICAgICBjb25zdCB7IFBhcmFtZXRlciB9ID0gYXdhaXQgc3NtQ2xpZW50LnNlbmQoXG4gICAgICAgIG5ldyBHZXRQYXJhbWV0ZXJDb21tYW5kKHtcbiAgICAgICAgICBOYW1lOiBjb21wb25lbnRzLnZlcnNpb25cbiAgICAgICAgICAgID8gYCR7Y29tcG9uZW50cy5wYXJhbWV0ZXJOYW1lfToke2NvbXBvbmVudHMudmVyc2lvbn1gXG4gICAgICAgICAgICA6IGNvbXBvbmVudHMucGFyYW1ldGVyTmFtZSxcbiAgICAgICAgICBXaXRoRGVjcnlwdGlvbjogY29tcG9uZW50cy5pc1NlY3VyZSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgaWYgKFBhcmFtZXRlciAmJiBQYXJhbWV0ZXIuVmFsdWUpIHtcbiAgICAgICAgaWYgKGNvbXBvbmVudHMucGFyYW1ldGVyTmFtZSkge1xuICAgICAgICAgIHJlc3VsdFRleHQgPSByZXN1bHRUZXh0LnJlcGxhY2UoXG4gICAgICAgICAgICByZWZlcmVuY2UsXG4gICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoUGFyYW1ldGVyLlZhbHVlKSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHRUZXh0O1xufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9jZXNzU2VjcmV0cyhcbiAgc2VjcmV0czpcbiAgICB8IHsgcmVmZXJlbmNlOiBzdHJpbmc7IGNvbXBvbmVudHM6IFNlY3JldER5bmFtaWNSZWZlcmVjZUNvbXBvbmVudHMgfVtdXG4gICAgfCB1bmRlZmluZWQsXG4gIHJlc3VsdFRleHQ6IHN0cmluZyxcbikge1xuICBpZiAoc2VjcmV0cykge1xuICAgIGZvciAoY29uc3QgeyByZWZlcmVuY2UsIGNvbXBvbmVudHMgfSBvZiBzZWNyZXRzKSB7XG4gICAgICBjb25zdCB7IFNlY3JldFN0cmluZyB9ID0gYXdhaXQgc21DbGllbnQuc2VuZChcbiAgICAgICAgbmV3IEdldFNlY3JldFZhbHVlQ29tbWFuZCh7XG4gICAgICAgICAgU2VjcmV0SWQ6IGNvbXBvbmVudHMuc2VjcmV0SWQsXG4gICAgICAgICAgVmVyc2lvbklkOiBjb21wb25lbnRzLnZlcnNpb25JZCxcbiAgICAgICAgICBWZXJzaW9uU3RhZ2U6IGNvbXBvbmVudHMudmVyc2lvblN0YWdlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghU2VjcmV0U3RyaW5nKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoY29tcG9uZW50cy5qc29uS2V5KSB7XG4gICAgICAgIHJlc3VsdFRleHQgPSByZXN1bHRUZXh0LnJlcGxhY2UoXG4gICAgICAgICAgcmVmZXJlbmNlLFxuICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChKU09OLnBhcnNlKFNlY3JldFN0cmluZylbY29tcG9uZW50cy5qc29uS2V5XSksXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHRUZXh0ID0gcmVzdWx0VGV4dC5yZXBsYWNlKFxuICAgICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoU2VjcmV0U3RyaW5nKSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdFRleHQ7XG59XG4iXX0=