@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.
Files changed (47) hide show
  1. package/dist/src/lib/azure/services/storage/main.d.ts +26 -0
  2. package/dist/src/lib/azure/services/storage/main.js +43 -0
  3. package/dist/src/lib/azure/services/storage/types.d.ts +5 -0
  4. package/dist/src/lib/cloudflare/construct/pages-static-site/main.d.ts +7 -7
  5. package/dist/src/lib/cloudflare/construct/pages-static-site/main.js +9 -6
  6. package/dist/src/lib/cloudflare/construct/pages-static-site/types.d.ts +2 -2
  7. package/dist/src/lib/cloudflare/construct/worker-site/main.d.ts +5 -5
  8. package/dist/src/lib/cloudflare/construct/worker-site/main.js +8 -9
  9. package/dist/src/lib/cloudflare/construct/worker-site/types.d.ts +2 -2
  10. package/dist/src/lib/cloudflare/services/access/main.d.ts +34 -34
  11. package/dist/src/lib/cloudflare/services/access/main.js +42 -50
  12. package/dist/src/lib/cloudflare/services/access/types.d.ts +20 -20
  13. package/dist/src/lib/cloudflare/services/api-shield/main.js +1 -1
  14. package/dist/src/lib/cloudflare/services/argo/main.d.ts +13 -4
  15. package/dist/src/lib/cloudflare/services/argo/main.js +29 -7
  16. package/dist/src/lib/cloudflare/services/argo/types.d.ts +5 -2
  17. package/dist/src/lib/cloudflare/services/page/main.js +1 -1
  18. package/dist/src/lib/cloudflare/services/record/main.d.ts +4 -4
  19. package/dist/src/lib/cloudflare/services/record/main.js +3 -3
  20. package/dist/src/lib/cloudflare/services/record/types.d.ts +2 -2
  21. package/dist/src/lib/cloudflare/services/rule-set/main.js +3 -1
  22. package/dist/src/lib/cloudflare/services/worker/main.d.ts +12 -12
  23. package/dist/src/lib/cloudflare/services/worker/main.js +20 -16
  24. package/dist/src/lib/cloudflare/services/worker/types.d.ts +8 -8
  25. package/dist/src/lib/cloudflare/services/zone/main.d.ts +15 -6
  26. package/dist/src/lib/cloudflare/services/zone/main.js +41 -15
  27. package/dist/src/lib/cloudflare/services/zone/types.d.ts +7 -3
  28. package/package.json +2 -2
  29. package/src/lib/azure/services/storage/main.ts +56 -0
  30. package/src/lib/azure/services/storage/types.ts +7 -1
  31. package/src/lib/cloudflare/construct/pages-static-site/main.ts +20 -13
  32. package/src/lib/cloudflare/construct/pages-static-site/types.ts +2 -2
  33. package/src/lib/cloudflare/construct/worker-site/main.ts +12 -19
  34. package/src/lib/cloudflare/construct/worker-site/types.ts +2 -8
  35. package/src/lib/cloudflare/services/access/main.ts +73 -72
  36. package/src/lib/cloudflare/services/access/types.ts +20 -20
  37. package/src/lib/cloudflare/services/api-shield/main.ts +1 -1
  38. package/src/lib/cloudflare/services/argo/main.ts +35 -8
  39. package/src/lib/cloudflare/services/argo/types.ts +4 -2
  40. package/src/lib/cloudflare/services/page/main.ts +1 -1
  41. package/src/lib/cloudflare/services/record/main.ts +5 -5
  42. package/src/lib/cloudflare/services/record/types.ts +2 -2
  43. package/src/lib/cloudflare/services/rule-set/main.ts +3 -1
  44. package/src/lib/cloudflare/services/worker/main.ts +20 -16
  45. package/src/lib/cloudflare/services/worker/types.ts +8 -8
  46. package/src/lib/cloudflare/services/zone/main.ts +45 -16
  47. 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 worker_domain_1 = require("@cdktf/provider-cloudflare/lib/worker-domain");
