@sanoma-ai/connector-cloudflare 0.1.6 → 0.3.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/README.md +52 -19
- package/dist/connector.d.ts +68 -4
- package/dist/connector.js +109 -4
- package/dist/connector.js.map +1 -1
- package/dist/driver.d.ts +3 -3
- package/dist/driver.js +57 -5
- package/dist/driver.js.map +1 -1
- package/dist/fake.d.ts +18 -2
- package/dist/fake.js +110 -6
- package/dist/fake.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/ops.d.ts +101 -14
- package/dist/ops.js +138 -44
- package/dist/ops.js.map +1 -1
- package/dist/records.d.ts +70 -0
- package/dist/records.js +325 -0
- package/dist/records.js.map +1 -0
- package/dist/resources.d.ts +26 -1
- package/dist/resources.js +4 -3
- package/dist/resources.js.map +1 -1
- package/dist/worker.d.ts +1 -1
- package/dist/worker.js +1 -1
- package/dist/worker.js.map +1 -1
- package/features/records.feature +114 -0
- package/package.json +5 -4
package/dist/ops.js
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
import { setTimeout as delay } from "node:timers/promises";
|
|
2
|
-
import { DriverError, errorMessage, resolveSecrets, retryableStatus, } from "@sanoma-ai/workflows";
|
|
2
|
+
import { DriverError, errorMessage, HOST_URL, isSecret, resolveSecrets, retryableStatus, WAKE_PATH, } from "@sanoma-ai/workflows";
|
|
3
3
|
import { domainsOf, domainsText } from "@sanoma-ai/workflows/shared";
|
|
4
4
|
import { instanceUrl, mintInstanceToken, WAKEUP_TOKEN } from "@sanoma-ai/workflows/wakeup-service";
|
|
5
5
|
import { alarm, container } from "./connector.js";
|
|
6
6
|
import { accountPinned } from "./registry.js";
|
|
7
|
-
import { HEALTH_PATH, IMAGE, MAIN_MODULE, NAMESPACE, OBJECT_CLASS,
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
7
|
+
import { HEALTH_PATH, IMAGE, MAIN_MODULE, NAMESPACE, OBJECT_CLASS, workerModules, } from "./worker.js";
|
|
8
|
+
// Cloudflare as the operations use it (`CloudflareApi`), and the container's and the alarm's
|
|
9
|
+
// operations over it: the driver's calls its API with the SDK and the Worker over HTTP, the
|
|
10
|
+
// fake's answers from its state and its Worker in this process. Both go through `containerOps`
|
|
11
|
+
// and `alarmOps` (and `recordsOps`, in `records.ts`), so they upload, plan and refuse alike.
|
|
11
12
|
/** The Workers runtime the Worker is written for. */
|
|
12
13
|
export const COMPATIBILITY_DATE = "2026-10-01";
|
|
13
14
|
/** The migration that makes the Worker's object class, on its first upload only. */
|
|
14
15
|
export const MIGRATION = { new_tag: "v1", new_sqlite_classes: [OBJECT_CLASS] };
|
|
15
|
-
/**
|
|
16
|
-
* The host's own URL, which the Worker gives the container and `alarm.create` stores: where
|
|
17
|
-
* `alarm.register` sends the wake, as the registration names no host.
|
|
18
|
-
*/
|
|
19
|
-
export const HOST_URL = "SANOMA_HOST_URL";
|
|
20
16
|
/** How long the account may take to prepare an image to run, as Wrangler waits for it. */
|
|
21
17
|
const PREPARE_TIMEOUT_MS = 15 * 60_000;
|
|
22
18
|
/** The plain-text bindings that say what the Worker runs: a read reads them back. */
|
|
@@ -37,7 +33,29 @@ const isOurs = (bindings) => bindings.some((b) => b.type === "durable_object_nam
|
|
|
37
33
|
export const refused = (message, vendorCode) => new DriverError(`cloudflare: ${message}`, { retryable: false, ...(vendorCode && { vendorCode }) });
|
|
38
34
|
/** The company's Worker, named after it. */
|
|
39
35
|
export const scriptOf = (name) => `sanoma-${name}`;
|
|
40
|
-
|
|
36
|
+
/** The zone a hostname is looked up in: its last two labels (`www.acme.example` → `acme.example`). */
|
|
37
|
+
export const apexOf = (hostname) => hostname.split(".").slice(-2).join(".");
|
|
38
|
+
/**
|
|
39
|
+
* The hostnames the Worker's bindings say it was declared to serve (`SANOMA_DOMAINS`): the custom
|
|
40
|
+
* domains that are Sanoma's to detach. One attached by hand and never declared is left alone.
|
|
41
|
+
*/
|
|
42
|
+
const declaredBefore = (bindings) => {
|
|
43
|
+
const text = bindings?.find((b) => b.type === "plain_text" && b.name === TEXT.domains)?.text;
|
|
44
|
+
return new Set(text ? Object.values(domainsOf(text)) : []);
|
|
45
|
+
};
|
|
46
|
+
export const NONE = { unknown: [], replace: [] };
|
|
47
|
+
/**
|
|
48
|
+
* Refuses an update (`what`) whose plan, made again, is not the one approved (`expect`: its
|
|
49
|
+
* action and replace), or is not an update: `plan_changed`.
|
|
50
|
+
*/
|
|
51
|
+
export function replanned(what, fresh, expect) {
|
|
52
|
+
if (expect && (expect.action !== fresh.action || expect.replace.join() !== fresh.replace.join())) {
|
|
53
|
+
throw refused(`${what}: the plan changed (${expect.action}, now ${fresh.action})`, "plan_changed");
|
|
54
|
+
}
|
|
55
|
+
if (fresh.action !== "update" && fresh.action !== "none") {
|
|
56
|
+
throw refused(`${what}: the plan is a ${fresh.action}, not an update`, "plan_changed");
|
|
57
|
+
}
|
|
58
|
+
}
|
|
41
59
|
const sorted = (names) => [...names].toSorted().join(",");
|
|
42
60
|
/** The declared fields a change of which is an update: everything the Worker runs, and the image. */
|
|
43
61
|
const COMPARED = ["image", "source", "ref", "revision", "port", "domains"];
|
|
@@ -64,6 +82,26 @@ const health = async (cf, url, start) => {
|
|
|
64
82
|
const error = typeof body?.error === "string" ? body.error : `${HEALTH_PATH} answered ${res.status}`;
|
|
65
83
|
return { error, exit: typeof body?.exit === "string" };
|
|
66
84
|
};
|
|
85
|
+
/** Whether the full name `name` is in the zone `zone`: the zone's apex or a name under it. */
|
|
86
|
+
export const inZone = (name, zone) => name === zone || name.endsWith(`.${zone}`);
|
|
87
|
+
/**
|
|
88
|
+
* Each hostname's zone id, by hostname, looked up in the account once per apex; a refusal for a
|
|
89
|
+
* hostname whose zone the account does not hold.
|
|
90
|
+
*/
|
|
91
|
+
const zonesOf = async (cf, name, hostnames) => {
|
|
92
|
+
const ids = new Map();
|
|
93
|
+
for (const hostname of hostnames) {
|
|
94
|
+
const apex = apexOf(hostname);
|
|
95
|
+
if (ids.has(apex))
|
|
96
|
+
continue;
|
|
97
|
+
const id = await cf.zone(apex);
|
|
98
|
+
if (id === undefined) {
|
|
99
|
+
throw refused(`container ${name}: the account holds no zone ${apex} for the domain ${hostname}, or the API token cannot read it: add the zone to the account or Zone Read to the token, or declare another domain`, "no_zone");
|
|
100
|
+
}
|
|
101
|
+
ids.set(apex, id);
|
|
102
|
+
}
|
|
103
|
+
return new Map(hostnames.map((hostname) => [hostname, ids.get(apexOf(hostname))]));
|
|
104
|
+
};
|
|
67
105
|
/**
|
|
68
106
|
* `cloudflare.container`'s operations over `api()`, made on each call. A create and an update
|
|
69
107
|
* are one upsert, in Wrangler's order: the image copied and pinned, then prepared, the Worker
|
|
@@ -84,6 +122,13 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
84
122
|
const url = await cf.workerUrl(script);
|
|
85
123
|
const text = new Map(bindings.filter((b) => b.type === "plain_text").map((b) => [b.name, b.text ?? ""]));
|
|
86
124
|
const served = text.get(TEXT.domains);
|
|
125
|
+
// The domains it serves that are attached: one whose attach failed, or detached by hand, is
|
|
126
|
+
// drift, so the next apply attaches it again.
|
|
127
|
+
let domains;
|
|
128
|
+
if (served) {
|
|
129
|
+
const attached = new Set((await cf.domains(script)).map((d) => d.hostname));
|
|
130
|
+
domains = Object.fromEntries(Object.entries(domainsOf(served)).filter(([, hostname]) => attached.has(hostname)));
|
|
131
|
+
}
|
|
87
132
|
const state = {
|
|
88
133
|
id: app?.id ?? null,
|
|
89
134
|
name,
|
|
@@ -93,7 +138,7 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
93
138
|
ref: text.get(TEXT.ref) ?? "",
|
|
94
139
|
revision: text.get(TEXT.revision) ?? null,
|
|
95
140
|
port: Number(text.get(TEXT.port) ?? 0),
|
|
96
|
-
...(
|
|
141
|
+
...(domains && Object.keys(domains).length > 0 && { domains }),
|
|
97
142
|
url,
|
|
98
143
|
healthy: checkHealth && app !== undefined && "revision" in (await health(cf, url, false)),
|
|
99
144
|
};
|
|
@@ -187,6 +232,12 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
187
232
|
// Copied and prepared before anything changes, so a copy or a preparation that fails leaves
|
|
188
233
|
// the Worker as it was. Each apply asks again, which costs a manifest's HEAD once the copy is
|
|
189
234
|
// there, and puts back one gone; the object starts only a pinned image of the account's.
|
|
235
|
+
// The custom domains are read first too: the ones an update's Worker has, and each declared
|
|
236
|
+
// one missing, with its zone, so a domain whose zone the account lacks is refused here.
|
|
237
|
+
const before = declaredBefore(current);
|
|
238
|
+
const attached = current && (domains || before.size > 0) ? await cf.domains(script) : [];
|
|
239
|
+
const held = new Set(attached.map((d) => d.hostname));
|
|
240
|
+
const missing = await zonesOf(cf, name, Object.values(domains ?? {}).filter((hostname) => !held.has(hostname)));
|
|
190
241
|
const runs = accountPinned(image, cf.account) ? image : await cf.copyImage(image);
|
|
191
242
|
await prepared(cf, runs);
|
|
192
243
|
const served = domains ? domainsText(domains) : undefined;
|
|
@@ -231,6 +282,15 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
231
282
|
// 2026-10-29; a Worker deployed again after the application started at once).
|
|
232
283
|
await cf.upload(script, metadata);
|
|
233
284
|
}
|
|
285
|
+
// The declared domains routed to the Worker, attached first so a failed attach leaves the old
|
|
286
|
+
// route up; then the ones declared before and no longer, detached.
|
|
287
|
+
for (const [hostname, zoneId] of missing)
|
|
288
|
+
await cf.attachDomain(script, hostname, zoneId);
|
|
289
|
+
const hostnames = new Set(Object.values(domains ?? {}));
|
|
290
|
+
for (const domain of attached) {
|
|
291
|
+
if (before.has(domain.hostname) && !hostnames.has(domain.hostname))
|
|
292
|
+
await cf.detachDomain(domain.id);
|
|
293
|
+
}
|
|
234
294
|
await started(cf, script, url, revision);
|
|
235
295
|
const state = {
|
|
236
296
|
id: app.id,
|
|
@@ -253,12 +313,7 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
253
313
|
create: ({ desired }, call) => put(desired, call),
|
|
254
314
|
update: async ({ id, desired, expect, }, call) => {
|
|
255
315
|
const fresh = await plan({ id, desired });
|
|
256
|
-
|
|
257
|
-
throw refused(`container.update: the plan changed (${expect.action}, now ${fresh.action})`, "plan_changed");
|
|
258
|
-
}
|
|
259
|
-
if (fresh.action !== "update" && fresh.action !== "none") {
|
|
260
|
-
throw refused(`container.update: the plan is a ${fresh.action}, not an update`, "plan_changed");
|
|
261
|
-
}
|
|
316
|
+
replanned("container.update", fresh, expect);
|
|
262
317
|
if (fresh.action === "none") {
|
|
263
318
|
const found = await read({ id });
|
|
264
319
|
if (found.state)
|
|
@@ -273,6 +328,12 @@ export function containerOps(api, { startTimeoutMs, pollMs }) {
|
|
|
273
328
|
if (bindings && !isOurs(bindings)) {
|
|
274
329
|
throw refused(`a Worker named ${script} that is not Sanoma's exists: it is not deleted`, "exists");
|
|
275
330
|
}
|
|
331
|
+
const before = declaredBefore(bindings);
|
|
332
|
+
if (before.size > 0) {
|
|
333
|
+
for (const domain of await cf.domains(script))
|
|
334
|
+
if (before.has(domain.hostname))
|
|
335
|
+
await cf.detachDomain(domain.id);
|
|
336
|
+
}
|
|
276
337
|
const app = await cf.application(script);
|
|
277
338
|
if (app)
|
|
278
339
|
await cf.deleteApplication(app.id);
|
|
@@ -286,13 +347,31 @@ const hostUrl = (host) => {
|
|
|
286
347
|
const checked = instanceUrl(host);
|
|
287
348
|
return "url" in checked ? checked.url : String(host);
|
|
288
349
|
};
|
|
289
|
-
/**
|
|
290
|
-
|
|
350
|
+
/**
|
|
351
|
+
* An alarm's state: the host's, its registered wake and when it last rang, whether the host's
|
|
352
|
+
* Worker took this company's token, and the name of the secret that holds the token (`token`)
|
|
353
|
+
* when it is not the default, so a declared alarm's state is as it was.
|
|
354
|
+
*/
|
|
355
|
+
const alarmState = (host, wake, healthy, token) => ({
|
|
291
356
|
host,
|
|
292
357
|
at: typeof wake?.at === "string" ? wake.at : null,
|
|
293
358
|
rang: typeof wake?.rang === "string" ? wake.rang : null,
|
|
294
359
|
healthy,
|
|
360
|
+
...(token !== WAKEUP_TOKEN && { token }),
|
|
295
361
|
});
|
|
362
|
+
/**
|
|
363
|
+
* The name of the secret that holds the host's wakeup token: the marker `desired.token` gives
|
|
364
|
+
* (`secret("NAME")`), else the one a state names, else `SANOMA_WAKEUP_TOKEN`, a declared alarm's.
|
|
365
|
+
*/
|
|
366
|
+
function tokenName(desired, state) {
|
|
367
|
+
const given = desired?.token;
|
|
368
|
+
if (given !== undefined && given !== null) {
|
|
369
|
+
if (!isSecret(given))
|
|
370
|
+
throw refused(`alarm: token names the secret that holds the token, secret("NAME"), not its value`);
|
|
371
|
+
return given.$secret;
|
|
372
|
+
}
|
|
373
|
+
return typeof state?.token === "string" ? state.token : WAKEUP_TOKEN;
|
|
374
|
+
}
|
|
296
375
|
/** The wake route's refusal, or its failure: retryable as its status is. */
|
|
297
376
|
const failed = ({ where, status, own }, advice) => new DriverError(`cloudflare: ${where}: ${own ?? `HTTP ${status}`}${advice ? `: ${advice}` : ""}`, {
|
|
298
377
|
retryable: retryableStatus(status),
|
|
@@ -301,9 +380,11 @@ const failed = ({ where, status, own }, advice) => new DriverError(`cloudflare:
|
|
|
301
380
|
const NO_TOKEN = `add ${WAKEUP_TOKEN} to the host's secrets (secret("${WAKEUP_TOKEN}", { generate: true })) and apply the host`;
|
|
302
381
|
/**
|
|
303
382
|
* `cloudflare.alarm`'s operations and `alarm.register` over `api().send`: the host's own Worker's
|
|
304
|
-
* wake route (`/__sanoma/wake`), each request with the company's `SANOMA_WAKEUP_TOKEN
|
|
305
|
-
*
|
|
306
|
-
*
|
|
383
|
+
* wake route (`/__sanoma/wake`), each request with the company's `SANOMA_WAKEUP_TOKEN`, read from
|
|
384
|
+
* the secret the alarm's `token` names (`tokenName`; `register` reads the default). `create`
|
|
385
|
+
* mints and stores the token when none is, and the host's URL as `SANOMA_HOST_URL`. `register`
|
|
386
|
+
* sends to the host's URL from the environment, `SANOMA_HOST_URL`, which the Worker sets in the
|
|
387
|
+
* container's; off the host, from the stored one.
|
|
307
388
|
*/
|
|
308
389
|
export function alarmOps(api) {
|
|
309
390
|
const route = async (host, method, token, body) => {
|
|
@@ -326,26 +407,32 @@ export function alarmOps(api) {
|
|
|
326
407
|
const error = json?.error;
|
|
327
408
|
return { where, status: res.status, json, ...(typeof error === "string" && { own: error }) };
|
|
328
409
|
};
|
|
329
|
-
/** The alarm at `host
|
|
330
|
-
const look = async (host, token) => {
|
|
410
|
+
/** The alarm at `host`, with the token the secret `name` holds: its state, or undefined when no Worker of Sanoma's answers there. */
|
|
411
|
+
const look = async (host, token, name) => {
|
|
331
412
|
const answer = await route(host, "GET", token);
|
|
332
413
|
if (answer.status === 200)
|
|
333
|
-
return { answer, state: alarmState(host, answer.json, true) };
|
|
414
|
+
return { answer, state: alarmState(host, answer.json, true, name) };
|
|
334
415
|
// The Worker's own refusal: it lacks the token, or holds another.
|
|
335
416
|
if ((answer.status === 404 || answer.status === 401) && answer.own) {
|
|
336
|
-
return { answer, state: alarmState(host, undefined, false) };
|
|
417
|
+
return { answer, state: alarmState(host, undefined, false, name) };
|
|
337
418
|
}
|
|
338
419
|
if (answer.status === 404)
|
|
339
420
|
return { answer, state: undefined };
|
|
340
421
|
throw failed(answer);
|
|
341
422
|
};
|
|
342
|
-
|
|
423
|
+
/** The alarm at `id`, read with the token the secret `name` holds. */
|
|
424
|
+
const readWith = async (id, name, call) => {
|
|
343
425
|
// Without the token, the Worker refuses it: the alarm reads as unhealthy, and a plan to delete it goes on.
|
|
344
|
-
const { state } = await look(id, (await call.secrets.get(
|
|
426
|
+
const { state } = await look(id, (await call.secrets.get(name)) ?? "", name);
|
|
345
427
|
return state ? { id, gone: false, state } : { id, gone: true };
|
|
346
428
|
};
|
|
347
|
-
const
|
|
348
|
-
|
|
429
|
+
const read = ({ id, state }, call) => readWith(id, tokenName(undefined, state), call);
|
|
430
|
+
const plan = async ({ id, state: known, desired }, call) => {
|
|
431
|
+
// Apply plans a declared alarm, and reads and deletes it by its id alone, with the default token.
|
|
432
|
+
if (desired && tokenName(desired, undefined) !== WAKEUP_TOKEN) {
|
|
433
|
+
throw refused(`alarm: a declared alarm's token is ${WAKEUP_TOKEN}: leave token out of the data file`);
|
|
434
|
+
}
|
|
435
|
+
const state = id === undefined ? undefined : (await readWith(id, tokenName(undefined, known), call)).state;
|
|
349
436
|
if (!desired)
|
|
350
437
|
return { action: state ? "delete" : "none", ...NONE };
|
|
351
438
|
const planned = { host: hostUrl(desired.host) };
|
|
@@ -363,29 +450,34 @@ export function alarmOps(api) {
|
|
|
363
450
|
plan,
|
|
364
451
|
create: async ({ desired }, { secrets }) => {
|
|
365
452
|
const host = hostUrl(desired.host);
|
|
366
|
-
const
|
|
367
|
-
const
|
|
453
|
+
const name = tokenName(desired, undefined);
|
|
454
|
+
const token = await secrets.ensure(name, mintInstanceToken);
|
|
455
|
+
const { answer, state } = await look(host, token, name);
|
|
368
456
|
if (!state)
|
|
369
457
|
throw failed(answer, "no Worker of Sanoma's answers there: apply the host first");
|
|
370
|
-
|
|
371
|
-
|
|
458
|
+
// A declared host is applied; a workflow's own host, under a name of its own, is updated with it.
|
|
459
|
+
const own = name === WAKEUP_TOKEN ? undefined : `update the host with ${WAKEUP_TOKEN}: secret("${name}")`;
|
|
460
|
+
if (answer.status === 404) {
|
|
461
|
+
throw refused(`alarm.create: the host has no ${WAKEUP_TOKEN}: ${own ?? NO_TOKEN}`, "no_token");
|
|
462
|
+
}
|
|
372
463
|
if (answer.status === 401) {
|
|
373
|
-
|
|
464
|
+
const advice = own ?? "apply the host again";
|
|
465
|
+
throw refused(`alarm.create: the host's ${WAKEUP_TOKEN} is not the stored ${name}: ${advice}`, "token");
|
|
374
466
|
}
|
|
375
|
-
//
|
|
467
|
+
// Only for a register made off the host (a test's, a kit's): on it, the Worker's binding comes first.
|
|
376
468
|
await secrets.ensure(HOST_URL, () => host);
|
|
377
469
|
return { id: host, state };
|
|
378
470
|
},
|
|
379
|
-
update: async ({ id, desired }, call) => {
|
|
380
|
-
const { state } = await
|
|
471
|
+
update: async ({ id, state: known, desired }, call) => {
|
|
472
|
+
const { state } = await readWith(id, tokenName(desired, known), call);
|
|
381
473
|
if (!state || hostUrl(desired.host) !== state.host) {
|
|
382
474
|
throw refused(`alarm.update: a new host is a new alarm`, "plan_changed");
|
|
383
475
|
}
|
|
384
476
|
return { id, state };
|
|
385
477
|
},
|
|
386
|
-
delete: async ({ id }, { secrets }) => {
|
|
478
|
+
delete: async ({ id, state }, { secrets }) => {
|
|
387
479
|
// Without the token it is still asked: a host that is gone answers 404, one that holds a wake refuses.
|
|
388
|
-
const answer = await route(id, "DELETE", (await secrets.get(
|
|
480
|
+
const answer = await route(id, "DELETE", (await secrets.get(tokenName(undefined, state))) ?? "");
|
|
389
481
|
if (answer.status !== 204 && answer.status !== 404)
|
|
390
482
|
throw failed(answer);
|
|
391
483
|
return { id, gone: true };
|
|
@@ -394,9 +486,11 @@ export function alarmOps(api) {
|
|
|
394
486
|
const token = await call.secrets.get(WAKEUP_TOKEN);
|
|
395
487
|
if (!token)
|
|
396
488
|
throw refused(`alarm.register: ${WAKEUP_TOKEN} is not set: apply the alarm, which mints it`);
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
489
|
+
// On the host, the Worker's binding is in the environment; off it, only a stored one names the host.
|
|
490
|
+
const host = process.env[HOST_URL] || (await call.secrets.get(HOST_URL));
|
|
491
|
+
if (!host) {
|
|
492
|
+
throw refused(`alarm.register: ${HOST_URL} is set neither in the environment (the Worker sets it on the host) nor among the stored credentials (apply the alarm, which stores it)`);
|
|
493
|
+
}
|
|
400
494
|
const answer = await route(hostUrl(host), "PUT", token, registration);
|
|
401
495
|
if (answer.status === 204)
|
|
402
496
|
return {};
|
package/dist/ops.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ops.js","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ops.js","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { type DnsRecord, type PlanAction } from "@sanoma-ai/workflows";
|
|
2
|
+
import { type CloudflareApi, type Planned } from "./ops.ts";
|
|
3
|
+
/** A set's state: its zone and label, its records by key, and their ids beside. */
|
|
4
|
+
type RecordsState = {
|
|
5
|
+
zone: string;
|
|
6
|
+
name: string;
|
|
7
|
+
records: DnsRecord[];
|
|
8
|
+
zone_id: string;
|
|
9
|
+
record_ids: string[];
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* `cloudflare.records`' operations over `api()`, made on each call. A read finds a set's records
|
|
13
|
+
* by its mark alone; a write is one batch, all or nothing, of posts, patches (a marked record of a
|
|
14
|
+
* declared one's type and name, or an unmarked one identical to it, adopted: its comment replaced
|
|
15
|
+
* by the mark) and deletes (marked, no longer declared), and never touches another record: one in
|
|
16
|
+
* its way (a CNAME at the name, another SPF policy, an MX to the same server at another priority,
|
|
17
|
+
* a proxied one identical to it) is refused, naming it.
|
|
18
|
+
*/
|
|
19
|
+
export declare function recordsOps(api: () => CloudflareApi): {
|
|
20
|
+
import: ({ id }: {
|
|
21
|
+
id: string;
|
|
22
|
+
}) => Promise<{
|
|
23
|
+
id: string;
|
|
24
|
+
gone: boolean;
|
|
25
|
+
state?: undefined;
|
|
26
|
+
} | {
|
|
27
|
+
id: string;
|
|
28
|
+
gone: boolean;
|
|
29
|
+
state: RecordsState;
|
|
30
|
+
}>;
|
|
31
|
+
read: ({ id }: {
|
|
32
|
+
id: string;
|
|
33
|
+
}) => Promise<{
|
|
34
|
+
id: string;
|
|
35
|
+
gone: boolean;
|
|
36
|
+
state?: undefined;
|
|
37
|
+
} | {
|
|
38
|
+
id: string;
|
|
39
|
+
gone: boolean;
|
|
40
|
+
state: RecordsState;
|
|
41
|
+
}>;
|
|
42
|
+
plan: ({ id, desired }: {
|
|
43
|
+
id?: string;
|
|
44
|
+
desired?: Record<string, unknown>;
|
|
45
|
+
}) => Promise<Planned>;
|
|
46
|
+
create: ({ desired }: {
|
|
47
|
+
desired: Record<string, unknown>;
|
|
48
|
+
}) => Promise<{
|
|
49
|
+
id: string;
|
|
50
|
+
state: RecordsState;
|
|
51
|
+
}>;
|
|
52
|
+
update: ({ id, desired, expect, }: {
|
|
53
|
+
id: string;
|
|
54
|
+
desired: Record<string, unknown>;
|
|
55
|
+
expect?: {
|
|
56
|
+
action: PlanAction;
|
|
57
|
+
replace: string[];
|
|
58
|
+
};
|
|
59
|
+
}) => Promise<{
|
|
60
|
+
id: string;
|
|
61
|
+
state: RecordsState;
|
|
62
|
+
}>;
|
|
63
|
+
delete: ({ id }: {
|
|
64
|
+
id: string;
|
|
65
|
+
}) => Promise<{
|
|
66
|
+
id: string;
|
|
67
|
+
gone: true;
|
|
68
|
+
}>;
|
|
69
|
+
};
|
|
70
|
+
export {};
|