@glicogh/healthcare-cdk 0.1.62 → 0.1.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ import { Stack } from 'aws-cdk-lib';
2
+ import { Instance } from 'aws-cdk-lib/aws-ec2';
3
+ import { Construct } from 'constructs';
4
+ export declare class AssignEIP extends Stack {
5
+ static ec2(scope: Construct, instance: Instance, allocationId: string): void;
6
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssignEIP = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const custom_resources_1 = require("aws-cdk-lib/custom-resources");
6
+ class AssignEIP extends aws_cdk_lib_1.Stack {
7
+ static ec2(scope, instance, allocationId) {
8
+ new custom_resources_1.AwsCustomResource(scope, 'ReassociateEIP', {
9
+ onUpdate: {
10
+ service: 'EC2',
11
+ action: 'associateAddress',
12
+ parameters: {
13
+ AllocationId: allocationId,
14
+ InstanceId: instance.instanceId,
15
+ AllowReassociation: true,
16
+ },
17
+ physicalResourceId: custom_resources_1.PhysicalResourceId.of(allocationId),
18
+ },
19
+ policy: custom_resources_1.AwsCustomResourcePolicy.fromSdkCalls({ resources: custom_resources_1.AwsCustomResourcePolicy.ANY_RESOURCE }),
20
+ });
21
+ }
22
+ }
23
+ exports.AssignEIP = AssignEIP;
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLWVpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2NvbnN0cnVjdHMvYXNzaWduLWVpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBb0M7QUFFcEMsbUVBQThHO0FBRzlHLE1BQWEsU0FBVSxTQUFRLG1CQUFLO0lBQzNCLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBZ0IsRUFBRSxRQUFrQixFQUFFLFlBQW9CO1FBQzFFLElBQUksb0NBQWlCLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO1lBQzdDLFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsa0JBQWtCO2dCQUMxQixVQUFVLEVBQUU7b0JBQ1YsWUFBWSxFQUFFLFlBQVk7b0JBQzFCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtvQkFDL0Isa0JBQWtCLEVBQUUsSUFBSTtpQkFDekI7Z0JBQ0Qsa0JBQWtCLEVBQUUscUNBQWtCLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN4RDtZQUNELE1BQU0sRUFBRSwwQ0FBdUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLEVBQUUsMENBQXVCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDbEcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBaEJELDhCQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgSW5zdGFuY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCB7IEF3c0N1c3RvbVJlc291cmNlLCBBd3NDdXN0b21SZXNvdXJjZVBvbGljeSwgUGh5c2ljYWxSZXNvdXJjZUlkIH0gZnJvbSAnYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGNsYXNzIEFzc2lnbkVJUCBleHRlbmRzIFN0YWNrIHtcbiAgcHVibGljIHN0YXRpYyBlYzIoc2NvcGU6IENvbnN0cnVjdCwgaW5zdGFuY2U6IEluc3RhbmNlLCBhbGxvY2F0aW9uSWQ6IHN0cmluZykge1xuICAgIG5ldyBBd3NDdXN0b21SZXNvdXJjZShzY29wZSwgJ1JlYXNzb2NpYXRlRUlQJywge1xuICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogJ0VDMicsXG4gICAgICAgIGFjdGlvbjogJ2Fzc29jaWF0ZUFkZHJlc3MnLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgQWxsb2NhdGlvbklkOiBhbGxvY2F0aW9uSWQsXG4gICAgICAgICAgSW5zdGFuY2VJZDogaW5zdGFuY2UuaW5zdGFuY2VJZCxcbiAgICAgICAgICBBbGxvd1JlYXNzb2NpYXRpb246IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLm9mKGFsbG9jYXRpb25JZCksXG4gICAgICB9LFxuICAgICAgcG9saWN5OiBBd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoeyByZXNvdXJjZXM6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRSB9KSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -7,6 +7,8 @@ const initBuildConfig_1 = require("../util/initBuildConfig");
7
7
  const getInstanceType_1 = require("../util/getInstanceType");
8
8
  const getEc2UserData_1 = require("../util/getEc2UserData");
9
9
  const getInstanceStorage_1 = require("../util/getInstanceStorage");
10
+ const lookup_eip_1 = require("../constructs/lookup-eip");
11
+ const assign_eip_1 = require("../constructs/assign-eip");
10
12
  // import { LookupEIP } from '../constructs/lookup-eip';
11
13
  class MicroserviceApiGateway extends cdk.Stack {
12
14
  constructor(scope, id, props) {
@@ -31,20 +33,12 @@ class MicroserviceApiGateway extends cdk.Stack {
31
33
  role: cdk.aws_iam.Role.fromRoleName(this, 'BaseRoleLookup', (0, constants_1.getConstant)('baseRoleName')),
32
34
  blockDevices: (0, getInstanceStorage_1.getInstanceStorage)('api-gateway'),
33
35
  });
34
- // assign a new elastic IP in each deployment
35
- new cdk.aws_ec2.CfnEIP(this, 'AssignElasticIP', {
36
- instanceId: instance.instanceId,
37
- });
38
- // // alternatively, assign an already existing elastic IP by looking it up by name
39
- // const eip = LookupEIP.fromName(this, String(getConstant('apiGatewayEIPId')));
40
- // new cdk.aws_ec2.CfnEIPAssociation(this, 'EIPAssociation', {
41
- // allocationId: eip,
42
- // instanceId: instance.instanceId,
43
- // });
36
+ // assign an already existing elastic IP by looking it up by name
37
+ assign_eip_1.AssignEIP.ec2(this, instance, lookup_eip_1.LookupEIP.fromName(this, String((0, constants_1.getConstant)('apiGatewayEIPId'))));
44
38
  new cdk.CfnOutput(this, 'public-ip', {
45
39
  value: instance.instancePublicIp,
46
40
  });
47
41
  }
48
42
  }
49
43
  exports.MicroserviceApiGateway = MicroserviceApiGateway;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLWFwaS1nYXRld2F5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL21pY3Jvc2VydmljZS1hcGktZ2F0ZXdheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFFbkMsaURBQWdFO0FBQ2hFLDZEQUFzRDtBQUN0RCw2REFBMEQ7QUFDMUQsMkRBQXdEO0FBQ3hELG1FQUFnRTtBQUNoRSx3REFBd0Q7QUFFeEQsTUFBYSxzQkFBdUIsU0FBUSxHQUFHLENBQUMsS0FBSztJQUNuRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO1FBQzlELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyw2QkFBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUN4RCxPQUFPLEVBQUUsSUFBQSwwQkFBYyxFQUFDLE9BQU8sQ0FBQztTQUNqQyxDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBQSwwQkFBYyxFQUFDLDJCQUEyQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFdEksTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLDZCQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDeEYsR0FBRztZQUNILGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUEsaUNBQWUsRUFBQyxhQUFhLENBQUMsQ0FBQztZQUMxRSxZQUFZLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2dCQUNsRCxDQUFDLDZCQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUEsdUJBQVcsRUFBQyxpQkFBaUIsQ0FBVzthQUNuRSxDQUFDO1lBQ0YsVUFBVSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUN6RCx3QkFBd0IsRUFBRSxLQUFLO1lBQy9CLFFBQVEsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBQSwrQkFBYyxFQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3BFLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUEsdUJBQVcsRUFBQyxjQUFjLENBQVcsQ0FBQztZQUNsRyxZQUFZLEVBQUUsSUFBQSx1Q0FBa0IsRUFBQyxhQUFhLENBQUM7U0FDaEQsQ0FBQyxDQUFDO1FBRUgsNkNBQTZDO1FBQzdDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzlDLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtTQUNoQyxDQUFDLENBQUM7UUFFSCxtRkFBbUY7UUFDbkYsZ0ZBQWdGO1FBQ2hGLDhEQUE4RDtRQUM5RCx1QkFBdUI7UUFDdkIscUNBQXFDO1FBQ3JDLE1BQU07UUFFTixJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNuQyxLQUFLLEVBQUUsUUFBUSxDQUFDLGdCQUFnQjtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzQ0Qsd0RBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZ2V0Q29uc3RhbnQsIGdldEVudkNvbnN0YW50IH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuLi91dGlsL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBnZXRJbnN0YW5jZVR5cGUgfSBmcm9tICcuLi91dGlsL2dldEluc3RhbmNlVHlwZSc7XG5pbXBvcnQgeyBnZXRFYzJVc2VyRGF0YSB9IGZyb20gJy4uL3V0aWwvZ2V0RWMyVXNlckRhdGEnO1xuaW1wb3J0IHsgZ2V0SW5zdGFuY2VTdG9yYWdlIH0gZnJvbSAnLi4vdXRpbC9nZXRJbnN0YW5jZVN0b3JhZ2UnO1xuLy8gaW1wb3J0IHsgTG9va3VwRUlQIH0gZnJvbSAnLi4vY29uc3RydWN0cy9sb29rdXAtZWlwJztcblxuZXhwb3J0IGNsYXNzIE1pY3Jvc2VydmljZUFwaUdhdGV3YXkgZXh0ZW5kcyBjZGsuU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IGNkay5TdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBpZiAoIWJ1aWxkQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0J1aWxkQ29uZmlnIG5vdCBzZXQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB2cGMgPSBjZGsuYXdzX2VjMi5WcGMuZnJvbUxvb2t1cCh0aGlzLCAnVlBDTG9va3VwJywge1xuICAgICAgdnBjTmFtZTogZ2V0RW52Q29uc3RhbnQoJ3ZwY0lkJyksXG4gICAgfSk7XG4gICAgY29uc3Qgc2VjR3JvdXAgPSBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwLmZyb21Mb29rdXBCeU5hbWUodGhpcywgJ1NlY0dyb3VwTG9va3VwJywgZ2V0RW52Q29uc3RhbnQoJ2FwaUdhdGV3YXlTZWN1cml0eUdyb3VwSWQnKSwgdnBjKTtcblxuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IGNkay5hd3NfZWMyLkluc3RhbmNlKHRoaXMsIGBlYzItYXBpLWdhdGV3YXktJHtidWlsZENvbmZpZy5lbnZOYW1lfWAsIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXA6IHNlY0dyb3VwLFxuICAgICAgaW5zdGFuY2VUeXBlOiBuZXcgY2RrLmF3c19lYzIuSW5zdGFuY2VUeXBlKGdldEluc3RhbmNlVHlwZSgnYXBpLWdhdGV3YXknKSksXG4gICAgICBtYWNoaW5lSW1hZ2U6IGNkay5hd3NfZWMyLk1hY2hpbmVJbWFnZS5nZW5lcmljTGludXgoe1xuICAgICAgICBbYnVpbGRDb25maWcuYXdzLnJlZ2lvbl06IGdldENvbnN0YW50KCdkZWZhdWx0SW1hZ2VBbWknKSBhcyBzdHJpbmcsXG4gICAgICB9KSxcbiAgICAgIHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZTogY2RrLmF3c19lYzIuU3VibmV0VHlwZS5QVUJMSUMgfSxcbiAgICAgIGFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzczogZmFsc2UsXG4gICAgICB1c2VyRGF0YTogY2RrLmF3c19lYzIuVXNlckRhdGEuY3VzdG9tKGdldEVjMlVzZXJEYXRhKCdhcGktZ2F0ZXdheScpKSxcbiAgICAgIHJvbGU6IGNkay5hd3NfaWFtLlJvbGUuZnJvbVJvbGVOYW1lKHRoaXMsICdCYXNlUm9sZUxvb2t1cCcsIGdldENvbnN0YW50KCdiYXNlUm9sZU5hbWUnKSBhcyBzdHJpbmcpLFxuICAgICAgYmxvY2tEZXZpY2VzOiBnZXRJbnN0YW5jZVN0b3JhZ2UoJ2FwaS1nYXRld2F5JyksXG4gICAgfSk7XG5cbiAgICAvLyBhc3NpZ24gYSBuZXcgZWxhc3RpYyBJUCBpbiBlYWNoIGRlcGxveW1lbnRcbiAgICBuZXcgY2RrLmF3c19lYzIuQ2ZuRUlQKHRoaXMsICdBc3NpZ25FbGFzdGljSVAnLCB7XG4gICAgICBpbnN0YW5jZUlkOiBpbnN0YW5jZS5pbnN0YW5jZUlkLFxuICAgIH0pO1xuXG4gICAgLy8gLy8gYWx0ZXJuYXRpdmVseSwgYXNzaWduIGFuIGFscmVhZHkgZXhpc3RpbmcgZWxhc3RpYyBJUCBieSBsb29raW5nIGl0IHVwIGJ5IG5hbWVcbiAgICAvLyBjb25zdCBlaXAgPSBMb29rdXBFSVAuZnJvbU5hbWUodGhpcywgU3RyaW5nKGdldENvbnN0YW50KCdhcGlHYXRld2F5RUlQSWQnKSkpO1xuICAgIC8vIG5ldyBjZGsuYXdzX2VjMi5DZm5FSVBBc3NvY2lhdGlvbih0aGlzLCAnRUlQQXNzb2NpYXRpb24nLCB7XG4gICAgLy8gICBhbGxvY2F0aW9uSWQ6IGVpcCxcbiAgICAvLyAgIGluc3RhbmNlSWQ6IGluc3RhbmNlLmluc3RhbmNlSWQsXG4gICAgLy8gfSk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAncHVibGljLWlwJywge1xuICAgICAgdmFsdWU6IGluc3RhbmNlLmluc3RhbmNlUHVibGljSXAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLWFwaS1nYXRld2F5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL21pY3Jvc2VydmljZS1hcGktZ2F0ZXdheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFFbkMsaURBQWdFO0FBQ2hFLDZEQUFzRDtBQUN0RCw2REFBMEQ7QUFDMUQsMkRBQXdEO0FBQ3hELG1FQUFnRTtBQUNoRSx5REFBcUQ7QUFDckQseURBQXFEO0FBQ3JELHdEQUF3RDtBQUV4RCxNQUFhLHNCQUF1QixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQ25ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLDZCQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3hELE9BQU8sRUFBRSxJQUFBLDBCQUFjLEVBQUMsT0FBTyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFBLDBCQUFjLEVBQUMsMkJBQTJCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV0SSxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxtQkFBbUIsNkJBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN4RixHQUFHO1lBQ0gsYUFBYSxFQUFFLFFBQVE7WUFDdkIsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBQSxpQ0FBZSxFQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFFLFlBQVksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7Z0JBQ2xELENBQUMsNkJBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBQSx1QkFBVyxFQUFDLGlCQUFpQixDQUFXO2FBQ25FLENBQUM7WUFDRixVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3pELHdCQUF3QixFQUFFLEtBQUs7WUFDL0IsUUFBUSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFBLCtCQUFjLEVBQUMsYUFBYSxDQUFDLENBQUM7WUFDcEUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBQSx1QkFBVyxFQUFDLGNBQWMsQ0FBVyxDQUFDO1lBQ2xHLFlBQVksRUFBRSxJQUFBLHVDQUFrQixFQUFDLGFBQWEsQ0FBQztTQUNoRCxDQUFDLENBQUM7UUFFSCxpRUFBaUU7UUFDakUsc0JBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxzQkFBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUEsdUJBQVcsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWhHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ25DLEtBQUssRUFBRSxRQUFRLENBQUMsZ0JBQWdCO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWxDRCx3REFrQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBnZXRDb25zdGFudCwgZ2V0RW52Q29uc3RhbnQgfSBmcm9tICcuLi91dGlsL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBidWlsZENvbmZpZyB9IGZyb20gJy4uL3V0aWwvaW5pdEJ1aWxkQ29uZmlnJztcbmltcG9ydCB7IGdldEluc3RhbmNlVHlwZSB9IGZyb20gJy4uL3V0aWwvZ2V0SW5zdGFuY2VUeXBlJztcbmltcG9ydCB7IGdldEVjMlVzZXJEYXRhIH0gZnJvbSAnLi4vdXRpbC9nZXRFYzJVc2VyRGF0YSc7XG5pbXBvcnQgeyBnZXRJbnN0YW5jZVN0b3JhZ2UgfSBmcm9tICcuLi91dGlsL2dldEluc3RhbmNlU3RvcmFnZSc7XG5pbXBvcnQgeyBMb29rdXBFSVAgfSBmcm9tICcuLi9jb25zdHJ1Y3RzL2xvb2t1cC1laXAnO1xuaW1wb3J0IHsgQXNzaWduRUlQIH0gZnJvbSAnLi4vY29uc3RydWN0cy9hc3NpZ24tZWlwJztcbi8vIGltcG9ydCB7IExvb2t1cEVJUCB9IGZyb20gJy4uL2NvbnN0cnVjdHMvbG9va3VwLWVpcCc7XG5cbmV4cG9ydCBjbGFzcyBNaWNyb3NlcnZpY2VBcGlHYXRld2F5IGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCdWlsZENvbmZpZyBub3Qgc2V0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgdnBjID0gY2RrLmF3c19lYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1ZQQ0xvb2t1cCcsIHtcbiAgICAgIHZwY05hbWU6IGdldEVudkNvbnN0YW50KCd2cGNJZCcpLFxuICAgIH0pO1xuICAgIGNvbnN0IHNlY0dyb3VwID0gY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cC5mcm9tTG9va3VwQnlOYW1lKHRoaXMsICdTZWNHcm91cExvb2t1cCcsIGdldEVudkNvbnN0YW50KCdhcGlHYXRld2F5U2VjdXJpdHlHcm91cElkJyksIHZwYyk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBjZGsuYXdzX2VjMi5JbnN0YW5jZSh0aGlzLCBgZWMyLWFwaS1nYXRld2F5LSR7YnVpbGRDb25maWcuZW52TmFtZX1gLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwOiBzZWNHcm91cCxcbiAgICAgIGluc3RhbmNlVHlwZTogbmV3IGNkay5hd3NfZWMyLkluc3RhbmNlVHlwZShnZXRJbnN0YW5jZVR5cGUoJ2FwaS1nYXRld2F5JykpLFxuICAgICAgbWFjaGluZUltYWdlOiBjZGsuYXdzX2VjMi5NYWNoaW5lSW1hZ2UuZ2VuZXJpY0xpbnV4KHtcbiAgICAgICAgW2J1aWxkQ29uZmlnLmF3cy5yZWdpb25dOiBnZXRDb25zdGFudCgnZGVmYXVsdEltYWdlQW1pJykgYXMgc3RyaW5nLFxuICAgICAgfSksXG4gICAgICB2cGNTdWJuZXRzOiB7IHN1Ym5ldFR5cGU6IGNkay5hd3NfZWMyLlN1Ym5ldFR5cGUuUFVCTElDIH0sXG4gICAgICBhc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3M6IGZhbHNlLFxuICAgICAgdXNlckRhdGE6IGNkay5hd3NfZWMyLlVzZXJEYXRhLmN1c3RvbShnZXRFYzJVc2VyRGF0YSgnYXBpLWdhdGV3YXknKSksXG4gICAgICByb2xlOiBjZGsuYXdzX2lhbS5Sb2xlLmZyb21Sb2xlTmFtZSh0aGlzLCAnQmFzZVJvbGVMb29rdXAnLCBnZXRDb25zdGFudCgnYmFzZVJvbGVOYW1lJykgYXMgc3RyaW5nKSxcbiAgICAgIGJsb2NrRGV2aWNlczogZ2V0SW5zdGFuY2VTdG9yYWdlKCdhcGktZ2F0ZXdheScpLFxuICAgIH0pO1xuXG4gICAgLy8gYXNzaWduIGFuIGFscmVhZHkgZXhpc3RpbmcgZWxhc3RpYyBJUCBieSBsb29raW5nIGl0IHVwIGJ5IG5hbWVcbiAgICBBc3NpZ25FSVAuZWMyKHRoaXMsIGluc3RhbmNlLCBMb29rdXBFSVAuZnJvbU5hbWUodGhpcywgU3RyaW5nKGdldENvbnN0YW50KCdhcGlHYXRld2F5RUlQSWQnKSkpKTtcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsICdwdWJsaWMtaXAnLCB7XG4gICAgICB2YWx1ZTogaW5zdGFuY2UuaW5zdGFuY2VQdWJsaWNJcCxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -119,16 +119,16 @@ class MicroserviceNetwork extends cdk.Stack {
119
119
  securityGroupIds: [iceSecGrp.securityGroupId],
120
120
  subnetId: vpc.privateSubnets[0].subnetId,
121
121
  });
