@ndlib/ndlib-cdk2 1.0.2 → 1.0.5
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.
|
@@ -116,7 +116,7 @@ class SummaryDashboard extends aws_cdk_lib_1.aws_cloudwatch.Dashboard {
|
|
|
116
116
|
}
|
|
117
117
|
static visit(node, services, lambdaNames, includeLambdas, serviceLabels) {
|
|
118
118
|
const customLabel = serviceLabels[node.node.addr];
|
|
119
|
-
if (node instanceof aws_cdk_lib_1.
|
|
119
|
+
if (node instanceof aws_cdk_lib_1.aws_opensearchservice.CfnDomain) {
|
|
120
120
|
if (node.domainName != undefined) {
|
|
121
121
|
services.push({
|
|
122
122
|
typeName: 'ElasticSearchApi',
|
|
@@ -20,9 +20,10 @@ export interface IStaticHostProps {
|
|
|
20
20
|
*/
|
|
21
21
|
readonly createDns?: boolean;
|
|
22
22
|
/**
|
|
23
|
-
* Hosted zone
|
|
23
|
+
* Hosted zone ids for the route53 record. Is required if createDns is true.
|
|
24
|
+
* This is now an array to accommodate both a public hosted zone id and a private hosted zone id
|
|
24
25
|
*/
|
|
25
|
-
readonly
|
|
26
|
+
readonly hostedZoneIds?: string[];
|
|
26
27
|
/**
|
|
27
28
|
* Root page to be served.
|
|
28
29
|
*/
|
|
@@ -3,15 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.StaticHost = void 0;
|
|
4
4
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
5
|
const constructs_1 = require("constructs");
|
|
6
|
+
const crypto_1 = require("crypto");
|
|
6
7
|
class StaticHost extends constructs_1.Construct {
|
|
7
8
|
constructor(scope, id, props) {
|
|
8
9
|
var _a;
|
|
9
10
|
super(scope, id);
|
|
10
11
|
this.inProps = props;
|
|
11
12
|
// removed .validate() and replaced with this error to enforce hostedZondId when createDNS is true
|
|
12
|
-
if (this.inProps.createDns && !this.inProps.
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
// if (this.inProps.createDns && !this.inProps.hostedZoneIds) {
|
|
14
|
+
// Annotations.of(this).addError('hostedZoneIds is required when createDns is true')
|
|
15
|
+
// throw new Error('hostedZoneIds is required when createDns is true')
|
|
16
|
+
// }
|
|
17
|
+
if (this.inProps.createDns) {
|
|
18
|
+
if (!this.inProps.hostedZoneIds) {
|
|
19
|
+
aws_cdk_lib_1.Annotations.of(this).addError('hostedZoneIds is required when createDns is true');
|
|
20
|
+
throw new Error('hostedZoneIds is required when createDns is true');
|
|
21
|
+
}
|
|
22
|
+
if (this.inProps.hostedZoneIds.length == 0) {
|
|
23
|
+
aws_cdk_lib_1.Annotations.of(this).addError('hostedZoneIds is required when createDns is true, and must contain at least one hostedZoneId');
|
|
24
|
+
throw new Error('hostedZoneIds is required when createDns is true, and must contain at least one hostedZoneId');
|
|
25
|
+
}
|
|
15
26
|
}
|
|
16
27
|
const stack = aws_cdk_lib_1.Stack.of(this);
|
|
17
28
|
this.hostname = `${props.hostnamePrefix}.${props.domainName}`;
|
|
@@ -104,17 +115,20 @@ class StaticHost extends constructs_1.Construct {
|
|
|
104
115
|
viewerProtocolPolicy: aws_cdk_lib_1.aws_cloudfront.ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
|
|
105
116
|
});
|
|
106
117
|
// Create DNS record (conditionally)
|
|
107
|
-
if (props.createDns) {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
+
if (props.createDns && props.hostedZoneIds && props.hostedZoneIds.length > 0) {
|
|
119
|
+
for (const hostedZoneId of props.hostedZoneIds) {
|
|
120
|
+
const id = (0, crypto_1.randomUUID)();
|
|
121
|
+
new aws_cdk_lib_1.aws_route53.CnameRecord(this, `ServiceCNAME${id}`, {
|
|
122
|
+
recordName: this.hostname,
|
|
123
|
+
comment: this.hostname,
|
|
124
|
+
domainName: this.cloudfront.distributionDomainName,
|
|
125
|
+
zone: aws_cdk_lib_1.aws_route53.HostedZone.fromHostedZoneAttributes(this, `ImportedHostedZone${id}`, {
|
|
126
|
+
hostedZoneId: hostedZoneId,
|
|
127
|
+
zoneName: props.domainName,
|
|
128
|
+
}),
|
|
129
|
+
ttl: aws_cdk_lib_1.Duration.minutes(15),
|
|
130
|
+
});
|
|
131
|
+
}
|
|
118
132
|
}
|
|
119
133
|
this.bucketNameParam = new aws_cdk_lib_1.aws_ssm.StringParameter(this, 'BucketParameter', {
|
|
120
134
|
parameterName: `/all/stacks/${stack.stackName}/site-bucket-name`,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndlib/ndlib-cdk2",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Reusable CDK2 modules used within Hesburgh Libraries of Notre Dame",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -38,19 +38,19 @@
|
|
|
38
38
|
"homepage": "https://github.com/ndlib/ndlib-cdk2#readme",
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"aws-cdk-lib": "^2.24.1",
|
|
41
|
-
"constructs": "^10.1.
|
|
41
|
+
"constructs": "^10.1.12"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/jest": "^27.5.1",
|
|
45
|
-
"@types/node": "^17.0.
|
|
46
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
47
|
-
"@typescript-eslint/parser": "^5.
|
|
48
|
-
"aws-sdk": "^2.
|
|
45
|
+
"@types/node": "^17.0.35",
|
|
46
|
+
"@typescript-eslint/eslint-plugin": "^5.25.0",
|
|
47
|
+
"@typescript-eslint/parser": "^5.25.0",
|
|
48
|
+
"aws-sdk": "^2.1140.0",
|
|
49
49
|
"aws-sdk-client-mock": "^0.6.2",
|
|
50
50
|
"eslint": "^8.15.0",
|
|
51
51
|
"eslint-config-standard": "^17.0.0",
|
|
52
52
|
"eslint-plugin-import": "^2.26.0",
|
|
53
|
-
"eslint-plugin-jest": "^26.
|
|
53
|
+
"eslint-plugin-jest": "^26.2.2",
|
|
54
54
|
"eslint-plugin-n": "^15.2.0",
|
|
55
55
|
"eslint-plugin-node": "^11.1.0",
|
|
56
56
|
"eslint-plugin-promise": "^6.0.0",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"dependencies": {
|
|
70
70
|
"@aws-cdk/aws-appsync-alpha": "^2.24.1-alpha.0",
|
|
71
71
|
"aws-cdk-lib": "^2.24.1",
|
|
72
|
-
"constructs": "^10.1.
|
|
72
|
+
"constructs": "^10.1.12",
|
|
73
73
|
"jest-mock": "^28.1.0",
|
|
74
74
|
"node-fetch": "^3.2.4"
|
|
75
75
|
},
|