@jaggr2/cdk-cf-dns 0.1.2 → 0.2.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/lib/handler/cloudflare.d.ts +6 -0
- package/lib/handler/cloudflare.js +9 -0
- package/lib/handler/cloudflare.js.map +1 -1
- package/lib/handler/index.js +2 -2
- package/lib/handler/index.js.map +1 -1
- package/package.json +1 -1
- package/src/handler/cloudflare.ts +9 -0
- package/src/handler/index.ts +3 -2
|
@@ -65,6 +65,12 @@ export declare function log(...args: unknown[]): void;
|
|
|
65
65
|
* @param secretArn The ARN of the secret holding the token.
|
|
66
66
|
*/
|
|
67
67
|
export declare function getApiToken(secretArn: string): Promise<string>;
|
|
68
|
+
/**
|
|
69
|
+
* Returns true when a boolean custom resource property is true. CloudFormation
|
|
70
|
+
* delivers nested property values stringified, so `false` arrives as the string
|
|
71
|
+
* `"false"` (which is truthy in JavaScript); this treats it correctly.
|
|
72
|
+
*/
|
|
73
|
+
export declare function isTrue(value: unknown): boolean;
|
|
68
74
|
/**
|
|
69
75
|
* A Cloudflare API error, carrying the HTTP status and the error payload so the
|
|
70
76
|
* lifecycle logic can inspect specific error codes.
|
|
@@ -4,6 +4,7 @@ exports.CloudflareApiError = exports.RECORD_ID_PATTERN = exports.BACKOFF_CAP_MS
|
|
|
4
4
|
exports.redact = redact;
|
|
5
5
|
exports.log = log;
|
|
6
6
|
exports.getApiToken = getApiToken;
|
|
7
|
+
exports.isTrue = isTrue;
|
|
7
8
|
exports.request = request;
|
|
8
9
|
exports.assertSuccess = assertSuccess;
|
|
9
10
|
exports.isAlreadyExists = isAlreadyExists;
|
|
@@ -109,6 +110,14 @@ async function getApiToken(secretArn) {
|
|
|
109
110
|
secretCache.set(secretArn, token);
|
|
110
111
|
return token;
|
|
111
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Returns true when a boolean custom resource property is true. CloudFormation
|
|
115
|
+
* delivers nested property values stringified, so `false` arrives as the string
|
|
116
|
+
* `"false"` (which is truthy in JavaScript); this treats it correctly.
|
|
117
|
+
*/
|
|
118
|
+
function isTrue(value) {
|
|
119
|
+
return value === true || value === 'true';
|
|
120
|
+
}
|
|
112
121
|
/**
|
|
113
122
|
* A Cloudflare API error, carrying the HTTP status and the error payload so the
|
|
114
123
|
* lifecycle logic can inspect specific error codes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/handler/cloudflare.ts"],"names":[],"mappings":";;;AAoEA,wBAeC;AAKD,kBAEC;AASD,kCAgCC;AA2BD,0BAsDC;AA+BD,sCAIC;AAKD,0CASC;AAKD,oDAEC;AAUD,gDAsBC;AAKD,oCAIC;AAKD,gCAKC;
|
|
1
|
+
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../src/handler/cloudflare.ts"],"names":[],"mappings":"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"}
|
package/lib/handler/index.js
CHANGED
|
@@ -13,7 +13,7 @@ async function onCreate(event) {
|
|
|
13
13
|
(0, cloudflare_1.log)('create', { zoneId, name: payload.name, type: payload.type });
|
|
14
14
|
const response = await (0, cloudflare_1.request)(`/zones/${zoneId}/dns_records`, { method: 'POST', token, body: payload });
|
|
15
15
|
if ((0, cloudflare_1.isAlreadyExists)(response)) {
|
|
16
|
-
if (!properties.adoptExisting) {
|
|
16
|
+
if (!(0, cloudflare_1.isTrue)(properties.adoptExisting)) {
|
|
17
17
|
throw new Error(`DNS record ${String(payload.name)} (${String(payload.type)}) already exists in zone ${zoneId}. ` +
|
|
18
18
|
'Either delete it in the Cloudflare dashboard, or set adoptExisting: true to adopt and manage it.');
|
|
19
19
|
}
|
|
@@ -66,7 +66,7 @@ async function onDelete(event) {
|
|
|
66
66
|
const properties = event.ResourceProperties;
|
|
67
67
|
const zoneId = String(properties.zoneId);
|
|
68
68
|
const physicalId = event.PhysicalResourceId;
|
|
69
|
-
if (properties.retainOnDelete) {
|
|
69
|
+
if ((0, cloudflare_1.isTrue)(properties.retainOnDelete)) {
|
|
70
70
|
(0, cloudflare_1.log)('delete', { message: 'retainOnDelete set; leaving record in Cloudflare', zoneId });
|
|
71
71
|
return { PhysicalResourceId: physicalId, Data: {} };
|
|
72
72
|
}
|
package/lib/handler/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handler/index.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handler/index.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.
|
|
3
|
+
"version": "0.2.0",
|
|
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",
|
|
@@ -131,6 +131,15 @@ export async function getApiToken(secretArn: string): Promise<string> {
|
|
|
131
131
|
return token;
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
+
/**
|
|
135
|
+
* Returns true when a boolean custom resource property is true. CloudFormation
|
|
136
|
+
* delivers nested property values stringified, so `false` arrives as the string
|
|
137
|
+
* `"false"` (which is truthy in JavaScript); this treats it correctly.
|
|
138
|
+
*/
|
|
139
|
+
export function isTrue(value: unknown): boolean {
|
|
140
|
+
return value === true || value === 'true';
|
|
141
|
+
}
|
|
142
|
+
|
|
134
143
|
/**
|
|
135
144
|
* A Cloudflare API error, carrying the HTTP status and the error payload so the
|
|
136
145
|
* lifecycle logic can inspect specific error codes.
|
package/src/handler/index.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
getApiToken,
|
|
8
8
|
isAlreadyExists,
|
|
9
9
|
isRecordDoesNotExist,
|
|
10
|
+
isTrue,
|
|
10
11
|
log,
|
|
11
12
|
RECORD_ID_PATTERN,
|
|
12
13
|
request,
|
|
@@ -26,7 +27,7 @@ async function onCreate(event: CloudFormationCustomResourceCreateEvent): Promise
|
|
|
26
27
|
const response = await request(`/zones/${zoneId}/dns_records`, { method: 'POST', token, body: payload });
|
|
27
28
|
|
|
28
29
|
if (isAlreadyExists(response)) {
|
|
29
|
-
if (!properties.adoptExisting) {
|
|
30
|
+
if (!isTrue(properties.adoptExisting)) {
|
|
30
31
|
throw new Error(
|
|
31
32
|
`DNS record ${String(payload.name)} (${String(payload.type)}) already exists in zone ${zoneId}. ` +
|
|
32
33
|
'Either delete it in the Cloudflare dashboard, or set adoptExisting: true to adopt and manage it.',
|
|
@@ -92,7 +93,7 @@ async function onDelete(event: CloudFormationCustomResourceDeleteEvent): Promise
|
|
|
92
93
|
const zoneId = String(properties.zoneId);
|
|
93
94
|
const physicalId = event.PhysicalResourceId;
|
|
94
95
|
|
|
95
|
-
if (properties.retainOnDelete) {
|
|
96
|
+
if (isTrue(properties.retainOnDelete)) {
|
|
96
97
|
log('delete', { message: 'retainOnDelete set; leaving record in Cloudflare', zoneId });
|
|
97
98
|
return { PhysicalResourceId: physicalId, Data: {} };
|
|
98
99
|
}
|