122
- // // API gateway's elastic IP
123
- // const apiGatewayEIP = new cdk.aws_ec2.CfnEIP(this, String(getConstant('apiGatewayEIPId')), { domain: 'vpc' });
124
- // cdk.Tags.of(apiGatewayEIP).add('Name', String(getConstant('apiGatewayEIPId')));
125
- // // Portal's elastic IP
126
- // const portalEIP = new cdk.aws_ec2.CfnEIP(this, String(getConstant('portalEIPId')), { domain: 'vpc' });
127
- // cdk.Tags.of(portalEIP).add('Name', String(getConstant('portalEIPId')));
122
+ // API gateway's elastic IP
123
+ const apiGatewayEIP = new cdk.aws_ec2.CfnEIP(this, String((0, constants_1.getConstant)('apiGatewayEIPId')), { domain: 'vpc' });
124
+ cdk.Tags.of(apiGatewayEIP).add('Name', String((0, constants_1.getConstant)('apiGatewayEIPId')));
125
+ // Portal's elastic IP
126
+ const portalEIP = new cdk.aws_ec2.CfnEIP(this, String((0, constants_1.getConstant)('portalEIPId')), { domain: 'vpc' });
127
+ cdk.Tags.of(portalEIP).add('Name', String((0, constants_1.getConstant)('portalEIPId')));
128
128
  new cdk.CfnOutput(this, 'vpc ID', {
129
129
  value: vpc.vpcId,
130
130
  });
131
131
  }
132
132
  }
