UNPKG

@cdklabs/cdk-amazonmq

Version:
53 lines 7.77 kB
"use strict"; /* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.SecretsDynamicRefereceParser = void 0; const util_arn_parser_1 = require("@aws-sdk/util-arn-parser"); class SecretsDynamicRefereceParser { static get regex() { return /^\{\{(resolve:secretsmanager[a-zA-Z0-9:_-]*?)\}\}$/; } static looksLikeSecretDynamicReference(text) { return SecretsDynamicRefereceParser.regex.test(text); } static parse(text) { if (!SecretsDynamicRefereceParser.looksLikeSecretDynamicReference(text)) { return undefined; } const matches = text.match(SecretsDynamicRefereceParser.regex); if (!matches) { throw new Error(`Invalid secret dynamic reference: ${text}`); } const referenceContents = matches[matches.length === 2 ? 1 : 2]; const arnBased = referenceContents.startsWith("resolve:secretsmanager:arn:"); const parts = referenceContents.split(":"); const valueAtOrDefault = (arr, idx, defaultValue) => arr.length > idx && arr[idx] !== "" ? arr[idx] : defaultValue; if (!arnBased) { return { secretId: parts[2], secretString: valueAtOrDefault(parts, 3), jsonKey: valueAtOrDefault(parts, 4), versionStage: valueAtOrDefault(parts, 5), versionId: valueAtOrDefault(parts, 6), }; } return { secretId: (0, util_arn_parser_1.build)({ partition: parts[3], service: parts[4], region: parts[5], accountId: parts[6], resource: `${parts[7]}:${parts[8]}`, }), secretString: valueAtOrDefault(parts, 9), jsonKey: valueAtOrDefault(parts, 10), versionStage: valueAtOrDefault(parts, 11), versionId: valueAtOrDefault(parts, 12), }; } } exports.SecretsDynamicRefereceParser = SecretsDynamicRefereceParser; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3JhYmJpdG1xL2N1c3RvbS1yZXNvdXJjZS9oYW5kbGVyL2R5bmFtaWMtcmVmZXJlbmNlcy9zZWNyZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7RUFHRTs7O0FBRUYsOERBQWlEO0FBV2pELE1BQWEsNEJBQTRCO0lBQy9CLE1BQU0sS0FBSyxLQUFLO1FBQ3RCLE9BQU8sb0RBQW9ELENBQUM7SUFDOUQsQ0FBQztJQUVNLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxJQUFZO1FBQ3hELE9BQU8sNEJBQTRCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQUssQ0FDakIsSUFBWTtRQUVaLElBQUksQ0FBQyw0QkFBNEIsQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3hFLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUVELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FDM0MsNkJBQTZCLENBQzlCLENBQUM7UUFFRixNQUFNLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0MsTUFBTSxnQkFBZ0IsR0FBRyxDQUN2QixHQUFhLEVBQ2IsR0FBVyxFQUNYLFlBQWdCLEVBQ0QsRUFBRSxDQUNqQixHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBRSxHQUFHLENBQUMsR0FBRyxDQUFPLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUV2RSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxPQUFPO2dCQUNMLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixZQUFZLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDeEMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ25DLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUN0QyxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBQSx1QkFBSyxFQUFDO2dCQUNkLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDakIsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2hCLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixRQUFRLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO2FBQ3BDLENBQUM7WUFDRixZQUFZLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4QyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN6QyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUN2QyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBN0RELG9FQTZEQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4qL1xuXG5pbXBvcnQgeyBidWlsZCB9IGZyb20gXCJAYXdzLXNkay91dGlsLWFybi1wYXJzZXJcIjtcbi8vIHNlZTogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvZHluYW1pYy1yZWZlcmVuY2VzLXNlY3JldHNtYW5hZ2VyLmh0bWxcblxuZXhwb3J0IGludGVyZmFjZSBTZWNyZXREeW5hbWljUmVmZXJlY2VDb21wb25lbnRzIHtcbiAgcmVhZG9ubHkgc2VjcmV0SWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgc2VjcmV0U3RyaW5nPzogXCJTZWNyZXRTdHJpbmdcIjtcbiAgcmVhZG9ubHkganNvbktleT86IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvblN0YWdlPzogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTZWNyZXRzRHluYW1pY1JlZmVyZWNlUGFyc2VyIHtcbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0IHJlZ2V4KCkge1xuICAgIHJldHVybiAvXlxce1xceyhyZXNvbHZlOnNlY3JldHNtYW5hZ2VyW2EtekEtWjAtOTpfLV0qPylcXH1cXH0kLztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgbG9va3NMaWtlU2VjcmV0RHluYW1pY1JlZmVyZW5jZSh0ZXh0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gU2VjcmV0c0R5bmFtaWNSZWZlcmVjZVBhcnNlci5yZWdleC50ZXN0KHRleHQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBwYXJzZShcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICk6IFNlY3JldER5bmFtaWNSZWZlcmVjZUNvbXBvbmVudHMgfCB1bmRlZmluZWQge1xuICAgIGlmICghU2VjcmV0c0R5bmFtaWNSZWZlcmVjZVBhcnNlci5sb29rc0xpa2VTZWNyZXREeW5hbWljUmVmZXJlbmNlKHRleHQpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoZXMgPSB0ZXh0Lm1hdGNoKFNlY3JldHNEeW5hbWljUmVmZXJlY2VQYXJzZXIucmVnZXgpO1xuXG4gICAgaWYgKCFtYXRjaGVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc2VjcmV0IGR5bmFtaWMgcmVmZXJlbmNlOiAke3RleHR9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVmZXJlbmNlQ29udGVudHMgPSBtYXRjaGVzW21hdGNoZXMubGVuZ3RoID09PSAyID8gMSA6IDJdO1xuXG4gICAgY29uc3QgYXJuQmFzZWQgPSByZWZlcmVuY2VDb250ZW50cy5zdGFydHNXaXRoKFxuICAgICAgXCJyZXNvbHZlOnNlY3JldHNtYW5hZ2VyOmFybjpcIixcbiAgICApO1xuXG4gICAgY29uc3QgcGFydHMgPSByZWZlcmVuY2VDb250ZW50cy5zcGxpdChcIjpcIik7XG5cbiAgICBjb25zdCB2YWx1ZUF0T3JEZWZhdWx0ID0gPFQ+KFxuICAgICAgYXJyOiBzdHJpbmdbXSxcbiAgICAgIGlkeDogbnVtYmVyLFxuICAgICAgZGVmYXVsdFZhbHVlPzogVCxcbiAgICApOiBUIHwgdW5kZWZpbmVkID0+XG4gICAgICBhcnIubGVuZ3RoID4gaWR4ICYmIGFycltpZHhdICE9PSBcIlwiID8gKGFycltpZHhdIGFzIFQpIDogZGVmYXVsdFZhbHVlO1xuXG4gICAgaWYgKCFhcm5CYXNlZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2VjcmV0SWQ6IHBhcnRzWzJdLFxuICAgICAgICBzZWNyZXRTdHJpbmc6IHZhbHVlQXRPckRlZmF1bHQocGFydHMsIDMpLFxuICAgICAgICBqc29uS2V5OiB2YWx1ZUF0T3JEZWZhdWx0KHBhcnRzLCA0KSxcbiAgICAgICAgdmVyc2lvblN0YWdlOiB2YWx1ZUF0T3JEZWZhdWx0KHBhcnRzLCA1KSxcbiAgICAgICAgdmVyc2lvbklkOiB2YWx1ZUF0T3JEZWZhdWx0KHBhcnRzLCA2KSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlY3JldElkOiBidWlsZCh7XG4gICAgICAgIHBhcnRpdGlvbjogcGFydHNbM10sXG4gICAgICAgIHNlcnZpY2U6IHBhcnRzWzRdLFxuICAgICAgICByZWdpb246IHBhcnRzWzVdLFxuICAgICAgICBhY2NvdW50SWQ6IHBhcnRzWzZdLFxuICAgICAgICByZXNvdXJjZTogYCR7cGFydHNbN119OiR7cGFydHNbOF19YCxcbiAgICAgIH0pLFxuICAgICAgc2VjcmV0U3RyaW5nOiB2YWx1ZUF0T3JEZWZhdWx0KHBhcnRzLCA5KSxcbiAgICAgIGpzb25LZXk6IHZhbHVlQXRPckRlZmF1bHQocGFydHMsIDEwKSxcbiAgICAgIHZlcnNpb25TdGFnZTogdmFsdWVBdE9yRGVmYXVsdChwYXJ0cywgMTEpLFxuICAgICAgdmVyc2lvbklkOiB2YWx1ZUF0T3JEZWZhdWx0KHBhcnRzLCAxMiksXG4gICAgfTtcbiAgfVxufVxuIl19