5
- const worker_route_1 = require("@cdktf/provider-cloudflare/lib/worker-route");
6
- const worker_script_1 = require("@cdktf/provider-cloudflare/lib/worker-script");
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 worker_cron_trigger_1 = require("@cdktf/provider-cloudflare/lib/worker-cron-trigger");
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/workerDomain.typescript.md}
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, { name: scope.props.domainName })?.id;
42
- const workerDomain = new worker_domain_1.WorkerDomain(scope, `${id}`, {
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/workerRoute.typescript.md}
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, { name: scope.props.domainName })?.id;
64
- const workerRoute = new worker_route_1.WorkerRoute(scope, `${id}`, {
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
- scriptName: `${props.scriptName}-${scope.props.stage}`,
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/workerScript.typescript.md}
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 worker_script_1.WorkerScript(scope, `${id}`, {
87
+ const workerScript = new workers_script_1.WorkersScript(scope, `${id}`, {
84
88
  ...props,
85
89
  accountId: props.accountId ?? scope.props.accountId,
86
- name: `${props.name}-${scope.props.stage}`,
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/workerCronTrigger.typescript.md}
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 worker_cron_trigger_1.WorkerCronTrigger(scope, `${id}`, {
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 { WorkerCronTriggerConfig } from '@cdktf/provider-cloudflare/lib/worker-cron-trigger';
2
- import { WorkerDomainConfig } from '@cdktf/provider-cloudflare/lib/worker-domain';
3
- import { WorkerRouteConfig } from '@cdktf/provider-cloudflare/lib/worker-route';
4
- import { WorkerScriptConfig } from '@cdktf/provider-cloudflare/lib/worker-script';
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 WorkerDomainConfig {
7
+ export interface WorkerDomainProps extends WorkersCustomDomainConfig {
8
8
  }
9
- export interface WorkerRouteProps extends WorkerRouteConfig {
9
+ export interface WorkerRouteProps extends WorkersRouteConfig {
10
10
  }
11
- export interface WorkerScriptProps extends WorkerScriptConfig {
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 WorkerCronTriggerConfig {
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 { ZoneSettingsOverride } from '@cdktf/provider-cloudflare/lib/zone-settings-override';
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, ZoneSettingsOverrideProps } from './types';
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 a new zone settings override
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 override properties
83
- * @see [CDKTF Zone Settings Override Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/zoneSettingsOverride.typescript.md}
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
- createZoneSettingsOverride(id: string, scope: CommonCloudflareConstruct, props: ZoneSettingsOverrideProps): ZoneSettingsOverride;
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 zone_settings_override_1 = require("@cdktf/provider-cloudflare/lib/zone-settings-override");
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
- accountId: props.accountId ?? scope.props.accountId,
44
- zone: props.zone ?? scope.props.domainName,
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.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
- accountId: scope.props.accountId,
54
- name: options?.name ?? scope.props.domainName,
55
- zoneId: options?.id,
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 a new zone settings override
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 override properties
169
- * @see [CDKTF Zone Settings Override Module]{@link https://github.com/cdktf/cdktf-provider-cloudflare/blob/main/docs/zoneSettingsOverride.typescript.md}
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
- createZoneSettingsOverride(id, scope, props) {
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 zoneSettingsOverride = new zone_settings_override_1.ZoneSettingsOverride(scope, `${id}`, {
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}-zoneSettingsOverrideFriendlyUniqueId`, scope, zoneSettingsOverride.friendlyUniqueId);
182
- (0, utils_1.createCloudflareTfOutput)(`${id}-zoneSettingsOverrideId`, scope, zoneSettingsOverride.id);
183
- return zoneSettingsOverride;
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 { ZoneSettingsOverrideConfig } from '@cdktf/provider-cloudflare/lib/zone-settings-override';
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 ZoneSettingsOverrideProps extends ZoneSettingsOverrideConfig {
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.52.2",
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": "^11.29.0",
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 { PagesProject } from '@cdktf/provider-cloudflare/lib/pages-project'
8
- import { Record } from '@cdktf/provider-cloudflare/lib/record'
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: Record
38
+ sitePagesCnameRecord: DnsRecord
35
39
  sitePagesDomain: PagesDomain
36
40
  sitePagesProject: PagesProject
37
41
  siteZone: DataCloudflareZone | Zone
38
- sitePagesEnvironmentVariables: { [key: string]: string }
39
- sitePagesPreviewEnvironmentVariables: { [key: string]: string }
40
- sitePagesSecrets: { [key: string]: string }
41
- sitePagesPreviewSecrets: { [key: string]: 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
- secrets: this.sitePagesPreviewSecrets,
86
+ envVars: this.sitePagesPreviewSecrets,
83
87
  },
84
88
  production: {
85
- secrets: this.sitePagesSecrets,
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
- environmentVariables: this.sitePagesPreviewEnvironmentVariables,
103
+ envVars: this.sitePagesPreviewEnvironmentVariables,
100
104
  },
101
105
  production: {
102
- environmentVariables: this.sitePagesEnvironmentVariables,
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
- domain: `${this.props.siteSubDomain}.${this.props.domainName}`,
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
- value: `${this.sitePagesProject.name}.pages.dev`,
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, RecordProps, ZoneProps } from '../../services'
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: RecordProps
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: WorkerScript
38
- workerPlainTextBindingEnvironmentVariables: WorkerScriptPlainTextBinding[]
39
- workerSecretTextBindingEnvironmentVariables: WorkerScriptSecretTextBinding[]
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.createZoneSettingsOverride()
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
- plainTextBinding: this.workerPlainTextBindingEnvironmentVariables,
77
- secretTextBinding: this.workerSecretTextBindingEnvironmentVariables,
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.name,
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 createZoneSettingsOverride() {
172
- if (!this.props.siteZoneSettingsOverride) return
173
- this.zoneManager.createZoneSettingsOverride(
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
- siteZoneSettingsOverride: ZoneSettingsOverrideProps
11
+ siteZoneSetting: ZoneSettingProps
18
12
  }