133
133
  exports.MicroserviceNetwork = MicroserviceNetwork;
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLW5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWljcm9zZXJ2aWNlLW5ldHdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBRW5DLGlEQUFtRDtBQUNuRCw2REFBc0Q7QUFDdEQscUVBQWtFO0FBRWxFLE1BQWEsbUJBQW9CLFNBQVEsR0FBRyxDQUFDLEtBQUs7SUFDaEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsNkJBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQzVDLFVBQVUsRUFBRSxJQUFBLHlDQUFtQixHQUFFO1lBQ2pDLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlO1lBQy9ELGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU87WUFDeEMsSUFBSSxFQUFFO2dCQUNKO29CQUNFLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDckIsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7b0JBQ3hHLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDckIsY0FBYyxFQUFFLEVBQUU7aUJBQ25CO2FBQ0Y7U0FDRixDQUFDLENB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QUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBRWhILElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsSUFBQSwwQkFBYyxFQUFDLDhCQUE4QixDQUFDLEVBQUU7WUFDL0YsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO1lBQzdDLFFBQVEsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVE7U0FDekMsQ0FBQyxDQUFDO1FBRUgsOEJBQThCO1FBQzlCLGlIQUFpSDtRQUNqSCxrRkFBa0Y7UUFFbEYseUJBQXlCO1FBQ3pCLHlHQUF5RztRQUN6RywwRUFBMEU7UUFFMUUsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDaEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpKRCxrREFpSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBnZXRFbnZDb25zdGFudCB9IGZyb20gJy4uL3V0aWwvY29uc3RhbnRzJztcbmltcG9ydCB7IGJ1aWxkQ29uZmlnIH0gZnJvbSAnLi4vdXRpbC9pbml0QnVpbGRDb25maWcnO1xuaW1wb3J0IHsgZ2V0UHVibGljQnVja2V0TmFtZSB9IGZyb20gJy4uL3V0aWwvZ2V0UHVibGljQnVja2V0TmFtZSc7XG5cbmV4cG9ydCBjbGFzcyBNaWNyb3NlcnZpY2VOZXR3b3JrIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCdWlsZENvbmZpZyBub3Qgc2V0Jyk7XG4gICAgfVxuXG4gICAgLy8gY3JlYXRlIHB1YmxpYyBzMyBidWNrZXRcbiAgICBuZXcgY2RrLmF3c19zMy5CdWNrZXQodGhpcywgJ1B1YmxpY1MzQnVja2V0Jywge1xuICAgICAgYnVja2V0TmFtZTogZ2V0UHVibGljQnVja2V0TmFtZSgpLFxuICAgICAgcHVibGljUmVhZEFjY2VzczogdHJ1ZSxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBjZGsuYXdzX3MzLkJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FDTFNfT05MWSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBjb3JzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhbGxvd2VkSGVhZGVyczogWycqJ10sXG4gICAgICAgICAgYWxsb3dlZE1ldGhvZHM6IFtjZGsuYXdzX3MzLkh0dHBNZXRob2RzLlBPU1QsIGNkay5hd3NfczMuSHR0cE1ldGhvZHMuUFVULCBjZGsuYXdzX3MzLkh0dHBNZXRob2RzLkRFTEVURV0sXG4gICAgICAgICAgYWxsb3dlZE9yaWdpbnM6IFsnKiddLFxuICAgICAgICAgIGV4cG9zZWRIZWFkZXJzOiBbXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCB2cGMgPSBuZXcgY2RrLmF3c19lYzIuVnBjKHRoaXMsIGdldEVudkNvbnN0YW50KCd2cGNJZCcpLCB7XG4gICAgICB2cGNOYW1lOiBnZXRFbnZDb25zdGFudCgndnBjSWQnKSxcbiAgICAgIGVuYWJsZURuc0hvc3RuYW1lczogdHJ1ZSxcbiAgICAgIGVuYWJsZURuc1N1cHBvcnQ6IHRydWUsXG4gICAgICBtYXhBenM6IDEsXG4gICAgICBuYXRHYXRld2F5czogMSxcbiAgICAgIC8vIHByb3Zpc2lvbiBhbmQgdXNlIGFuIEVDMiBpbnN0YW5jZSBhcyBOQVQgZ2F0ZXdheSBpbiBub24tcHJvZCBlbnZpcm9ubWVudHNcbiAgICAgIC8vIGluIHByb2QsIHRoZSBkZWZhdWx0IG1vcmUgc2NhbGFibGUvZXhwZW5zaXZlIE5BVCBnYXRld2F5IHdpbGwgYmUgdXNlZFxuICAgICAgLi4uKGJ1aWxkQ29uZmlnLmVudk5hbWUgIT09ICdwcm9kJyAmJiB7XG4gICAgICAgIG5hdEdhdGV3YXlQcm92aWRlcjogbmV3IGNkay5hd3NfZWMyLk5hdEluc3RhbmNlUHJvdmlkZXJWMih7XG4gICAgICAgICAgaW5zdGFuY2VUeXBlOiBuZXcgY2RrLmF3c19lYzIuSW5zdGFuY2VUeXBlKCd0NGcubmFubycpLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgcmVzdHJpY3REZWZhdWx0U2VjdXJpdHlHcm91cDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIHNlY3VyaXR5IGdyb3VwIGZvciBQb3J0YWxcbiAgICBjb25zdCBwb3J0YWxTZWNHcnAgPSBuZXcgY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBnZXRFbnZDb25zdGFudCgncG9ydGFsU2VjdXJpdHlHcm91cElkJyksIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBnZXRFbnZDb25zdGFudCgncG9ydGFsU2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIHJ1bGUgZm9yIEhUVFAgYWNjZXNzXG4gICAgcG9ydGFsU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuYW55SXB2NCgpLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCg4MCksICdIVFRQIGZyb20gYW55d2hlcmUnKTtcbiAgICAvLyBhZGQgcnVsZSBmb3IgSFRUUFMgYWNjZXNzXG4gICAgcG9ydGFsU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuYW55SXB2NCgpLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCg0NDMpLCAnSFRUUFMgZnJvbSBhbnl3aGVyZScpO1xuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgcG9ydGFsU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMjIpLCAnU1NIIGZyb20gd2l0aGluIFZQQycpO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIEFQSSBHYXRld2F5XG4gICAgY29uc3QgYXBpR2F0ZXdheVNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdhcGlHYXRld2F5U2VjdXJpdHlHcm91cElkJyksIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBnZXRFbnZDb25zdGFudCgnYXBpR2F0ZXdheVNlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBIVFRQIGFjY2Vzc1xuICAgIGFwaUdhdGV3YXlTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5hbnlJcHY0KCksIGNkay5hd3NfZWMyLlBvcnQudGNwKDgwKSwgJ0hUVFAgZnJvbSBhbnl3aGVyZScpO1xuICAgIC8vIGFkZCBydWxlIGZvciBIVFRQUyBhY2Nlc3NcbiAgICBhcGlHYXRld2F5U2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuYW55SXB2NCgpLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCg0NDMpLCAnSFRUUFMgZnJvbSBhbnl3aGVyZScpO1xuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgYXBpR2F0ZXdheVNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmFueUlwdjQoKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMjIpLCAnU1NIIGZyb20gYW55d2hlcmUnKTtcbiAgICAvLyBhZGQgcnVsZSBmb3IgaW50ZXJuYWwgY29tbXVuaWNhdGlvblxuICAgIGFwaUdhdGV3YXlTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCg4MDgxKSwgJ0ludGVybmFsIG1pY3Jvc2VydmljZSBjb21tdW5pY2F0aW9uIGZyb20gd2l0aGluIFZQQycpO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIFJlZGlzIHNlcnZlclxuICAgIGNvbnN0IHJlZGlzU2VjR3JwID0gbmV3IGNkay5hd3NfZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgZ2V0RW52Q29uc3RhbnQoJ3JlZGlzU2VjdXJpdHlHcm91cElkJyksIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBnZXRFbnZDb25zdGFudCgncmVkaXNTZWN1cml0eUdyb3VwSWQnKSxcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBhZGQgcnVsZSBmb3IgU1NIIGFjY2Vzc1xuICAgIHJlZGlzU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMjIpLCAnU1NIIGZyb20gd2l0aGluIFZQQycpO1xuICAgIC8vIGFkZCBydWxlIGZvciBSZWRpcyBhY2Nlc3NcbiAgICByZWRpc1NlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDYzNzkpLCAnUmVkaXMgZnJvbSB3aXRoaW4gVlBDJyk7XG5cbiAgICAvLyBzZWN1cml0eSBncm91cCBmb3IgTXlTUUwgc2VydmVyXG4gICAgY29uc3QgbXlzcWxTZWNHcnAgPSBuZXcgY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBnZXRFbnZDb25zdGFudCgnbXlzcWxTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdteXNxbFNlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgbXlzcWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSB3aXRoaW4gVlBDJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIE15U1FMIGFjY2Vzc1xuICAgIG15c3FsU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMzMwNiksICdNeVNRTCBmcm9tIHdpdGhpbiBWUEMnKTtcblxuICAgIC8vIHNlY3VyaXR5IGdyb3VwIGZvciBOb3RpZmljYXRpb24gc2VydmljZVxuICAgIGNvbnN0IG5vdGlmaWNhdGlvblNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdub3RpZmljYXRpb25TZXJ2aWNlU2VjdXJpdHlHcm91cElkJyksIHtcbiAgICAgIHZwYyxcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBnZXRFbnZDb25zdGFudCgnbm90aWZpY2F0aW9uU2VydmljZVNlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgbm90aWZpY2F0aW9uU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoMjIpLCAnU1NIIGZyb20gd2l0aGluIFZQQycpO1xuICAgIC8vIGFkZCBydWxlIGZvciBIVFRQIGFjY2Vzc1xuICAgIG5vdGlmaWNhdGlvblNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDgwODApLCAnSFRUUCBmcm9tIHdpdGhpbiBWUEMnKTtcblxuICAgIC8vIHNlY3VyaXR5IGdyb3VwIGZvciBMYXJhdmVsLWJhc2VkIHNlcnZpY2VzXG4gICAgY29uc3QgbGFyYXZlbFNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdsYXJhdmVsQmFzZWRTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdsYXJhdmVsQmFzZWRTZWN1cml0eUdyb3VwSWQnKSxcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBhZGQgcnVsZSBmb3IgU1NIIGFjY2Vzc1xuICAgIGxhcmF2ZWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSB3aXRoaW4gVlBDJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIEhUVFBcbiAgICBsYXJhdmVsU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoODA4MCksICdIVFRQIGZyb20gd2l0aGluIFZQQycpO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIEluc3RhbmNlIENvbm5lY3Rpb24gRW5kcG9pbnRcbiAgICBjb25zdCBpY2VTZWNHcnAgPSBuZXcgY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBnZXRFbnZDb25zdGFudCgnZWMySW5zdGFuY2VDb25uZWN0RW5kcG9pbnRTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdlYzJJbnN0YW5jZUNvbm5lY3RFbmRwb2ludFNlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBhZGQgcnVsZSBmb3Igb3V0Ym91bmQgU1NIXG4gICAgaWNlU2VjR3JwLmFkZEVncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggdG8gd2l0aGluIFZQQycpO1xuXG4gICAgbmV3IGNkay5hd3NfZWMyLkNmbkluc3RhbmNlQ29ubmVjdEVuZHBvaW50KHRoaXMsIGdldEVudkNvbnN0YW50KCdlYzJJbnN0YW5jZUNvbm5lY3RFbmRwb2ludElkJyksIHtcbiAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IFtpY2VTZWNHcnAuc2VjdXJpdHlHcm91cElkXSxcbiAgICAgIHN1Ym5ldElkOiB2cGMucHJpdmF0ZVN1Ym5ldHNbMF0uc3VibmV0SWQsXG4gICAgfSk7XG5cbiAgICAvLyAvLyBBUEkgZ2F0ZXdheSdzIGVsYXN0aWMgSVBcbiAgICAvLyBjb25zdCBhcGlHYXRld2F5RUlQID0gbmV3IGNkay5hd3NfZWMyLkNmbkVJUCh0aGlzLCBTdHJpbmcoZ2V0Q29uc3RhbnQoJ2FwaUdhdGV3YXlFSVBJZCcpKSwgeyBkb21haW46ICd2cGMnIH0pO1xuICAgIC8vIGNkay5UYWdzLm9mKGFwaUdhdGV3YXlFSVApLmFkZCgnTmFtZScsIFN0cmluZyhnZXRDb25zdGFudCgnYXBpR2F0ZXdheUVJUElkJykpKTtcblxuICAgIC8vIC8vIFBvcnRhbCdzIGVsYXN0aWMgSVBcbiAgICAvLyBjb25zdCBwb3J0YWxFSVAgPSBuZXcgY2RrLmF3c19lYzIuQ2ZuRUlQKHRoaXMsIFN0cmluZyhnZXRDb25zdGFudCgncG9ydGFsRUlQSWQnKSksIHsgZG9tYWluOiAndnBjJyB9KTtcbiAgICAvLyBjZGsuVGFncy5vZihwb3J0YWxFSVApLmFkZCgnTmFtZScsIFN0cmluZyhnZXRDb25zdGFudCgncG9ydGFsRUlQSWQnKSkpO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ3ZwYyBJRCcsIHtcbiAgICAgIHZhbHVlOiB2cGMudnBjSWQsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLW5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvbWljcm9zZXJ2aWNlLW5ldHdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBRW5DLGlEQUFnRTtBQUNoRSw2REFBc0Q7QUFDdEQscUVBQWtFO0FBRWxFLE1BQWEsbUJBQW9CLFNBQVEsR0FBRyxDQUFDLEtBQUs7SUFDaEQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsNkJBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsMEJBQTBCO1FBQzFCLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQzVDLFVBQVUsRUFBRSxJQUFBLHlDQUFtQixHQUFFO1lBQ2pDLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsaUJBQWlCLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlO1lBQy9ELGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLE9BQU87WUFDeEMsSUFBSSxFQUFFO2dCQUNKO29CQUNFLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDckIsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7b0JBQ3hHLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQztvQkFDckIsY0FBYyxFQUFFLEVBQUU7aUJBQ25CO2FBQ0Y7U0FDRixDQUFDLENB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QUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZFLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ2hDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFqSkQsa0RBaUpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZ2V0Q29uc3RhbnQsIGdldEVudkNvbnN0YW50IH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuLi91dGlsL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBnZXRQdWJsaWNCdWNrZXROYW1lIH0gZnJvbSAnLi4vdXRpbC9nZXRQdWJsaWNCdWNrZXROYW1lJztcblxuZXhwb3J0IGNsYXNzIE1pY3Jvc2VydmljZU5ldHdvcmsgZXh0ZW5kcyBjZGsuU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IGNkay5TdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBpZiAoIWJ1aWxkQ29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0J1aWxkQ29uZmlnIG5vdCBzZXQnKTtcbiAgICB9XG5cbiAgICAvLyBjcmVhdGUgcHVibGljIHMzIGJ1Y2tldFxuICAgIG5ldyBjZGsuYXdzX3MzLkJ1Y2tldCh0aGlzLCAnUHVibGljUzNCdWNrZXQnLCB7XG4gICAgICBidWNrZXROYW1lOiBnZXRQdWJsaWNCdWNrZXROYW1lKCksXG4gICAgICBwdWJsaWNSZWFkQWNjZXNzOiB0cnVlLFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IGNkay5hd3NfczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUNMU19PTkxZLFxuICAgICAgcmVtb3ZhbFBvbGljeTogY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGNvcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFsbG93ZWRIZWFkZXJzOiBbJyonXSxcbiAgICAgICAgICBhbGxvd2VkTWV0aG9kczogW2Nkay5hd3NfczMuSHR0cE1ldGhvZHMuUE9TVCwgY2RrLmF3c19zMy5IdHRwTWV0aG9kcy5QVVQsIGNkay5hd3NfczMuSHR0cE1ldGhvZHMuREVMRVRFXSxcbiAgICAgICAgICBhbGxvd2VkT3JpZ2luczogWycqJ10sXG4gICAgICAgICAgZXhwb3NlZEhlYWRlcnM6IFtdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZwYyA9IG5ldyBjZGsuYXdzX2VjMi5WcGModGhpcywgZ2V0RW52Q29uc3RhbnQoJ3ZwY0lkJyksIHtcbiAgICAgIHZwY05hbWU6IGdldEVudkNvbnN0YW50KCd2cGNJZCcpLFxuICAgICAgZW5hYmxlRG5zSG9zdG5hbWVzOiB0cnVlLFxuICAgICAgZW5hYmxlRG5zU3VwcG9ydDogdHJ1ZSxcbiAgICAgIG1heEF6czogMSxcbiAgICAgIG5hdEdhdGV3YXlzOiAxLFxuICAgICAgLy8gcHJvdmlzaW9uIGFuZCB1c2UgYW4gRUMyIGluc3RhbmNlIGFzIE5BVCBnYXRld2F5IGluIG5vbi1wcm9kIGVudmlyb25tZW50c1xuICAgICAgLy8gaW4gcHJvZCwgdGhlIGRlZmF1bHQgbW9yZSBzY2FsYWJsZS9leHBlbnNpdmUgTkFUIGdhdGV3YXkgd2lsbCBiZSB1c2VkXG4gICAgICAuLi4oYnVpbGRDb25maWcuZW52TmFtZSAhPT0gJ3Byb2QnICYmIHtcbiAgICAgICAgbmF0R2F0ZXdheVByb3ZpZGVyOiBuZXcgY2RrLmF3c19lYzIuTmF0SW5zdGFuY2VQcm92aWRlclYyKHtcbiAgICAgICAgICBpbnN0YW5jZVR5cGU6IG5ldyBjZGsuYXdzX2VjMi5JbnN0YW5jZVR5cGUoJ3Q0Zy5uYW5vJyksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICByZXN0cmljdERlZmF1bHRTZWN1cml0eUdyb3VwOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIFBvcnRhbFxuICAgIGNvbnN0IHBvcnRhbFNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdwb3J0YWxTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdwb3J0YWxTZWN1cml0eUdyb3VwSWQnKSxcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBhZGQgcnVsZSBmb3IgSFRUUCBhY2Nlc3NcbiAgICBwb3J0YWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5hbnlJcHY0KCksIGNkay5hd3NfZWMyLlBvcnQudGNwKDgwKSwgJ0hUVFAgZnJvbSBhbnl3aGVyZScpO1xuICAgIC8vIGFkZCBydWxlIGZvciBIVFRQUyBhY2Nlc3NcbiAgICBwb3J0YWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5hbnlJcHY0KCksIGNkay5hd3NfZWMyLlBvcnQudGNwKDQ0MyksICdIVFRQUyBmcm9tIGFueXdoZXJlJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIFNTSCBhY2Nlc3NcbiAgICBwb3J0YWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSB3aXRoaW4gVlBDJyk7XG5cbiAgICAvLyBzZWN1cml0eSBncm91cCBmb3IgQVBJIEdhdGV3YXlcbiAgICBjb25zdCBhcGlHYXRld2F5U2VjR3JwID0gbmV3IGNkay5hd3NfZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgZ2V0RW52Q29uc3RhbnQoJ2FwaUdhdGV3YXlTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdhcGlHYXRld2F5U2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIHJ1bGUgZm9yIEhUVFAgYWNjZXNzXG4gICAgYXBpR2F0ZXdheVNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmFueUlwdjQoKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoODApLCAnSFRUUCBmcm9tIGFueXdoZXJlJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIEhUVFBTIGFjY2Vzc1xuICAgIGFwaUdhdGV3YXlTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5hbnlJcHY0KCksIGNkay5hd3NfZWMyLlBvcnQudGNwKDQ0MyksICdIVFRQUyBmcm9tIGFueXdoZXJlJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIFNTSCBhY2Nlc3NcbiAgICBhcGlHYXRld2F5U2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuYW55SXB2NCgpLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSBhbnl3aGVyZScpO1xuICAgIC8vIGFkZCBydWxlIGZvciBpbnRlcm5hbCBjb21tdW5pY2F0aW9uXG4gICAgYXBpR2F0ZXdheVNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDgwODEpLCAnSW50ZXJuYWwgbWljcm9zZXJ2aWNlIGNvbW11bmljYXRpb24gZnJvbSB3aXRoaW4gVlBDJyk7XG5cbiAgICAvLyBzZWN1cml0eSBncm91cCBmb3IgUmVkaXMgc2VydmVyXG4gICAgY29uc3QgcmVkaXNTZWNHcnAgPSBuZXcgY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cCh0aGlzLCBnZXRFbnZDb25zdGFudCgncmVkaXNTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdyZWRpc1NlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgcmVkaXNTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSB3aXRoaW4gVlBDJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIFJlZGlzIGFjY2Vzc1xuICAgIHJlZGlzU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoNjM3OSksICdSZWRpcyBmcm9tIHdpdGhpbiBWUEMnKTtcblxuICAgIC8vIHNlY3VyaXR5IGdyb3VwIGZvciBNeVNRTCBzZXJ2ZXJcbiAgICBjb25zdCBteXNxbFNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdteXNxbFNlY3VyaXR5R3JvdXBJZCcpLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwTmFtZTogZ2V0RW52Q29uc3RhbnQoJ215c3FsU2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIHJ1bGUgZm9yIFNTSCBhY2Nlc3NcbiAgICBteXNxbFNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDIyKSwgJ1NTSCBmcm9tIHdpdGhpbiBWUEMnKTtcbiAgICAvLyBhZGQgcnVsZSBmb3IgTXlTUUwgYWNjZXNzXG4gICAgbXlzcWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgzMzA2KSwgJ015U1FMIGZyb20gd2l0aGluIFZQQycpO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIE5vdGlmaWNhdGlvbiBzZXJ2aWNlXG4gICAgY29uc3Qgbm90aWZpY2F0aW9uU2VjR3JwID0gbmV3IGNkay5hd3NfZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgZ2V0RW52Q29uc3RhbnQoJ25vdGlmaWNhdGlvblNlcnZpY2VTZWN1cml0eUdyb3VwSWQnKSwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cE5hbWU6IGdldEVudkNvbnN0YW50KCdub3RpZmljYXRpb25TZXJ2aWNlU2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gYWRkIHJ1bGUgZm9yIFNTSCBhY2Nlc3NcbiAgICBub3RpZmljYXRpb25TZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCgyMiksICdTU0ggZnJvbSB3aXRoaW4gVlBDJyk7XG4gICAgLy8gYWRkIHJ1bGUgZm9yIEhUVFAgYWNjZXNzXG4gICAgbm90aWZpY2F0aW9uU2VjR3JwLmFkZEluZ3Jlc3NSdWxlKGNkay5hd3NfZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgY2RrLmF3c19lYzIuUG9ydC50Y3AoODA4MCksICdIVFRQIGZyb20gd2l0aGluIFZQQycpO1xuXG4gICAgLy8gc2VjdXJpdHkgZ3JvdXAgZm9yIExhcmF2ZWwtYmFzZWQgc2VydmljZXNcbiAgICBjb25zdCBsYXJhdmVsU2VjR3JwID0gbmV3IGNkay5hd3NfZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgZ2V0RW52Q29uc3RhbnQoJ2xhcmF2ZWxCYXNlZFNlY3VyaXR5R3JvdXBJZCcpLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwTmFtZTogZ2V0RW52Q29uc3RhbnQoJ2xhcmF2ZWxCYXNlZFNlY3VyaXR5R3JvdXBJZCcpLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBTU0ggYWNjZXNzXG4gICAgbGFyYXZlbFNlY0dycC5hZGRJbmdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDIyKSwgJ1NTSCBmcm9tIHdpdGhpbiBWUEMnKTtcbiAgICAvLyBhZGQgcnVsZSBmb3IgSFRUUFxuICAgIGxhcmF2ZWxTZWNHcnAuYWRkSW5ncmVzc1J1bGUoY2RrLmF3c19lYzIuUGVlci5pcHY0KHZwYy52cGNDaWRyQmxvY2spLCBjZGsuYXdzX2VjMi5Qb3J0LnRjcCg4MDgwKSwgJ0hUVFAgZnJvbSB3aXRoaW4gVlBDJyk7XG5cbiAgICAvLyBzZWN1cml0eSBncm91cCBmb3IgSW5zdGFuY2UgQ29ubmVjdGlvbiBFbmRwb2ludFxuICAgIGNvbnN0IGljZVNlY0dycCA9IG5ldyBjZGsuYXdzX2VjMi5TZWN1cml0eUdyb3VwKHRoaXMsIGdldEVudkNvbnN0YW50KCdlYzJJbnN0YW5jZUNvbm5lY3RFbmRwb2ludFNlY3VyaXR5R3JvdXBJZCcpLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwTmFtZTogZ2V0RW52Q29uc3RhbnQoJ2VjMkluc3RhbmNlQ29ubmVjdEVuZHBvaW50U2VjdXJpdHlHcm91cElkJyksXG4gICAgICBhbGxvd0FsbE91dGJvdW5kOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIC8vIGFkZCBydWxlIGZvciBvdXRib3VuZCBTU0hcbiAgICBpY2VTZWNHcnAuYWRkRWdyZXNzUnVsZShjZGsuYXdzX2VjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGNkay5hd3NfZWMyLlBvcnQudGNwKDIyKSwgJ1NTSCB0byB3aXRoaW4gVlBDJyk7XG5cbiAgICBuZXcgY2RrLmF3c19lYzIuQ2ZuSW5zdGFuY2VDb25uZWN0RW5kcG9pbnQodGhpcywgZ2V0RW52Q29uc3RhbnQoJ2VjMkluc3RhbmNlQ29ubmVjdEVuZHBvaW50SWQnKSwge1xuICAgICAgc2VjdXJpdHlHcm91cElkczogW2ljZVNlY0dycC5zZWN1cml0eUdyb3VwSWRdLFxuICAgICAgc3VibmV0SWQ6IHZwYy5wcml2YXRlU3VibmV0c1swXS5zdWJuZXRJZCxcbiAgICB9KTtcblxuICAgIC8vIEFQSSBnYXRld2F5J3MgZWxhc3RpYyBJUFxuICAgIGNvbnN0IGFwaUdhdGV3YXlFSVAgPSBuZXcgY2RrLmF3c19lYzIuQ2ZuRUlQKHRoaXMsIFN0cmluZyhnZXRDb25zdGFudCgnYXBpR2F0ZXdheUVJUElkJykpLCB7IGRvbWFpbjogJ3ZwYycgfSk7XG4gICAgY2RrLlRhZ3Mub2YoYXBpR2F0ZXdheUVJUCkuYWRkKCdOYW1lJywgU3RyaW5nKGdldENvbnN0YW50KCdhcGlHYXRld2F5RUlQSWQnKSkpO1xuXG4gICAgLy8gUG9ydGFsJ3MgZWxhc3RpYyBJUFxuICAgIGNvbnN0IHBvcnRhbEVJUCA9IG5ldyBjZGsuYXdzX2VjMi5DZm5FSVAodGhpcywgU3RyaW5nKGdldENvbnN0YW50KCdwb3J0YWxFSVBJZCcpKSwgeyBkb21haW46ICd2cGMnIH0pO1xuICAgIGNkay5UYWdzLm9mKHBvcnRhbEVJUCkuYWRkKCdOYW1lJywgU3RyaW5nKGdldENvbnN0YW50KCdwb3J0YWxFSVBJZCcpKSk7XG5cbiAgICBuZXcgY2RrLkNmbk91dHB1dCh0aGlzLCAndnBjIElEJywge1xuICAgICAgdmFsdWU6IHZwYy52cGNJZCxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -7,6 +7,8 @@ const initBuildConfig_1 = require("../util/initBuildConfig");
7
7
  const getInstanceType_1 = require("../util/getInstanceType");
