@fjall/components-infrastructure 0.1.0
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.
- package/README.md +68 -0
- package/dist/index.js +18 -0
- package/dist/lib/app.d.ts +6 -0
- package/dist/lib/app.js +19 -0
- package/dist/lib/config/aws/base/costAllocationTags.d.ts +5 -0
- package/dist/lib/config/aws/base/costAllocationTags.js +57 -0
- package/dist/lib/config/aws/base/iamIdentityCenter.d.ts +5 -0
- package/dist/lib/config/aws/base/iamIdentityCenter.js +86 -0
- package/dist/lib/config/aws/base/identityCenter.d.ts +5 -0
- package/dist/lib/config/aws/base/identityCenter.js +90 -0
- package/dist/lib/config/aws/base/ipam.d.ts +5 -0
- package/dist/lib/config/aws/base/ipam.js +29 -0
- package/dist/lib/config/aws/base/ipamPool.d.ts +5 -0
- package/dist/lib/config/aws/base/ipamPool.js +46 -0
- package/dist/lib/examples/custom-resources/lambda/aws-cost-allocation-tags/awsCostAllocationTagsLambda.d.ts +2 -0
- package/dist/lib/examples/custom-resources/lambda/aws-cost-allocation-tags/awsCostAllocationTagsLambda.js +62 -0
- package/dist/lib/examples/cutomResourceExample.d.ts +6 -0
- package/dist/lib/examples/cutomResourceExample.js +45 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +18 -0
- package/dist/lib/patterns/aws/customResource.d.ts +7 -0
- package/dist/lib/patterns/aws/customResource.js +28 -0
- package/dist/lib/patterns/aws/index.d.ts +2 -0
- package/dist/lib/patterns/aws/index.js +19 -0
- package/dist/lib/patterns/aws/multiEnvironmentOrganisation.d.ts +33 -0
- package/dist/lib/patterns/aws/multiEnvironmentOrganisation.js +107 -0
- package/dist/lib/patterns/aws/webApp.d.ts +17 -0
- package/dist/lib/patterns/aws/webApp.js +36 -0
- package/dist/lib/resources/aws/awsStack.d.ts +36 -0
- package/dist/lib/resources/aws/awsStack.js +86 -0
- package/dist/lib/resources/aws/compute/__tests__/fargate.test.d.ts +1 -0
- package/dist/lib/resources/aws/compute/__tests__/fargate.test.js +21 -0
- package/dist/lib/resources/aws/compute/fargate.d.ts +23 -0
- package/dist/lib/resources/aws/compute/fargate.js +50 -0
- package/dist/lib/resources/aws/compute/lambda.d.ts +18 -0
- package/dist/lib/resources/aws/compute/lambda.js +28 -0
- package/dist/lib/resources/aws/constant/__tests__/vpc.test.d.ts +1 -0
- package/dist/lib/resources/aws/constant/__tests__/vpc.test.js +13 -0
- package/dist/lib/resources/aws/constant/ecr.d.ts +12 -0
- package/dist/lib/resources/aws/constant/ecr.js +29 -0
- package/dist/lib/resources/aws/constant/vpc.d.ts +18 -0
- package/dist/lib/resources/aws/constant/vpc.js +53 -0
- package/dist/lib/resources/aws/iam/assignment.d.ts +5 -0
- package/dist/lib/resources/aws/iam/assignment.js +13 -0
- package/dist/lib/resources/aws/iam/group.d.ts +5 -0
- package/dist/lib/resources/aws/iam/group.js +15 -0
- package/dist/lib/resources/aws/iam/iamRole.d.ts +5 -0
- package/dist/lib/resources/aws/iam/iamRole.js +18 -0
- package/dist/lib/resources/aws/iam/permissionSet.d.ts +5 -0
- package/dist/lib/resources/aws/iam/permissionSet.js +13 -0
- package/dist/lib/resources/aws/iam/role.d.ts +5 -0
- package/dist/lib/resources/aws/iam/role.js +18 -0
- package/dist/lib/resources/aws/logging/logGroup.d.ts +9 -0
- package/dist/lib/resources/aws/logging/logGroup.js +24 -0
- package/dist/lib/resources/aws/networking/hostedZone.d.ts +5 -0
- package/dist/lib/resources/aws/networking/hostedZone.js +20 -0
- package/dist/lib/resources/aws/networking/ipam.d.ts +5 -0
- package/dist/lib/resources/aws/networking/ipam.js +15 -0
- package/dist/lib/resources/aws/networking/ipamPool.d.ts +9 -0
- package/dist/lib/resources/aws/networking/ipamPool.js +35 -0
- package/dist/lib/resources/aws/store/database.d.ts +13 -0
- package/dist/lib/resources/aws/store/database.js +29 -0
- package/dist/lib/resources/aws/store/rds.d.ts +25 -0
- package/dist/lib/resources/aws/store/rds.js +90 -0
- package/dist/lib/resources/aws/utilities/awsCustomResource.d.ts +6 -0
- package/dist/lib/resources/aws/utilities/awsCustomResource.js +24 -0
- package/dist/lib/resources/aws/utilities/cfnOutput.d.ts +5 -0
- package/dist/lib/resources/aws/utilities/cfnOutput.js +16 -0
- package/dist/lib/resources/aws/utilities/customResource.d.ts +5 -0
- package/dist/lib/resources/aws/utilities/customResource.js +13 -0
- package/dist/lib/resources/aws/utilities/customResourceProvider.d.ts +5 -0
- package/dist/lib/resources/aws/utilities/customResourceProvider.js +19 -0
- package/dist/lib/utils/addSuffixToEmail.d.ts +1 -0
- package/dist/lib/utils/addSuffixToEmail.js +7 -0
- package/dist/lib/utils/getConfig.d.ts +7 -0
- package/dist/lib/utils/getConfig.js +22 -0
- package/package.json +59 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
4
|
+
const aws_rds_1 = require("aws-cdk-lib/aws-rds");
|
|
5
|
+
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
|
6
|
+
const aws_cdk_lib_2 = require("aws-cdk-lib");
|
|
7
|
+
const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
|
|
8
|
+
const constructs_1 = require("constructs");
|
|
9
|
+
class Rds extends constructs_1.Construct {
|
|
10
|
+
constructor(scope, id, props) {
|
|
11
|
+
super(scope, id);
|
|
12
|
+
this.outputs = [];
|
|
13
|
+
// todo: automatically change class & size based on environment
|
|
14
|
+
const instanceClass = props.instanceClass || aws_ec2_1.InstanceClass.BURSTABLE4_GRAVITON;
|
|
15
|
+
const instanceSize = props.instanceSize || aws_ec2_1.InstanceSize.MICRO;
|
|
16
|
+
const databaseName = props.databaseName || `${id}Database`;
|
|
17
|
+
const port = props.port || 5432;
|
|
18
|
+
const snapshotRetentionInDays = props.snapshotRetentionInDays || 14;
|
|
19
|
+
const retainSnapshotsOnDeletion = props.retainSnapshotsOnDeletion || true;
|
|
20
|
+
const engine = aws_rds_1.DatabaseInstanceEngine.postgres({
|
|
21
|
+
version: props.version ||
|
|
22
|
+
aws_rds_1.PostgresEngineVersion.VER_14_5
|
|
23
|
+
});
|
|
24
|
+
//todo: validate engine & version are an acceptable combination
|
|
25
|
+
this.addSecretResource(id);
|
|
26
|
+
this.addSecurityGroup(id, props.vpc, port);
|
|
27
|
+
this.addDatabaseInstance(scope, `${id}Instance`, props, engine, instanceClass, instanceSize, port, databaseName, snapshotRetentionInDays, retainSnapshotsOnDeletion);
|
|
28
|
+
this.connections = this.securityGroup.connections;
|
|
29
|
+
//todo: multiAz
|
|
30
|
+
//todo: reserved instance families
|
|
31
|
+
//todo: security group
|
|
32
|
+
//todo: cluster
|
|
33
|
+
//todo: automatic rotating credentials
|
|
34
|
+
//todo: database proxy
|
|
35
|
+
//todo: cfn outputs (url)
|
|
36
|
+
//todo: database cname?
|
|
37
|
+
}
|
|
38
|
+
addDatabaseInstance(scope, id, props, engine, instanceClass, instanceSize, port, databaseName, snapshotRetentionInDays, retainSnapshotsOnDeletion) {
|
|
39
|
+
this.databaseInstance = new aws_rds_1.DatabaseInstance(scope, id, {
|
|
40
|
+
vpc: props.vpc,
|
|
41
|
+
// vpcSubnets: { subnetType: SubnetType.PRIVATE_ISOLATED },
|
|
42
|
+
engine: engine,
|
|
43
|
+
instanceType: aws_ec2_1.InstanceType.of(instanceClass, instanceSize),
|
|
44
|
+
credentials: aws_rds_1.Credentials.fromSecret(this.secret),
|
|
45
|
+
port: port,
|
|
46
|
+
securityGroups: [this.securityGroup],
|
|
47
|
+
databaseName: databaseName,
|
|
48
|
+
backupRetention: aws_cdk_lib_1.Duration.days(snapshotRetentionInDays),
|
|
49
|
+
deleteAutomatedBackups: retainSnapshotsOnDeletion,
|
|
50
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.SNAPSHOT
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
addSecretResource(id) {
|
|
54
|
+
this.secret = new aws_secretsmanager_1.Secret(this, `${id}Secret`, {
|
|
55
|
+
secretName: `${id}-credentials`,
|
|
56
|
+
generateSecretString: {
|
|
57
|
+
secretStringTemplate: JSON.stringify({
|
|
58
|
+
username: "postgres"
|
|
59
|
+
}),
|
|
60
|
+
excludePunctuation: true,
|
|
61
|
+
includeSpace: false,
|
|
62
|
+
generateStringKey: "password"
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
this.outputs.push(new aws_cdk_lib_2.CfnOutput(this, "Secret Name", {
|
|
66
|
+
value: this.secret.secretName
|
|
67
|
+
}));
|
|
68
|
+
this.outputs.push(new aws_cdk_lib_2.CfnOutput(this, "Secret ARN", {
|
|
69
|
+
value: this.secret.secretArn
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
addSecurityGroup(id, vpc, port) {
|
|
73
|
+
this.securityGroup = new aws_ec2_1.SecurityGroup(this, `${id}DBSecurityGroup`, {
|
|
74
|
+
securityGroupName: "Database-SG",
|
|
75
|
+
vpc: vpc
|
|
76
|
+
});
|
|
77
|
+
//todo: retrieve from service not hardcoded vpc?
|
|
78
|
+
// this.securityGroup.connections.allowFrom(ecsService.service, Port.tcp(3306), 'Inbound');
|
|
79
|
+
// Create basic ingress rule to allow access to database through default port
|
|
80
|
+
// this.securityGroup.addIngressRule(
|
|
81
|
+
// Peer.ipv4(vpc.vpcCidrBlock),
|
|
82
|
+
// Port.tcp(port),
|
|
83
|
+
// `Allow port ${port} for database connection from only within the VPC (${vpc.vpcId})`
|
|
84
|
+
// );
|
|
85
|
+
// todo: Double check egress rules with Paul.
|
|
86
|
+
// - What is the default (CDK Diff implies it might be 'everyone'?)
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.default = Rds;
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3Mvc3RvcmUvcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkNBQXNEO0FBQ3RELGlEQU82QjtBQUM3QixpREFRNkI7QUFFN0IsNkNBQXdDO0FBQ3hDLHVFQUF3RDtBQUN4RCwyQ0FBdUM7QUFjdkMsTUFBcUIsR0FBSSxTQUFRLHNCQUFTO0lBT3hDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBZTtRQUN2RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBTlgsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFRaEMsK0RBQStEO1FBQy9ELE1BQU0sYUFBYSxHQUNqQixLQUFLLENBQUMsYUFBYSxJQUFJLHVCQUFhLENBQUMsbUJBQW1CLENBQUM7UUFDM0QsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxzQkFBWSxDQUFDLEtBQUssQ0FBQztRQUU5RCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEdBQUcsRUFBRSxVQUFVLENBQUM7UUFDM0QsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7UUFDaEMsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDO1FBQ3BFLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixJQUFJLElBQUksQ0FBQztRQUUxRSxNQUFNLE1BQU0sR0FBRyxnQ0FBc0IsQ0FBQyxRQUFRLENBQUM7WUFDN0MsT0FBTyxFQUNKLEtBQUssQ0FBQyxPQUFpQztnQkFDeEMsK0JBQXFCLENBQUMsUUFBUTtTQUNqQyxDQUFDLENBQUM7UUFFSCwrREFBK0Q7UUFFL0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxF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UUFFTCw2Q0FBNkM7UUFDN0Msb0VBQW9FO0lBQ3RFLENBQUM7Q0FDRjtBQTlIRCxzQkE4SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQ3JlZGVudGlhbHMsXG4gIERhdGFiYXNlSW5zdGFuY2UsXG4gIERhdGFiYXNlSW5zdGFuY2VFbmdpbmUsXG4gIFBvc3RncmVzRW5naW5lVmVyc2lvbixcbiAgTXlzcWxFbmdpbmVWZXJzaW9uLFxuICBJSW5zdGFuY2VFbmdpbmVcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1yZHNcIjtcbmltcG9ydCB7XG4gIEluc3RhbmNlQ2xhc3MsXG4gIEluc3RhbmNlU2l6ZSxcbiAgSW5zdGFuY2VUeXBlLFxuICBTZWN1cml0eUdyb3VwLFxuICBWcGMsXG4gIElDb25uZWN0YWJsZSxcbiAgQ29ubmVjdGlvbnNcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcblxuaW1wb3J0IHsgQ2ZuT3V0cHV0IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBTZWNyZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbnRlcmZhY2UgUmRzUHJvcHMge1xuICB2cGM6IFZwYztcbiAgZGF0YWJhc2VOYW1lPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogUG9zdGdyZXNFbmdpbmVWZXJzaW9uIHwgTXlzcWxFbmdpbmVWZXJzaW9uO1xuICBwb3J0PzogbnVtYmVyO1xuICBpbnN0YW5jZUNsYXNzPzogSW5zdGFuY2VDbGFzcztcbiAgaW5zdGFuY2VTaXplPzogSW5zdGFuY2VTaXplO1xuICAvLyBEYXRhYmFzZSBJbnN0YW5jZSBDb25maWd1cmF0aW9uXG4gIHNuYXBzaG90UmV0ZW50aW9uSW5EYXlzPzogbnVtYmVyO1xuICByZXRhaW5TbmFwc2hvdHNPbkRlbGV0aW9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmRzIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUNvbm5lY3RhYmxlIHtcbiAgcHJpdmF0ZSBkYXRhYmFzZUluc3RhbmNlOiBEYXRhYmFzZUluc3RhbmNlO1xuICBwcml2YXRlIG91dHB1dHM6IENmbk91dHB1dFtdID0gW107XG4gIHByaXZhdGUgc2VjcmV0OiBTZWNyZXQ7XG4gIHByaXZhdGUgc2VjdXJpdHlHcm91cDogU2VjdXJpdHlHcm91cDtcbiAgcHVibGljIGNvbm5lY3Rpb25zOiBDb25uZWN0aW9ucztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmRzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgLy8gdG9kbzogYXV0b21hdGljYWxseSBjaGFuZ2UgY2xhc3MgJiBzaXplIGJhc2VkIG9uIGVudmlyb25tZW50XG4gICAgY29uc3QgaW5zdGFuY2VDbGFzcyA9XG4gICAgICBwcm9wcy5pbnN0YW5jZUNsYXNzIHx8IEluc3RhbmNlQ2xhc3MuQlVSU1RBQkxFNF9HUkFWSVRPTjtcbiAgICBjb25zdCBpbnN0YW5jZVNpemUgPSBwcm9wcy5pbnN0YW5jZVNpemUgfHwgSW5zdGFuY2VTaXplLk1JQ1JPO1xuXG4gICAgY29uc3QgZGF0YWJhc2VOYW1lID0gcHJvcHMuZGF0YWJhc2VOYW1lIHx8IGAke2lkfURhdGFiYXNlYDtcbiAgICBjb25zdCBwb3J0ID0gcHJvcHMucG9ydCB8fCA1NDMyO1xuICAgIGNvbnN0IHNuYXBzaG90UmV0ZW50aW9uSW5EYXlzID0gcHJvcHMuc25hcHNob3RSZXRlbnRpb25JbkRheXMgfHwgMTQ7XG4gICAgY29uc3QgcmV0YWluU25hcHNob3RzT25EZWxldGlvbiA9IHByb3BzLnJldGFpblNuYXBzaG90c09uRGVsZXRpb24gfHwgdHJ1ZTtcblxuICAgIGNvbnN0IGVuZ2luZSA9IERhdGFiYXNlSW5zdGFuY2VFbmdpbmUucG9zdGdyZXMoe1xuICAgICAgdmVyc2lvbjpcbiAgICAgICAgKHByb3BzLnZlcnNpb24gYXMgUG9zdGdyZXNFbmdpbmVWZXJzaW9uKSB8fFxuICAgICAgICBQb3N0Z3Jlc0VuZ2luZVZlcnNpb24uVkVSXzE0XzVcbiAgICB9KTtcblxuICAgIC8vdG9kbzogdmFsaWRhdGUgZW5naW5lICYgdmVyc2lvbiBhcmUgYW4gYWNjZXB0YWJsZSBjb21iaW5hdGlvblxuXG4gICAgdGhpcy5hZGRTZWNyZXRSZXNvdXJjZShpZCk7XG4gICAgdGhpcy5hZGRTZWN1cml0eUdyb3VwKGlkLCBwcm9wcy52cGMsIHBvcnQpO1xuICAgIHRoaXMuYWRkRGF0YWJhc2VJbnN0YW5jZShcbiAgICAgIHNjb3BlLFxuICAgICAgYCR7aWR9SW5zdGFuY2VgLFxuICAgICAgcHJvcHMsXG4gICAgICBlbmdpbmUsXG4gICAgICBpbnN0YW5jZUNsYXNzLFxuICAgICAgaW5zdGFuY2VTaXplLFxuICAgICAgcG9ydCxcbiAgICAgIGRhdGFiYXNlTmFtZSxcbiAgICAgIHNuYXBzaG90UmV0ZW50aW9uSW5EYXlzLFxuICAgICAgcmV0YWluU25hcHNob3RzT25EZWxldGlvblxuICAgICk7XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5zZWN1cml0eUdyb3VwLmNvbm5lY3Rpb25zO1xuXG4gICAgLy90b2RvOiBtdWx0aUF6XG4gICAgLy90b2RvOiByZXNlcnZlZCBpbnN0YW5jZSBmYW1pbGllc1xuICAgIC8vdG9kbzogc2VjdXJpdHkgZ3JvdXBcbiAgICAvL3RvZG86IGNsdXN0ZXJcbiAgICAvL3RvZG86IGF1dG9tYXRpYyByb3RhdGluZyBjcmVkZW50aWFsc1xuICAgIC8vdG9kbzogZGF0YWJhc2UgcHJveHlcbiAgICAvL3RvZG86IGNmbiBvdXRwdXRzICh1cmwpXG4gICAgLy90b2RvOiBkYXRhYmFzZSBjbmFtZT9cbiAgfVxuXG4gIHByaXZhdGUgYWRkRGF0YWJhc2VJbnN0YW5jZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFJkc1Byb3BzLFxuICAgIGVuZ2luZTogSUluc3RhbmNlRW5naW5lLFxuICAgIGluc3RhbmNlQ2xhc3M6IEluc3RhbmNlQ2xhc3MsXG4gICAgaW5zdGFuY2VTaXplOiBJbnN0YW5jZVNpemUsXG4gICAgcG9ydDogbnVtYmVyLFxuICAgIGRhdGFiYXNlTmFtZTogc3RyaW5nLFxuICAgIHNuYXBzaG90UmV0ZW50aW9uSW5EYXlzOiBudW1iZXIsXG4gICAgcmV0YWluU25hcHNob3RzT25EZWxldGlvbjogYm9vbGVhblxuICApIHtcbiAgICB0aGlzLmRhdGFiYXNlSW5zdGFuY2UgPSBuZXcgRGF0YWJhc2VJbnN0YW5jZShzY29wZSwgaWQsIHtcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgLy8gdnBjU3VibmV0czogeyBzdWJuZXRUeXBlOiBTdWJuZXRUeXBlLlBSSVZBVEVfSVNPTEFURUQgfSxcbiAgICAgIGVuZ2luZTogZW5naW5lLFxuICAgICAgaW5zdGFuY2VUeXBlOiBJbnN0YW5jZVR5cGUub2YoaW5zdGFuY2VDbGFzcywgaW5zdGFuY2VTaXplKSxcbiAgICAgIGNyZWRlbnRpYWxzOiBDcmVkZW50aWFscy5mcm9tU2VjcmV0KHRoaXMuc2VjcmV0KSxcbiAgICAgIHBvcnQ6IHBvcnQsXG4gICAgICBzZWN1cml0eUdyb3VwczogW3RoaXMuc2VjdXJpdHlHcm91cF0sXG4gICAgICBkYXRhYmFzZU5hbWU6IGRhdGFiYXNlTmFtZSxcbiAgICAgIGJhY2t1cFJldGVudGlvbjogRHVyYXRpb24uZGF5cyhzbmFwc2hvdFJldGVudGlvbkluRGF5cyksXG4gICAgICBkZWxldGVBdXRvbWF0ZWRCYWNrdXBzOiByZXRhaW5TbmFwc2hvdHNPbkRlbGV0aW9uLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5TTkFQU0hPVFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRTZWNyZXRSZXNvdXJjZShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWNyZXQgPSBuZXcgU2VjcmV0KHRoaXMsIGAke2lkfVNlY3JldGAsIHtcbiAgICAgIHNlY3JldE5hbWU6IGAke2lkfS1jcmVkZW50aWFsc2AsXG4gICAgICBnZW5lcmF0ZVNlY3JldFN0cmluZzoge1xuICAgICAgICBzZWNyZXRTdHJpbmdUZW1wbGF0ZTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIHVzZXJuYW1lOiBcInBvc3RncmVzXCJcbiAgICAgICAgfSksXG4gICAgICAgIGV4Y2x1ZGVQdW5jdHVhdGlvbjogdHJ1ZSxcbiAgICAgICAgaW5jbHVkZVNwYWNlOiBmYWxzZSxcbiAgICAgICAgZ2VuZXJhdGVTdHJpbmdLZXk6IFwicGFzc3dvcmRcIlxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5vdXRwdXRzLnB1c2goXG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiU2VjcmV0IE5hbWVcIiwge1xuICAgICAgICB2YWx1ZTogdGhpcy5zZWNyZXQuc2VjcmV0TmFtZVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMub3V0cHV0cy5wdXNoKFxuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBcIlNlY3JldCBBUk5cIiwge1xuICAgICAgICB2YWx1ZTogdGhpcy5zZWNyZXQuc2VjcmV0QXJuXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFkZFNlY3VyaXR5R3JvdXAoaWQ6IHN0cmluZywgdnBjOiBWcGMsIHBvcnQ6IG51bWJlcikge1xuICAgIHRoaXMuc2VjdXJpdHlHcm91cCA9IG5ldyBTZWN1cml0eUdyb3VwKHRoaXMsIGAke2lkfURCU2VjdXJpdHlHcm91cGAsIHtcbiAgICAgIHNlY3VyaXR5R3JvdXBOYW1lOiBcIkRhdGFiYXNlLVNHXCIsXG4gICAgICB2cGM6IHZwY1xuICAgIH0pO1xuXG4gICAgLy90b2RvOiByZXRyaWV2ZSBmcm9tIHNlcnZpY2Ugbm90IGhhcmRjb2RlZCB2cGM/XG4gICAgLy8gdGhpcy5zZWN1cml0eUdyb3VwLmNvbm5lY3Rpb25zLmFsbG93RnJvbShlY3NTZXJ2aWNlLnNlcnZpY2UsIFBvcnQudGNwKDMzMDYpLCAnSW5ib3VuZCcpO1xuXG4gICAgLy8gQ3JlYXRlIGJhc2ljIGluZ3Jlc3MgcnVsZSB0byBhbGxvdyBhY2Nlc3MgdG8gZGF0YWJhc2UgdGhyb3VnaCBkZWZhdWx0IHBvcnRcbiAgICAvLyB0aGlzLnNlY3VyaXR5R3JvdXAuYWRkSW5ncmVzc1J1bGUoXG4gICAgLy8gICBQZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksXG4gICAgLy8gICBQb3J0LnRjcChwb3J0KSxcbiAgICAvLyAgIGBBbGxvdyBwb3J0ICR7cG9ydH0gZm9yIGRhdGFiYXNlIGNvbm5lY3Rpb24gZnJvbSBvbmx5IHdpdGhpbiB0aGUgVlBDICgke3ZwYy52cGNJZH0pYFxuICAgIC8vICk7XG5cbiAgICAvLyB0b2RvOiBEb3VibGUgY2hlY2sgZWdyZXNzIHJ1bGVzIHdpdGggUGF1bC5cbiAgICAvLyAgLSBXaGF0IGlzIHRoZSBkZWZhdWx0IChDREsgRGlmZiBpbXBsaWVzIGl0IG1pZ2h0IGJlICdldmVyeW9uZSc/KVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as customResource from "aws-cdk-lib/custom-resources";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
export declare class AwsCustomResource extends customResource.AwsCustomResource {
|
|
4
|
+
readonly response: string;
|
|
5
|
+
constructor(scope: Construct, id: string, props: customResource.AwsCustomResourceProps);
|
|
6
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AwsCustomResource = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const customResource = require("aws-cdk-lib/custom-resources");
|
|
6
|
+
class AwsCustomResource extends customResource.AwsCustomResource {
|
|
7
|
+
constructor(scope, id, props) {
|
|
8
|
+
super(scope, id, {
|
|
9
|
+
...props,
|
|
10
|
+
functionName: props.functionName,
|
|
11
|
+
logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.ONE_YEAR,
|
|
12
|
+
onCreate: props.onCreate,
|
|
13
|
+
onDelete: props.onDelete,
|
|
14
|
+
onUpdate: props.onUpdate,
|
|
15
|
+
policy: props.policy || customResource.AwsCustomResourcePolicy.fromSdkCalls({
|
|
16
|
+
resources: customResource.AwsCustomResourcePolicy.ANY_RESOURCE
|
|
17
|
+
}),
|
|
18
|
+
resourceType: props.resourceType
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.AwsCustomResource = AwsCustomResource;
|
|
23
|
+
;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzQ3VzdG9tUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvYXdzQ3VzdG9tUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBQ3ZDLCtEQUErRDtBQUcvRCxNQUFhLGlCQUFrQixTQUFRLGNBQWMsQ0FBQyxpQkFBaUI7SUFHckUsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBNEM7UUFFNUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsWUFBWSxFQUFFLHNCQUFRLENBQUMsYUFBYSxDQUFDLFFBQVE7WUFDN0MsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksY0FBYyxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQztnQkFDMUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZO2FBQy9ELENBQUM7WUFDRixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7U0FDbkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUFDO0FBcEJGLDhDQW9CRTtBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NfbG9ncyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgY3VzdG9tUmVzb3VyY2UgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBBd3NDdXN0b21SZXNvdXJjZSBleHRlbmRzIGN1c3RvbVJlc291cmNlLkF3c0N1c3RvbVJlc291cmNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHJlc3BvbnNlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBjdXN0b21SZXNvdXJjZS5Bd3NDdXN0b21SZXNvdXJjZVByb3BzXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBmdW5jdGlvbk5hbWU6IHByb3BzLmZ1bmN0aW9uTmFtZSxcbiAgICAgIGxvZ1JldGVudGlvbjogYXdzX2xvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfWUVBUixcbiAgICAgIG9uQ3JlYXRlOiBwcm9wcy5vbkNyZWF0ZSxcbiAgICAgIG9uRGVsZXRlOiBwcm9wcy5vbkRlbGV0ZSxcbiAgICAgIG9uVXBkYXRlOiBwcm9wcy5vblVwZGF0ZSxcbiAgICAgIHBvbGljeTogcHJvcHMucG9saWN5IHx8IGN1c3RvbVJlc291cmNlLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7XG4gICAgICAgIHJlc291cmNlczogY3VzdG9tUmVzb3VyY2UuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuQU5ZX1JFU09VUkNFXG4gICAgICB9KSxcbiAgICAgIHJlc291cmNlVHlwZTogcHJvcHMucmVzb3VyY2VUeXBlXG4gIH0pO1xufX07Il19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CfnOutput = void 0;
|
|
4
|
+
const cdk = require("aws-cdk-lib");
|
|
5
|
+
class CfnOutput extends cdk.CfnOutput {
|
|
6
|
+
constructor(scope, id, props) {
|
|
7
|
+
super(scope, id, {
|
|
8
|
+
...props,
|
|
9
|
+
value: props.value,
|
|
10
|
+
description: props.description,
|
|
11
|
+
exportName: props.exportName
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.CfnOutput = CfnOutput;
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuT3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3Jlc291cmNlcy9hd3MvdXRpbGl0aWVzL2Nmbk91dHB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFHbkMsTUFBYSxTQUFVLFNBQVEsR0FBRyxDQUFDLFNBQVM7SUFDMUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF5QjtRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVRELDhCQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGNsYXNzIENmbk91dHB1dCBleHRlbmRzIGNkay5DZm5PdXRwdXQge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogY2RrLkNmbk91dHB1dFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHZhbHVlOiBwcm9wcy52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGV4cG9ydE5hbWU6IHByb3BzLmV4cG9ydE5hbWVcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomResource = void 0;
|
|
4
|
+
const cdk = require("aws-cdk-lib");
|
|
5
|
+
class CustomResource extends cdk.CustomResource {
|
|
6
|
+
constructor(scope, id, props) {
|
|
7
|
+
super(scope, id, {
|
|
8
|
+
...props,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.CustomResource = CustomResource;
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvcmVzb3VyY2VzL2F3cy91dGlsaXRpZXMvY3VzdG9tUmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBR25DLE1BQWEsY0FBZSxTQUFRLEdBQUcsQ0FBQyxjQUFjO0lBQ3BELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFORCx3Q0FNQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21SZXNvdXJjZSBleHRlbmRzIGNkay5DdXN0b21SZXNvdXJjZSB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBjZGsuQ3VzdG9tUmVzb3VyY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomResourceProvider = 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 CustomResourceProvider extends custom_resources_1.Provider {
|
|
7
|
+
constructor(scope, id, props) {
|
|
8
|
+
super(scope, id, {
|
|
9
|
+
...props,
|
|
10
|
+
onEventHandler: props.onEventHandler,
|
|
11
|
+
logRetention: aws_cdk_lib_1.aws_logs.RetentionDays.ONE_YEAR,
|
|
12
|
+
providerFunctionName: props.providerFunctionName,
|
|
13
|
+
role: props.role,
|
|
14
|
+
vpc: props.vpc
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.CustomResourceProvider = CustomResourceProvider;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tUmVzb3VyY2VQcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9yZXNvdXJjZXMvYXdzL3V0aWxpdGllcy9jdXN0b21SZXNvdXJjZVByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF1QztBQUN2QyxtRUFBdUU7QUFHdkUsTUFBYSxzQkFBdUIsU0FBUSwyQkFBUTtJQUNsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLFlBQVksRUFBRSxzQkFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRO1lBQzdDLG9CQUFvQixFQUFFLEtBQUssQ0FBQyxvQkFBb0I7WUFDaEQsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQVhELHdEQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzX2xvZ3MgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IFByb3ZpZGVyLCBQcm92aWRlclByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21SZXNvdXJjZVByb3ZpZGVyIGV4dGVuZHMgUHJvdmlkZXIge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvdmlkZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBvbkV2ZW50SGFuZGxlcjogcHJvcHMub25FdmVudEhhbmRsZXIsXG4gICAgICBsb2dSZXRlbnRpb246IGF3c19sb2dzLlJldGVudGlvbkRheXMuT05FX1lFQVIsXG4gICAgICBwcm92aWRlckZ1bmN0aW9uTmFtZTogcHJvcHMucHJvdmlkZXJGdW5jdGlvbk5hbWUsXG4gICAgICByb2xlOiBwcm9wcy5yb2xlLFxuICAgICAgdnBjOiBwcm9wcy52cGNcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function addSuffixToEmail(email: string, suffix: string): string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function addSuffixToEmail(email, suffix) {
|
|
4
|
+
return email.replace("@", `+${suffix}@`);
|
|
5
|
+
}
|
|
6
|
+
exports.default = addSuffixToEmail;
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkU3VmZml4VG9FbWFpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9hZGRTdWZmaXhUb0VtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBd0IsZ0JBQWdCLENBQ3RDLEtBQWEsRUFDYixNQUFjO0lBRWQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUxELG1DQUtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkU3VmZml4VG9FbWFpbChcbiAgZW1haWw6IHN0cmluZyxcbiAgc3VmZml4OiBzdHJpbmdcbik6IHN0cmluZyB7XG4gIHJldHVybiBlbWFpbC5yZXBsYWNlKFwiQFwiLCBgKyR7c3VmZml4fUBgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fs_1 = require("fs");
|
|
4
|
+
const app_1 = require("../app");
|
|
5
|
+
function getConfig() {
|
|
6
|
+
const app = app_1.default.getInstance();
|
|
7
|
+
// Get cdk deploy --context config
|
|
8
|
+
const env = app.node.tryGetContext("environment");
|
|
9
|
+
try {
|
|
10
|
+
// Load config json file
|
|
11
|
+
const configFile = (0, fs_1.readFileSync)(`../${env}.json`, "utf8");
|
|
12
|
+
const config = JSON.parse(configFile);
|
|
13
|
+
config.enviornment = env;
|
|
14
|
+
return JSON.parse(configFile);
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
console.warn(`No config file found for environment: ${env}`);
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.default = getConfig;
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Q29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJCQUFrQztBQUNsQyxnQ0FBeUI7QUFRekIsU0FBd0IsU0FBUztJQUMvQixNQUFNLEdBQUcsR0FBRyxhQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFOUIsa0NBQWtDO0lBQ2xDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRWxELElBQUk7UUFDRix3QkFBd0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBQSxpQkFBWSxFQUFDLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDMUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDL0I7SUFBQyxPQUFPLEdBQUcsRUFBRTtRQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMseUNBQXlDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDN0QsT0FBTyxFQUFFLENBQUM7S0FDWDtBQUNILENBQUM7QUFoQkQsNEJBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgQXBwIGZyb20gXCIuLi9hcHBcIjtcblxuaW50ZXJmYWNlIENvbmZpZyB7XG4gIGVudmlyb25tZW50Pzogc3RyaW5nO1xuICBhY2NvdW50Pzogc3RyaW5nO1xuICByZWdpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldENvbmZpZygpOiBDb25maWcge1xuICBjb25zdCBhcHAgPSBBcHAuZ2V0SW5zdGFuY2UoKTtcblxuICAvLyBHZXQgY2RrIGRlcGxveSAtLWNvbnRleHQgY29uZmlnXG4gIGNvbnN0IGVudiA9IGFwcC5ub2RlLnRyeUdldENvbnRleHQoXCJlbnZpcm9ubWVudFwiKTtcblxuICB0cnkge1xuICAgIC8vIExvYWQgY29uZmlnIGpzb24gZmlsZVxuICAgIGNvbnN0IGNvbmZpZ0ZpbGUgPSByZWFkRmlsZVN5bmMoYC4uLyR7ZW52fS5qc29uYCwgXCJ1dGY4XCIpO1xuICAgIGNvbnN0IGNvbmZpZyA9IEpTT04ucGFyc2UoY29uZmlnRmlsZSk7XG4gICAgY29uZmlnLmVudmlvcm5tZW50ID0gZW52O1xuICAgIHJldHVybiBKU09OLnBhcnNlKGNvbmZpZ0ZpbGUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zb2xlLndhcm4oYE5vIGNvbmZpZyBmaWxlIGZvdW5kIGZvciBlbnZpcm9ubWVudDogJHtlbnZ9YCk7XG4gICAgcmV0dXJuIHt9O1xuICB9XG59XG4iXX0=
|
package/package.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fjall/components-infrastructure",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"bin": {
|
|
5
|
+
"infrastructure": "bin/infrastructure.js"
|
|
6
|
+
},
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist/lib"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"deploy:main": "npx cdk deploy -c environment=main",
|
|
14
|
+
"list:main": "npx cdk list -c environment=main",
|
|
15
|
+
"destroy:main": "npx cdk destroy -c environment=main",
|
|
16
|
+
"synth:main": "npx cdk synthesize -c environment=main",
|
|
17
|
+
"deploy:dev": "npx cdk deploy -c environment=development",
|
|
18
|
+
"list:dev": "npx cdk list -c environment=mdevain",
|
|
19
|
+
"destroy:dev": "npx cdk destroy -c environment=dev",
|
|
20
|
+
"synth:dev": "npx cdk synthesize -c environment=dev",
|
|
21
|
+
"deploy:stag": "npx cdk deploy -c environment=staging",
|
|
22
|
+
"list:stag": "npx cdk list -c environment=stag",
|
|
23
|
+
"destroy:stag": "npx cdk destroy -c environment=stag",
|
|
24
|
+
"synth:stag": "npx cdk synthesize -c environment=stag",
|
|
25
|
+
"deploy:prod": "npx cdk deploy -c environment=production",
|
|
26
|
+
"list:prod": "npx cdk list -c environment=prod",
|
|
27
|
+
"destroy:prod": "npx cdk destroy -c environment=prod",
|
|
28
|
+
"synth:prod": "npx cdk synthesize -c environment=prod",
|
|
29
|
+
"publish": "npm run build && npm publish --access restricted",
|
|
30
|
+
"build": "tsc",
|
|
31
|
+
"watch": "tsc -w",
|
|
32
|
+
"test": "jest",
|
|
33
|
+
"cdk": "cdk"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/aws-lambda": "^8.10.109",
|
|
37
|
+
"@types/jest": "^29.2.4",
|
|
38
|
+
"@types/node": "18.11.15",
|
|
39
|
+
"@types/uuid": "^9.0.2",
|
|
40
|
+
"@typescript-eslint/eslint-plugin": "^6.1.0",
|
|
41
|
+
"@typescript-eslint/parser": "^6.1.0",
|
|
42
|
+
"eslint": "^8.45.0",
|
|
43
|
+
"jest": "^29.3.1",
|
|
44
|
+
"ts-jest": "^29.0.3",
|
|
45
|
+
"ts-node": "^10.9.1",
|
|
46
|
+
"typescript": "~4.9.4"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@aws-sdk/client-cost-explorer": "^3.245.0",
|
|
50
|
+
"@aws-sdk/client-sso-admin": "^3.398.0",
|
|
51
|
+
"@pepperize/cdk-organizations": "^0.7.135",
|
|
52
|
+
"aws-cdk": "2.56.1",
|
|
53
|
+
"aws-cdk-lib": "2.56.1",
|
|
54
|
+
"aws-lambda": "^1.0.7",
|
|
55
|
+
"constructs": "^10.0.0",
|
|
56
|
+
"source-map-support": "^0.5.21",
|
|
57
|
+
"uuid": "^9.0.0"
|
|
58
|
+
}
|
|
59
|
+
}
|