@digitraffic/common 2022.11.2-1 → 2022.11.10-1
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/dist/aws/infra/canaries/database-checker.d.ts +22 -8
- package/dist/aws/infra/canaries/database-checker.js +36 -27
- package/dist/aws/infra/canaries/database-checker.js.map +1 -1
- package/dist/aws/infra/import-util.d.ts +21 -0
- package/dist/aws/infra/import-util.js +53 -0
- package/dist/aws/infra/import-util.js.map +1 -0
- package/dist/aws/infra/stack/rest_apis.d.ts +1 -1
- package/dist/aws/infra/stack/rest_apis.js +2 -2
- package/dist/aws/infra/stack/rest_apis.js.map +1 -1
- package/dist/aws/infra/stacks/db-dns-stack.d.ts +11 -0
- package/dist/aws/infra/stacks/db-dns-stack.js +63 -0
- package/dist/aws/infra/stacks/db-dns-stack.js.map +1 -0
- package/dist/aws/infra/stacks/db-proxy-stack.d.ts +19 -0
- package/dist/aws/infra/stacks/db-proxy-stack.js +74 -0
- package/dist/aws/infra/stacks/db-proxy-stack.js.map +1 -0
- package/dist/aws/infra/stacks/db-stack.d.ts +31 -0
- package/dist/aws/infra/stacks/db-stack.js +91 -0
- package/dist/aws/infra/stacks/db-stack.js.map +1 -0
- package/dist/aws/infra/stacks/intra-stack-configuration.d.ts +5 -0
- package/dist/aws/infra/stacks/intra-stack-configuration.js +3 -0
- package/dist/aws/infra/stacks/intra-stack-configuration.js.map +1 -0
- package/dist/aws/infra/stacks/network-stack.d.ts +12 -0
- package/dist/aws/infra/stacks/network-stack.js +36 -0
- package/dist/aws/infra/stacks/network-stack.js.map +1 -0
- package/dist/aws/infra/usage-plans.d.ts +3 -2
- package/dist/aws/infra/usage-plans.js +5 -4
- package/dist/aws/infra/usage-plans.js.map +1 -1
- package/package.json +1 -1
- package/src/aws/infra/canaries/database-checker.ts +42 -36
- package/src/aws/infra/import-util.ts +57 -0
- package/src/aws/infra/stack/rest_apis.ts +2 -2
- package/src/aws/infra/stacks/db-dns-stack.ts +88 -0
- package/src/aws/infra/stacks/db-proxy-stack.ts +129 -0
- package/src/aws/infra/stacks/db-stack.ts +165 -0
- package/src/aws/infra/stacks/intra-stack-configuration.ts +6 -0
- package/src/aws/infra/stacks/network-stack.ts +46 -0
- package/src/aws/infra/usage-plans.ts +15 -6
@@ -5,17 +5,31 @@ declare abstract class DatabaseCheck<T> {
|
|
5
5
|
protected constructor(name: string, sql: string);
|
6
6
|
abstract check(value: T): void;
|
7
7
|
}
|
8
|
-
interface
|
8
|
+
interface CountResponse {
|
9
|
+
count: number;
|
9
10
|
}
|
10
|
-
|
11
|
+
/**
|
12
|
+
* Checker for sql that checks the count. Meaning that the
|
13
|
+
* sql must be structured as select(*) from table where something.
|
14
|
+
*/
|
15
|
+
export declare class DatabaseCountChecker {
|
11
16
|
credentialsFunction: () => Promise<void>;
|
12
|
-
checks: DatabaseCheck<
|
17
|
+
checks: DatabaseCheck<CountResponse>[];
|
13
18
|
private constructor();
|
14
|
-
static createForProxy():
|
15
|
-
static createForRds():
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
+
static createForProxy(): DatabaseCountChecker;
|
20
|
+
static createForRds(): DatabaseCountChecker;
|
21
|
+
/**
|
22
|
+
* Expect that the count is 1
|
23
|
+
*/
|
24
|
+
expectOne(name: string, sql: string): this;
|
25
|
+
/**
|
26
|
+
* Expect that the count is 0
|
27
|
+
*/
|
28
|
+
expectZero(name: string, sql: string): this;
|
29
|
+
/**
|
30
|
+
* Expect that the count is 1 or more
|
31
|
+
*/
|
32
|
+
expectOneOrMore(name: string, sql: string): this;
|
19
33
|
expect(): Promise<string>;
|
20
34
|
}
|
21
35
|
export {};
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.DatabaseCountChecker = void 0;
|
4
4
|
const database_1 = require("../../../database/database");
|
5
5
|
const proxy_holder_1 = require("../../runtime/secrets/proxy-holder");
|
6
6
|
const rds_holder_1 = require("../../runtime/secrets/rds-holder");
|
@@ -17,34 +17,30 @@ class DatabaseCheck {
|
|
17
17
|
class CountDatabaseCheck extends DatabaseCheck {
|
18
18
|
constructor(name, sql, minCount, maxCount) {
|
19
19
|
super(name, sql);
|
20
|
+
if (!sql.toLowerCase().includes("select count(*)")) {
|
21
|
+
throw new Error("sql must contain select count(*)");
|
22
|
+
}
|
20
23
|
if (minCount == null && maxCount == null) {
|
21
|
-
throw new Error("no max or min given
|
24
|
+
throw new Error("no max or min given");
|
22
25
|
}
|
23
26
|
this.minCount = minCount;
|
24
27
|
this.maxCount = maxCount;
|
25
28
|
}
|
26
29
|
check(value) {
|
27
|
-
if (
|
28
|
-
this.
|
29
|
-
|
30
|
-
|
31
|
-
else {
|
32
|
-
if ("count" in value) {
|
33
|
-
if (this.minCount && value.count < this.minCount) {
|
34
|
-
this.failed = true;
|
35
|
-
throw new Error(`count was ${value.count}, minimum is ${this.minCount}`);
|
36
|
-
}
|
37
|
-
if (this.maxCount && value.count > this.maxCount) {
|
38
|
-
this.failed = true;
|
39
|
-
throw new Error(`count was ${value.count}, max is ${this.maxCount}`);
|
40
|
-
}
|
30
|
+
if ("count" in value) {
|
31
|
+
if (this.minCount && value.count < this.minCount) {
|
32
|
+
this.failed = true;
|
33
|
+
throw new Error(`count was ${value.count}, minimum is ${this.minCount}`);
|
41
34
|
}
|
42
|
-
|
35
|
+
if (this.maxCount && value.count > this.maxCount) {
|
43
36
|
this.failed = true;
|
44
|
-
|
45
|
-
throw new Error("no count available");
|
37
|
+
throw new Error(`count was ${value.count}, max is ${this.maxCount}`);
|
46
38
|
}
|
47
39
|
}
|
40
|
+
else {
|
41
|
+
this.failed = true;
|
42
|
+
throw new Error("no count available");
|
43
|
+
}
|
48
44
|
}
|
49
45
|
}
|
50
46
|
const stepConfig = {
|
@@ -53,7 +49,11 @@ const stepConfig = {
|
|
53
49
|
screenshotOnStepSuccess: false,
|
54
50
|
screenshotOnStepFailure: false,
|
55
51
|
};
|
56
|
-
|
52
|
+
/**
|
53
|
+
* Checker for sql that checks the count. Meaning that the
|
54
|
+
* sql must be structured as select(*) from table where something.
|
55
|
+
*/
|
56
|
+
class DatabaseCountChecker {
|
57
57
|
constructor(credentialsFunction) {
|
58
58
|
this.credentialsFunction = credentialsFunction;
|
59
59
|
this.checks = [];
|
@@ -61,20 +61,29 @@ class DatabaseChecker {
|
|
61
61
|
synthetics.getConfiguration().withFailedCanaryMetric(true);
|
62
62
|
}
|
63
63
|
static createForProxy() {
|
64
|
-
return new
|
64
|
+
return new DatabaseCountChecker(() => new proxy_holder_1.ProxyHolder((0, utils_1.getEnvVariable)("SECRET_ID")).setCredentials());
|
65
65
|
}
|
66
66
|
static createForRds() {
|
67
|
-
return new
|
67
|
+
return new DatabaseCountChecker(() => new rds_holder_1.RdsHolder((0, utils_1.getEnvVariable)("SECRET_ID")).setCredentials());
|
68
68
|
}
|
69
|
-
|
69
|
+
/**
|
70
|
+
* Expect that the count is 1
|
71
|
+
*/
|
72
|
+
expectOne(name, sql) {
|
70
73
|
this.checks.push(new CountDatabaseCheck(name, sql, 1, 1));
|
71
74
|
return this;
|
72
75
|
}
|
73
|
-
|
76
|
+
/**
|
77
|
+
* Expect that the count is 0
|
78
|
+
*/
|
79
|
+
expectZero(name, sql) {
|
74
80
|
this.checks.push(new CountDatabaseCheck(name, sql, null, 0));
|
75
81
|
return this;
|
76
82
|
}
|
77
|
-
|
83
|
+
/**
|
84
|
+
* Expect that the count is 1 or more
|
85
|
+
*/
|
86
|
+
expectOneOrMore(name, sql) {
|
78
87
|
this.checks.push(new CountDatabaseCheck(name, sql, 1, null));
|
79
88
|
return this;
|
80
89
|
}
|
@@ -86,7 +95,7 @@ class DatabaseChecker {
|
|
86
95
|
await (0, database_1.inDatabaseReadonly)(async (db) => {
|
87
96
|
for (const check of this.checks) {
|
88
97
|
console.info("canary checking sql " + check.sql);
|
89
|
-
const value = await db.
|
98
|
+
const value = await db.one(check.sql);
|
90
99
|
const checkFunction = () => {
|
91
100
|
check.check(value);
|
92
101
|
};
|
@@ -99,5 +108,5 @@ class DatabaseChecker {
|
|
99
108
|
return "OK";
|
100
109
|
}
|
101
110
|
}
|
102
|
-
exports.
|
111
|
+
exports.DatabaseCountChecker = DatabaseCountChecker;
|
103
112
|
//# sourceMappingURL=database-checker.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"database-checker.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/database-checker.ts"],"names":[],"mappings":";;;AAAA,yDAA4E;AAC5E,qEAAiE;AACjE,iEAA6D;AAC7D,gDAAsD;AAEtD,8DAA8D;AAC9D,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEzC,MAAe,aAAa;IAKxB,YAAsB,IAAY,EAAE,GAAW;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;CAGJ;
|
1
|
+
{"version":3,"file":"database-checker.js","sourceRoot":"","sources":["../../../../src/aws/infra/canaries/database-checker.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import { IVpc } from "aws-cdk-lib/aws-ec2";
|
2
|
+
import { Stack } from "aws-cdk-lib";
|
3
|
+
import { Construct } from "constructs";
|
4
|
+
export declare class OldStackImports {
|
5
|
+
static AURORAINSTANCE_SG_IMPORT_NAME: string;
|
6
|
+
static RDSPROXY_SG_IMPORT_NAME: string;
|
7
|
+
}
|
8
|
+
/**
|
9
|
+
* Import VPC from other stack outputs
|
10
|
+
*/
|
11
|
+
export declare function importVpc(scope: Construct, environmentName: string): IVpc;
|
12
|
+
/**
|
13
|
+
* Import value from other stack output. Stack outputs are named with
|
14
|
+
* digitraffic-${environmentName}-${name} pattern and this function takes care of it
|
15
|
+
*/
|
16
|
+
export declare function importValue(environmentName: string, name: string): string;
|
17
|
+
/**
|
18
|
+
* Export value as stack output. Use same naming pattern as importValue.
|
19
|
+
*/
|
20
|
+
export declare function exportValue(stack: Stack, environmentName: string, name: string, value: string): void;
|
21
|
+
export declare function outputName(environmentName: string, name: string): string;
|
@@ -0,0 +1,53 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.outputName = exports.exportValue = exports.importValue = exports.importVpc = exports.OldStackImports = void 0;
|
4
|
+
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
5
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
6
|
+
class OldStackImports {
|
7
|
+
}
|
8
|
+
exports.OldStackImports = OldStackImports;
|
9
|
+
OldStackImports.AURORAINSTANCE_SG_IMPORT_NAME = "AuroraInstanceSG";
|
10
|
+
OldStackImports.RDSPROXY_SG_IMPORT_NAME = "RDSProxySG";
|
11
|
+
/**
|
12
|
+
* Import VPC from other stack outputs
|
13
|
+
*/
|
14
|
+
function importVpc(scope, environmentName) {
|
15
|
+
const vpcId = importValue(environmentName, "VPCID");
|
16
|
+
const privateSubnetIds = [
|
17
|
+
importValue(environmentName, "digitrafficprivateASubnet"),
|
18
|
+
importValue(environmentName, "digitrafficprivateBSubnet"),
|
19
|
+
];
|
20
|
+
const availabilityZones = ["euw1-az1", "euw1-az2"];
|
21
|
+
// VPC reference construction requires vpcId and availability zones
|
22
|
+
// private subnets are used in Lambda configuration
|
23
|
+
return aws_ec2_1.Vpc.fromVpcAttributes(scope, "vpc", {
|
24
|
+
vpcId,
|
25
|
+
privateSubnetIds,
|
26
|
+
availabilityZones,
|
27
|
+
});
|
28
|
+
}
|
29
|
+
exports.importVpc = importVpc;
|
30
|
+
/**
|
31
|
+
* Import value from other stack output. Stack outputs are named with
|
32
|
+
* digitraffic-${environmentName}-${name} pattern and this function takes care of it
|
33
|
+
*/
|
34
|
+
function importValue(environmentName, name) {
|
35
|
+
return aws_cdk_lib_1.Fn.importValue(outputName(environmentName, name));
|
36
|
+
}
|
37
|
+
exports.importValue = importValue;
|
38
|
+
/**
|
39
|
+
* Export value as stack output. Use same naming pattern as importValue.
|
40
|
+
*/
|
41
|
+
function exportValue(stack, environmentName, name, value) {
|
42
|
+
const exportName = outputName(environmentName, name);
|
43
|
+
new aws_cdk_lib_1.CfnOutput(stack, exportName, {
|
44
|
+
exportName,
|
45
|
+
value,
|
46
|
+
});
|
47
|
+
}
|
48
|
+
exports.exportValue = exportValue;
|
49
|
+
function outputName(environmentName, name) {
|
50
|
+
return `digitraffic-${environmentName}-${name}`;
|
51
|
+
}
|
52
|
+
exports.outputName = outputName;
|
53
|
+
//# sourceMappingURL=import-util.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"import-util.js","sourceRoot":"","sources":["../../../src/aws/infra/import-util.ts"],"names":[],"mappings":";;;AAAA,iDAAgD;AAChD,6CAAmD;AAGnD,MAAa,eAAe;;AAA5B,0CAGC;AAFiB,6CAA6B,GAAG,kBAAkB,CAAC;AACnD,uCAAuB,GAAG,YAAY,CAAC;AAGzD;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAgB,EAAE,eAAuB;IAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG;QACrB,WAAW,CAAC,eAAe,EAAE,2BAA2B,CAAC;QACzD,WAAW,CAAC,eAAe,EAAE,2BAA2B,CAAC;KAC5D,CAAC;IACF,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEnD,mEAAmE;IACnE,mDAAmD;IACnD,OAAO,aAAG,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE;QACvC,KAAK;QACL,gBAAgB;QAChB,iBAAiB;KACpB,CAAC,CAAC;AACP,CAAC;AAfD,8BAeC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,eAAuB,EAAE,IAAY;IAC7D,OAAO,gBAAE,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAFD,kCAEC;AAED;;GAEG;AACH,SAAgB,WAAW,CACvB,KAAY,EACZ,eAAuB,EACvB,IAAY,EACZ,KAAa;IAEb,MAAM,UAAU,GAAG,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAErD,IAAI,uBAAS,CAAC,KAAK,EAAE,UAAU,EAAE;QAC7B,UAAU;QACV,KAAK;KACR,CAAC,CAAC;AACP,CAAC;AAZD,kCAYC;AAED,SAAgB,UAAU,CAAC,eAAuB,EAAE,IAAY;IAC5D,OAAO,eAAe,eAAe,IAAI,IAAI,EAAE,CAAC;AACpD,CAAC;AAFD,gCAEC"}
|
@@ -10,7 +10,7 @@ export declare class DigitrafficRestApi extends RestApi {
|
|
10
10
|
constructor(stack: DigitrafficStack, apiId: string, apiName: string, allowFromIpAddresses?: string[] | undefined, config?: Partial<RestApiProps>);
|
11
11
|
hostname(): string;
|
12
12
|
createUsagePlan(apiKeyId: string, apiKeyName: string): string;
|
13
|
-
createUsagePlanV2(apiName: string): string;
|
13
|
+
createUsagePlanV2(apiName: string, apiKey?: string): string;
|
14
14
|
addJsonModel(modelName: string, schema: JsonSchema): ModelWithReference;
|
15
15
|
addCSVModel(modelName: string): ModelWithReference;
|
16
16
|
private getModelWithReference;
|
@@ -38,8 +38,8 @@ class DigitrafficRestApi extends aws_apigateway_1.RestApi {
|
|
38
38
|
this.apiKeyIds.push(newKeyId);
|
39
39
|
return newKeyId;
|
40
40
|
}
|
41
|
-
createUsagePlanV2(apiName) {
|
42
|
-
const newKeyId = (0, usage_plans_1.createDefaultUsagePlan)(this, apiName).keyId;
|
41
|
+
createUsagePlanV2(apiName, apiKey) {
|
42
|
+
const newKeyId = (0, usage_plans_1.createDefaultUsagePlan)(this, apiName, apiKey).keyId;
|
43
43
|
this.apiKeyIds.push(newKeyId);
|
44
44
|
return newKeyId;
|
45
45
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rest_apis.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/rest_apis.ts"],"names":[],"mappings":";;;AAAA,+DAWoC;AACpC,iDAK6B;AAG7B,gDAAyE;AAEzE,wDAA6D;AAC7D,uDAAmD;AAGnD,2BAA4B;AAE5B,MAAa,kBAAmB,SAAQ,wBAAO;IAI3C,YACI,KAAuB,EACvB,KAAa,EACb,OAAe,EACf,oBAA2C,EAC3C,MAA8B;QAE9B,MAAM,cAAc,GAChB,oBAAoB,IAAI,IAAI;YACxB,CAAC,CAAC,2BAA2B,EAAE;YAC/B,CAAC,CAAC,iCAAiC,CAAC,oBAAoB,CAAC,CAAC;QAElE,kDAAkD;QAClD,MAAM,SAAS,GAAG;YACd,GAAG;gBACC,aAAa,EAAE;oBACX,YAAY,EAAE,mCAAkB,CAAC,KAAK;iBACzC;gBACD,WAAW,EAAE,OAAO;gBACpB,aAAa,EAAE,CAAC,6BAAY,CAAC,QAAQ,CAAC;gBACtC,MAAM,EAAE,cAAc;aACzB;YACD,GAAG,MAAM;SACZ,CAAC;QAEF,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAE/B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,mBAAmB;YACpB,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,mBAAmB,IAAI,IAAI,CAAC;QAEnE,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,QAAQ;QACJ,OAAO,GAAG,IAAI,CAAC,SAAS,gBACnB,IAAI,CAAC,KAA0B,CAAC,MACrC,gBAAgB,CAAC;IACrB,CAAC;IAED,eAAe,CAAC,QAAgB,EAAE,UAAkB;QAChD,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC;QAEnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,iBAAiB,CAAC,OAAe;
|
1
|
+
{"version":3,"file":"rest_apis.js","sourceRoot":"","sources":["../../../../src/aws/infra/stack/rest_apis.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import { Stack } from "aws-cdk-lib";
|
2
|
+
import { Construct } from "constructs";
|
3
|
+
import { InfraStackConfiguration } from "./intra-stack-configuration";
|
4
|
+
/**
|
5
|
+
* Creates a dns local zone and creates records for cluster endpoints and proxy endpoints.
|
6
|
+
*
|
7
|
+
*/
|
8
|
+
export declare class DbDnsStack extends Stack {
|
9
|
+
constructor(scope: Construct, id: string, isc: InfraStackConfiguration);
|
10
|
+
createDnsRecords(isc: InfraStackConfiguration): void;
|
11
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DbDnsStack = void 0;
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
5
|
+
const aws_route53_1 = require("aws-cdk-lib/aws-route53");
|
6
|
+
const import_util_1 = require("../import-util");
|
7
|
+
const db_stack_1 = require("./db-stack");
|
8
|
+
const db_proxy_stack_1 = require("./db-proxy-stack");
|
9
|
+
const DEFAULT_RECORD_TTL = aws_cdk_lib_1.Duration.seconds(30);
|
10
|
+
/**
|
11
|
+
* Creates a dns local zone and creates records for cluster endpoints and proxy endpoints.
|
12
|
+
*
|
13
|
+
*/
|
14
|
+
class DbDnsStack extends aws_cdk_lib_1.Stack {
|
15
|
+
constructor(scope, id, isc) {
|
16
|
+
super(scope, id, {
|
17
|
+
env: isc.env,
|
18
|
+
});
|
19
|
+
this.createDnsRecords(isc);
|
20
|
+
}
|
21
|
+
createDnsRecords(isc) {
|
22
|
+
const vpc = (0, import_util_1.importVpc)(this, isc.environmentName);
|
23
|
+
const zone = new aws_route53_1.PrivateHostedZone(this, "DNSHostedZone", {
|
24
|
+
zoneName: isc.environmentName + ".local",
|
25
|
+
vpc,
|
26
|
+
});
|
27
|
+
zone.applyRemovalPolicy(aws_cdk_lib_1.RemovalPolicy.RETAIN);
|
28
|
+
const clusterReaderEndpoint = (0, import_util_1.importValue)(isc.environmentName, db_stack_1.DbStack.CLUSTER_READ_ENDPOINT_EXPORT_NAME);
|
29
|
+
const clusterWriterEndpoint = (0, import_util_1.importValue)(isc.environmentName, db_stack_1.DbStack.CLUSTER_WRITE_ENDPOINT_EXPORT_NAME);
|
30
|
+
const proxyReaderEndpoint = (0, import_util_1.importValue)(isc.environmentName, db_proxy_stack_1.DbProxyStack.PROXY_READER_EXPORT_NAME);
|
31
|
+
const proxyWriterEndpoint = (0, import_util_1.importValue)(isc.environmentName, db_proxy_stack_1.DbProxyStack.PROXY_WRITER_EXPORT_NAME);
|
32
|
+
new aws_route53_1.RecordSet(this, "ReaderRecord", {
|
33
|
+
recordType: aws_route53_1.RecordType.CNAME,
|
34
|
+
recordName: `db-ro.${isc.environmentName}.local`,
|
35
|
+
target: aws_route53_1.RecordTarget.fromValues(clusterReaderEndpoint),
|
36
|
+
ttl: DEFAULT_RECORD_TTL,
|
37
|
+
zone,
|
38
|
+
});
|
39
|
+
new aws_route53_1.RecordSet(this, "WriterRecord", {
|
40
|
+
recordType: aws_route53_1.RecordType.CNAME,
|
41
|
+
recordName: `db.${isc.environmentName}.local`,
|
42
|
+
target: aws_route53_1.RecordTarget.fromValues(clusterWriterEndpoint),
|
43
|
+
ttl: DEFAULT_RECORD_TTL,
|
44
|
+
zone,
|
45
|
+
});
|
46
|
+
new aws_route53_1.RecordSet(this, "ProxyReaderRecord", {
|
47
|
+
recordType: aws_route53_1.RecordType.CNAME,
|
48
|
+
recordName: `proxy-ro.${isc.environmentName}.local`,
|
49
|
+
target: aws_route53_1.RecordTarget.fromValues(proxyReaderEndpoint),
|
50
|
+
ttl: DEFAULT_RECORD_TTL,
|
51
|
+
zone,
|
52
|
+
});
|
53
|
+
new aws_route53_1.RecordSet(this, "ProxyWriterRecord", {
|
54
|
+
recordType: aws_route53_1.RecordType.CNAME,
|
55
|
+
recordName: `proxy.${isc.environmentName}.local`,
|
56
|
+
target: aws_route53_1.RecordTarget.fromValues(proxyWriterEndpoint),
|
57
|
+
ttl: DEFAULT_RECORD_TTL,
|
58
|
+
zone,
|
59
|
+
});
|
60
|
+
}
|
61
|
+
}
|
62
|
+
exports.DbDnsStack = DbDnsStack;
|
63
|
+
//# sourceMappingURL=db-dns-stack.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"db-dns-stack.js","sourceRoot":"","sources":["../../../../src/aws/infra/stacks/db-dns-stack.ts"],"names":[],"mappings":";;;AAAA,6CAA6D;AAE7D,yDAKiC;AAEjC,gDAAwD;AACxD,yCAAqC;AACrC,qDAAgD;AAEhD,MAAM,kBAAkB,GAAG,sBAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAa,UAAW,SAAQ,mBAAK;IACjC,YAAY,KAAgB,EAAE,EAAU,EAAE,GAA4B;QAClE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;YACb,GAAG,EAAE,GAAG,CAAC,GAAG;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB,CAAC,GAA4B;QACzC,MAAM,GAAG,GAAG,IAAA,uBAAS,EAAC,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,+BAAiB,CAAC,IAAI,EAAE,eAAe,EAAE;YACtD,QAAQ,EAAE,GAAG,CAAC,eAAe,GAAG,QAAQ;YACxC,GAAG;SACN,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAC,2BAAa,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,qBAAqB,GAAG,IAAA,yBAAW,EACrC,GAAG,CAAC,eAAe,EACnB,kBAAO,CAAC,iCAAiC,CAC5C,CAAC;QACF,MAAM,qBAAqB,GAAG,IAAA,yBAAW,EACrC,GAAG,CAAC,eAAe,EACnB,kBAAO,CAAC,kCAAkC,CAC7C,CAAC;QAEF,MAAM,mBAAmB,GAAG,IAAA,yBAAW,EACnC,GAAG,CAAC,eAAe,EACnB,6BAAY,CAAC,wBAAwB,CACxC,CAAC;QACF,MAAM,mBAAmB,GAAG,IAAA,yBAAW,EACnC,GAAG,CAAC,eAAe,EACnB,6BAAY,CAAC,wBAAwB,CACxC,CAAC;QAEF,IAAI,uBAAS,CAAC,IAAI,EAAE,cAAc,EAAE;YAChC,UAAU,EAAE,wBAAU,CAAC,KAAK;YAC5B,UAAU,EAAE,SAAS,GAAG,CAAC,eAAe,QAAQ;YAChD,MAAM,EAAE,0BAAY,CAAC,UAAU,CAAC,qBAAqB,CAAC;YACtD,GAAG,EAAE,kBAAkB;YACvB,IAAI;SACP,CAAC,CAAC;QAEH,IAAI,uBAAS,CAAC,IAAI,EAAE,cAAc,EAAE;YAChC,UAAU,EAAE,wBAAU,CAAC,KAAK;YAC5B,UAAU,EAAE,MAAM,GAAG,CAAC,eAAe,QAAQ;YAC7C,MAAM,EAAE,0BAAY,CAAC,UAAU,CAAC,qBAAqB,CAAC;YACtD,GAAG,EAAE,kBAAkB;YACvB,IAAI;SACP,CAAC,CAAC;QAEH,IAAI,uBAAS,CAAC,IAAI,EAAE,mBAAmB,EAAE;YACrC,UAAU,EAAE,wBAAU,CAAC,KAAK;YAC5B,UAAU,EAAE,YAAY,GAAG,CAAC,eAAe,QAAQ;YACnD,MAAM,EAAE,0BAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACpD,GAAG,EAAE,kBAAkB;YACvB,IAAI;SACP,CAAC,CAAC;QAEH,IAAI,uBAAS,CAAC,IAAI,EAAE,mBAAmB,EAAE;YACrC,UAAU,EAAE,wBAAU,CAAC,KAAK;YAC5B,UAAU,EAAE,SAAS,GAAG,CAAC,eAAe,QAAQ;YAChD,MAAM,EAAE,0BAAY,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACpD,GAAG,EAAE,kBAAkB;YACvB,IAAI;SACP,CAAC,CAAC;IACP,CAAC;CACJ;AApED,gCAoEC"}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
import { Stack } from "aws-cdk-lib";
|
2
|
+
import { Construct } from "constructs";
|
3
|
+
import { CfnDBProxyEndpoint, DatabaseProxy } from "aws-cdk-lib/aws-rds";
|
4
|
+
import { ISecret } from "aws-cdk-lib/aws-secretsmanager";
|
5
|
+
import { IVpc } from "aws-cdk-lib/aws-ec2";
|
6
|
+
import { InfraStackConfiguration } from "./intra-stack-configuration";
|
7
|
+
import { DbConfiguration } from "./db-stack";
|
8
|
+
/**
|
9
|
+
* A stack that creates a Database proxy.
|
10
|
+
*/
|
11
|
+
export declare class DbProxyStack extends Stack {
|
12
|
+
static PROXY_READER_EXPORT_NAME: string;
|
13
|
+
static PROXY_WRITER_EXPORT_NAME: string;
|
14
|
+
readonly isc: InfraStackConfiguration;
|
15
|
+
constructor(scope: Construct, id: string, isc: InfraStackConfiguration, configuration: DbConfiguration);
|
16
|
+
createProxy(vpc: IVpc, secret: ISecret, configuration: DbConfiguration): DatabaseProxy;
|
17
|
+
createProxyEndpoints(vpc: IVpc, proxy: DatabaseProxy, securityGroupId: string): CfnDBProxyEndpoint;
|
18
|
+
setOutputs(configuration: DbConfiguration, proxy: DatabaseProxy, proxyEndpoint: CfnDBProxyEndpoint): void;
|
19
|
+
}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DbProxyStack = void 0;
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
5
|
+
const aws_rds_1 = require("aws-cdk-lib/aws-rds");
|
6
|
+
const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
|
7
|
+
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
8
|
+
const db_stack_1 = require("./db-stack");
|
9
|
+
const import_util_1 = require("../import-util");
|
10
|
+
/**
|
11
|
+
* A stack that creates a Database proxy.
|
12
|
+
*/
|
13
|
+
class DbProxyStack extends aws_cdk_lib_1.Stack {
|
14
|
+
constructor(scope, id, isc, configuration) {
|
15
|
+
super(scope, id, {
|
16
|
+
env: isc.env,
|
17
|
+
});
|
18
|
+
this.isc = isc;
|
19
|
+
const vpc = (0, import_util_1.importVpc)(this, isc.environmentName);
|
20
|
+
const secret = aws_secretsmanager_1.Secret.fromSecretAttributes(this, "proxy-secret", {
|
21
|
+
secretCompleteArn: configuration.secretArn,
|
22
|
+
});
|
23
|
+
const proxy = this.createProxy(vpc, secret, configuration);
|
24
|
+
const readerEndpoint = this.createProxyEndpoints(vpc, proxy, configuration.securityGroupId);
|
25
|
+
this.setOutputs(configuration, proxy, readerEndpoint);
|
26
|
+
}
|
27
|
+
createProxy(vpc, secret, configuration) {
|
28
|
+
const proxyId = `${this.isc.environmentName}-proxy`;
|
29
|
+
const securityGroup = aws_ec2_1.SecurityGroup.fromSecurityGroupId(this, "securitygroup", configuration.securityGroupId);
|
30
|
+
const cluster = aws_rds_1.DatabaseCluster.fromDatabaseClusterAttributes(this, "db-cluster", {
|
31
|
+
clusterIdentifier: (0, import_util_1.importValue)(this.isc.environmentName, db_stack_1.DbStack.CLUSTER_IDENTIFIER_EXPORT_NAME),
|
32
|
+
engine: aws_rds_1.DatabaseClusterEngine.AURORA_POSTGRESQL,
|
33
|
+
port: db_stack_1.DbStack.CLUSTER_PORT,
|
34
|
+
});
|
35
|
+
// CDK tries to allow connections between proxy and cluster
|
36
|
+
// this does not work on cluster references
|
37
|
+
cluster.connections.allowDefaultPortFrom = () => {
|
38
|
+
/* nothing */
|
39
|
+
};
|
40
|
+
return new aws_rds_1.DatabaseProxy(this, proxyId, {
|
41
|
+
dbProxyName: configuration.dbProxyName ?? "AuroraProxy",
|
42
|
+
securityGroups: [securityGroup],
|
43
|
+
proxyTarget: aws_rds_1.ProxyTarget.fromCluster(cluster),
|
44
|
+
idleClientTimeout: aws_cdk_lib_1.Duration.seconds(1800),
|
45
|
+
maxConnectionsPercent: 50,
|
46
|
+
maxIdleConnectionsPercent: 25,
|
47
|
+
borrowTimeout: aws_cdk_lib_1.Duration.seconds(120),
|
48
|
+
requireTLS: false,
|
49
|
+
secrets: [secret],
|
50
|
+
vpc: vpc,
|
51
|
+
});
|
52
|
+
}
|
53
|
+
createProxyEndpoints(vpc, proxy, securityGroupId) {
|
54
|
+
return new aws_rds_1.CfnDBProxyEndpoint(this, "ReaderEndpoint", {
|
55
|
+
dbProxyEndpointName: "ReaderEndpoint",
|
56
|
+
dbProxyName: proxy.dbProxyName,
|
57
|
+
vpcSubnetIds: vpc.privateSubnets.map((sub) => sub.subnetId),
|
58
|
+
vpcSecurityGroupIds: [securityGroupId],
|
59
|
+
targetRole: "READ_ONLY",
|
60
|
+
});
|
61
|
+
}
|
62
|
+
setOutputs(configuration, proxy, proxyEndpoint) {
|
63
|
+
const readerEndpoint = configuration.instances > 1
|
64
|
+
? proxyEndpoint.attrEndpoint
|
65
|
+
: proxy.endpoint;
|
66
|
+
// if only one instance, then there is no reader-endpoint
|
67
|
+
(0, import_util_1.exportValue)(this, this.isc.environmentName, DbProxyStack.PROXY_READER_EXPORT_NAME, readerEndpoint);
|
68
|
+
(0, import_util_1.exportValue)(this, this.isc.environmentName, DbProxyStack.PROXY_WRITER_EXPORT_NAME, proxy.endpoint);
|
69
|
+
}
|
70
|
+
}
|
71
|
+
exports.DbProxyStack = DbProxyStack;
|
72
|
+
DbProxyStack.PROXY_READER_EXPORT_NAME = "db-reader-endpoint";
|
73
|
+
DbProxyStack.PROXY_WRITER_EXPORT_NAME = "db-writer-endpoint";
|
74
|
+
//# sourceMappingURL=db-proxy-stack.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"db-proxy-stack.js","sourceRoot":"","sources":["../../../../src/aws/infra/stacks/db-proxy-stack.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { Stack } from "aws-cdk-lib";
|
2
|
+
import { Construct } from "constructs";
|
3
|
+
import { AuroraPostgresEngineVersion, DatabaseCluster } from "aws-cdk-lib/aws-rds";
|
4
|
+
import { InstanceType } from "aws-cdk-lib/aws-ec2";
|
5
|
+
import { InfraStackConfiguration } from "./intra-stack-configuration";
|
6
|
+
export interface DbConfiguration {
|
7
|
+
readonly secretArn: string;
|
8
|
+
readonly dbVersion: AuroraPostgresEngineVersion;
|
9
|
+
readonly dbInstanceType: InstanceType;
|
10
|
+
readonly snapshotIdentifier: string;
|
11
|
+
readonly instances: number;
|
12
|
+
readonly customParameterGroup: boolean;
|
13
|
+
readonly securityGroupId: string;
|
14
|
+
readonly dbProxyName?: string;
|
15
|
+
}
|
16
|
+
/**
|
17
|
+
* How to upgrade major version?
|
18
|
+
* 0. Set correct SG for db-stack and db-proxy-stack(this step will be removed in the future)
|
19
|
+
* 1. Update db-stack WITHOUT parameter group
|
20
|
+
* 2. Upgrade extensions by hand
|
21
|
+
* 3. Upgrade database from the AWS console
|
22
|
+
* 4. Update db-stack with the upgraded version and custom parameter group
|
23
|
+
*/
|
24
|
+
export declare class DbStack extends Stack {
|
25
|
+
static CLUSTER_IDENTIFIER_EXPORT_NAME: string;
|
26
|
+
static CLUSTER_READ_ENDPOINT_EXPORT_NAME: string;
|
27
|
+
static CLUSTER_WRITE_ENDPOINT_EXPORT_NAME: string;
|
28
|
+
static CLUSTER_PORT: number;
|
29
|
+
constructor(scope: Construct, id: string, isc: InfraStackConfiguration, configuration: DbConfiguration);
|
30
|
+
createAuroraCluster(isc: InfraStackConfiguration, configuration: DbConfiguration): DatabaseCluster;
|
31
|
+
}
|
@@ -0,0 +1,91 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.DbStack = void 0;
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
5
|
+
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
6
|
+
const aws_rds_1 = require("aws-cdk-lib/aws-rds");
|
7
|
+
const aws_secretsmanager_1 = require("aws-cdk-lib/aws-secretsmanager");
|
8
|
+
const import_util_1 = require("../import-util");
|
9
|
+
/**
|
10
|
+
* How to upgrade major version?
|
11
|
+
* 0. Set correct SG for db-stack and db-proxy-stack(this step will be removed in the future)
|
12
|
+
* 1. Update db-stack WITHOUT parameter group
|
13
|
+
* 2. Upgrade extensions by hand
|
14
|
+
* 3. Upgrade database from the AWS console
|
15
|
+
* 4. Update db-stack with the upgraded version and custom parameter group
|
16
|
+
*/
|
17
|
+
class DbStack extends aws_cdk_lib_1.Stack {
|
18
|
+
constructor(scope, id, isc, configuration) {
|
19
|
+
super(scope, id, {
|
20
|
+
env: isc.env,
|
21
|
+
});
|
22
|
+
const cluster = this.createAuroraCluster(isc, configuration);
|
23
|
+
(0, import_util_1.exportValue)(this, isc.environmentName, DbStack.CLUSTER_IDENTIFIER_EXPORT_NAME, cluster.clusterIdentifier);
|
24
|
+
(0, import_util_1.exportValue)(this, isc.environmentName, DbStack.CLUSTER_WRITE_ENDPOINT_EXPORT_NAME, cluster.clusterEndpoint.hostname);
|
25
|
+
(0, import_util_1.exportValue)(this, isc.environmentName, DbStack.CLUSTER_READ_ENDPOINT_EXPORT_NAME, cluster.clusterReadEndpoint.hostname);
|
26
|
+
}
|
27
|
+
createAuroraCluster(isc, configuration) {
|
28
|
+
const instanceName = isc.environmentName + "-db";
|
29
|
+
const secret = aws_secretsmanager_1.Secret.fromSecretAttributes(this, "db-secret", {
|
30
|
+
secretCompleteArn: configuration.secretArn,
|
31
|
+
});
|
32
|
+
const securityGroup = aws_ec2_1.SecurityGroup.fromSecurityGroupId(this, "securitygroup", configuration.securityGroupId);
|
33
|
+
const vpc = (0, import_util_1.importVpc)(this, isc.environmentName);
|
34
|
+
const parameterGroup = configuration.customParameterGroup
|
35
|
+
? new aws_rds_1.ParameterGroup(this, `parameter-group-${configuration.dbVersion.auroraPostgresMajorVersion}`, {
|
36
|
+
engine: aws_rds_1.DatabaseClusterEngine.auroraPostgres({
|
37
|
+
version: configuration.dbVersion,
|
38
|
+
}),
|
39
|
+
parameters: {
|
40
|
+
"pg_stat_statements.track": "ALL",
|
41
|
+
random_page_cost: "1",
|
42
|
+
},
|
43
|
+
})
|
44
|
+
: aws_rds_1.ParameterGroup.fromParameterGroupName(this, "ParameterGroup", `default.aurora-postgresql${configuration.dbVersion.auroraPostgresMajorVersion}`);
|
45
|
+
const cluster = new aws_rds_1.DatabaseClusterFromSnapshot(this, instanceName, {
|
46
|
+
snapshotIdentifier: configuration.snapshotIdentifier,
|
47
|
+
engine: aws_rds_1.DatabaseClusterEngine.auroraPostgres({
|
48
|
+
version: configuration.dbVersion,
|
49
|
+
}),
|
50
|
+
instances: configuration.instances,
|
51
|
+
instanceUpdateBehaviour: aws_rds_1.InstanceUpdateBehaviour.ROLLING,
|
52
|
+
instanceIdentifierBase: instanceName + "-",
|
53
|
+
cloudwatchLogsExports: ["postgresql"],
|
54
|
+
backup: {
|
55
|
+
retention: aws_cdk_lib_1.Duration.days(35),
|
56
|
+
preferredWindow: "01:00-02:00",
|
57
|
+
},
|
58
|
+
preferredMaintenanceWindow: "mon:03:00-mon:04:00",
|
59
|
+
deletionProtection: true,
|
60
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN,
|
61
|
+
port: DbStack.CLUSTER_PORT,
|
62
|
+
instanceProps: {
|
63
|
+
autoMinorVersionUpgrade: true,
|
64
|
+
allowMajorVersionUpgrade: false,
|
65
|
+
enablePerformanceInsights: true,
|
66
|
+
vpc,
|
67
|
+
securityGroups: [securityGroup],
|
68
|
+
vpcSubnets: {
|
69
|
+
subnetType: aws_ec2_1.SubnetType.PRIVATE_WITH_NAT,
|
70
|
+
},
|
71
|
+
instanceType: configuration.dbInstanceType,
|
72
|
+
parameterGroup,
|
73
|
+
},
|
74
|
+
credentials: aws_rds_1.Credentials.fromSecret(secret),
|
75
|
+
parameterGroup,
|
76
|
+
});
|
77
|
+
// this workaround should prevent stack failing on version upgrade
|
78
|
+
const cfnInstances = cluster.node.children.filter((child) => child instanceof aws_rds_1.CfnDBInstance);
|
79
|
+
if (cfnInstances.length === 0) {
|
80
|
+
throw new Error("Couldn't pull CfnDBInstances from the L1 constructs!");
|
81
|
+
}
|
82
|
+
cfnInstances.forEach((cfnInstance) => delete cfnInstance.engineVersion);
|
83
|
+
return cluster;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
exports.DbStack = DbStack;
|
87
|
+
DbStack.CLUSTER_IDENTIFIER_EXPORT_NAME = "db-cluster";
|
88
|
+
DbStack.CLUSTER_READ_ENDPOINT_EXPORT_NAME = "db-cluster-reader-endpoint";
|
89
|
+
DbStack.CLUSTER_WRITE_ENDPOINT_EXPORT_NAME = "db-cluster-writer-endpoint";
|
90
|
+
DbStack.CLUSTER_PORT = 5432;
|
91
|
+
//# sourceMappingURL=db-stack.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"db-stack.js","sourceRoot":"","sources":["../../../../src/aws/infra/stacks/db-stack.ts"],"names":[],"mappings":";;;AAAA,6CAA6D;AAE7D,iDAAgE;AAChE,iDAS6B;AAC7B,uEAAwD;AACxD,gDAAwD;AAiBxD;;;;;;;GAOG;AAEH,MAAa,OAAQ,SAAQ,mBAAK;IAS9B,YACI,KAAgB,EAChB,EAAU,EACV,GAA4B,EAC5B,aAA8B;QAE9B,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;YACb,GAAG,EAAE,GAAG,CAAC,GAAG;SACf,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAE7D,IAAA,yBAAW,EACP,IAAI,EACJ,GAAG,CAAC,eAAe,EACnB,OAAO,CAAC,8BAA8B,EACtC,OAAO,CAAC,iBAAiB,CAC5B,CAAC;QACF,IAAA,yBAAW,EACP,IAAI,EACJ,GAAG,CAAC,eAAe,EACnB,OAAO,CAAC,kCAAkC,EAC1C,OAAO,CAAC,eAAe,CAAC,QAAQ,CACnC,CAAC;QACF,IAAA,yBAAW,EACP,IAAI,EACJ,GAAG,CAAC,eAAe,EACnB,OAAO,CAAC,iCAAiC,EACzC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CACvC,CAAC;IACN,CAAC;IAED,mBAAmB,CACf,GAA4B,EAC5B,aAA8B;QAE9B,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC;QACjD,MAAM,MAAM,GAAG,2BAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE;YAC1D,iBAAiB,EAAE,aAAa,CAAC,SAAS;SAC7C,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,uBAAa,CAAC,mBAAmB,CACnD,IAAI,EACJ,eAAe,EACf,aAAa,CAAC,eAAe,CAChC,CAAC;QACF,MAAM,GAAG,GAAG,IAAA,uBAAS,EAAC,IAAI,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAEjD,MAAM,cAAc,GAAG,aAAa,CAAC,oBAAoB;YACrD,CAAC,CAAC,IAAI,wBAAc,CACd,IAAI,EACJ,mBAAmB,aAAa,CAAC,SAAS,CAAC,0BAA0B,EAAE,EACvE;gBACI,MAAM,EAAE,+BAAqB,CAAC,cAAc,CAAC;oBACzC,OAAO,EAAE,aAAa,CAAC,SAAS;iBACnC,CAAC;gBACF,UAAU,EAAE;oBACR,0BAA0B,EAAE,KAAK;oBACjC,gBAAgB,EAAE,GAAG;iBACxB;aACJ,CACJ;YACH,CAAC,CAAC,wBAAc,CAAC,sBAAsB,CACjC,IAAI,EACJ,gBAAgB,EAChB,4BAA4B,aAAa,CAAC,SAAS,CAAC,0BAA0B,EAAE,CACnF,CAAC;QAER,MAAM,OAAO,GAAG,IAAI,qCAA2B,CAAC,IAAI,EAAE,YAAY,EAAE;YAChE,kBAAkB,EAAE,aAAa,CAAC,kBAAkB;YACpD,MAAM,EAAE,+BAAqB,CAAC,cAAc,CAAC;gBACzC,OAAO,EAAE,aAAa,CAAC,SAAS;aACnC,CAAC;YACF,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,uBAAuB,EAAE,iCAAuB,CAAC,OAAO;YACxD,sBAAsB,EAAE,YAAY,GAAG,GAAG;YAC1C,qBAAqB,EAAE,CAAC,YAAY,CAAC;YACrC,MAAM,EAAE;gBACJ,SAAS,EAAE,sBAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,eAAe,EAAE,aAAa;aACjC;YACD,0BAA0B,EAAE,qBAAqB;YACjD,kBAAkB,EAAE,IAAI;YACxB,aAAa,EAAE,2BAAa,CAAC,MAAM;YACnC,IAAI,EAAE,OAAO,CAAC,YAAY;YAC1B,aAAa,EAAE;gBACX,uBAAuB,EAAE,IAAI;gBAC7B,wBAAwB,EAAE,KAAK;gBAC/B,yBAAyB,EAAE,IAAI;gBAC/B,GAAG;gBACH,cAAc,EAAE,CAAC,aAAa,CAAC;gBAC/B,UAAU,EAAE;oBACR,UAAU,EAAE,oBAAU,CAAC,gBAAgB;iBAC1C;gBACD,YAAY,EAAE,aAAa,CAAC,cAAc;gBAC1C,cAAc;aACjB;YACD,WAAW,EAAE,qBAAW,CAAC,UAAU,CAAC,MAAM,CAAC;YAC3C,cAAc;SACjB,CAAC,CAAC;QAEH,kEAAkE;QAClE,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC7C,CAAC,KAAK,EAA0B,EAAE,CAAC,KAAK,YAAY,uBAAa,CACpE,CAAC;QACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CACX,sDAAsD,CACzD,CAAC;SACL;QACD,YAAY,CAAC,OAAO,CAChB,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,WAAW,CAAC,aAAa,CACpD,CAAC;QAEF,OAAO,OAAO,CAAC;IACnB,CAAC;;AA3HL,0BA4HC;AA3HiB,sCAA8B,GAAG,YAAY,CAAC;AAC9C,yCAAiC,GAC3C,4BAA4B,CAAC;AACnB,0CAAkC,GAC5C,4BAA4B,CAAC;AAEnB,oBAAY,GAAG,IAAI,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"intra-stack-configuration.js","sourceRoot":"","sources":["../../../../src/aws/infra/stacks/intra-stack-configuration.ts"],"names":[],"mappings":""}
|