@gradientedge/cdk-utils 9.52.2 → 9.53.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/azure/services/storage/main.d.ts +26 -0
- package/dist/src/lib/azure/services/storage/main.js +43 -0
- package/dist/src/lib/azure/services/storage/types.d.ts +5 -0
- package/dist/src/lib/cloudflare/construct/pages-static-site/main.d.ts +7 -7
- package/dist/src/lib/cloudflare/construct/pages-static-site/main.js +9 -6
- package/dist/src/lib/cloudflare/construct/pages-static-site/types.d.ts +2 -2
- package/dist/src/lib/cloudflare/construct/worker-site/main.d.ts +5 -5
- package/dist/src/lib/cloudflare/construct/worker-site/main.js +8 -9
- package/dist/src/lib/cloudflare/construct/worker-site/types.d.ts +2 -2
- package/dist/src/lib/cloudflare/services/access/main.d.ts +34 -34
- package/dist/src/lib/cloudflare/services/access/main.js +42 -50
- package/dist/src/lib/cloudflare/services/access/types.d.ts +20 -20
- package/dist/src/lib/cloudflare/services/api-shield/main.js +1 -1
- package/dist/src/lib/cloudflare/services/argo/main.d.ts +13 -4
- package/dist/src/lib/cloudflare/services/argo/main.js +29 -7
- package/dist/src/lib/cloudflare/services/argo/types.d.ts +5 -2
- package/dist/src/lib/cloudflare/services/page/main.js +1 -1
- package/dist/src/lib/cloudflare/services/record/main.d.ts +4 -4
- package/dist/src/lib/cloudflare/services/record/main.js +3 -3
- package/dist/src/lib/cloudflare/services/record/types.d.ts +2 -2
- package/dist/src/lib/cloudflare/services/rule-set/main.js +3 -1
- package/dist/src/lib/cloudflare/services/worker/main.d.ts +12 -12
- package/dist/src/lib/cloudflare/services/worker/main.js +20 -16
- package/dist/src/lib/cloudflare/services/worker/types.d.ts +8 -8
- package/dist/src/lib/cloudflare/services/zone/main.d.ts +15 -6
- package/dist/src/lib/cloudflare/services/zone/main.js +41 -15
- package/dist/src/lib/cloudflare/services/zone/types.d.ts +7 -3
- package/package.json +2 -2
- package/src/lib/azure/services/storage/main.ts +56 -0
- package/src/lib/azure/services/storage/types.ts +7 -1
- package/src/lib/cloudflare/construct/pages-static-site/main.ts +20 -13
- package/src/lib/cloudflare/construct/pages-static-site/types.ts +2 -2
- package/src/lib/cloudflare/construct/worker-site/main.ts +12 -19
- package/src/lib/cloudflare/construct/worker-site/types.ts +2 -8
- package/src/lib/cloudflare/services/access/main.ts +73 -72
- package/src/lib/cloudflare/services/access/types.ts +20 -20
- package/src/lib/cloudflare/services/api-shield/main.ts +1 -1
- package/src/lib/cloudflare/services/argo/main.ts +35 -8
- package/src/lib/cloudflare/services/argo/types.ts +4 -2
- package/src/lib/cloudflare/services/page/main.ts +1 -1
- package/src/lib/cloudflare/services/record/main.ts +5 -5
- package/src/lib/cloudflare/services/record/types.ts +2 -2
- package/src/lib/cloudflare/services/rule-set/main.ts +3 -1
- package/src/lib/cloudflare/services/worker/main.ts +20 -16
- package/src/lib/cloudflare/services/worker/types.ts +8 -8
- package/src/lib/cloudflare/services/zone/main.ts +45 -16
- package/src/lib/cloudflare/services/zone/types.ts +6 -3
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CloudflareWorkerManager = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
4
|
+
const workers_custom_domain_1 = require("@cdktf/provider-cloudflare/lib/workers-custom-domain");
|
|
5
|
+
const workers_route_1 = require("@cdktf/provider-cloudflare/lib/workers-route");
|
|
6
|
+
const workers_script_1 = require("@cdktf/provider-cloudflare/lib/workers-script");
|
|
7
7
|
const utils_1 = require("../../utils");
|
|
8
8
|
const workers_kv_namespace_1 = require("@cdktf/provider-cloudflare/lib/workers-kv-namespace");
|
|
9
9
|
const workers_kv_1 = require("@cdktf/provider-cloudflare/lib/workers-kv");
|
|
10
|
-
const
|
|
10
|
+
const workers_cron_trigger_1 = require("@cdktf/provider-cloudflare/lib/workers-cron-trigger");
|
|
11
11
|
/**
|
|
12
12
|
* @classdesc Provides operations on Cloudflare Worker
|
|
13
13
|
* - A new instance of this class is injected into {@link CommonCloudflareConstruct} constructor.
|
|
@@ -31,15 +31,17 @@ class CloudflareWorkerManager {
|
|
|
31
31
|
* @param id scoped id of the resource
|
|
32
32
|
* @param scope scope in which this resource is defined
|
|
33
33
|
* @param props worker domain properties
|
|
34
|
-
* @see [CDKTF Worker Domain Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/
|
|
34
|
+
* @see [CDKTF Worker Domain Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/workersCustomDomain.typescript.md}
|
|
35
35
|
*/
|
|
36
36
|
createWorkerDomain(id, scope, props) {
|
|
37
37
|
if (!props)
|
|
38
38
|
throw `Props undefined for ${id}`;
|
|
39
39
|
const zoneId = props.zoneId
|
|
40
40
|
? props.zoneId
|
|
41
|
-
: scope.zoneManager.resolveZone(`${id}-data-zone`, scope, {
|
|
42
|
-
|
|
41
|
+
: scope.zoneManager.resolveZone(`${id}-data-zone`, scope, {
|
|
42
|
+
filter: { account: { name: scope.props.domainName } },
|
|
43
|
+
})?.id;
|
|
44
|
+
const workerDomain = new workers_custom_domain_1.WorkersCustomDomain(scope, `${id}`, {
|
|
43
45
|
...props,
|
|
44
46
|
accountId: props.accountId ?? scope.props.accountId,
|
|
45
47
|
zoneId,
|
|
@@ -53,17 +55,19 @@ class CloudflareWorkerManager {
|
|
|
53
55
|
* @param id scoped id of the resource
|
|
54
56
|
* @param scope scope in which this resource is defined
|
|
55
57
|
* @param props worker route properties
|
|
56
|
-
* @see [CDKTF Worker Route Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/
|
|
58
|
+
* @see [CDKTF Worker Route Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/workersRoute.typescript.md}
|
|
57
59
|
*/
|
|
58
60
|
createWorkerRoute(id, scope, props) {
|
|
59
61
|
if (!props)
|
|
60
62
|
throw `Props undefined for ${id}`;
|
|
61
63
|
const zoneId = props.zoneId
|
|
62
64
|
? props.zoneId
|
|
63
|
-
: scope.zoneManager.resolveZone(`${id}-data-zone`, scope, {
|
|
64
|
-
|
|
65
|
+
: scope.zoneManager.resolveZone(`${id}-data-zone`, scope, {
|
|
66
|
+
filter: { account: { name: scope.props.domainName } },
|
|
67
|
+
})?.id;
|
|
68
|
+
const workerRoute = new workers_route_1.WorkersRoute(scope, `${id}`, {
|
|
65
69
|
...props,
|
|
66
|
-
|
|
70
|
+
script: `${props.script}-${scope.props.stage}`,
|
|
67
71
|
zoneId,
|
|
68
72
|
});
|
|
69
73
|
(0, utils_1.createCloudflareTfOutput)(`${id}-workerRouteFriendlyUniqueId`, scope, workerRoute.friendlyUniqueId);
|
|
@@ -75,15 +79,15 @@ class CloudflareWorkerManager {
|
|
|
75
79
|
* @param id scoped id of the resource
|
|
76
80
|
* @param scope scope in which this resource is defined
|
|
77
81
|
* @param props worker script properties
|
|
78
|
-
* @see [CDKTF Worker Script Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/
|
|
82
|
+
* @see [CDKTF Worker Script Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/workersScript.typescript.md}
|
|
79
83
|
*/
|
|
80
84
|
createWorkerScript(id, scope, props) {
|
|
81
85
|
if (!props)
|
|
82
86
|
throw `Props undefined for ${id}`;
|
|
83
|
-
const workerScript = new
|
|
87
|
+
const workerScript = new workers_script_1.WorkersScript(scope, `${id}`, {
|
|
84
88
|
...props,
|
|
85
89
|
accountId: props.accountId ?? scope.props.accountId,
|
|
86
|
-
|
|
90
|
+
scriptName: `${props.scriptName}-${scope.props.stage}`,
|
|
87
91
|
});
|
|
88
92
|
(0, utils_1.createCloudflareTfOutput)(`${id}-workerScriptFriendlyUniqueId`, scope, workerScript.friendlyUniqueId);
|
|
89
93
|
(0, utils_1.createCloudflareTfOutput)(`${id}-workerScriptId`, scope, workerScript.id);
|
|
@@ -131,12 +135,12 @@ class CloudflareWorkerManager {
|
|
|
131
135
|
* @param id scoped id of the resource
|
|
132
136
|
* @param scope scope in which this resource is defined
|
|
133
137
|
* @param props workers cron trigger properties
|
|
134
|
-
* @see [CDKTF Workers Cron Trigger Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/
|
|
138
|
+
* @see [CDKTF Workers Cron Trigger Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/workersCronTrigger.typescript.md}
|
|
135
139
|
*/
|
|
136
140
|
createWorkerCronTrigger(id, scope, props) {
|
|
137
141
|
if (!props)
|
|
138
142
|
throw `Props undefined for ${id}`;
|
|
139
|
-
const workerCronTrigger = new
|
|
143
|
+
const workerCronTrigger = new workers_cron_trigger_1.WorkersCronTrigger(scope, `${id}`, {
|
|
140
144
|
...props,
|
|
141
145
|
accountId: props.accountId ?? scope.props.accountId,
|
|
142
146
|
});
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { WorkersCronTriggerConfig } from '@cdktf/provider-cloudflare/lib/workers-cron-trigger';
|
|
2
|
+
import { WorkersCustomDomainConfig } from '@cdktf/provider-cloudflare/lib/workers-custom-domain';
|
|
3
|
+
import { WorkersRouteConfig } from '@cdktf/provider-cloudflare/lib/workers-route';
|
|
4
|
+
import { WorkersScriptConfig } from '@cdktf/provider-cloudflare/lib/workers-script';
|
|
5
5
|
import { WorkersKvConfig } from '@cdktf/provider-cloudflare/lib/workers-kv';
|
|
6
6
|
import { WorkersKvNamespaceConfig } from '@cdktf/provider-cloudflare/lib/workers-kv-namespace';
|
|
7
|
-
export interface WorkerDomainProps extends
|
|
7
|
+
export interface WorkerDomainProps extends WorkersCustomDomainConfig {
|
|
8
8
|
}
|
|
9
|
-
export interface WorkerRouteProps extends
|
|
9
|
+
export interface WorkerRouteProps extends WorkersRouteConfig {
|
|
10
10
|
}
|
|
11
|
-
export interface WorkerScriptProps extends
|
|
11
|
+
export interface WorkerScriptProps extends WorkersScriptConfig {
|
|
12
12
|
}
|
|
13
13
|
export interface WorkersKvNamespaceProps extends WorkersKvNamespaceConfig {
|
|
14
14
|
}
|
|
15
15
|
export interface WorkersKvProps extends WorkersKvConfig {
|
|
16
16
|
}
|
|
17
|
-
export interface WorkerCronTriggerProps extends
|
|
17
|
+
export interface WorkerCronTriggerProps extends WorkersCronTriggerConfig {
|
|
18
18
|
}
|
|
@@ -5,9 +5,10 @@ import { ZoneCacheVariants } from '@cdktf/provider-cloudflare/lib/zone-cache-var
|
|
|
5
5
|
import { ZoneDnssec } from '@cdktf/provider-cloudflare/lib/zone-dnssec';
|
|
6
6
|
import { ZoneHold } from '@cdktf/provider-cloudflare/lib/zone-hold';
|
|
7
7
|
import { ZoneLockdown } from '@cdktf/provider-cloudflare/lib/zone-lockdown';
|
|
8
|
-
import {
|
|
8
|
+
import { ZoneSetting } from '@cdktf/provider-cloudflare/lib/zone-setting';
|
|
9
|
+
import { ZoneDnsSettings } from '@cdktf/provider-cloudflare/lib/zone-dns-settings';
|
|
9
10
|
import { CommonCloudflareConstruct } from '../../common';
|
|
10
|
-
import { ZoneCacheReserveProps, ZoneCacheVariantsProps, ZoneDnssecProps, ZoneHoldProps, ZoneLockdownProps, ZoneOptions, ZoneProps,
|
|
11
|
+
import { ZoneCacheReserveProps, ZoneCacheVariantsProps, ZoneDnssecProps, ZoneHoldProps, ZoneLockdownProps, ZoneOptions, ZoneProps, ZoneSettingProps } from './types';
|
|
11
12
|
/**
|
|
12
13
|
* @classdesc Provides operations on Cloudflare Zone
|
|
13
14
|
* - A new instance of this class is injected into {@link CommonCloudflareConstruct} constructor.
|
|
@@ -76,11 +77,19 @@ export declare class CloudflareZoneManager {
|
|
|
76
77
|
*/
|
|
77
78
|
createZoneLockdown(id: string, scope: CommonCloudflareConstruct, props: ZoneLockdownProps): ZoneLockdown;
|
|
78
79
|
/**
|
|
79
|
-
* @summary Method to create
|
|
80
|
+
* @summary Method to create new zone dns settings
|
|
80
81
|
* @param id scoped id of the resource
|
|
81
82
|
* @param scope scope in which this resource is defined
|
|
82
|
-
* @param props zone settings
|
|
83
|
-
* @see [CDKTF Zone Settings
|
|
83
|
+
* @param props zone dns settings properties
|
|
84
|
+
* @see [CDKTF Zone Dns Settings Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/dnsZoneSettings.typescript.md}
|
|
84
85
|
*/
|
|
85
|
-
|
|
86
|
+
createZoneDnsSettings(id: string, scope: CommonCloudflareConstruct, props: ZoneSettingProps): ZoneDnsSettings;
|
|
87
|
+
/**
|
|
88
|
+
* @summary Method to create a new zone setting
|
|
89
|
+
* @param id scoped id of the resource
|
|
90
|
+
* @param scope scope in which this resource is defined
|
|
91
|
+
* @param props zone setting properties
|
|
92
|
+
* @see [CDKTF Zone Setting Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/zoneSetting.typescript.md}
|
|
93
|
+
*/
|
|
94
|
+
createZoneSetting(id: string, scope: CommonCloudflareConstruct, props: ZoneSettingProps): ZoneSetting;
|
|
86
95
|
}
|
|
@@ -8,7 +8,8 @@ const zone_cache_variants_1 = require("@cdktf/provider-cloudflare/lib/zone-cache
|
|
|
8
8
|
const zone_dnssec_1 = require("@cdktf/provider-cloudflare/lib/zone-dnssec");
|
|
9
9
|
const zone_hold_1 = require("@cdktf/provider-cloudflare/lib/zone-hold");
|
|
10
10
|
const zone_lockdown_1 = require("@cdktf/provider-cloudflare/lib/zone-lockdown");
|
|
11
|
-
const
|
|
11
|
+
const zone_setting_1 = require("@cdktf/provider-cloudflare/lib/zone-setting");
|
|
12
|
+
const zone_dns_settings_1 = require("@cdktf/provider-cloudflare/lib/zone-dns-settings");
|
|
12
13
|
const utils_1 = require("../../utils");
|
|
13
14
|
/**
|
|
14
15
|
* @classdesc Provides operations on Cloudflare Zone
|
|
@@ -40,19 +41,24 @@ class CloudflareZoneManager {
|
|
|
40
41
|
throw `Props undefined for ${id}`;
|
|
41
42
|
const zone = new zone_1.Zone(scope, `${id}`, {
|
|
42
43
|
...props,
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
account: {
|
|
45
|
+
id: props.account.id ?? scope.props.accountId,
|
|
46
|
+
},
|
|
47
|
+
name: props.name ?? scope.props.domainName,
|
|
45
48
|
});
|
|
46
|
-
(0, utils_1.createCloudflareTfOutput)(`${id}-zoneName`, scope, zone.
|
|
49
|
+
(0, utils_1.createCloudflareTfOutput)(`${id}-zoneName`, scope, zone.name);
|
|
47
50
|
(0, utils_1.createCloudflareTfOutput)(`${id}-zoneFriendlyUniqueId`, scope, zone.friendlyUniqueId);
|
|
48
51
|
(0, utils_1.createCloudflareTfOutput)(`${id}-zoneId`, scope, zone.id);
|
|
49
52
|
return zone;
|
|
50
53
|
}
|
|
51
54
|
resolveZone(id, scope, options) {
|
|
52
55
|
const zone = new data_cloudflare_zone_1.DataCloudflareZone(scope, `${id}-data-zone`, {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
filter: {
|
|
57
|
+
account: {
|
|
58
|
+
name: options?.name ?? scope.props.domainName,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
zoneId: options?.zoneId,
|
|
56
62
|
});
|
|
57
63
|
return zone;
|
|
58
64
|
}
|
|
@@ -162,25 +168,45 @@ class CloudflareZoneManager {
|
|
|
162
168
|
return zoneLockdown;
|
|
163
169
|
}
|
|
164
170
|
/**
|
|
165
|
-
* @summary Method to create
|
|
171
|
+
* @summary Method to create new zone dns settings
|
|
166
172
|
* @param id scoped id of the resource
|
|
167
173
|
* @param scope scope in which this resource is defined
|
|
168
|
-
* @param props zone settings
|
|
169
|
-
* @see [CDKTF Zone Settings
|
|
174
|
+
* @param props zone dns settings properties
|
|
175
|
+
* @see [CDKTF Zone Dns Settings Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/dnsZoneSettings.typescript.md}
|
|
170
176
|
*/
|
|
171
|
-
|
|
177
|
+
createZoneDnsSettings(id, scope, props) {
|
|
172
178
|
if (!props)
|
|
173
179
|
throw `Props undefined for ${id}`;
|
|
174
180
|
const zoneId = props.zoneId
|
|
175
181
|
? props.zoneId
|
|
176
182
|
: this.resolveZone(`${id}-data-zone`, scope, { name: scope.props.domainName })?.id;
|
|
177
|
-
const
|
|
183
|
+
const zoneDnsSettings = new zone_dns_settings_1.ZoneDnsSettings(scope, `${id}`, {
|
|
178
184
|
...props,
|
|
179
185
|
zoneId,
|
|
180
186
|
});
|
|
181
|
-
(0, utils_1.createCloudflareTfOutput)(`${id}-
|
|
182
|
-
|
|
183
|
-
|
|
187
|
+
(0, utils_1.createCloudflareTfOutput)(`${id}-zoneDnsSettingsFriendlyUniqueId`, scope, zoneDnsSettings.friendlyUniqueId);
|
|
188
|
+
return zoneDnsSettings;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* @summary Method to create a new zone setting
|
|
192
|
+
* @param id scoped id of the resource
|
|
193
|
+
* @param scope scope in which this resource is defined
|
|
194
|
+
* @param props zone setting properties
|
|
195
|
+
* @see [CDKTF Zone Setting Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/zoneSetting.typescript.md}
|
|
196
|
+
*/
|
|
197
|
+
createZoneSetting(id, scope, props) {
|
|
198
|
+
if (!props)
|
|
199
|
+
throw `Props undefined for ${id}`;
|
|
200
|
+
const zoneId = props.zoneId
|
|
201
|
+
? props.zoneId
|
|
202
|
+
: this.resolveZone(`${id}-data-zone`, scope, { name: scope.props.domainName })?.id;
|
|
203
|
+
const zoneSetting = new zone_setting_1.ZoneSetting(scope, `${id}`, {
|
|
204
|
+
...props,
|
|
205
|
+
zoneId,
|
|
206
|
+
});
|
|
207
|
+
(0, utils_1.createCloudflareTfOutput)(`${id}-zoneSettingFriendlyUniqueId`, scope, zoneSetting.friendlyUniqueId);
|
|
208
|
+
(0, utils_1.createCloudflareTfOutput)(`${id}-zoneSettingId`, scope, zoneSetting.id);
|
|
209
|
+
return zoneSetting;
|
|
184
210
|
}
|
|
185
211
|
}
|
|
186
212
|
exports.CloudflareZoneManager = CloudflareZoneManager;
|
|
@@ -4,10 +4,12 @@ import { ZoneCacheVariantsConfig } from '@cdktf/provider-cloudflare/lib/zone-cac
|
|
|
4
4
|
import { ZoneDnssecConfig } from '@cdktf/provider-cloudflare/lib/zone-dnssec';
|
|
5
5
|
import { ZoneHoldConfig } from '@cdktf/provider-cloudflare/lib/zone-hold';
|
|
6
6
|
import { ZoneLockdownConfig } from '@cdktf/provider-cloudflare/lib/zone-lockdown';
|
|
7
|
-
import {
|
|
7
|
+
import { ZoneSettingConfig } from '@cdktf/provider-cloudflare/lib/zone-setting';
|
|
8
|
+
import { ZoneDnsSettingsConfig } from '@cdktf/provider-cloudflare/lib/zone-dns-settings';
|
|
9
|
+
import { DataCloudflareZoneConfig } from '@cdktf/provider-cloudflare/lib/data-cloudflare-zone';
|
|
8
10
|
export interface ZoneProps extends ZoneConfig {
|
|
9
11
|
}
|
|
10
|
-
export interface ZoneOptions {
|
|
12
|
+
export interface ZoneOptions extends DataCloudflareZoneConfig {
|
|
11
13
|
id?: string;
|
|
12
14
|
name?: string;
|
|
13
15
|
}
|
|
@@ -21,5 +23,7 @@ export interface ZoneHoldProps extends ZoneHoldConfig {
|
|
|
21
23
|
}
|
|
22
24
|
export interface ZoneLockdownProps extends ZoneLockdownConfig {
|
|
23
25
|
}
|
|
24
|
-
export interface
|
|
26
|
+
export interface ZoneSettingProps extends ZoneSettingConfig {
|
|
27
|
+
}
|
|
28
|
+
export interface ZoneDnsSettingsProps extends ZoneDnsSettingsConfig {
|
|
25
29
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gradientedge/cdk-utils",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.53.0",
|
|
4
4
|
"description": "Utilities for AWS CDK provisioning",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"engines": {
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@aws-sdk/types": "^3.775.0",
|
|
56
56
|
"@cdktf/provider-aws": "^19.58.0",
|
|
57
57
|
"@cdktf/provider-azurerm": "^13.23.0",
|
|
58
|
-
"@cdktf/provider-cloudflare": "^
|
|
58
|
+
"@cdktf/provider-cloudflare": "^12.3.0",
|
|
59
59
|
"@types/lodash": "^4.17.16",
|
|
60
60
|
"@types/node": "^22.13.13",
|
|
61
61
|
"@types/uuid": "^10.0.0",
|
|
@@ -7,6 +7,7 @@ import { StorageContainer } from '@cdktf/provider-azurerm/lib/storage-container'
|
|
|
7
7
|
import { CommonAzureConstruct } from '../../common'
|
|
8
8
|
import { createAzureTfOutput } from '../../utils'
|
|
9
9
|
import { StorageAccountProps, StorageBlobProps, StorageContainerProps } from './types'
|
|
10
|
+
import { DataAzurermStorageAccountBlobContainerSas } from '@cdktf/provider-azurerm/lib/data-azurerm-storage-account-blob-container-sas'
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* @classdesc Provides operations on Azure Storage
|
|
@@ -129,4 +130,59 @@ export class AzureStorageManager {
|
|
|
129
130
|
|
|
130
131
|
return storageBlob
|
|
131
132
|
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @summary Generates a container-level SAS token for an existing Azure Storage container.
|
|
136
|
+
*
|
|
137
|
+
* @description
|
|
138
|
+
* This method creates a `DataAzurermStorageAccountBlobContainerSas` resource, allowing secure access
|
|
139
|
+
* to a container via a generated Shared Access Signature (SAS) token.
|
|
140
|
+
*
|
|
141
|
+
* @param id - Unique scoped identifier for the SAS token resource
|
|
142
|
+
* @param scope - CDKTF construct scope in which the resource will be created
|
|
143
|
+
* @param props - Container details and SAS options:
|
|
144
|
+
* - storageAccountName: The name of the existing Azure Storage Account
|
|
145
|
+
* - storageContainerName: The name of the container within the storage account
|
|
146
|
+
* - resourceGroupName: The name of the resource group containing the storage account
|
|
147
|
+
* - sasExpiry: Optional expiry date in the format 'YYYY-MM-DD'. Defaults to 7 days from current date if not provided.
|
|
148
|
+
*
|
|
149
|
+
* @returns A `DataAzurermStorageAccountBlobContainerSas` instance with the generated SAS token
|
|
150
|
+
*
|
|
151
|
+
* @see https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/storage_account_blob_container_sas
|
|
152
|
+
*/
|
|
153
|
+
public generateContainerSasToken(
|
|
154
|
+
id: string,
|
|
155
|
+
scope: CommonAzureConstruct,
|
|
156
|
+
props: {
|
|
157
|
+
storageAccountName: string
|
|
158
|
+
storageContainerName: string
|
|
159
|
+
resourceGroupName: string
|
|
160
|
+
sasExpiry?: string
|
|
161
|
+
}
|
|
162
|
+
): DataAzurermStorageAccountBlobContainerSas {
|
|
163
|
+
const storageAccountLookup = new DataAzurermStorageAccount(scope, `${id}-lookup-sa`, {
|
|
164
|
+
name: props.storageAccountName,
|
|
165
|
+
resourceGroupName: props.resourceGroupName,
|
|
166
|
+
})
|
|
167
|
+
|
|
168
|
+
const containerSas = new DataAzurermStorageAccountBlobContainerSas(scope, `${id}-sas`, {
|
|
169
|
+
connectionString: storageAccountLookup.primaryConnectionString,
|
|
170
|
+
containerName: props.storageContainerName,
|
|
171
|
+
httpsOnly: true,
|
|
172
|
+
start: new Date().toISOString().split('T')[0],
|
|
173
|
+
expiry: props.sasExpiry ?? new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString().split('T')[0],
|
|
174
|
+
permissions: {
|
|
175
|
+
read: true,
|
|
176
|
+
add: false,
|
|
177
|
+
create: false,
|
|
178
|
+
delete: false,
|
|
179
|
+
list: false,
|
|
180
|
+
write: false,
|
|
181
|
+
},
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
createAzureTfOutput(`${id}-sas-token`, scope, containerSas.sas, 'output', true)
|
|
185
|
+
|
|
186
|
+
return containerSas
|
|
187
|
+
}
|
|
132
188
|
}
|
|
@@ -7,4 +7,10 @@ export interface StorageAccountProps extends StorageAccountConfig {}
|
|
|
7
7
|
|
|
8
8
|
export interface StorageContainerProps extends BaseAzureConfigProps, StorageContainerConfig {}
|
|
9
9
|
|
|
10
|
-
export interface StorageBlobProps extends BaseAzureConfigProps, StorageBlobConfig {
|
|
10
|
+
export interface StorageBlobProps extends BaseAzureConfigProps, StorageBlobConfig {
|
|
11
|
+
/**
|
|
12
|
+
* Optional ISO date string representing the expiry date for the SAS token.
|
|
13
|
+
* Format: 'YYYY-MM-DD' (e.g., '2025-05-01')
|
|
14
|
+
*/
|
|
15
|
+
sasExpiry?: string
|
|
16
|
+
}
|
|
@@ -4,8 +4,12 @@ import { DataAzurermKeyVault } from '@cdktf/provider-azurerm/lib/data-azurerm-ke
|
|
|
4
4
|
import { DataAzurermKeyVaultSecret } from '@cdktf/provider-azurerm/lib/data-azurerm-key-vault-secret'
|
|
5
5
|
import { DataCloudflareZone } from '@cdktf/provider-cloudflare/lib/data-cloudflare-zone'
|
|
6
6
|
import { PagesDomain } from '@cdktf/provider-cloudflare/lib/pages-domain'
|
|
7
|
-
import {
|
|
8
|
-
|
|
7
|
+
import {
|
|
8
|
+
PagesProject,
|
|
9
|
+
PagesProjectDeploymentConfigsPreviewEnvVars,
|
|
10
|
+
PagesProjectDeploymentConfigsProductionEnvVars,
|
|
11
|
+
} from '@cdktf/provider-cloudflare/lib/pages-project'
|
|
12
|
+
import { DnsRecord } from '@cdktf/provider-cloudflare/lib/dns-record'
|
|
9
13
|
import { Zone } from '@cdktf/provider-cloudflare/lib/zone'
|
|
10
14
|
import { Fn } from 'cdktf'
|
|
11
15
|
import { Construct } from 'constructs'
|
|
@@ -31,14 +35,14 @@ export class CloudflarePagesStaticSite extends CommonCloudflareConstruct {
|
|
|
31
35
|
declare props: CloudflarePagesStaticSiteProps
|
|
32
36
|
|
|
33
37
|
/* static site resources */
|
|
34
|
-
sitePagesCnameRecord:
|
|
38
|
+
sitePagesCnameRecord: DnsRecord
|
|
35
39
|
sitePagesDomain: PagesDomain
|
|
36
40
|
sitePagesProject: PagesProject
|
|
37
41
|
siteZone: DataCloudflareZone | Zone
|
|
38
|
-
sitePagesEnvironmentVariables: { [key: string]:
|
|
39
|
-
sitePagesPreviewEnvironmentVariables: { [key: string]:
|
|
40
|
-
sitePagesSecrets: { [key: string]:
|
|
41
|
-
sitePagesPreviewSecrets: { [key: string]:
|
|
42
|
+
sitePagesEnvironmentVariables: { [key: string]: PagesProjectDeploymentConfigsProductionEnvVars }
|
|
43
|
+
sitePagesPreviewEnvironmentVariables: { [key: string]: PagesProjectDeploymentConfigsPreviewEnvVars }
|
|
44
|
+
sitePagesSecrets: { [key: string]: PagesProjectDeploymentConfigsProductionEnvVars }
|
|
45
|
+
sitePagesPreviewSecrets: { [key: string]: PagesProjectDeploymentConfigsPreviewEnvVars }
|
|
42
46
|
siteDeploymentDependsOn: any
|
|
43
47
|
|
|
44
48
|
constructor(parent: Construct, id: string, props: CloudflarePagesStaticSiteProps) {
|
|
@@ -79,10 +83,10 @@ export class CloudflarePagesStaticSite extends CommonCloudflareConstruct {
|
|
|
79
83
|
...this.props.sitePagesProject,
|
|
80
84
|
deploymentConfigs: {
|
|
81
85
|
preview: {
|
|
82
|
-
|
|
86
|
+
envVars: this.sitePagesPreviewSecrets,
|
|
83
87
|
},
|
|
84
88
|
production: {
|
|
85
|
-
|
|
89
|
+
envVars: this.sitePagesSecrets,
|
|
86
90
|
},
|
|
87
91
|
},
|
|
88
92
|
}
|
|
@@ -96,10 +100,10 @@ export class CloudflarePagesStaticSite extends CommonCloudflareConstruct {
|
|
|
96
100
|
...this.props.sitePagesProject,
|
|
97
101
|
deploymentConfigs: {
|
|
98
102
|
preview: {
|
|
99
|
-
|
|
103
|
+
envVars: this.sitePagesPreviewEnvironmentVariables,
|
|
100
104
|
},
|
|
101
105
|
production: {
|
|
102
|
-
|
|
106
|
+
envVars: this.sitePagesEnvironmentVariables,
|
|
103
107
|
},
|
|
104
108
|
},
|
|
105
109
|
}
|
|
@@ -170,7 +174,7 @@ export class CloudflarePagesStaticSite extends CommonCloudflareConstruct {
|
|
|
170
174
|
protected createDomain() {
|
|
171
175
|
this.sitePagesDomain = this.pageManager.createPagesDomain(`${this.id}-site-domain`, this, {
|
|
172
176
|
accountId: this.props.accountId,
|
|
173
|
-
|
|
177
|
+
name: `${this.props.siteSubDomain}.${this.props.domainName}`,
|
|
174
178
|
projectName: this.sitePagesProject.name,
|
|
175
179
|
})
|
|
176
180
|
}
|
|
@@ -182,7 +186,10 @@ export class CloudflarePagesStaticSite extends CommonCloudflareConstruct {
|
|
|
182
186
|
this.sitePagesCnameRecord = this.recordManager.createRecord(`${this.id}-site-record`, this, {
|
|
183
187
|
...this.props.siteCnameRecord,
|
|
184
188
|
name: this.props.siteSubDomain,
|
|
185
|
-
|
|
189
|
+
data: {
|
|
190
|
+
...this.props.siteCnameRecord.data,
|
|
191
|
+
value: `${this.sitePagesProject.name}.pages.dev`,
|
|
192
|
+
},
|
|
186
193
|
})
|
|
187
194
|
}
|
|
188
195
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { CommonCloudflareStackProps } from '../../common'
|
|
2
|
-
import { PagesProjectProps,
|
|
2
|
+
import { PagesProjectProps, DnsRecordProps, ZoneProps } from '../../services'
|
|
3
3
|
|
|
4
4
|
export interface CloudflarePagesStaticSiteProps extends CommonCloudflareStackProps {
|
|
5
5
|
siteAssetDir: string
|
|
6
6
|
siteBranch?: string
|
|
7
|
-
siteCnameRecord:
|
|
7
|
+
siteCnameRecord: DnsRecordProps
|
|
8
8
|
siteDeployMessage: string
|
|
9
9
|
sitePagesProject: PagesProjectProps
|
|
10
10
|
siteSubDomain: string
|
|
@@ -3,11 +3,7 @@ import { DataAwsSecretsmanagerSecretVersion } from '@cdktf/provider-aws/lib/data
|
|
|
3
3
|
import { DataAzurermKeyVault } from '@cdktf/provider-azurerm/lib/data-azurerm-key-vault'
|
|
4
4
|
import { DataAzurermKeyVaultSecret } from '@cdktf/provider-azurerm/lib/data-azurerm-key-vault-secret'
|
|
5
5
|
import { DataCloudflareZone } from '@cdktf/provider-cloudflare/lib/data-cloudflare-zone'
|
|
6
|
-
import {
|
|
7
|
-
WorkerScript,
|
|
8
|
-
WorkerScriptPlainTextBinding,
|
|
9
|
-
WorkerScriptSecretTextBinding,
|
|
10
|
-
} from '@cdktf/provider-cloudflare/lib/worker-script'
|
|
6
|
+
import { WorkersScript, WorkersScriptBindings } from '@cdktf/provider-cloudflare/lib/workers-script'
|
|
11
7
|
import { Zone } from '@cdktf/provider-cloudflare/lib/zone'
|
|
12
8
|
import { Fn, TerraformAsset, AssetType } from 'cdktf'
|
|
13
9
|
import { Construct } from 'constructs'
|
|
@@ -34,9 +30,9 @@ export class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
34
30
|
|
|
35
31
|
/* worker site resources */
|
|
36
32
|
siteZone: DataCloudflareZone | Zone
|
|
37
|
-
siteWorkerScript:
|
|
38
|
-
workerPlainTextBindingEnvironmentVariables:
|
|
39
|
-
workerSecretTextBindingEnvironmentVariables:
|
|
33
|
+
siteWorkerScript: WorkersScript
|
|
34
|
+
workerPlainTextBindingEnvironmentVariables: WorkersScriptBindings[] = []
|
|
35
|
+
workerSecretTextBindingEnvironmentVariables: WorkersScriptBindings[] = []
|
|
40
36
|
|
|
41
37
|
constructor(parent: Construct, id: string, props: CloudflareWorkerSiteProps) {
|
|
42
38
|
super(parent, id, props)
|
|
@@ -53,7 +49,7 @@ export class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
53
49
|
this.createWorker()
|
|
54
50
|
this.createWorkerDomain()
|
|
55
51
|
this.createRuleset()
|
|
56
|
-
this.
|
|
52
|
+
this.createZoneSetting()
|
|
57
53
|
}
|
|
58
54
|
|
|
59
55
|
/**
|
|
@@ -73,8 +69,9 @@ export class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
73
69
|
protected resolveEnvironmentVariables() {
|
|
74
70
|
this.props.siteWorkerScript = {
|
|
75
71
|
...this.props.siteWorkerScript,
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
bindings: this.workerPlainTextBindingEnvironmentVariables.concat(
|
|
73
|
+
this.workerSecretTextBindingEnvironmentVariables
|
|
74
|
+
),
|
|
78
75
|
}
|
|
79
76
|
}
|
|
80
77
|
|
|
@@ -100,7 +97,7 @@ export class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
100
97
|
this.workerManager.createWorkerDomain(`${this.id}-worker-domain`, this, {
|
|
101
98
|
...this.props.siteWorkerDomain,
|
|
102
99
|
hostname: `${this.props.siteSubDomain}.${this.props.domainName}`,
|
|
103
|
-
service: this.siteWorkerScript.
|
|
100
|
+
service: this.siteWorkerScript.scriptName,
|
|
104
101
|
})
|
|
105
102
|
}
|
|
106
103
|
|
|
@@ -168,12 +165,8 @@ export class CloudflareWorkerSite extends CommonCloudflareConstruct {
|
|
|
168
165
|
/**
|
|
169
166
|
* @summary Create zone settings override
|
|
170
167
|
*/
|
|
171
|
-
protected
|
|
172
|
-
if (!this.props.
|
|
173
|
-
this.zoneManager.
|
|
174
|
-
`${this.id}-zone-settings-override`,
|
|
175
|
-
this,
|
|
176
|
-
this.props.siteZoneSettingsOverride
|
|
177
|
-
)
|
|
168
|
+
protected createZoneSetting() {
|
|
169
|
+
if (!this.props.siteZoneSetting) return
|
|
170
|
+
this.zoneManager.createZoneSetting(`${this.id}-zone-setting`, this, this.props.siteZoneSetting)
|
|
178
171
|
}
|
|
179
172
|
}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { CommonCloudflareStackProps } from '../../common'
|
|
2
|
-
import {
|
|
3
|
-
WorkerDomainProps,
|
|
4
|
-
WorkerScriptProps,
|
|
5
|
-
RulesetProps,
|
|
6
|
-
ZoneProps,
|
|
7
|
-
ZoneSettingsOverrideProps,
|
|
8
|
-
} from '../../services'
|
|
2
|
+
import { WorkerDomainProps, WorkerScriptProps, RulesetProps, ZoneProps, ZoneSettingProps } from '../../services'
|
|
9
3
|
|
|
10
4
|
export interface CloudflareWorkerSiteProps extends CommonCloudflareStackProps {
|
|
11
5
|
siteSubDomain: string
|
|
@@ -14,5 +8,5 @@ export interface CloudflareWorkerSiteProps extends CommonCloudflareStackProps {
|
|
|
14
8
|
siteWorkerDomain: WorkerDomainProps
|
|
15
9
|
siteWorkerAsset: string
|
|
16
10
|
siteRuleSet: RulesetProps
|
|
17
|
-
|
|
11
|
+
siteZoneSetting: ZoneSettingProps
|
|
18
12
|
}
|