@jaggr2/cdk-cf-dns 0.1.0 → 0.1.2

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.
@@ -121,6 +121,10 @@ export declare function isRecordDoesNotExist(response: {
121
121
  /**
122
122
  * Builds the DNS record payload sent to the Cloudflare API from the custom
123
123
  * resource properties.
124
+ *
125
+ * CloudFormation can deliver nested custom resource properties with stringified
126
+ * values (e.g. `ttl: "300"`), so numeric and boolean fields are coerced back to
127
+ * their real types before the payload is sent.
124
128
  */
125
129
  export declare function buildRecordPayload(properties: Record<string, unknown>): Record<string, unknown>;
126
130
  /**
@@ -233,13 +233,28 @@ function isRecordDoesNotExist(response) {
233
233
  /**
234
234
  * Builds the DNS record payload sent to the Cloudflare API from the custom
235
235
  * resource properties.
236
+ *
237
+ * CloudFormation can deliver nested custom resource properties with stringified
238
+ * values (e.g. `ttl: "300"`), so numeric and boolean fields are coerced back to
239
+ * their real types before the payload is sent.
236
240
  */
237
241
  function buildRecordPayload(properties) {
238
242
  const record = (properties.record ?? {});
239
243
  const payload = {};
240
244
  for (const key of ['name', 'type', 'content', 'data', 'ttl', 'proxied', 'priority', 'comment', 'tags']) {
241
- if (record[key] !== undefined) {
242
- payload[key] = record[key];
245
+ if (record[key] === undefined) {
246
+ continue;
247
+ }
248
+ switch (key) {
249
+ case 'ttl':
250
+ case 'priority':
251
+ payload[key] = Number(record[key]);
252
+ break;
253
+ case 'proxied':
254
+ payload[key] = record[key] === true || record[key] === 'true';
255
+ break;
256
+ default:
257
+ payload[key] = record[key];
243
258
  }
244
259
  }
245
260
  return payload;
@@ -1 +1 @@
1
- {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/handler/cloudflare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/handler/cloudflare.ts"],"names":[],"mappings":"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"}
package/lib/provider.d.ts CHANGED
@@ -33,6 +33,10 @@ export declare class CloudflareDnsProvider extends Construct {
33
33
  * Grants the provider's handler `secretsmanager:GetSecretValue` on the given
34
34
  * secret. Repeated grants of the same secret are deduplicated.
35
35
  *
36
+ * Delegates to `ISecret.grantRead`, which correctly handles partial ARNs for
37
+ * secrets imported by name (Secrets Manager appends a random suffix, so the
38
+ * grant targets `arn:...:secret:<name>-??????`).
39
+ *
36
40
  * @param secret The secret holding a Cloudflare API token.
37
41
  */
38
42
  grantSecretRead(secret: secretsmanager.ISecret): void;
@@ -69,6 +73,10 @@ export declare class CloudflareCertificateProvider extends Construct {
69
73
  * Grants the provider's handler `secretsmanager:GetSecretValue` on the given
70
74
  * secret. Repeated grants of the same secret are deduplicated.
71
75
  *
76
+ * Delegates to `ISecret.grantRead`, which correctly handles partial ARNs for
77
+ * secrets imported by name (Secrets Manager appends a random suffix, so the
78
+ * grant targets `arn:...:secret:<name>-??????`).
79
+ *
72
80
  * @param secret The secret holding a Cloudflare API token.
73
81
  */
74
82
  grantSecretRead(secret: secretsmanager.ISecret): void;
package/lib/provider.js CHANGED
@@ -148,6 +148,10 @@ class CloudflareDnsProvider extends constructs_1.Construct {
148
148
  * Grants the provider's handler `secretsmanager:GetSecretValue` on the given
149
149
  * secret. Repeated grants of the same secret are deduplicated.
150
150
  *
151
+ * Delegates to `ISecret.grantRead`, which correctly handles partial ARNs for
152
+ * secrets imported by name (Secrets Manager appends a random suffix, so the
153
+ * grant targets `arn:...:secret:<name>-??????`).
154
+ *
151
155
  * @param secret The secret holding a Cloudflare API token.
152
156
  */
153
157
  grantSecretRead(secret) {
@@ -156,10 +160,7 @@ class CloudflareDnsProvider extends constructs_1.Construct {
156
160
  return;
157
161
  }
158
162
  this.grantedSecrets.add(arn);
159
- this.handlerRole.addToPrincipalPolicy(new iam.PolicyStatement({
160
- actions: ['secretsmanager:GetSecretValue'],
161
- resources: [arn],
162
- }));
163
+ secret.grantRead(this.handlerRole);
163
164
  }
164
165
  }
165
166
  exports.CloudflareDnsProvider = CloudflareDnsProvider;
@@ -216,6 +217,10 @@ class CloudflareCertificateProvider extends constructs_1.Construct {
216
217
  * Grants the provider's handler `secretsmanager:GetSecretValue` on the given
217
218
  * secret. Repeated grants of the same secret are deduplicated.
218
219
  *
220
+ * Delegates to `ISecret.grantRead`, which correctly handles partial ARNs for
221
+ * secrets imported by name (Secrets Manager appends a random suffix, so the
222
+ * grant targets `arn:...:secret:<name>-??????`).
223
+ *
219
224
  * @param secret The secret holding a Cloudflare API token.
220
225
  */
221
226
  grantSecretRead(secret) {
@@ -224,10 +229,7 @@ class CloudflareCertificateProvider extends constructs_1.Construct {
224
229
  return;
225
230
  }
226
231
  this.grantedSecrets.add(arn);
227
- this.handlerRole.addToPrincipalPolicy(new iam.PolicyStatement({
228
- actions: ['secretsmanager:GetSecretValue'],
229
- resources: [arn],
230
- }));
232
+ secret.grantRead(this.handlerRole);
231
233
  }
232
234
  }
233
235
  exports.CloudflareCertificateProvider = CloudflareCertificateProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/lib/record.js CHANGED
@@ -227,18 +227,28 @@ function resolveRecordName(recordName, zoneName) {
227
227
  return recordName;
228
228
  }
229
229
  /**
230
- * Chunks a TXT record value longer than 255 characters into a series of quoted
231
- * segments, which is how multiple strings are encoded in a single TXT record.
230
+ * Encodes a TXT record value for Cloudflare. TXT content must consist of RFC
231
+ * 1035 "character strings" delimited by double quotes; Cloudflare's dashboard
232
+ * warns when content is not quoted and treats unquoted content as a single
233
+ * string. Values longer than 255 characters are split into a series of quoted
234
+ * segments.
232
235
  */
233
236
  function chunkTxt(type, content) {
234
- if (type !== CloudflareRecordType.TXT || content.length <= 255) {
237
+ if (type !== CloudflareRecordType.TXT) {
235
238
  return content;
236
239
  }
237
240
  const chunks = [];
238
241
  for (let i = 0; i < content.length; i += 255) {
239
242
  chunks.push(content.slice(i, i + 255));
240
243
  }
241
- return chunks.map((chunk) => `"${chunk}"`).join(' ');
244
+ return chunks.map((chunk) => `"${escapeTxt(chunk)}"`).join(' ');
245
+ }
246
+ /**
247
+ * Escapes double quotes and backslashes so the value can be wrapped as a single
248
+ * RFC 1035 quoted string (internal `"` and `\` are escaped with a backslash).
249
+ */
250
+ function escapeTxt(value) {
251
+ return value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
242
252
  }
243
253
  /**
244
254
  * An A record.
package/lib/record.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record.js","sourceRoot":"","sources":["../src/record.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaggr2/cdk-cf-dns",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Manage Cloudflare DNS records as CloudFormation resources from AWS CDK, so Route 53 hosted zones are no longer needed.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -271,14 +271,29 @@ export function isRecordDoesNotExist(response: { status: number; body: Cloudflar
271
271
  /**
272
272
  * Builds the DNS record payload sent to the Cloudflare API from the custom
273
273
  * resource properties.
274
+ *
275
+ * CloudFormation can deliver nested custom resource properties with stringified
276
+ * values (e.g. `ttl: "300"`), so numeric and boolean fields are coerced back to
277
+ * their real types before the payload is sent.
274
278
  */
275
279
  export function buildRecordPayload(properties: Record<string, unknown>): Record<string, unknown> {
276
280
  const record = (properties.record ?? {}) as Record<string, unknown>;
277
281
  const payload: Record<string, unknown> = {};
278
282
 
279
283
  for (const key of ['name', 'type', 'content', 'data', 'ttl', 'proxied', 'priority', 'comment', 'tags']) {
280
- if (record[key] !== undefined) {
281
- payload[key] = record[key];
284
+ if (record[key] === undefined) {
285
+ continue;
286
+ }
287
+ switch (key) {
288
+ case 'ttl':
289
+ case 'priority':
290
+ payload[key] = Number(record[key]);
291
+ break;
292
+ case 'proxied':
293
+ payload[key] = record[key] === true || record[key] === 'true';
294
+ break;
295
+ default:
296
+ payload[key] = record[key];
282
297
  }
283
298
  }
284
299
 
package/src/provider.ts CHANGED
@@ -130,6 +130,10 @@ export class CloudflareDnsProvider extends Construct {
130
130
  * Grants the provider's handler `secretsmanager:GetSecretValue` on the given
131
131
  * secret. Repeated grants of the same secret are deduplicated.
132
132
  *
133
+ * Delegates to `ISecret.grantRead`, which correctly handles partial ARNs for
134
+ * secrets imported by name (Secrets Manager appends a random suffix, so the
135
+ * grant targets `arn:...:secret:<name>-??????`).
136
+ *
133
137
  * @param secret The secret holding a Cloudflare API token.
134
138
  */
135
139
  public grantSecretRead(secret: secretsmanager.ISecret): void {
@@ -138,10 +142,7 @@ export class CloudflareDnsProvider extends Construct {
138
142
  return;
139
143
  }
140
144
  this.grantedSecrets.add(arn);
141
- this.handlerRole.addToPrincipalPolicy(new iam.PolicyStatement({
142
- actions: ['secretsmanager:GetSecretValue'],
143
- resources: [arn],
144
- }));
145
+ secret.grantRead(this.handlerRole);
145
146
  }
146
147
  }
147
148
 
@@ -207,6 +208,10 @@ export class CloudflareCertificateProvider extends Construct {
207
208
  * Grants the provider's handler `secretsmanager:GetSecretValue` on the given
208
209
  * secret. Repeated grants of the same secret are deduplicated.
209
210
  *
211
+ * Delegates to `ISecret.grantRead`, which correctly handles partial ARNs for
212
+ * secrets imported by name (Secrets Manager appends a random suffix, so the
213
+ * grant targets `arn:...:secret:<name>-??????`).
214
+ *
210
215
  * @param secret The secret holding a Cloudflare API token.
211
216
  */
212
217
  public grantSecretRead(secret: secretsmanager.ISecret): void {
@@ -215,9 +220,6 @@ export class CloudflareCertificateProvider extends Construct {
215
220
  return;
216
221
  }
217
222
  this.grantedSecrets.add(arn);
218
- this.handlerRole.addToPrincipalPolicy(new iam.PolicyStatement({
219
- actions: ['secretsmanager:GetSecretValue'],
220
- resources: [arn],
221
- }));
223
+ secret.grantRead(this.handlerRole);
222
224
  }
223
225
  }
package/src/record.ts CHANGED
@@ -308,18 +308,29 @@ export function resolveRecordName(recordName: string | undefined, zoneName: stri
308
308
  }
309
309
 
310
310
  /**
311
- * Chunks a TXT record value longer than 255 characters into a series of quoted
312
- * segments, which is how multiple strings are encoded in a single TXT record.
311
+ * Encodes a TXT record value for Cloudflare. TXT content must consist of RFC
312
+ * 1035 "character strings" delimited by double quotes; Cloudflare's dashboard
313
+ * warns when content is not quoted and treats unquoted content as a single
314
+ * string. Values longer than 255 characters are split into a series of quoted
315
+ * segments.
313
316
  */
314
317
  function chunkTxt(type: CloudflareRecordType, content: string): string {
315
- if (type !== CloudflareRecordType.TXT || content.length <= 255) {
318
+ if (type !== CloudflareRecordType.TXT) {
316
319
  return content;
317
320
  }
318
321
  const chunks: string[] = [];
319
322
  for (let i = 0; i < content.length; i += 255) {
320
323
  chunks.push(content.slice(i, i + 255));
321
324
  }
322
- return chunks.map((chunk) => `"${chunk}"`).join(' ');
325
+ return chunks.map((chunk) => `"${escapeTxt(chunk)}"`).join(' ');
326
+ }
327
+
328
+ /**
329
+ * Escapes double quotes and backslashes so the value can be wrapped as a single
330
+ * RFC 1035 quoted string (internal `"` and `\` are escaped with a backslash).
331
+ */
332
+ function escapeTxt(value: string): string {
333
+ return value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
323
334
  }
324
335
 
325
336
  /**