@cdklabs/cdk-amazonmq
Version:
<!--BEGIN STABILITY BANNER-->
53 lines • 7.77 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.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