8
8
  const getEc2UserData_1 = require("../util/getEc2UserData");
9
9
  const getInstanceStorage_1 = require("../util/getInstanceStorage");
10
+ const assign_eip_1 = require("../constructs/assign-eip");
11
+ const lookup_eip_1 = require("../constructs/lookup-eip");
10
12
  // import { LookupEIP } from '../constructs/lookup-eip';
11
13
  class MicroservicePortal extends cdk.Stack {
12
14
  constructor(scope, id, props) {
@@ -31,20 +33,12 @@ class MicroservicePortal extends cdk.Stack {
31
33
  role: cdk.aws_iam.Role.fromRoleName(this, 'BaseRoleLookup', (0, constants_1.getConstant)('baseRoleName')),
32
34
  blockDevices: (0, getInstanceStorage_1.getInstanceStorage)('portal'),
33
35
  });
34
- // assign a new elastic IP in each deployment
35
- new cdk.aws_ec2.CfnEIP(this, 'AssignElasticIP', {
36
- instanceId: instance.instanceId,
37
- });
38
- // // alternatively, assign an already existing elastic IP by looking it up by name
39
- // const eip = LookupEIP.fromName(this, String(getConstant('portalEIPId')));
40
- // new cdk.aws_ec2.CfnEIPAssociation(this, 'EIPAssociation', {
41
- // allocationId: eip,
42
- // instanceId: instance.instanceId,
43
- // });
36
+ // assign an already existing elastic IP by looking it up by name
37
+ assign_eip_1.AssignEIP.ec2(this, instance, lookup_eip_1.LookupEIP.fromName(this, String((0, constants_1.getConstant)('portalEIPId'))));
44
38
  new cdk.CfnOutput(this, 'public-ip', {
45
39
  value: instance.instancePublicIp,
46
40
  });
47
41
  }
48
42
  }
49
43
  exports.MicroservicePortal = MicroservicePortal;
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLXBvcnRhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9taWNyb3NlcnZpY2UtcG9ydGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFtQztBQUVuQyxpREFBZ0U7QUFDaEUsNkRBQXNEO0FBQ3RELDZEQUEwRDtBQUMxRCwyREFBd0Q7QUFDeEQsbUVBQWdFO0FBQ2hFLHdEQUF3RDtBQUV4RCxNQUFhLGtCQUFtQixTQUFRLEdBQUcsQ0FBQyxLQUFLO0lBQy9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLDZCQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDekMsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3hELE9BQU8sRUFBRSxJQUFBLDBCQUFjLEVBQUMsT0FBTyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztRQUNILE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFBLDBCQUFjLEVBQUMsdUJBQXVCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVsSSxNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxjQUFjLDZCQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbkYsR0FBRztZQUNILGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUEsaUNBQWUsRUFBQyxRQUFRLENBQUMsQ0FBQztZQUNyRSxZQUFZLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO2dCQUNsRCxDQUFDLDZCQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUEsdUJBQVcsRUFBQyxpQkFBaUIsQ0FBVzthQUNuRSxDQUFDO1lBQ0YsVUFBVSxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUN6RCx3QkFBd0IsRUFBRSxLQUFLO1lBQy9CLFFBQVEsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBQSwrQkFBYyxFQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9ELElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUEsdUJBQVcsRUFBQyxjQUFjLENBQVcsQ0FBQztZQUNsRyxZQUFZLEVBQUUsSUFBQSx1Q0FBa0IsRUFBQyxRQUFRLENBQUM7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsNkNBQTZDO1FBQzdDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzlDLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtTQUNoQyxDQUFDLENBQUM7UUFFSCxtRkFBbUY7UUFDbkYsNEVBQTRFO1FBQzVFLDhEQUE4RDtRQUM5RCx1QkFBdUI7UUFDdkIscUNBQXFDO1FBQ3JDLE1BQU07UUFFTixJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNuQyxLQUFLLEVBQUUsUUFBUSxDQUFDLGdCQUFnQjtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzQ0QsZ0RBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZ2V0Q29uc3RhbnQsIGdldEVudkNvbnN0YW50IH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuLi91dGlsL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBnZXRJbnN0YW5jZVR5cGUgfSBmcm9tICcuLi91dGlsL2dldEluc3RhbmNlVHlwZSc7XG5pbXBvcnQgeyBnZXRFYzJVc2VyRGF0YSB9IGZyb20gJy4uL3V0aWwvZ2V0RWMyVXNlckRhdGEnO1xuaW1wb3J0IHsgZ2V0SW5zdGFuY2VTdG9yYWdlIH0gZnJvbSAnLi4vdXRpbC9nZXRJbnN0YW5jZVN0b3JhZ2UnO1xuLy8gaW1wb3J0IHsgTG9va3VwRUlQIH0gZnJvbSAnLi4vY29uc3RydWN0cy9sb29rdXAtZWlwJztcblxuZXhwb3J0IGNsYXNzIE1pY3Jvc2VydmljZVBvcnRhbCBleHRlbmRzIGNkay5TdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogY2RrLlN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGlmICghYnVpbGRDb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQnVpbGRDb25maWcgbm90IHNldCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHZwYyA9IGNkay5hd3NfZWMyLlZwYy5mcm9tTG9va3VwKHRoaXMsICdWUENMb29rdXAnLCB7XG4gICAgICB2cGNOYW1lOiBnZXRFbnZDb25zdGFudCgndnBjSWQnKSxcbiAgICB9KTtcbiAgICBjb25zdCBzZWNHcm91cCA9IGNkay5hd3NfZWMyLlNlY3VyaXR5R3JvdXAuZnJvbUxvb2t1cEJ5TmFtZSh0aGlzLCAnU2VjR3JvdXBMb29rdXAnLCBnZXRFbnZDb25zdGFudCgncG9ydGFsU2VjdXJpdHlHcm91cElkJyksIHZwYyk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBjZGsuYXdzX2VjMi5JbnN0YW5jZSh0aGlzLCBgZWMyLXBvcnRhbC0ke2J1aWxkQ29uZmlnLmVudk5hbWV9YCwge1xuICAgICAgdnBjLFxuICAgICAgc2VjdXJpdHlHcm91cDogc2VjR3JvdXAsXG4gICAgICBpbnN0YW5jZVR5cGU6IG5ldyBjZGsuYXdzX2VjMi5JbnN0YW5jZVR5cGUoZ2V0SW5zdGFuY2VUeXBlKCdwb3J0YWwnKSksXG4gICAgICBtYWNoaW5lSW1hZ2U6IGNkay5hd3NfZWMyLk1hY2hpbmVJbWFnZS5nZW5lcmljTGludXgoe1xuICAgICAgICBbYnVpbGRDb25maWcuYXdzLnJlZ2lvbl06IGdldENvbnN0YW50KCdkZWZhdWx0SW1hZ2VBbWknKSBhcyBzdHJpbmcsXG4gICAgICB9KSxcbiAgICAgIHZwY1N1Ym5ldHM6IHsgc3VibmV0VHlwZTogY2RrLmF3c19lYzIuU3VibmV0VHlwZS5QVUJMSUMgfSxcbiAgICAgIGFzc29jaWF0ZVB1YmxpY0lwQWRkcmVzczogZmFsc2UsXG4gICAgICB1c2VyRGF0YTogY2RrLmF3c19lYzIuVXNlckRhdGEuY3VzdG9tKGdldEVjMlVzZXJEYXRhKCdwb3J0YWwnKSksXG4gICAgICByb2xlOiBjZGsuYXdzX2lhbS5Sb2xlLmZyb21Sb2xlTmFtZSh0aGlzLCAnQmFzZVJvbGVMb29rdXAnLCBnZXRDb25zdGFudCgnYmFzZVJvbGVOYW1lJykgYXMgc3RyaW5nKSxcbiAgICAgIGJsb2NrRGV2aWNlczogZ2V0SW5zdGFuY2VTdG9yYWdlKCdwb3J0YWwnKSxcbiAgICB9KTtcblxuICAgIC8vIGFzc2lnbiBhIG5ldyBlbGFzdGljIElQIGluIGVhY2ggZGVwbG95bWVudFxuICAgIG5ldyBjZGsuYXdzX2VjMi5DZm5FSVAodGhpcywgJ0Fzc2lnbkVsYXN0aWNJUCcsIHtcbiAgICAgIGluc3RhbmNlSWQ6IGluc3RhbmNlLmluc3RhbmNlSWQsXG4gICAgfSk7XG5cbiAgICAvLyAvLyBhbHRlcm5hdGl2ZWx5LCBhc3NpZ24gYW4gYWxyZWFkeSBleGlzdGluZyBlbGFzdGljIElQIGJ5IGxvb2tpbmcgaXQgdXAgYnkgbmFtZVxuICAgIC8vIGNvbnN0IGVpcCA9IExvb2t1cEVJUC5mcm9tTmFtZSh0aGlzLCBTdHJpbmcoZ2V0Q29uc3RhbnQoJ3BvcnRhbEVJUElkJykpKTtcbiAgICAvLyBuZXcgY2RrLmF3c19lYzIuQ2ZuRUlQQXNzb2NpYXRpb24odGhpcywgJ0VJUEFzc29jaWF0aW9uJywge1xuICAgIC8vICAgYWxsb2NhdGlvbklkOiBlaXAsXG4gICAgLy8gICBpbnN0YW5jZUlkOiBpbnN0YW5jZS5pbnN0YW5jZUlkLFxuICAgIC8vIH0pO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ3B1YmxpYy1pcCcsIHtcbiAgICAgIHZhbHVlOiBpbnN0YW5jZS5pbnN0YW5jZVB1YmxpY0lwLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9zZXJ2aWNlLXBvcnRhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9taWNyb3NlcnZpY2UtcG9ydGFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFtQztBQUVuQyxpREFBZ0U7QUFDaEUsNkRBQXNEO0FBQ3RELDZEQUEwRDtBQUMxRCwyREFBd0Q7QUFDeEQsbUVBQWdFO0FBQ2hFLHlEQUFxRDtBQUNyRCx5REFBcUQ7QUFDckQsd0RBQXdEO0FBRXhELE1BQWEsa0JBQW1CLFNBQVEsR0FBRyxDQUFDLEtBQUs7SUFDL0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsNkJBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDeEQsT0FBTyxFQUFFLElBQUEsMEJBQWMsRUFBQyxPQUFPLENBQUM7U0FDakMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUEsMEJBQWMsRUFBQyx1QkFBdUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWxJLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsNkJBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNuRixHQUFHO1lBQ0gsYUFBYSxFQUFFLFFBQVE7WUFDdkIsWUFBWSxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBQSxpQ0FBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JFLFlBQVksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUM7Z0JBQ2xELENBQUMsNkJBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBQSx1QkFBVyxFQUFDLGlCQUFpQixDQUFXO2FBQ25FLENBQUM7WUFDRixVQUFVLEVBQUUsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ3pELHdCQUF3QixFQUFFLEtBQUs7WUFDL0IsUUFBUSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFBLCtCQUFjLEVBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0QsSUFBSSxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsSUFBQSx1QkFBVyxFQUFDLGNBQWMsQ0FBVyxDQUFDO1lBQ2xHLFlBQVksRUFBRSxJQUFBLHVDQUFrQixFQUFDLFFBQVEsQ0FBQztTQUMzQyxDQUFDLENBQUM7UUFFSCxpRUFBaUU7UUFDakUsc0JBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxzQkFBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUEsdUJBQVcsRUFBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1RixJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNuQyxLQUFLLEVBQUUsUUFBUSxDQUFDLGdCQUFnQjtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFsQ0QsZ0RBa0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgZ2V0Q29uc3RhbnQsIGdldEVudkNvbnN0YW50IH0gZnJvbSAnLi4vdXRpbC9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuLi91dGlsL2luaXRCdWlsZENvbmZpZyc7XG5pbXBvcnQgeyBnZXRJbnN0YW5jZVR5cGUgfSBmcm9tICcuLi91dGlsL2dldEluc3RhbmNlVHlwZSc7XG5pbXBvcnQgeyBnZXRFYzJVc2VyRGF0YSB9IGZyb20gJy4uL3V0aWwvZ2V0RWMyVXNlckRhdGEnO1xuaW1wb3J0IHsgZ2V0SW5zdGFuY2VTdG9yYWdlIH0gZnJvbSAnLi4vdXRpbC9nZXRJbnN0YW5jZVN0b3JhZ2UnO1xuaW1wb3J0IHsgQXNzaWduRUlQIH0gZnJvbSAnLi4vY29uc3RydWN0cy9hc3NpZ24tZWlwJztcbmltcG9ydCB7IExvb2t1cEVJUCB9IGZyb20gJy4uL2NvbnN0cnVjdHMvbG9va3VwLWVpcCc7XG4vLyBpbXBvcnQgeyBMb29rdXBFSVAgfSBmcm9tICcuLi9jb25zdHJ1Y3RzL2xvb2t1cC1laXAnO1xuXG5leHBvcnQgY2xhc3MgTWljcm9zZXJ2aWNlUG9ydGFsIGV4dGVuZHMgY2RrLlN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBjZGsuU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgaWYgKCFidWlsZENvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdCdWlsZENvbmZpZyBub3Qgc2V0Jyk7XG4gICAgfVxuXG4gICAgY29uc3QgdnBjID0gY2RrLmF3c19lYzIuVnBjLmZyb21Mb29rdXAodGhpcywgJ1ZQQ0xvb2t1cCcsIHtcbiAgICAgIHZwY05hbWU6IGdldEVudkNvbnN0YW50KCd2cGNJZCcpLFxuICAgIH0pO1xuICAgIGNvbnN0IHNlY0dyb3VwID0gY2RrLmF3c19lYzIuU2VjdXJpdHlHcm91cC5mcm9tTG9va3VwQnlOYW1lKHRoaXMsICdTZWNHcm91cExvb2t1cCcsIGdldEVudkNvbnN0YW50KCdwb3J0YWxTZWN1cml0eUdyb3VwSWQnKSwgdnBjKTtcblxuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IGNkay5hd3NfZWMyLkluc3RhbmNlKHRoaXMsIGBlYzItcG9ydGFsLSR7YnVpbGRDb25maWcuZW52TmFtZX1gLCB7XG4gICAgICB2cGMsXG4gICAgICBzZWN1cml0eUdyb3VwOiBzZWNHcm91cCxcbiAgICAgIGluc3RhbmNlVHlwZTogbmV3IGNkay5hd3NfZWMyLkluc3RhbmNlVHlwZShnZXRJbnN0YW5jZVR5cGUoJ3BvcnRhbCcpKSxcbiAgICAgIG1hY2hpbmVJbWFnZTogY2RrLmF3c19lYzIuTWFjaGluZUltYWdlLmdlbmVyaWNMaW51eCh7XG4gICAgICAgIFtidWlsZENvbmZpZy5hd3MucmVnaW9uXTogZ2V0Q29uc3RhbnQoJ2RlZmF1bHRJbWFnZUFtaScpIGFzIHN0cmluZyxcbiAgICAgIH0pLFxuICAgICAgdnBjU3VibmV0czogeyBzdWJuZXRUeXBlOiBjZGsuYXdzX2VjMi5TdWJuZXRUeXBlLlBVQkxJQyB9LFxuICAgICAgYXNzb2NpYXRlUHVibGljSXBBZGRyZXNzOiBmYWxzZSxcbiAgICAgIHVzZXJEYXRhOiBjZGsuYXdzX2VjMi5Vc2VyRGF0YS5jdXN0b20oZ2V0RWMyVXNlckRhdGEoJ3BvcnRhbCcpKSxcbiAgICAgIHJvbGU6IGNkay5hd3NfaWFtLlJvbGUuZnJvbVJvbGVOYW1lKHRoaXMsICdCYXNlUm9sZUxvb2t1cCcsIGdldENvbnN0YW50KCdiYXNlUm9sZU5hbWUnKSBhcyBzdHJpbmcpLFxuICAgICAgYmxvY2tEZXZpY2VzOiBnZXRJbnN0YW5jZVN0b3JhZ2UoJ3BvcnRhbCcpLFxuICAgIH0pO1xuXG4gICAgLy8gYXNzaWduIGFuIGFscmVhZHkgZXhpc3RpbmcgZWxhc3RpYyBJUCBieSBsb29raW5nIGl0IHVwIGJ5IG5hbWVcbiAgICBBc3NpZ25FSVAuZWMyKHRoaXMsIGluc3RhbmNlLCBMb29rdXBFSVAuZnJvbU5hbWUodGhpcywgU3RyaW5nKGdldENvbnN0YW50KCdwb3J0YWxFSVBJZCcpKSkpO1xuXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgJ3B1YmxpYy1pcCcsIHtcbiAgICAgIHZhbHVlOiBpbnN0YW5jZS5pbnN0YW5jZVB1YmxpY0lwLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -33,3 +33,23 @@ sudo systemctl restart dnsmasq
33
33
 
