@gradientedge/cdk-utils 9.7.0 → 9.9.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/dist/src/lib/cloudflare/construct/worker-site/main.d.ts +14 -0
- package/dist/src/lib/cloudflare/construct/worker-site/main.js +24 -0
- package/dist/src/lib/cloudflare/construct/worker-site/types.d.ts +3 -1
- package/package.json +17 -17
- package/src/lib/cloudflare/construct/worker-site/main.ts +28 -0
- package/src/lib/cloudflare/construct/worker-site/types.ts +9 -1
|
@@ -38,7 +38,13 @@ export declare class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
38
38
|
* @summary Resolve the environment variables to use for the static site
|
|
39
39
|
*/
|
|
40
40
|
protected resolveEnvironmentVariables(): void;
|
|
41
|
+
/**
|
|
42
|
+
* @summary Create the worker
|
|
43
|
+
*/
|
|
41
44
|
protected createWorker(): void;
|
|
45
|
+
/**
|
|
46
|
+
* @summary Create the worker domain
|
|
47
|
+
*/
|
|
42
48
|
protected createWorkerDomain(): void;
|
|
43
49
|
/**
|
|
44
50
|
* @summary Resolve secrets from AWS Secrets Manager
|
|
@@ -47,4 +53,12 @@ export declare class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
47
53
|
* @returns the secret value
|
|
48
54
|
*/
|
|
49
55
|
protected resolveSecretFromAWS(secretName: string, secretKey: string): any;
|
|
56
|
+
/**
|
|
57
|
+
* @summary Create the rules
|
|
58
|
+
*/
|
|
59
|
+
protected createRuleset(): void;
|
|
60
|
+
/**
|
|
61
|
+
* @summary Create zone settings override
|
|
62
|
+
*/
|
|
63
|
+
protected createZoneSettingsOverride(): void;
|
|
50
64
|
}
|
|
@@ -39,6 +39,8 @@ class CloudflareWorkerSite extends common_1.CommonCloudflareConstruct {
|
|
|
39
39
|
this.resolveEnvironmentVariables();
|
|
40
40
|
this.createWorker();
|
|
41
41
|
this.createWorkerDomain();
|
|
42
|
+
this.createRuleset();
|
|
43
|
+
this.createZoneSettingsOverride();
|
|
42
44
|
}
|
|
43
45
|
/**
|
|
44
46
|
* @summary Resolve the zone to use for the worker site
|
|
@@ -61,6 +63,9 @@ class CloudflareWorkerSite extends common_1.CommonCloudflareConstruct {
|
|
|
61
63
|
secretTextBinding: this.workerSecretTextBindingEnvironmentVariables,
|
|
62
64
|
};
|
|
63
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* @summary Create the worker
|
|
68
|
+
*/
|
|
64
69
|
createWorker() {
|
|
65
70
|
const workerContent = new cdktf_1.TerraformAsset(this, `${this.id}-worker-content`, {
|
|
66
71
|
path: this.props.siteWorkerAsset,
|
|
@@ -71,6 +76,9 @@ class CloudflareWorkerSite extends common_1.CommonCloudflareConstruct {
|
|
|
71
76
|
content: cdktf_1.Fn.file(workerContent.path),
|
|
72
77
|
});
|
|
73
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* @summary Create the worker domain
|
|
81
|
+
*/
|
|
74
82
|
createWorkerDomain() {
|
|
75
83
|
this.workerManager.createWorkerDomain(`${this.id}-worker-domain`, this, {
|
|
76
84
|
...this.props.siteWorkerDomain,
|
|
@@ -96,5 +104,21 @@ class CloudflareWorkerSite extends common_1.CommonCloudflareConstruct {
|
|
|
96
104
|
throw new Error(`Unable to resolve secret:${secretName}`);
|
|
97
105
|
return cdktf_1.Fn.lookup(cdktf_1.Fn.jsondecode(secretVersion.secretString), secretKey);
|
|
98
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* @summary Create the rules
|
|
109
|
+
*/
|
|
110
|
+
createRuleset() {
|
|
111
|
+
if (!this.props.siteRuleSet)
|
|
112
|
+
return;
|
|
113
|
+
this.ruleSetManager.createRuleSet(`${this.id}-rule`, this, this.props.siteRuleSet);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* @summary Create zone settings override
|
|
117
|
+
*/
|
|
118
|
+
createZoneSettingsOverride() {
|
|
119
|
+
if (!this.props.siteZoneSettingsOverride)
|
|
120
|
+
return;
|
|
121
|
+
this.zoneManager.createZoneSettingsOverride(`${this.id}-zone-settings-override`, this, this.props.siteZoneSettingsOverride);
|
|
122
|
+
}
|
|
99
123
|
}
|
|
100
124
|
exports.CloudflareWorkerSite = CloudflareWorkerSite;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { CommonCloudflareStackProps } from '../../common';
|
|
2
|
-
import { WorkerDomainProps, WorkerScriptProps, ZoneProps } from '../../services';
|
|
2
|
+
import { WorkerDomainProps, WorkerScriptProps, RulesetProps, ZoneProps, ZoneSettingsOverrideProps } from '../../services';
|
|
3
3
|
export interface CloudflareWorkerSiteProps extends CommonCloudflareStackProps {
|
|
4
4
|
siteSubDomain: string;
|
|
5
5
|
siteZone: ZoneProps;
|
|
6
6
|
siteWorkerScript: WorkerScriptProps;
|
|
7
7
|
siteWorkerDomain: WorkerDomainProps;
|
|
8
8
|
siteWorkerAsset: string;
|
|
9
|
+
siteRuleSet: RulesetProps;
|
|
10
|
+
siteZoneSettingsOverride: ZoneSettingsOverrideProps;
|
|
9
11
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gradientedge/cdk-utils",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.9.0",
|
|
4
4
|
"description": "Utilities for AWS CDK provisioning",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"engines": {
|
|
@@ -50,17 +50,17 @@
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@aws-sdk/client-secrets-manager": "^3.
|
|
54
|
-
"@aws-sdk/credential-providers": "^3.
|
|
53
|
+
"@aws-sdk/client-secrets-manager": "^3.637.0",
|
|
54
|
+
"@aws-sdk/credential-providers": "^3.637.0",
|
|
55
55
|
"@aws-sdk/types": "^3.609.0",
|
|
56
|
-
"@cdktf/provider-aws": "^19.
|
|
57
|
-
"@cdktf/provider-azurerm": "^
|
|
58
|
-
"@cdktf/provider-cloudflare": "^11.
|
|
56
|
+
"@cdktf/provider-aws": "^19.32.0",
|
|
57
|
+
"@cdktf/provider-azurerm": "^13.0.0",
|
|
58
|
+
"@cdktf/provider-cloudflare": "^11.18.0",
|
|
59
59
|
"@types/lodash": "^4.17.7",
|
|
60
|
-
"@types/node": "^22.
|
|
60
|
+
"@types/node": "^22.5.0",
|
|
61
61
|
"@types/uuid": "^10.0.0",
|
|
62
62
|
"app-root-path": "^3.1.0",
|
|
63
|
-
"aws-cdk-lib": "^2.
|
|
63
|
+
"aws-cdk-lib": "^2.154.1",
|
|
64
64
|
"cdktf": "^0.20.8",
|
|
65
65
|
"cdktf-local-exec": "^0.5.34",
|
|
66
66
|
"constructs": "^10.3.0",
|
|
@@ -76,33 +76,33 @@
|
|
|
76
76
|
"@babel/eslint-parser": "^7.25.1",
|
|
77
77
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
78
78
|
"@types/jest": "^29.5.12",
|
|
79
|
-
"@typescript-eslint/eslint-plugin": "^8.0
|
|
80
|
-
"@typescript-eslint/parser": "^8.0
|
|
81
|
-
"aws-cdk": "^2.
|
|
79
|
+
"@typescript-eslint/eslint-plugin": "^8.3.0",
|
|
80
|
+
"@typescript-eslint/parser": "^8.3.0",
|
|
81
|
+
"aws-cdk": "^2.154.1",
|
|
82
82
|
"better-docs": "^2.7.3",
|
|
83
83
|
"codecov": "^3.8.3",
|
|
84
84
|
"commitizen": "^4.3.0",
|
|
85
85
|
"docdash": "^2.0.2",
|
|
86
86
|
"dotenv": "^16.4.5",
|
|
87
|
-
"eslint": "^9.9.
|
|
87
|
+
"eslint": "^9.9.1",
|
|
88
88
|
"eslint-config-prettier": "^9.1.0",
|
|
89
89
|
"eslint-plugin-import": "^2.29.1",
|
|
90
|
-
"eslint-plugin-jsdoc": "^50.
|
|
91
|
-
"husky": "^9.1.
|
|
90
|
+
"eslint-plugin-jsdoc": "^50.2.2",
|
|
91
|
+
"husky": "^9.1.5",
|
|
92
92
|
"jest": "^29.7.0",
|
|
93
93
|
"jest-extended": "^4.0.2",
|
|
94
94
|
"jest-junit": "^16.0.0",
|
|
95
95
|
"jsdoc": "^4.0.3",
|
|
96
96
|
"jsdoc-babel": "^0.5.0",
|
|
97
97
|
"jsdoc-mermaid": "^1.0.0",
|
|
98
|
-
"jsdoc-plugin-typescript": "^2.
|
|
98
|
+
"jsdoc-plugin-typescript": "^2.3.0",
|
|
99
99
|
"jsdoc-to-markdown": "^8.0.3",
|
|
100
100
|
"prettier": "^3.3.3",
|
|
101
101
|
"prettier-plugin-organize-imports": "^4.0.0",
|
|
102
102
|
"rimraf": "^6.0.1",
|
|
103
|
-
"semantic-release": "^24.
|
|
103
|
+
"semantic-release": "^24.1.0",
|
|
104
104
|
"taffydb": "^2.7.3",
|
|
105
|
-
"ts-jest": "^29.2.
|
|
105
|
+
"ts-jest": "^29.2.5",
|
|
106
106
|
"ts-node": "^10.9.2",
|
|
107
107
|
"typescript": "5.5.4",
|
|
108
108
|
"yaml": "^2.5.0"
|
|
@@ -50,6 +50,8 @@ export class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
50
50
|
this.resolveEnvironmentVariables()
|
|
51
51
|
this.createWorker()
|
|
52
52
|
this.createWorkerDomain()
|
|
53
|
+
this.createRuleset()
|
|
54
|
+
this.createZoneSettingsOverride()
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
/**
|
|
@@ -74,6 +76,9 @@ export class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
|
|
79
|
+
/**
|
|
80
|
+
* @summary Create the worker
|
|
81
|
+
*/
|
|
77
82
|
protected createWorker() {
|
|
78
83
|
const workerContent = new TerraformAsset(this, `${this.id}-worker-content`, {
|
|
79
84
|
path: this.props.siteWorkerAsset,
|
|
@@ -86,6 +91,9 @@ export class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
86
91
|
})
|
|
87
92
|
}
|
|
88
93
|
|
|
94
|
+
/**
|
|
95
|
+
* @summary Create the worker domain
|
|
96
|
+
*/
|
|
89
97
|
protected createWorkerDomain() {
|
|
90
98
|
this.workerManager.createWorkerDomain(`${this.id}-worker-domain`, this, {
|
|
91
99
|
...this.props.siteWorkerDomain,
|
|
@@ -110,4 +118,24 @@ export class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
110
118
|
if (!secretVersion) throw new Error(`Unable to resolve secret:${secretName}`)
|
|
111
119
|
return Fn.lookup(Fn.jsondecode(secretVersion.secretString), secretKey)
|
|
112
120
|
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* @summary Create the rules
|
|
124
|
+
*/
|
|
125
|
+
protected createRuleset() {
|
|
126
|
+
if (!this.props.siteRuleSet) return
|
|
127
|
+
this.ruleSetManager.createRuleSet(`${this.id}-rule`, this, this.props.siteRuleSet)
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* @summary Create zone settings override
|
|
132
|
+
*/
|
|
133
|
+
protected createZoneSettingsOverride() {
|
|
134
|
+
if (!this.props.siteZoneSettingsOverride) return
|
|
135
|
+
this.zoneManager.createZoneSettingsOverride(
|
|
136
|
+
`${this.id}-zone-settings-override`,
|
|
137
|
+
this,
|
|
138
|
+
this.props.siteZoneSettingsOverride
|
|
139
|
+
)
|
|
140
|
+
}
|
|
113
141
|
}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { CommonCloudflareStackProps } from '../../common'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
WorkerDomainProps,
|
|
4
|
+
WorkerScriptProps,
|
|
5
|
+
RulesetProps,
|
|
6
|
+
ZoneProps,
|
|
7
|
+
ZoneSettingsOverrideProps,
|
|
8
|
+
} from '../../services'
|
|
3
9
|
|
|
4
10
|
export interface CloudflareWorkerSiteProps extends CommonCloudflareStackProps {
|
|
5
11
|
siteSubDomain: string
|
|
@@ -7,4 +13,6 @@ export interface CloudflareWorkerSiteProps extends CommonCloudflareStackProps {
|
|
|
7
13
|
siteWorkerScript: WorkerScriptProps
|
|
8
14
|
siteWorkerDomain: WorkerDomainProps
|
|
9
15
|
siteWorkerAsset: string
|
|
16
|
+
siteRuleSet: RulesetProps
|
|
17
|
+
siteZoneSettingsOverride: ZoneSettingsOverrideProps
|
|
10
18
|
}
|