UNPKG

@rayova/cdk-cognito-secret

Version:

Export Cognito client secrets to Secrets Manager

53 lines 6.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handler = void 0; // @ts-ignore // eslint-disable-next-line import/no-extraneous-dependencies const AWS = require("aws-sdk"); async function handler(event) { var _a, _b; console.log('event =', event); const requestType = event.RequestType; if (!requestType) { throw new Error('Request type not specified'); } if (requestType === 'Delete') { return {}; } const resourceProperties = (_a = event.ResourceProperties) !== null && _a !== void 0 ? _a : {}; function getResourceProperty(name) { const value = resourceProperties[name]; if (value === undefined) { throw new Error(`Resource is missing the ${name} property`); } return value; } const userPoolId = getResourceProperty('userPoolId'); const userPoolClientId = getResourceProperty('userPoolClientId'); const userPoolRegion = (_b = resourceProperties.userPoolRegion) !== null && _b !== void 0 ? _b : undefined; const secretArn = getResourceProperty('secretArn'); const issuer = getResourceProperty('issuer'); const secretArnParts = secretArn.split(':'); // arn:aws:secretsmanager:REGION:ACCOUNT:secret:SECRET_NAME const secretRegion = secretArnParts[3]; const idsp = new AWS.CognitoIdentityServiceProvider({ region: userPoolRegion }); const sm = new AWS.SecretsManager({ region: secretRegion }); const { UserPoolClient } = await idsp.describeUserPoolClient({ UserPoolId: userPoolId, ClientId: userPoolClientId, }).promise(); if (!UserPoolClient) { throw new Error('Received an empty UserPoolClient when describing the user pool client'); } await sm.putSecretValue({ SecretId: secretArn, SecretString: JSON.stringify({ issuer, clientId: UserPoolClient.ClientId, clientSecret: UserPoolClient.ClientSecret, }), }).promise(); return {}; } exports.handler = handler; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wb29sLWNsaWVudC1zZWNyZXQubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3VzZXItcG9vbC1jbGllbnQtc2VjcmV0LmxhbWJkYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxhQUFhO0FBQ2IsNkRBQTZEO0FBQzdELCtCQUErQjtBQUV4QixLQUFLLFVBQVUsT0FBTyxDQUFDLEtBQVU7O0lBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRTlCLE1BQU0sV0FBVyxHQUFXLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDOUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDL0M7SUFDRCxJQUFJLFdBQVcsS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxFQUFFLENBQUM7S0FDWDtJQUVELE1BQU0sa0JBQWtCLFNBQTJCLEtBQUssQ0FBQyxrQkFBa0IsbUNBQUksRUFBRSxDQUFDO0lBRWxGLFNBQVMsbUJBQW1CLENBQUMsSUFBWTtRQUN2QyxNQUFNLEtBQUssR0FBVyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsSUFBSSxXQUFXLENBQUMsQ0FBQztTQUM3RDtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqRSxNQUFNLGNBQWMsU0FBRyxrQkFBa0IsQ0FBQyxjQUFjLG1DQUFJLFNBQVMsQ0FBQztJQUN0RSxNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU3QyxNQUFNLGNBQWMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLDJEQUEyRDtJQUMzRCxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsOEJBQThCLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNoRixNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUU1RCxNQUFNLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDM0QsVUFBVSxFQUFFLFVBQVU7UUFDdEIsUUFBUSxFQUFFLGdCQUFnQjtLQUMzQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFYixJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsdUVBQXVFLENBQUMsQ0FBQztLQUMxRjtJQUVELE1BQU0sRUFBRSxDQUFDLGNBQWMsQ0FBQztRQUN0QixRQUFRLEVBQUUsU0FBUztRQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUMzQixNQUFNO1lBQ04sUUFBUSxFQUFFLGNBQWMsQ0FBQyxRQUFRO1lBQ2pDLFlBQVksRUFBRSxjQUFjLENBQUMsWUFBWTtTQUMxQyxDQUFDO0tBQ0gsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRWIsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBdERELDBCQXNEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcbmltcG9ydCAqIGFzIEFXUyBmcm9tICdhd3Mtc2RrJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IGFueSkge1xuICBjb25zb2xlLmxvZygnZXZlbnQgPScsIGV2ZW50KTtcblxuICBjb25zdCByZXF1ZXN0VHlwZTogc3RyaW5nID0gZXZlbnQuUmVxdWVzdFR5cGU7XG4gIGlmICghcmVxdWVzdFR5cGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVlc3QgdHlwZSBub3Qgc3BlY2lmaWVkJyk7XG4gIH1cbiAgaWYgKHJlcXVlc3RUeXBlID09PSAnRGVsZXRlJykge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGNvbnN0IHJlc291cmNlUHJvcGVydGllczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcyA/PyB7fTtcblxuICBmdW5jdGlvbiBnZXRSZXNvdXJjZVByb3BlcnR5KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IHJlc291cmNlUHJvcGVydGllc1tuYW1lXTtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXNvdXJjZSBpcyBtaXNzaW5nIHRoZSAke25hbWV9IHByb3BlcnR5YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgY29uc3QgdXNlclBvb2xJZCA9IGdldFJlc291cmNlUHJvcGVydHkoJ3VzZXJQb29sSWQnKTtcbiAgY29uc3QgdXNlclBvb2xDbGllbnRJZCA9IGdldFJlc291cmNlUHJvcGVydHkoJ3VzZXJQb29sQ2xpZW50SWQnKTtcbiAgY29uc3QgdXNlclBvb2xSZWdpb24gPSByZXNvdXJjZVByb3BlcnRpZXMudXNlclBvb2xSZWdpb24gPz8gdW5kZWZpbmVkO1xuICBjb25zdCBzZWNyZXRBcm4gPSBnZXRSZXNvdXJjZVByb3BlcnR5KCdzZWNyZXRBcm4nKTtcbiAgY29uc3QgaXNzdWVyID0gZ2V0UmVzb3VyY2VQcm9wZXJ0eSgnaXNzdWVyJyk7XG5cbiAgY29uc3Qgc2VjcmV0QXJuUGFydHMgPSBzZWNyZXRBcm4uc3BsaXQoJzonKTtcbiAgLy8gYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpSRUdJT046QUNDT1VOVDpzZWNyZXQ6U0VDUkVUX05BTUVcbiAgY29uc3Qgc2VjcmV0UmVnaW9uID0gc2VjcmV0QXJuUGFydHNbM107XG5cbiAgY29uc3QgaWRzcCA9IG5ldyBBV1MuQ29nbml0b0lkZW50aXR5U2VydmljZVByb3ZpZGVyKHsgcmVnaW9uOiB1c2VyUG9vbFJlZ2lvbiB9KTtcbiAgY29uc3Qgc20gPSBuZXcgQVdTLlNlY3JldHNNYW5hZ2VyKHsgcmVnaW9uOiBzZWNyZXRSZWdpb24gfSk7XG5cbiAgY29uc3QgeyBVc2VyUG9vbENsaWVudCB9ID0gYXdhaXQgaWRzcC5kZXNjcmliZVVzZXJQb29sQ2xpZW50KHtcbiAgICBVc2VyUG9vbElkOiB1c2VyUG9vbElkLFxuICAgIENsaWVudElkOiB1c2VyUG9vbENsaWVudElkLFxuICB9KS5wcm9taXNlKCk7XG5cbiAgaWYgKCFVc2VyUG9vbENsaWVudCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUmVjZWl2ZWQgYW4gZW1wdHkgVXNlclBvb2xDbGllbnQgd2hlbiBkZXNjcmliaW5nIHRoZSB1c2VyIHBvb2wgY2xpZW50Jyk7XG4gIH1cblxuICBhd2FpdCBzbS5wdXRTZWNyZXRWYWx1ZSh7XG4gICAgU2VjcmV0SWQ6IHNlY3JldEFybixcbiAgICBTZWNyZXRTdHJpbmc6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGlzc3VlcixcbiAgICAgIGNsaWVudElkOiBVc2VyUG9vbENsaWVudC5DbGllbnRJZCxcbiAgICAgIGNsaWVudFNlY3JldDogVXNlclBvb2xDbGllbnQuQ2xpZW50U2VjcmV0LFxuICAgIH0pLFxuICB9KS5wcm9taXNlKCk7XG5cbiAgcmV0dXJuIHt9O1xufSJdfQ==