34
34
  # start nginx server
35
35
  sudo systemctl restart nginx
36
+
37
+ # install certbot
38
+ sudo snap refresh core
39
+ sudo apt remove certbot
40
+ sudo snap install --classic certbot
41
+ sudo ln -s /snap/bin/certbot /usr/bin/certbot
42
+
43
+ # sync SSL certificates from S3 bucket to local (if they exist)
44
+ aws s3 cp s3://$public_bucket_name/ssl/ /etc/letsencrypt/live --recursive
45
+ sudo chown -R ubuntu:ubuntu /etc/letsencrypt/live
46
+
47
+ # obtain SSL certificate (if it doesn't exist) and sync to S3 bucket
48
+ if [[ ! -f "/etc/letsencrypt/live/$api_gateway_domain_name/fullchain.pem" ]]; then
49
+ sudo certbot certonly --standalone -d $api_gateway_domain_name --agree-tos --non-interactive -m mistabiggx@gmail.com --no-eff-email --quiet --pre-hook="sudo systemctl stop nginx" --post-hook="sudo systemctl start nginx" --deploy-hook "aws s3 sync /etc/letsencrypt/live s3://$public_bucket_name/ssl/"
50
+ fi
51
+
52
+ # register SSL renewal cron
53
+ certbot_cron_command="/usr/bin/certbot renew --pre-hook=\"sudo systemctl stop nginx\" --post-hook=\"sudo systemctl start nginx\" --deploy-hook \"aws s3 sync /etc/letsencrypt/live s3://$public_bucket_name/ssl/\" >> $logs_dir/{{serviceName}}-ssl-renewal.log"
54
+ certbot_cron_job="0 0,12 * * * $certbot_cron_command"
55
+ ( ( crontab -l || true ) | ( grep -v -F "$certbot_cron_command" || true ) ; echo "$certbot_cron_job" ) | crontab -
@@ -19,6 +19,9 @@ deployment_log_file="$logs_dir/deployment.log"
19
19
  deployment_git_branch="{{gitDeploymentBranch}}"
20
20
  instance_id=$(ec2metadata --instance-id)
21
21
  instance_private_ip=$(ec2metadata --local-ipv4)
22
+ portal_domain_name="{{portalDomainName}}"
23
+ api_gateway_domain_name="{{apiGatewayDomainName}}"
24
+ public_bucket_name="{{publicBucketName}}"
22
25
 
23
26
  # create directories
24
27
  sudo mkdir -p $microservices_dir
@@ -32,3 +32,23 @@ sudo NODE_OPTIONS="--max-old-space-size=2048 NUXT_TELEMETRY_DISABLED=1" npm run
32
32
 
33
33
  # start nginx server
34
34
  sudo systemctl restart nginx
35
+
36
+ # install certbot
37
+ sudo snap refresh core
38
+ sudo apt remove certbot
39
+ sudo snap install --classic certbot
40
+ sudo ln -s /snap/bin/certbot /usr/bin/certbot
41
+
42
+ # sync SSL certificates from S3 bucket to local (if they exist)
43
+ aws s3 cp s3://$public_bucket_name/ssl/ /etc/letsencrypt/live --recursive
44
+ sudo chown -R ubuntu:ubuntu /etc/letsencrypt/live
45
+
46
+ # obtain SSL certificate (if it doesn't exist) and sync to S3 bucket
47
+ if [[ ! -f "/etc/letsencrypt/live/$portal_domain_name/fullchain.pem" ]]; then
48
+ sudo certbot certonly --standalone -d $portal_domain_name --agree-tos --non-interactive -m mistabiggx@gmail.com --no-eff-email --quiet --pre-hook="sudo systemctl stop nginx" --post-hook="sudo systemctl start nginx" --deploy-hook "aws s3 sync /etc/letsencrypt/live s3://$public_bucket_name/ssl/"
49
+ fi
50
+
51
+ # register SSL renewal cron
52
+ certbot_cron_command="/usr/bin/certbot renew --pre-hook=\"sudo systemctl stop nginx\" --post-hook=\"sudo systemctl start nginx\" --deploy-hook \"aws s3 sync /etc/letsencrypt/live s3://$public_bucket_name/ssl/\" >> $logs_dir/{{serviceName}}-ssl-renewal.log"
53
+ certbot_cron_job="0 0,12 * * * $certbot_cron_command"
54
+ ( ( crontab -l || true ) | ( grep -v -F "$certbot_cron_command" || true ) ; echo "$certbot_cron_job" ) | crontab -
@@ -3,8 +3,16 @@ declare const CONSTANTS: {
3
3
  readonly vpcId: "Microservice-VPC";
4
4
  readonly apiGatewaySecurityGroupId: "API-Gateway-SG";
5
5
  readonly apiGatewayEIPId: "API-Gateway-EIP";
6
+ readonly apiGatewayDomainName: {
7
+ readonly prod: "api.insurecorehub.com";
8
+ readonly uat: "api.uat.insurecorehub.com";
9
+ };
6
10
  readonly portalSecurityGroupId: "Portal-SG";
7
11
  readonly portalEIPId: "Portal-EIP";
12
+ readonly portalDomainName: {
13
+ readonly prod: "portal.insurecorehub.com";
14
+ readonly uat: "portal.uat.insurecorehub.com";
15
+ };
8
16
  readonly redisSecurityGroupId: "Redis-SG";
9
17
  readonly laravelBasedSecurityGroupId: "Laravel-Based-SG";
10
18
  readonly notificationServiceSecurityGroupId: "Notification-Service-SG";
@@ -24,6 +32,12 @@ declare const CONSTANTS: {
24
32
  };
25
33
  };
26
34
  export declare function getConstant(key: keyof typeof CONSTANTS): 8 | "gp3" | "Microservice-VPC" | "API-Gateway-SG" | "API-Gateway-EIP" | "Portal-SG" | "Portal-EIP" | "Redis-SG" | "Laravel-Based-SG" | "Notification-Service-SG" | "MySQL-SG" | "Instance-Connect-Endpoint" | "Instance-Connect-Endpoint-SG" | "ami-0e182bc1c32ba03c3" | "t4g.nano" | "isa" | "EC2-Instance-Base-Role" | "glicogh-healthcare-files" | {
35
+ readonly prod: "api.insurecorehub.com";
36
+ readonly uat: "api.uat.insurecorehub.com";
37
+ } | {
38
+ readonly prod: "portal.insurecorehub.com";
39
+ readonly uat: "portal.uat.insurecorehub.com";
40
+ } | {
27
41
  readonly githubRepoPaths: RepoUrls;
28
42
  readonly gitBranches: RepoBranches;
29
43
  };
