@cdklabs/cdk-amazonmq
Version:
<!--BEGIN STABILITY BANNER-->
61 lines • 9.51 kB
JavaScript
;
/*
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DynamicReferenceExtractor = void 0;
const secret_1 = require("./secret");
const string_parameter_1 = require("./string-parameter");
class DynamicReferenceExtractor {
static get regex() {
return /(\{\{resolve:[a-zA-Z0-9:_-]*?\}\})/gm;
}
static extract(text) {
let secrets;
let parameters;
const matches = text.matchAll(DynamicReferenceExtractor.regex);
if (!matches) {
return [secrets, parameters];
}
const matchesArray = [...matches];
const secretsArray = matchesArray
.filter((m) => secret_1.SecretsDynamicRefereceParser.looksLikeSecretDynamicReference(m[0]))
.map((m) => ({
reference: m[0],
components: secret_1.SecretsDynamicRefereceParser.parse(m[0]),
}))
.filter((s) => s.reference !== undefined);
if (secretsArray.length > 0) {
secrets = secretsArray;
}
const paramsArray = matchesArray
.filter((m) => string_parameter_1.StringParameterDynamicRefereceParser.looksLikeParameterDynamicReference(m[0]))
.map((m) => ({
reference: m[0],
components: string_parameter_1.StringParameterDynamicRefereceParser.parse(m[0]),
}))
.filter((s) => s.reference !== undefined);
if (paramsArray.length > 0) {
parameters = paramsArray;
}
return [secrets, parameters];
}
}
exports.DynamicReferenceExtractor = DynamicReferenceExtractor;
// const drs = [
// "{{resolve:secretsmanager:arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-a1b2c3}}",
// "{{resolve:secretsmanager:MySecret}}",
// "{{resolve:secretsmanager:MySecret::::}}",
// "{{resolve:secretsmanager:MySecret:SecretString:password}}",
// "{{resolve:secretsmanager:arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-a1b2c3}}",
// "{{resolve:secretsmanager:arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-a1b2c3:SecretString:password}}",
// "{{resolve:secretsmanager:MySecret:SecretString:password:AWSPREVIOUS}}",
// "resolve:ssm:golden-ami:2}}",
// "{{resolve:ssm:golden-ami:2}}",
// "{{resolve:ssm-secure:IAMUserPassword:10}}",
// ].join("\n");
// const [secrets, parameters] = DynamicReferenceExtractor.extract(drs);
// console.log("SECRETS", JSON.stringify(secrets, null, 2));
// console.log("PARAMETERS", JSON.stringify(parameters, null, 2));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1yZWZlcmVuY2UtZXh0cmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JhYmJpdG1xL2N1c3RvbS1yZXNvdXJjZS9oYW5kbGVyL2R5bmFtaWMtcmVmZXJlbmNlcy9keW5hbWljLXJlZmVyZW5jZS1leHRyYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7RUFHRTs7O0FBRUYscUNBR2tCO0FBQ2xCLHlEQUc0QjtBQUU1QixNQUFhLHlCQUF5QjtJQUM1QixNQUFNLEtBQUssS0FBSztRQUN0QixPQUFPLHNDQUFzQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVk7UUFnQmhDLElBQUksT0FLUyxDQUFDO1FBQ2QsSUFBSSxVQUtTLENBQUM7UUFFZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUVsQyxNQUFNLFlBQVksR0FBRyxZQUFZO2FBQzlCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ1oscUNBQTRCLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ25FO2FBQ0EsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ1gsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDZixVQUFVLEVBQUUscUNBQTRCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNyRCxDQUFDLENBQUM7YUFDRixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUd2QyxDQUFDO1FBRUosSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sR0FBRyxZQUFZLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLFlBQVk7YUFDN0IsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDWix1REFBb0MsQ0FBQyxrQ0FBa0MsQ0FDckUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNMLENBQ0Y7YUFDQSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDWCxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNmLFVBQVUsRUFBRSx1REFBb0MsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzdELENBQUMsQ0FBQzthQUNGLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBR3ZDLENBQUM7UUFFSixJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsVUFBVSxHQUFHLFdBQVcsQ0FBQztRQUMzQixDQUFDO1FBRUQsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvQixDQUFDO0NBQ0Y7QUEvRUQsOERBK0VDO0FBRUQsZ0JBQWdCO0FBQ2hCLHVHQUF1RztBQUN2RywyQ0FBMkM7QUFDM0MsK0NBQStDO0FBQy9DLGlFQUFpRTtBQUNqRSx1R0FBdUc7QUFDdkcsNkhBQTZIO0FBQzdILDZFQUE2RTtBQUM3RSxrQ0FBa0M7QUFDbEMsb0NBQW9DO0FBQ3BDLGlEQUFpRDtBQUNqRCxnQkFBZ0I7QUFFaEIsd0VBQXdFO0FBRXhFLDREQUE0RDtBQUM1RCxrRUFBa0UiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuKi9cblxuaW1wb3J0IHtcbiAgU2VjcmV0RHluYW1pY1JlZmVyZWNlQ29tcG9uZW50cyxcbiAgU2VjcmV0c0R5bmFtaWNSZWZlcmVjZVBhcnNlcixcbn0gZnJvbSBcIi4vc2VjcmV0XCI7XG5pbXBvcnQge1xuICBTdHJpbmdQYXJhbWV0ZXJEeW5hbWljUmVmZXJlY2VDb21wb25lbnRzLFxuICBTdHJpbmdQYXJhbWV0ZXJEeW5hbWljUmVmZXJlY2VQYXJzZXIsXG59IGZyb20gXCIuL3N0cmluZy1wYXJhbWV0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIER5bmFtaWNSZWZlcmVuY2VFeHRyYWN0b3Ige1xuICBwcml2YXRlIHN0YXRpYyBnZXQgcmVnZXgoKSB7XG4gICAgcmV0dXJuIC8oXFx7XFx7cmVzb2x2ZTpbYS16QS1aMC05Ol8tXSo/XFx9XFx9KS9nbTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZXh0cmFjdCh0ZXh0OiBzdHJpbmcpOiBbXG4gICAgKFxuICAgICAgfCB7XG4gICAgICAgICAgcmVmZXJlbmNlOiBzdHJpbmc7XG4gICAgICAgICAgY29tcG9uZW50czogU2VjcmV0RHluYW1pY1JlZmVyZWNlQ29tcG9uZW50cztcbiAgICAgICAgfVtdXG4gICAgICB8IHVuZGVmaW5lZFxuICAgICksXG4gICAgKFxuICAgICAgfCB7XG4gICAgICAgICAgcmVmZXJlbmNlOiBzdHJpbmc7XG4gICAgICAgICAgY29tcG9uZW50czogU3RyaW5nUGFyYW1ldGVyRHluYW1pY1JlZmVyZWNlQ29tcG9uZW50cztcbiAgICAgICAgfVtdXG4gICAgICB8IHVuZGVmaW5lZFxuICAgICksXG4gIF0ge1xuICAgIGxldCBzZWNyZXRzOlxuICAgICAgfCB7XG4gICAgICAgICAgcmVmZXJlbmNlOiBzdHJpbmc7XG4gICAgICAgICAgY29tcG9uZW50czogU2VjcmV0RHluYW1pY1JlZmVyZWNlQ29tcG9uZW50cztcbiAgICAgICAgfVtdXG4gICAgICB8IHVuZGVmaW5lZDtcbiAgICBsZXQgcGFyYW1ldGVyczpcbiAgICAgIHwge1xuICAgICAgICAgIHJlZmVyZW5jZTogc3RyaW5nO1xuICAgICAgICAgIGNvbXBvbmVudHM6IFN0cmluZ1BhcmFtZXRlckR5bmFtaWNSZWZlcmVjZUNvbXBvbmVudHM7XG4gICAgICAgIH1bXVxuICAgICAgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBtYXRjaGVzID0gdGV4dC5tYXRjaEFsbChEeW5hbWljUmVmZXJlbmNlRXh0cmFjdG9yLnJlZ2V4KTtcblxuICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgcmV0dXJuIFtzZWNyZXRzLCBwYXJhbWV0ZXJzXTtcbiAgICB9XG4gICAgY29uc3QgbWF0Y2hlc0FycmF5ID0gWy4uLm1hdGNoZXNdO1xuXG4gICAgY29uc3Qgc2VjcmV0c0FycmF5ID0gbWF0Y2hlc0FycmF5XG4gICAgICAuZmlsdGVyKChtKSA9PlxuICAgICAgICBTZWNyZXRzRHluYW1pY1JlZmVyZWNlUGFyc2VyLmxvb2tzTGlrZVNlY3JldER5bmFtaWNSZWZlcmVuY2UobVswXSksXG4gICAgICApXG4gICAgICAubWFwKChtKSA9PiAoe1xuICAgICAgICByZWZlcmVuY2U6IG1bMF0sXG4gICAgICAgIGNvbXBvbmVudHM6IFNlY3JldHNEeW5hbWljUmVmZXJlY2VQYXJzZXIucGFyc2UobVswXSksXG4gICAgICB9KSlcbiAgICAgIC5maWx0ZXIoKHMpID0+IHMucmVmZXJlbmNlICE9PSB1bmRlZmluZWQpIGFzIHtcbiAgICAgIHJlZmVyZW5jZTogc3RyaW5nO1xuICAgICAgY29tcG9uZW50czogU2VjcmV0RHluYW1pY1JlZmVyZWNlQ29tcG9uZW50cztcbiAgICB9W107XG5cbiAgICBpZiAoc2VjcmV0c0FycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgIHNlY3JldHMgPSBzZWNyZXRzQXJyYXk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyYW1zQXJyYXkgPSBtYXRjaGVzQXJyYXlcbiAgICAgIC5maWx0ZXIoKG0pID0+XG4gICAgICAgIFN0cmluZ1BhcmFtZXRlckR5bmFtaWNSZWZlcmVjZVBhcnNlci5sb29rc0xpa2VQYXJhbWV0ZXJEeW5hbWljUmVmZXJlbmNlKFxuICAgICAgICAgIG1bMF0sXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAubWFwKChtKSA9PiAoe1xuICAgICAgICByZWZlcmVuY2U6IG1bMF0sXG4gICAgICAgIGNvbXBvbmVudHM6IFN0cmluZ1BhcmFtZXRlckR5bmFtaWNSZWZlcmVjZVBhcnNlci5wYXJzZShtWzBdKSxcbiAgICAgIH0pKVxuICAgICAgLmZpbHRlcigocykgPT4gcy5yZWZlcmVuY2UgIT09IHVuZGVmaW5lZCkgYXMge1xuICAgICAgcmVmZXJlbmNlOiBzdHJpbmc7XG4gICAgICBjb21wb25lbnRzOiBTdHJpbmdQYXJhbWV0ZXJEeW5hbWljUmVmZXJlY2VDb21wb25lbnRzO1xuICAgIH1bXTtcblxuICAgIGlmIChwYXJhbXNBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJhbWV0ZXJzID0gcGFyYW1zQXJyYXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtzZWNyZXRzLCBwYXJhbWV0ZXJzXTtcbiAgfVxufVxuXG4vLyBjb25zdCBkcnMgPSBbXG4vLyAgIFwie3tyZXNvbHZlOnNlY3JldHNtYW5hZ2VyOmFybjphd3M6c2VjcmV0c21hbmFnZXI6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpzZWNyZXQ6TXlTZWNyZXQtYTFiMmMzfX1cIixcbi8vICAgXCJ7e3Jlc29sdmU6c2VjcmV0c21hbmFnZXI6TXlTZWNyZXR9fVwiLFxuLy8gICBcInt7cmVzb2x2ZTpzZWNyZXRzbWFuYWdlcjpNeVNlY3JldDo6Ojp9fVwiLFxuLy8gICBcInt7cmVzb2x2ZTpzZWNyZXRzbWFuYWdlcjpNeVNlY3JldDpTZWNyZXRTdHJpbmc6cGFzc3dvcmR9fVwiLFxuLy8gICBcInt7cmVzb2x2ZTpzZWNyZXRzbWFuYWdlcjphcm46YXdzOnNlY3JldHNtYW5hZ2VyOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6c2VjcmV0Ok15U2VjcmV0LWExYjJjM319XCIsXG4vLyAgIFwie3tyZXNvbHZlOnNlY3JldHNtYW5hZ2VyOmFybjphd3M6c2VjcmV0c21hbmFnZXI6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpzZWNyZXQ6TXlTZWNyZXQtYTFiMmMzOlNlY3JldFN0cmluZzpwYXNzd29yZH19XCIsXG4vLyAgIFwie3tyZXNvbHZlOnNlY3JldHNtYW5hZ2VyOk15U2VjcmV0OlNlY3JldFN0cmluZzpwYXNzd29yZDpBV1NQUkVWSU9VU319XCIsXG4vLyAgIFwicmVzb2x2ZTpzc206Z29sZGVuLWFtaToyfX1cIixcbi8vICAgXCJ7e3Jlc29sdmU6c3NtOmdvbGRlbi1hbWk6Mn19XCIsXG4vLyAgIFwie3tyZXNvbHZlOnNzbS1zZWN1cmU6SUFNVXNlclBhc3N3b3JkOjEwfX1cIixcbi8vIF0uam9pbihcIlxcblwiKTtcblxuLy8gY29uc3QgW3NlY3JldHMsIHBhcmFtZXRlcnNdID0gRHluYW1pY1JlZmVyZW5jZUV4dHJhY3Rvci5leHRyYWN0KGRycyk7XG5cbi8vIGNvbnNvbGUubG9nKFwiU0VDUkVUU1wiLCBKU09OLnN0cmluZ2lmeShzZWNyZXRzLCBudWxsLCAyKSk7XG4vLyBjb25zb2xlLmxvZyhcIlBBUkFNRVRFUlNcIiwgSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycywgbnVsbCwgMikpO1xuIl19