@@ -21,8 +21,16 @@ const CONSTANTS = {
21
21
  vpcId: 'Microservice-VPC',
22
22
  apiGatewaySecurityGroupId: 'API-Gateway-SG',
23
23
  apiGatewayEIPId: 'API-Gateway-EIP',
24
+ apiGatewayDomainName: {
25
+ prod: 'api.insurecorehub.com',
26
+ uat: 'api.uat.insurecorehub.com',
27
+ },
24
28
  portalSecurityGroupId: 'Portal-SG',
25
29
  portalEIPId: 'Portal-EIP',
30
+ portalDomainName: {
31
+ prod: 'portal.insurecorehub.com',
32
+ uat: 'portal.uat.insurecorehub.com',
33
+ },
26
34
  redisSecurityGroupId: 'Redis-SG',
27
35
  laravelBasedSecurityGroupId: 'Laravel-Based-SG',
28
36
  notificationServiceSecurityGroupId: 'Notification-Service-SG',
@@ -47,4 +55,4 @@ function getConstant(key) {
47
55
  function getEnvConstant(key) {
48
56
  return `${getConstant(key)}-${initBuildConfig_1.buildConfig?.envName}`;
49
57
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXRpbC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE0Q0Esa0NBRUM7QUFFRCx3Q0FFQztBQWpERCx1REFBZ0Q7QUFFaEQsTUFBTSxTQUFTLEdBQWE7SUFDMUIsT0FBTyxFQUFFLDZDQUE2QztJQUN0RCxJQUFJLEVBQUUsMENBQTBDO0lBQ2hELE1BQU0sRUFBRSw0Q0FBNEM7SUFDcEQsTUFBTSxFQUFFLDRDQUE0QztJQUNwRCxTQUFTLEVBQUUsK0NBQStDO0lBQzFELFlBQVksRUFBRSxrREFBa0Q7SUFDaEUsYUFBYSxFQUFFLG9DQUFvQztJQUNuRCxNQUFNLEVBQUUsK0JBQStCO0NBQ3hDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBaUI7SUFDakMsR0FBRyxFQUFFLFFBQVE7SUFDYixJQUFJLEVBQUUsU0FBUztDQUNoQixDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQUc7SUFDaEIsS0FBSyxFQUFFLGtCQUFrQjtJQUN6Qix5QkFBeUIsRUFBRSxnQkFBZ0I7SUFDM0MsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxxQkFBcUIsRUFBRSxXQUFXO0lBQ2xDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLG9CQUFvQixFQUFFLFVBQVU7SUFDaEMsMkJBQTJCLEVBQUUsa0JBQWtCO0lBQy9DLGtDQUFrQyxFQUFFLHlCQUF5QjtJQUM3RCxvQkFBb0IsRUFBRSxVQUFVO0lBQ2hDLDRCQUE0QixFQUFFLDJCQUEyQjtJQUN6RCx5Q0FBeUMsRUFBRSw4QkFBOEI7SUFDekUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLFlBQVk7SUFDdEQsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLFlBQVk7SUFDN0Msa0JBQWtCLEVBQUUsQ0FBQztJQUNyQixrQkFBa0IsRUFBRSxLQUFLO0lBQ3pCLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFlBQVksRUFBRSx3QkFBd0I7SUFDdEMsZ0JBQWdCLEVBQUUsMEJBQTBCO0lBQzVDLFVBQVUsRUFBRTtRQUNWLGVBQWUsRUFBRSxTQUFTO1FBQzFCLFdBQVcsRUFBRSxZQUFZO0tBQzFCO0NBQ08sQ0FBQztBQUVYLFNBQWdCLFdBQVcsQ0FBQyxHQUEyQjtJQUNyRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLEdBQTJCO0lBQ3hELE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksNkJBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVwb0JyYW5jaGVzLCBSZXBvVXJscyB9IGZyb20gJy4uL0B0eXBlcy9jb21tb24nO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuL2luaXRCdWlsZENvbmZpZyc7XG5cbmNvbnN0IHJlcG9QYXRoczogUmVwb1VybHMgPSB7XG4gIGFjY291bnQ6ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLWFjY291bnQuZ2l0JyxcbiAgcGxhbjogJ2dsaWNvZ2gvaGVhbHRoY2FyZS1taWNyb3NlcnZpY2UtcGxhbi5naXQnLFxuICBwb2xpY3k6ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLXBvbGljeS5naXQnLFxuICBjbGFpbXM6ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLWNsYWltcy5naXQnLFxuICByZXBvcnRpbmc6ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLXJlcG9ydGluZy5naXQnLFxuICBub3RpZmljYXRpb246ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLW5vdGlmaWNhdGlvbi5naXQnLFxuICAnYXBpLWdhdGV3YXknOiAnZ2xpY29naC9oZWFsdGhjYXJlLWFwaS1nYXRld2F5LmdpdCcsXG4gIHBvcnRhbDogJ2dsaWNvZ2gvaGVhbHRoY2FyZS1wb3J0YWwuZ2l0Jyxcbn07XG5cbmNvbnN0IHJlcG9CcmFuY2hlczogUmVwb0JyYW5jaGVzID0ge1xuICB1YXQ6ICdtYXN0ZXInLFxuICBwcm9kOiAncmVsZWFzZScsXG59O1xuXG5jb25zdCBDT05TVEFOVFMgPSB7XG4gIHZwY0lkOiAnTWljcm9zZXJ2aWNlLVZQQycsXG4gIGFwaUdhdGV3YXlTZWN1cml0eUdyb3VwSWQ6ICdBUEktR2F0ZXdheS1TRycsXG4gIGFwaUdhdGV3YXlFSVBJZDogJ0FQSS1HYXRld2F5LUVJUCcsXG4gIHBvcnRhbFNlY3VyaXR5R3JvdXBJZDogJ1BvcnRhbC1TRycsXG4gIHBvcnRhbEVJUElkOiAnUG9ydGFsLUVJUCcsXG4gIHJlZGlzU2VjdXJpdHlHcm91cElkOiAnUmVkaXMtU0cnLFxuICBsYXJhdmVsQmFzZWRTZWN1cml0eUdyb3VwSWQ6ICdMYXJhdmVsLUJhc2VkLVNHJyxcbiAgbm90aWZpY2F0aW9uU2VydmljZVNlY3VyaXR5R3JvdXBJZDogJ05vdGlmaWNhdGlvbi1TZXJ2aWNlLVNHJyxcbiAgbXlzcWxTZWN1cml0eUdyb3VwSWQ6ICdNeVNRTC1TRycsXG4gIGVjMkluc3RhbmNlQ29ubmVjdEVuZHBvaW50SWQ6ICdJbnN0YW5jZS1Db25uZWN0LUVuZHBvaW50JyxcbiAgZWMySW5zdGFuY2VDb25uZWN0RW5kcG9pbnRTZWN1cml0eUdyb3VwSWQ6ICdJbnN0YW5jZS1Db25uZWN0LUVuZHBvaW50LVNHJyxcbiAgZGVmYXVsdEltYWdlQW1pOiAnYW1pLTBlMTgyYmMxYzMyYmEwM2MzJywgLy8gQVJNIGJhc2VkXG4gIGRlZmF1bHRJbnN0YW5jZVNpemU6ICd0NGcubmFubycsIC8vIEFSTSBiYXNlZFxuICBkZWZhdWx0U3RvcmFnZVNpemU6IDgsXG4gIGRlZmF1bHRTdG9yYWdlVHlwZTogJ2dwMycsXG4gIGtleVBhaXJOYW1lOiAnaXNhJyxcbiAgYmFzZVJvbGVOYW1lOiAnRUMyLUluc3RhbmNlLUJhc2UtUm9sZScsXG4gIHB1YmxpY0J1Y2tldE5hbWU6ICdnbGljb2doLWhlYWx0aGNhcmUtZmlsZXMnLFxuICBkZXBsb3ltZW50OiB7XG4gICAgZ2l0aHViUmVwb1BhdGhzOiByZXBvUGF0aHMsXG4gICAgZ2l0QnJhbmNoZXM6IHJlcG9CcmFuY2hlcyxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25zdGFudChrZXk6IGtleW9mIHR5cGVvZiBDT05TVEFOVFMpIHtcbiAgcmV0dXJuIENPTlNUQU5UU1trZXldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW52Q29uc3RhbnQoa2V5OiBrZXlvZiB0eXBlb2YgQ09OU1RBTlRTKSB7XG4gIHJldHVybiBgJHtnZXRDb25zdGFudChrZXkpfS0ke2J1aWxkQ29uZmlnPy5lbnZOYW1lfWA7XG59XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdXRpbC9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFvREEsa0NBRUM7QUFFRCx3Q0FFQztBQXpERCx1REFBZ0Q7QUFFaEQsTUFBTSxTQUFTLEdBQWE7SUFDMUIsT0FBTyxFQUFFLDZDQUE2QztJQUN0RCxJQUFJLEVBQUUsMENBQTBDO0lBQ2hELE1BQU0sRUFBRSw0Q0FBNEM7SUFDcEQsTUFBTSxFQUFFLDRDQUE0QztJQUNwRCxTQUFTLEVBQUUsK0NBQStDO0lBQzFELFlBQVksRUFBRSxrREFBa0Q7SUFDaEUsYUFBYSxFQUFFLG9DQUFvQztJQUNuRCxNQUFNLEVBQUUsK0JBQStCO0NBQ3hDLENBQUM7QUFFRixNQUFNLFlBQVksR0FBaUI7SUFDakMsR0FBRyxFQUFFLFFBQVE7SUFDYixJQUFJLEVBQUUsU0FBUztDQUNoQixDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQUc7SUFDaEIsS0FBSyxFQUFFLGtCQUFrQjtJQUN6Qix5QkFBeUIsRUFBRSxnQkFBZ0I7SUFDM0MsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxvQkFBb0IsRUFBRTtRQUNwQixJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLEdBQUcsRUFBRSwyQkFBMkI7S0FDakM7SUFDRCxxQkFBcUIsRUFBRSxXQUFXO0lBQ2xDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLGdCQUFnQixFQUFFO1FBQ2hCLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsR0FBRyxFQUFFLDhCQUE4QjtLQUNwQztJQUNELG9CQUFvQixFQUFFLFVBQVU7SUFDaEMsMkJBQTJCLEVBQUUsa0JBQWtCO0lBQy9DLGtDQUFrQyxFQUFFLHlCQUF5QjtJQUM3RCxvQkFBb0IsRUFBRSxVQUFVO0lBQ2hDLDRCQUE0QixFQUFFLDJCQUEyQjtJQUN6RCx5Q0FBeUMsRUFBRSw4QkFBOEI7SUFDekUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLFlBQVk7SUFDdEQsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLFlBQVk7SUFDN0Msa0JBQWtCLEVBQUUsQ0FBQztJQUNyQixrQkFBa0IsRUFBRSxLQUFLO0lBQ3pCLFdBQVcsRUFBRSxLQUFLO0lBQ2xCLFlBQVksRUFBRSx3QkFBd0I7SUFDdEMsZ0JBQWdCLEVBQUUsMEJBQTBCO0lBQzVDLFVBQVUsRUFBRTtRQUNWLGVBQWUsRUFBRSxTQUFTO1FBQzFCLFdBQVcsRUFBRSxZQUFZO0tBQzFCO0NBQ08sQ0FBQztBQUVYLFNBQWdCLFdBQVcsQ0FBQyxHQUEyQjtJQUNyRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN4QixDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLEdBQTJCO0lBQ3hELE9BQU8sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksNkJBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUN2RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVwb0JyYW5jaGVzLCBSZXBvVXJscyB9IGZyb20gJy4uL0B0eXBlcy9jb21tb24nO1xuaW1wb3J0IHsgYnVpbGRDb25maWcgfSBmcm9tICcuL2luaXRCdWlsZENvbmZpZyc7XG5cbmNvbnN0IHJlcG9QYXRoczogUmVwb1VybHMgPSB7XG4gIGFjY291bnQ6ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLWFjY291bnQuZ2l0JyxcbiAgcGxhbjogJ2dsaWNvZ2gvaGVhbHRoY2FyZS1taWNyb3NlcnZpY2UtcGxhbi5naXQnLFxuICBwb2xpY3k6ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLXBvbGljeS5naXQnLFxuICBjbGFpbXM6ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLWNsYWltcy5naXQnLFxuICByZXBvcnRpbmc6ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLXJlcG9ydGluZy5naXQnLFxuICBub3RpZmljYXRpb246ICdnbGljb2doL2hlYWx0aGNhcmUtbWljcm9zZXJ2aWNlLW5vdGlmaWNhdGlvbi5naXQnLFxuICAnYXBpLWdhdGV3YXknOiAnZ2xpY29naC9oZWFsdGhjYXJlLWFwaS1nYXRld2F5LmdpdCcsXG4gIHBvcnRhbDogJ2dsaWNvZ2gvaGVhbHRoY2FyZS1wb3J0YWwuZ2l0Jyxcbn07XG5cbmNvbnN0IHJlcG9CcmFuY2hlczogUmVwb0JyYW5jaGVzID0ge1xuICB1YXQ6ICdtYXN0ZXInLFxuICBwcm9kOiAncmVsZWFzZScsXG59O1xuXG5jb25zdCBDT05TVEFOVFMgPSB7XG4gIHZwY0lkOiAnTWljcm9zZXJ2aWNlLVZQQycsXG4gIGFwaUdhdGV3YXlTZWN1cml0eUdyb3VwSWQ6ICdBUEktR2F0ZXdheS1TRycsXG4gIGFwaUdhdGV3YXlFSVBJZDogJ0FQSS1HYXRld2F5LUVJUCcsXG4gIGFwaUdhdGV3YXlEb21haW5OYW1lOiB7XG4gICAgcHJvZDogJ2FwaS5pbnN1cmVjb3JlaHViLmNvbScsXG4gICAgdWF0OiAnYXBpLnVhdC5pbnN1cmVjb3JlaHViLmNvbScsXG4gIH0sXG4gIHBvcnRhbFNlY3VyaXR5R3JvdXBJZDogJ1BvcnRhbC1TRycsXG4gIHBvcnRhbEVJUElkOiAnUG9ydGFsLUVJUCcsXG4gIHBvcnRhbERvbWFpbk5hbWU6IHtcbiAgICBwcm9kOiAncG9ydGFsLmluc3VyZWNvcmVodWIuY29tJyxcbiAgICB1YXQ6ICdwb3J0YWwudWF0Lmluc3VyZWNvcmVodWIuY29tJyxcbiAgfSxcbiAgcmVkaXNTZWN1cml0eUdyb3VwSWQ6ICdSZWRpcy1TRycsXG4gIGxhcmF2ZWxCYXNlZFNlY3VyaXR5R3JvdXBJZDogJ0xhcmF2ZWwtQmFzZWQtU0cnLFxuICBub3RpZmljYXRpb25TZXJ2aWNlU2VjdXJpdHlHcm91cElkOiAnTm90aWZpY2F0aW9uLVNlcnZpY2UtU0cnLFxuICBteXNxbFNlY3VyaXR5R3JvdXBJZDogJ015U1FMLVNHJyxcbiAgZWMySW5zdGFuY2VDb25uZWN0RW5kcG9pbnRJZDogJ0luc3RhbmNlLUNvbm5lY3QtRW5kcG9pbnQnLFxuICBlYzJJbnN0YW5jZUNvbm5lY3RFbmRwb2ludFNlY3VyaXR5R3JvdXBJZDogJ0luc3RhbmNlLUNvbm5lY3QtRW5kcG9pbnQtU0cnLFxuICBkZWZhdWx0SW1hZ2VBbWk6ICdhbWktMGUxODJiYzFjMzJiYTAzYzMnLCAvLyBBUk0gYmFzZWRcbiAgZGVmYXVsdEluc3RhbmNlU2l6ZTogJ3Q0Zy5uYW5vJywgLy8gQVJNIGJhc2VkXG4gIGRlZmF1bHRTdG9yYWdlU2l6ZTogOCxcbiAgZGVmYXVsdFN0b3JhZ2VUeXBlOiAnZ3AzJyxcbiAga2V5UGFpck5hbWU6ICdpc2EnLFxuICBiYXNlUm9sZU5hbWU6ICdFQzItSW5zdGFuY2UtQmFzZS1Sb2xlJyxcbiAgcHVibGljQnVja2V0TmFtZTogJ2dsaWNvZ2gtaGVhbHRoY2FyZS1maWxlcycsXG4gIGRlcGxveW1lbnQ6IHtcbiAgICBnaXRodWJSZXBvUGF0aHM6IHJlcG9QYXRocyxcbiAgICBnaXRCcmFuY2hlczogcmVwb0JyYW5jaGVzLFxuICB9LFxufSBhcyBjb25zdDtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnN0YW50KGtleToga2V5b2YgdHlwZW9mIENPTlNUQU5UUykge1xuICByZXR1cm4gQ09OU1RBTlRTW2tleV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnZDb25zdGFudChrZXk6IGtleW9mIHR5cGVvZiBDT05TVEFOVFMpIHtcbiAgcmV0dXJuIGAke2dldENvbnN0YW50KGtleSl9LSR7YnVpbGRDb25maWc/LmVudk5hbWV9YDtcbn1cbiJdfQ==
@@ -7,6 +7,7 @@ const isMicroservice_1 = require("./isMicroservice");
7
7
  const isLaravelBased_1 = require("./isLaravelBased");
8
8
  const constants_1 = require("./constants");
9
9
  const getGithubRepo_1 = require("./getGithubRepo");
10
+ const getPublicBucketName_1 = require("./getPublicBucketName");
10
11
  function getEc2UserData(service) {
11
12
  const serviceName = service ?? initBuildConfig_1.buildConfig?.serviceName;
12
13
  const beforeAllScript = (0, fs_1.readFileSync)(__dirname + '/../scripts/post-deployment-before-all.sh', 'utf8');
@@ -30,7 +31,10 @@ function getEc2UserData(service) {
30
31
  .replace(/{{envName}}/g, initBuildConfig_1.buildConfig?.envName ?? 'uat')
31
32
  .replace(/{{serviceName}}/g, serviceName ?? '')
32
33
  .replace(/{{githubRepoPath}}/g, (0, getGithubRepo_1.getGithubRepo)(serviceName) ?? '')
33
- .replace(/{{gitDeploymentBranch}}/g, getGitDeploymentBranch(initBuildConfig_1.buildConfig?.envName) ?? 'release');
34
+ .replace(/{{gitDeploymentBranch}}/g, getGitDeploymentBranch(initBuildConfig_1.buildConfig?.envName) ?? 'release')
35
+ .replace(/{{portalDomainName}}/g, (0, constants_1.getConstant)('portalDomainName')[initBuildConfig_1.buildConfig?.envName ?? 'uat'])
36
+ .replace(/{{apiGatewayDomainName}}/g, (0, constants_1.getConstant)('apiGatewayDomainName')[initBuildConfig_1.buildConfig?.envName ?? 'uat'])
37
+ .replace(/{{publicBucketName}}/g, (0, getPublicBucketName_1.getPublicBucketName)());
34
38
  return output;
35
39
  }
36
40
  function getGitDeploymentBranch(env) {
@@ -43,4 +47,4 @@ function getGitDeploymentBranch(env) {
43
47
  return branches[env];
44
48
  }
45
49
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RWMyVXNlckRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi91dGlsL2dldEVjMlVzZXJEYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsd0NBa0NDO0FBMUNELDJCQUE4QztBQUU5Qyx1REFBZ0Q7QUFDaEQscURBQWtEO0FBQ2xELHFEQUFrRDtBQUNsRCwyQ0FBMEM7QUFDMUMsbURBQWdEO0FBRWhELFNBQWdCLGNBQWMsQ0FBQyxPQUFvQztJQUNqRSxNQUFNLFdBQVcsR0FBRyxPQUFPLElBQUksNkJBQVcsRUFBRSxXQUFXLENBQUM7SUFFeEQsTUFBTSxlQUFlLEdBQUcsSUFBQSxpQkFBWSxFQUFDLFNBQVMsR0FBRywyQ0FBMkMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUV0RyxNQUFNLGNBQWMsR0FBRyxJQUFBLGlCQUFZLEVBQUMsU0FBUyxHQUFHLDBDQUEwQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXBHLE1BQU0sZUFBZSxHQUFHLElBQUEsaUJBQVksRUFBQyxTQUFTLEdBQUcsMkNBQTJDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFdEcsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLCtCQUFjLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztJQUV2RixNQUFNLGVBQWUsR0FBRyxJQUFBLCtCQUFjLEdBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFbEUsTUFBTSxpQkFBaUIsR0FBRyxTQUFTLEdBQUcsK0JBQStCLGlCQUFpQixLQUFLLENBQUM7SUFDNUYsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLElBQUksSUFBQSxlQUFVLEVBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxpQkFBWSxFQUFDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFeEgsTUFBTSxlQUFlLEdBQUcsU0FBUyxHQUFHLCtCQUErQixlQUFlLEtBQUssQ0FBQztJQUN4RixNQUFNLFdBQVcsR0FBRyxlQUFlLElBQUksSUFBQSxlQUFVLEVBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsaUJBQVksRUFBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUVoSCxNQUFNLE9BQU8sR0FBRztRQUNkLGVBQWU7UUFDZixHQUFHLENBQUMsSUFBQSwrQkFBYyxFQUFDLE9BQU8sQ0FBQyxJQUFJLFdBQVcsS0FBSyxhQUFhLElBQUksV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2xILFdBQVc7UUFDWCxhQUFhO1FBQ2IsY0FBYztLQUNmLENBQUM7SUFFRixNQUFNLE1BQU0sR0FBRyxPQUFPO1NBQ25CLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDVixPQUFPLENBQUMsY0FBYyxFQUFFLDZCQUFXLEVBQUUsT0FBTyxJQUFJLEtBQUssQ0FBQztTQUN0RCxPQUFPLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztTQUM5QyxPQUFPLENBQUMscUJBQXFCLEVBQUUsSUFBQSw2QkFBYSxFQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNoRSxPQUFPLENBQUMsMEJBQTBCLEVBQUUsc0JBQXNCLENBQUMsNkJBQVcsRUFBRSxPQUFPLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQztJQUNsRyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxHQUE0QjtJQUMxRCxJQUFJLDZCQUFXLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDeEIsT0FBTyw2QkFBVyxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSx1QkFBVyxFQUFDLFlBQVksQ0FBNEIsQ0FBQztRQUM5RSxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFxQyxDQUFDO1FBQ3hFLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXhpc3RzU3luYywgcmVhZEZpbGVTeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgQnVpbGRDb25maWcgfSBmcm9tICcuLi9AdHlwZXMvY29tbW9uJztcbmltcG9ydCB7IGJ1aWxkQ29uZmlnIH0gZnJvbSAnLi9pbml0QnVpbGRDb25maWcnO1xuaW1wb3J0IHsgaXNNaWNyb3NlcnZpY2UgfSBmcm9tICcuL2lzTWljcm9zZXJ2aWNlJztcbmltcG9ydCB7IGlzTGFyYXZlbEJhc2VkIH0gZnJvbSAnLi9pc0xhcmF2ZWxCYXNlZCc7XG5pbXBvcnQgeyBnZXRDb25zdGFudCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldEdpdGh1YlJlcG8gfSBmcm9tICcuL2dldEdpdGh1YlJlcG8nO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWMyVXNlckRhdGEoc2VydmljZT86IEJ1aWxkQ29uZmlnWydzZXJ2aWNlTmFtZSddKTogc3RyaW5nIHtcbiAgY29uc3Qgc2VydmljZU5hbWUgPSBzZXJ2aWNlID8/IGJ1aWxkQ29uZmlnPy5zZXJ2aWNlTmFtZTtcblxuICBjb25zdCBiZWZvcmVBbGxTY3JpcHQgPSByZWFkRmlsZVN5bmMoX19kaXJuYW1lICsgJy8uLi9zY3JpcHRzL3Bvc3QtZGVwbG95bWVudC1iZWZvcmUtYWxsLnNoJywgJ3V0ZjgnKTtcblxuICBjb25zdCBhZnRlckFsbFNjcmlwdCA9IHJlYWRGaWxlU3luYyhfX2Rpcm5hbWUgKyAnLy4uL3NjcmlwdHMvcG9zdC1kZXBsb3ltZW50LWFmdGVyLWFsbC5zaCcsICd1dGY4Jyk7XG5cbiAgY29uc3QgY2xvbmVSZXBvU2NyaXB0ID0gcmVhZEZpbGVTeW5jKF9fZGlybmFtZSArICcvLi4vc2NyaXB0cy9wb3N0LWRlcGxveW1lbnQtY2xvbmUtcmVwby5zaCcsICd1dGY4Jyk7XG5cbiAgY29uc3Qgc2VydmljZVNjcmlwdE5hbWUgPSBpc01pY3Jvc2VydmljZShzZXJ2aWNlKSA/IGAke3NlcnZpY2VOYW1lfS1zZXJ2aWNlYCA6IHNlcnZpY2U7XG5cbiAgY29uc3QgZ3JvdXBTY3JpcHROYW1lID0gaXNMYXJhdmVsQmFzZWQoKSA/ICdsYXJhdmVsLWJhc2VkJyA6IG51bGw7XG5cbiAgY29uc3Qgc2VydmljZVNjcmlwdFBhdGggPSBfX2Rpcm5hbWUgKyBgLy4uL3NjcmlwdHMvcG9zdC1kZXBsb3ltZW50LSR7c2VydmljZVNjcmlwdE5hbWV9LnNoYDtcbiAgY29uc3Qgc2VydmljZVNjcmlwdCA9IHNlcnZpY2VTY3JpcHROYW1lICYmIGV4aXN0c1N5bmMoc2VydmljZVNjcmlwdFBhdGgpID8gcmVhZEZpbGVTeW5jKHNlcnZpY2VTY3JpcHRQYXRoLCAndXRmOCcpIDogJyc7XG5cbiAgY29uc3QgZ3JvdXBTY3JpcHRQYXRoID0gX19kaXJuYW1lICsgYC8uLi9zY3JpcHRzL3Bvc3QtZGVwbG95bWVudC0ke2dyb3VwU2NyaXB0TmFtZX0uc2hgO1xuICBjb25zdCBncm91cFNjcmlwdCA9IGdyb3VwU2NyaXB0TmFtZSAmJiBleGlzdHNTeW5jKGdyb3VwU2NyaXB0UGF0aCkgPyByZWFkRmlsZVN5bmMoZ3JvdXBTY3JpcHRQYXRoLCAndXRmOCcpIDogJyc7XG5cbiAgY29uc3Qgc2NyaXB0cyA9IFtcbiAgICBiZWZvcmVBbGxTY3JpcHQsXG4gICAgLi4uKGlzTWljcm9zZXJ2aWNlKHNlcnZpY2UpIHx8IHNlcnZpY2VOYW1lID09PSAnYXBpLWdhdGV3YXknIHx8IHNlcnZpY2VOYW1lID09PSAncG9ydGFsJyA/IFtjbG9uZVJlcG9TY3JpcHRdIDogW10pLFxuICAgIGdyb3VwU2NyaXB0LFxuICAgIHNlcnZpY2VTY3JpcHQsXG4gICAgYWZ0ZXJBbGxTY3JpcHQsXG4gIF07XG5cbiAgY29uc3Qgb3V0cHV0ID0gc2NyaXB0c1xuICAgIC5qb2luKGBcXG5gKVxuICAgIC5yZXBsYWNlKC97e2Vudk5hbWV9fS9nLCBidWlsZENvbmZpZz8uZW52TmFtZSA/PyAndWF0JylcbiAgICAucmVwbGFjZSgve3tzZXJ2aWNlTmFtZX19L2csIHNlcnZpY2VOYW1lID8/ICcnKVxuICAgIC5yZXBsYWNlKC97e2dpdGh1YlJlcG9QYXRofX0vZywgZ2V0R2l0aHViUmVwbyhzZXJ2aWNlTmFtZSkgPz8gJycpXG4gICAgLnJlcGxhY2UoL3t7Z2l0RGVwbG95bWVudEJyYW5jaH19L2csIGdldEdpdERlcGxveW1lbnRCcmFuY2goYnVpbGRDb25maWc/LmVudk5hbWUpID8/ICdyZWxlYXNlJyk7XG4gIHJldHVybiBvdXRwdXQ7XG59XG5cbmZ1bmN0aW9uIGdldEdpdERlcGxveW1lbnRCcmFuY2goZW52PzogQnVpbGRDb25maWdbJ2Vudk5hbWUnXSk6IHN0cmluZyB8IHZvaWQge1xuICBpZiAoYnVpbGRDb25maWc/LmJyYW5jaCkge1xuICAgIHJldHVybiBidWlsZENvbmZpZy5icmFuY2g7XG4gIH1cbiAgaWYgKGVudikge1xuICAgIGNvbnN0IGRlcGxveW1lbnRDb25maWcgPSBnZXRDb25zdGFudCgnZGVwbG95bWVudCcpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGNvbnN0IGJyYW5jaGVzID0gZGVwbG95bWVudENvbmZpZy5naXRCcmFuY2hlcyBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgIHJldHVybiBicmFuY2hlc1tlbnZdO1xuICB9XG59XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0RWMyVXNlckRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi91dGlsL2dldEVjMlVzZXJEYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBU0Esd0NBcUNDO0FBOUNELDJCQUE4QztBQUU5Qyx1REFBZ0Q7QUFDaEQscURBQWtEO0FBQ2xELHFEQUFrRDtBQUNsRCwyQ0FBMEM7QUFDMUMsbURBQWdEO0FBQ2hELCtEQUE0RDtBQUU1RCxTQUFnQixjQUFjLENBQUMsT0FBb0M7SUFDakUsTUFBTSxXQUFXLEdBQUcsT0FBTyxJQUFJLDZCQUFXLEVBQUUsV0FBVyxDQUFDO0lBRXhELE1BQU0sZUFBZSxHQUFHLElBQUEsaUJBQVksRUFBQyxTQUFTLEdBQUcsMkNBQTJDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFdEcsTUFBTSxjQUFjLEdBQUcsSUFBQSxpQkFBWSxFQUFDLFNBQVMsR0FBRywwQ0FBMEMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVwRyxNQUFNLGVBQWUsR0FBRyxJQUFBLGlCQUFZLEVBQUMsU0FBUyxHQUFHLDJDQUEyQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXRHLE1BQU0saUJBQWlCLEdBQUcsSUFBQSwrQkFBYyxFQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFFdkYsTUFBTSxlQUFlLEdBQUcsSUFBQSwrQkFBYyxHQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRWxFLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxHQUFHLCtCQUErQixpQkFBaUIsS0FBSyxDQUFDO0lBQzVGLE1BQU0sYUFBYSxHQUFHLGlCQUFpQixJQUFJLElBQUEsZUFBVSxFQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUEsaUJBQVksRUFBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRXhILE1BQU0sZUFBZSxHQUFHLFNBQVMsR0FBRywrQkFBK0IsZUFBZSxLQUFLLENBQUM7SUFDeEYsTUFBTSxXQUFXLEdBQUcsZUFBZSxJQUFJLElBQUEsZUFBVSxFQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFBLGlCQUFZLEVBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFaEgsTUFBTSxPQUFPLEdBQUc7UUFDZCxlQUFlO1FBQ2YsR0FBRyxDQUFDLElBQUEsK0JBQWMsRUFBQyxPQUFPLENBQUMsSUFBSSxXQUFXLEtBQUssYUFBYSxJQUFJLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsSCxXQUFXO1FBQ1gsYUFBYTtRQUNiLGNBQWM7S0FDZixDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQUcsT0FBTztTQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ1YsT0FBTyxDQUFDLGNBQWMsRUFBRSw2QkFBVyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUM7U0FDdEQsT0FBTyxDQUFDLGtCQUFrQixFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7U0FDOUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLElBQUEsNkJBQWEsRUFBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDaEUsT0FBTyxDQUFDLDBCQUEwQixFQUFFLHNCQUFzQixDQUFDLDZCQUFXLEVBQUUsT0FBTyxDQUFDLElBQUksU0FBUyxDQUFDO1NBQzlGLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRyxJQUFBLHVCQUFXLEVBQUMsa0JBQWtCLENBQTRCLENBQUMsNkJBQVcsRUFBRSxPQUFPLElBQUksS0FBSyxDQUFDLENBQUM7U0FDNUgsT0FBTyxDQUFDLDJCQUEyQixFQUFHLElBQUEsdUJBQVcsRUFBQyxzQkFBc0IsQ0FBNEIsQ0FBQyw2QkFBVyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQztTQUNwSSxPQUFPLENBQUMsdUJBQXVCLEVBQUUsSUFBQSx5Q0FBbUIsR0FBRSxDQUFDLENBQUM7SUFDM0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsR0FBNEI7SUFDMUQsSUFBSSw2QkFBVyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLE9BQU8sNkJBQVcsQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixNQUFNLGdCQUFnQixHQUFHLElBQUEsdUJBQVcsRUFBQyxZQUFZLENBQTRCLENBQUM7UUFDOUUsTUFBTSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsV0FBcUMsQ0FBQztRQUN4RSxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMsIHJlYWRGaWxlU3luYyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IEJ1aWxkQ29uZmlnIH0gZnJvbSAnLi4vQHR5cGVzL2NvbW1vbic7XG5pbXBvcnQgeyBidWlsZENvbmZpZyB9IGZyb20gJy4vaW5pdEJ1aWxkQ29uZmlnJztcbmltcG9ydCB7IGlzTWljcm9zZXJ2aWNlIH0gZnJvbSAnLi9pc01pY3Jvc2VydmljZSc7XG5pbXBvcnQgeyBpc0xhcmF2ZWxCYXNlZCB9IGZyb20gJy4vaXNMYXJhdmVsQmFzZWQnO1xuaW1wb3J0IHsgZ2V0Q29uc3RhbnQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRHaXRodWJSZXBvIH0gZnJvbSAnLi9nZXRHaXRodWJSZXBvJztcbmltcG9ydCB7IGdldFB1YmxpY0J1Y2tldE5hbWUgfSBmcm9tICcuL2dldFB1YmxpY0J1Y2tldE5hbWUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWMyVXNlckRhdGEoc2VydmljZT86IEJ1aWxkQ29uZmlnWydzZXJ2aWNlTmFtZSddKTogc3RyaW5nIHtcbiAgY29uc3Qgc2VydmljZU5hbWUgPSBzZXJ2aWNlID8/IGJ1aWxkQ29uZmlnPy5zZXJ2aWNlTmFtZTtcblxuICBjb25zdCBiZWZvcmVBbGxTY3JpcHQgPSByZWFkRmlsZVN5bmMoX19kaXJuYW1lICsgJy8uLi9zY3JpcHRzL3Bvc3QtZGVwbG95bWVudC1iZWZvcmUtYWxsLnNoJywgJ3V0ZjgnKTtcblxuICBjb25zdCBhZnRlckFsbFNjcmlwdCA9IHJlYWRGaWxlU3luYyhfX2Rpcm5hbWUgKyAnLy4uL3NjcmlwdHMvcG9zdC1kZXBsb3ltZW50LWFmdGVyLWFsbC5zaCcsICd1dGY4Jyk7XG5cbiAgY29uc3QgY2xvbmVSZXBvU2NyaXB0ID0gcmVhZEZpbGVTeW5jKF9fZGlybmFtZSArICcvLi4vc2NyaXB0cy9wb3N0LWRlcGxveW1lbnQtY2xvbmUtcmVwby5zaCcsICd1dGY4Jyk7XG5cbiAgY29uc3Qgc2VydmljZVNjcmlwdE5hbWUgPSBpc01pY3Jvc2VydmljZShzZXJ2aWNlKSA/IGAke3NlcnZpY2VOYW1lfS1zZXJ2aWNlYCA6IHNlcnZpY2U7XG5cbiAgY29uc3QgZ3JvdXBTY3JpcHROYW1lID0gaXNMYXJhdmVsQmFzZWQoKSA/ICdsYXJhdmVsLWJhc2VkJyA6IG51bGw7XG5cbiAgY29uc3Qgc2VydmljZVNjcmlwdFBhdGggPSBfX2Rpcm5hbWUgKyBgLy4uL3NjcmlwdHMvcG9zdC1kZXBsb3ltZW50LSR7c2VydmljZVNjcmlwdE5hbWV9LnNoYDtcbiAgY29uc3Qgc2VydmljZVNjcmlwdCA9IHNlcnZpY2VTY3JpcHROYW1lICYmIGV4aXN0c1N5bmMoc2VydmljZVNjcmlwdFBhdGgpID8gcmVhZEZpbGVTeW5jKHNlcnZpY2VTY3JpcHRQYXRoLCAndXRmOCcpIDogJyc7XG5cbiAgY29uc3QgZ3JvdXBTY3JpcHRQYXRoID0gX19kaXJuYW1lICsgYC8uLi9zY3JpcHRzL3Bvc3QtZGVwbG95bWVudC0ke2dyb3VwU2NyaXB0TmFtZX0uc2hgO1xuICBjb25zdCBncm91cFNjcmlwdCA9IGdyb3VwU2NyaXB0TmFtZSAmJiBleGlzdHNTeW5jKGdyb3VwU2NyaXB0UGF0aCkgPyByZWFkRmlsZVN5bmMoZ3JvdXBTY3JpcHRQYXRoLCAndXRmOCcpIDogJyc7XG5cbiAgY29uc3Qgc2NyaXB0cyA9IFtcbiAgICBiZWZvcmVBbGxTY3JpcHQsXG4gICAgLi4uKGlzTWljcm9zZXJ2aWNlKHNlcnZpY2UpIHx8IHNlcnZpY2VOYW1lID09PSAnYXBpLWdhdGV3YXknIHx8IHNlcnZpY2VOYW1lID09PSAncG9ydGFsJyA/IFtjbG9uZVJlcG9TY3JpcHRdIDogW10pLFxuICAgIGdyb3VwU2NyaXB0LFxuICAgIHNlcnZpY2VTY3JpcHQsXG4gICAgYWZ0ZXJBbGxTY3JpcHQsXG4gIF07XG5cbiAgY29uc3Qgb3V0cHV0ID0gc2NyaXB0c1xuICAgIC5qb2luKGBcXG5gKVxuICAgIC5yZXBsYWNlKC97e2Vudk5hbWV9fS9nLCBidWlsZENvbmZpZz8uZW52TmFtZSA/PyAndWF0JylcbiAgICAucmVwbGFjZSgve3tzZXJ2aWNlTmFtZX19L2csIHNlcnZpY2VOYW1lID8/ICcnKVxuICAgIC5yZXBsYWNlKC97e2dpdGh1YlJlcG9QYXRofX0vZywgZ2V0R2l0aHViUmVwbyhzZXJ2aWNlTmFtZSkgPz8gJycpXG4gICAgLnJlcGxhY2UoL3t7Z2l0RGVwbG95bWVudEJyYW5jaH19L2csIGdldEdpdERlcGxveW1lbnRCcmFuY2goYnVpbGRDb25maWc/LmVudk5hbWUpID8/ICdyZWxlYXNlJylcbiAgICAucmVwbGFjZSgve3twb3J0YWxEb21haW5OYW1lfX0vZywgKGdldENvbnN0YW50KCdwb3J0YWxEb21haW5OYW1lJykgYXMgUmVjb3JkPHN0cmluZywgc3RyaW5nPilbYnVpbGRDb25maWc/LmVudk5hbWUgPz8gJ3VhdCddKVxuICAgIC5yZXBsYWNlKC97e2FwaUdhdGV3YXlEb21haW5OYW1lfX0vZywgKGdldENvbnN0YW50KCdhcGlHYXRld2F5RG9tYWluTmFtZScpIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pW2J1aWxkQ29uZmlnPy5lbnZOYW1lID8/ICd1YXQnXSlcbiAgICAucmVwbGFjZSgve3twdWJsaWNCdWNrZXROYW1lfX0vZywgZ2V0UHVibGljQnVja2V0TmFtZSgpKTtcbiAgcmV0dXJuIG91dHB1dDtcbn1cblxuZnVuY3Rpb24gZ2V0R2l0RGVwbG95bWVudEJyYW5jaChlbnY/OiBCdWlsZENvbmZpZ1snZW52TmFtZSddKTogc3RyaW5nIHwgdm9pZCB7XG4gIGlmIChidWlsZENvbmZpZz8uYnJhbmNoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ29uZmlnLmJyYW5jaDtcbiAgfVxuICBpZiAoZW52KSB7XG4gICAgY29uc3QgZGVwbG95bWVudENvbmZpZyA9IGdldENvbnN0YW50KCdkZXBsb3ltZW50JykgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgY29uc3QgYnJhbmNoZXMgPSBkZXBsb3ltZW50Q29uZmlnLmdpdEJyYW5jaGVzIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgcmV0dXJuIGJyYW5jaGVzW2Vudl07XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glicogh/healthcare-cdk",
3
- "version": "0.1.62",
3
+ "version": "0.1.64",
4
4
  "description": "CDK automations",
5
5
  "bin": {
6
6
  "cdk": "bin/cdk.js"
@@ -23,7 +23,7 @@
23
23
  "typescript": "~5.5.3"
24
24
  },
25
25
  "dependencies": {
26
- "aws-cdk-lib": "^2.219.0",
26
+ "aws-cdk-lib": "^2.249.0",
27
27
  "constructs": "^10.0.0",
28
28
  "dotenv": "^16.4.5",
29
29
  "source-map-support": "^0.5.21"
@@ -33,3 +33,23 @@ sudo systemctl restart dnsmasq
33
33
 
34
34
  # start nginx server
35
35
  sudo systemctl restart nginx
36
+
37
+ # install certbot
38
+ sudo snap refresh core
39
+ sudo apt remove certbot
40
+ sudo snap install --classic certbot
41
+ sudo ln -s /snap/bin/certbot /usr/bin/certbot
42
+
43
+ # sync SSL certificates from S3 bucket to local (if they exist)
44
+ aws s3 cp s3://$public_bucket_name/ssl/ /etc/letsencrypt/live --recursive
45
+ sudo chown -R ubuntu:ubuntu /etc/letsencrypt/live
46
+
47
+ # obtain SSL certificate (if it doesn't exist) and sync to S3 bucket
48
+ if [[ ! -f "/etc/letsencrypt/live/$api_gateway_domain_name/fullchain.pem" ]]; then
49
+ sudo certbot certonly --standalone -d $api_gateway_domain_name --agree-tos --non-interactive -m mistabiggx@gmail.com --no-eff-email --quiet --pre-hook="sudo systemctl stop nginx" --post-hook="sudo systemctl start nginx" --deploy-hook "aws s3 sync /etc/letsencrypt/live s3://$public_bucket_name/ssl/"
50
+ fi
51
+
52
+ # register SSL renewal cron
53
+ certbot_cron_command="/usr/bin/certbot renew --pre-hook=\"sudo systemctl stop nginx\" --post-hook=\"sudo systemctl start nginx\" --deploy-hook \"aws s3 sync /etc/letsencrypt/live s3://$public_bucket_name/ssl/\" >> $logs_dir/{{serviceName}}-ssl-renewal.log"
54
+ certbot_cron_job="0 0,12 * * * $certbot_cron_command"
55
+ ( ( crontab -l || true ) | ( grep -v -F "$certbot_cron_command" || true ) ; echo "$certbot_cron_job" ) | crontab -
@@ -19,6 +19,9 @@ deployment_log_file="$logs_dir/deployment.log"
19
19
  deployment_git_branch="{{gitDeploymentBranch}}"
20
20
  instance_id=$(ec2metadata --instance-id)
21
21
  instance_private_ip=$(ec2metadata --local-ipv4)
22
+ portal_domain_name="{{portalDomainName}}"
23
+ api_gateway_domain_name="{{apiGatewayDomainName}}"
24
+ public_bucket_name="{{publicBucketName}}"
22
25
 
23
26
  # create directories
24
27
  sudo mkdir -p $microservices_dir
@@ -32,3 +32,23 @@ sudo NODE_OPTIONS="--max-old-space-size=2048 NUXT_TELEMETRY_DISABLED=1" npm run
32
32
 
33
33
  # start nginx server
34
34
  sudo systemctl restart nginx
35
+
36
+ # install certbot
37
+ sudo snap refresh core
38
+ sudo apt remove certbot
39
+ sudo snap install --classic certbot
40
+ sudo ln -s /snap/bin/certbot /usr/bin/certbot
41
+
42
+ # sync SSL certificates from S3 bucket to local (if they exist)
43
+ aws s3 cp s3://$public_bucket_name/ssl/ /etc/letsencrypt/live --recursive
44
+ sudo chown -R ubuntu:ubuntu /etc/letsencrypt/live
45
+
46
+ # obtain SSL certificate (if it doesn't exist) and sync to S3 bucket
47
+ if [[ ! -f "/etc/letsencrypt/live/$portal_domain_name/fullchain.pem" ]]; then
48
+ sudo certbot certonly --standalone -d $portal_domain_name --agree-tos --non-interactive -m mistabiggx@gmail.com --no-eff-email --quiet --pre-hook="sudo systemctl stop nginx" --post-hook="sudo systemctl start nginx" --deploy-hook "aws s3 sync /etc/letsencrypt/live s3://$public_bucket_name/ssl/"
49
+ fi
50
+
51
+ # register SSL renewal cron
52
+ certbot_cron_command="/usr/bin/certbot renew --pre-hook=\"sudo systemctl stop nginx\" --post-hook=\"sudo systemctl start nginx\" --deploy-hook \"aws s3 sync /etc/letsencrypt/live s3://$public_bucket_name/ssl/\" >> $logs_dir/{{serviceName}}-ssl-renewal.log"
53
+ certbot_cron_job="0 0,12 * * * $certbot_cron_command"
54
+ ( ( crontab -l || true ) | ( grep -v -F "$certbot_cron_command" || true ) ; echo "$certbot_cron_job" ) | crontab -