@celsoft/platform 0.6.0 → 0.8.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/adapters/cloudflare.d.ts +11 -10
- package/dist/adapters/cloudflare.js +29 -22
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/adapters/github.d.ts +2 -1
- package/dist/adapters/github.js +5 -0
- package/dist/adapters/github.js.map +1 -1
- package/dist/adapters/process.d.ts +3 -1
- package/dist/adapters/process.js +13 -1
- package/dist/adapters/process.js.map +1 -1
- package/dist/adapters/r2.d.ts +15 -0
- package/dist/adapters/r2.js +99 -0
- package/dist/adapters/r2.js.map +1 -0
- package/dist/adapters/registry.d.ts +14 -0
- package/dist/adapters/registry.js +42 -0
- package/dist/adapters/registry.js.map +1 -0
- package/dist/cli.js +29 -8
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -0
- package/dist/config.js +6 -2
- package/dist/config.js.map +1 -1
- package/dist/fakes.d.ts +19 -9
- package/dist/fakes.js +51 -20
- package/dist/fakes.js.map +1 -1
- package/dist/legacy.d.ts +10 -0
- package/dist/legacy.js +13 -0
- package/dist/legacy.js.map +1 -0
- package/dist/lifecycle.d.ts +8 -2
- package/dist/lifecycle.js +201 -77
- package/dist/lifecycle.js.map +1 -1
- package/dist/ports.d.ts +25 -10
- package/dist/runtime/files.js +1 -4
- package/dist/runtime/files.js.map +1 -1
- package/dist/runtime/guard.js +2 -1
- package/dist/runtime/guard.js.map +1 -1
- package/dist/runtime/index.d.ts +16 -2
- package/dist/runtime/index.js +87 -44
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/live-client.d.ts +19 -0
- package/dist/runtime/live-client.js +74 -0
- package/dist/runtime/live-client.js.map +1 -0
- package/dist/runtime/live.d.ts +29 -0
- package/dist/runtime/live.js +158 -0
- package/dist/runtime/live.js.map +1 -0
- package/dist/target.d.ts +2 -1
- package/dist/target.js +9 -7
- package/dist/target.js.map +1 -1
- package/dist/wrangler-config.d.ts +2 -0
- package/dist/wrangler-config.js +12 -2
- package/dist/wrangler-config.js.map +1 -1
- package/package.json +3 -2
- package/schema.json +6 -1
- package/dist/ownership.d.ts +0 -16
- package/dist/ownership.js +0 -40
- package/dist/ownership.js.map +0 -1
package/dist/lifecycle.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomBytes } from "node:crypto";
|
|
2
|
-
import {
|
|
3
|
-
import { names, originOf, previewHostname } from "./target.js";
|
|
2
|
+
import { LEGACY_BUCKET_MARKER, LEGACY_DNS_COMMENT, legacyNames } from "./legacy.js";
|
|
3
|
+
import { names, originOf, previewHostname, previewPattern } from "./target.js";
|
|
4
4
|
import { wranglerConfig } from "./wrangler-config.js";
|
|
5
5
|
export class PreflightError extends Error {
|
|
6
6
|
}
|
|
@@ -23,14 +23,8 @@ export async function deploy(ctx, target) {
|
|
|
23
23
|
const zone = await ports.cloudflare.findZone(config.hostname);
|
|
24
24
|
if (!zone)
|
|
25
25
|
throw new PreflightError(`no Cloudflare zone for ${config.hostname}; add the apex domain to this account, or check the token's zone access`);
|
|
26
|
-
const hostname = target.kind === "prod" ? config.hostname : previewHostname(
|
|
27
|
-
|
|
28
|
-
const worker = await ownedWorker(ports, config, n.worker);
|
|
29
|
-
const existingHyperdrive = config.database ? await ports.cloudflare.findHyperdrive(n.hyperdrive) : undefined;
|
|
30
|
-
if (existingHyperdrive)
|
|
31
|
-
await requireOwnedHyperdrive(ports, config, existingHyperdrive, worker?.hyperdriveIds ?? []);
|
|
32
|
-
if (config.files)
|
|
33
|
-
await ownedBucket(ports, config, n.bucket);
|
|
26
|
+
const hostname = target.kind === "prod" ? config.hostname : previewHostname(target.pr, config.hostname);
|
|
27
|
+
await checkClaim(ctx, true);
|
|
34
28
|
let hyperdriveId;
|
|
35
29
|
if (config.database) {
|
|
36
30
|
const project = config.database.neonProject;
|
|
@@ -67,6 +61,9 @@ export async function deploy(ctx, target) {
|
|
|
67
61
|
}
|
|
68
62
|
if (config.files)
|
|
69
63
|
await ensureBucket(ctx, n.bucket, target.kind === "preview");
|
|
64
|
+
const oldBucket = config.files && target.kind === "prod" ? await legacyFilesBucket(ctx) : undefined;
|
|
65
|
+
if (oldBucket)
|
|
66
|
+
await copyFiles(ctx, oldBucket, n.bucket, false);
|
|
70
67
|
const vars = { APP_URL: `https://${hostname}` };
|
|
71
68
|
if (config.email) {
|
|
72
69
|
Object.assign(vars, { EMAIL_MODE: sending ? "send" : "capture", EMAIL_FROM: `noreply@${hostname}` });
|
|
@@ -74,17 +71,71 @@ export async function deploy(ctx, target) {
|
|
|
74
71
|
if (config.files && n.filesPrefix)
|
|
75
72
|
vars.FILES_PREFIX = n.filesPrefix;
|
|
76
73
|
const wrangler = wranglerConfig({ config, worker: n.worker, hostname, accountId, hyperdriveId, vars, bucket: config.files ? n.bucket : undefined });
|
|
77
|
-
await run.mutate(`deploy Worker ${n.worker} at https://${hostname}`,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
await run.mutate(`deploy Worker ${n.worker} at https://${hostname}`, () => ports.wrangler.deploy(wrangler, { ...secrets, ...generated }), undefined);
|
|
75
|
+
// The old Worker kept writing to the old bucket until now, so what it added is copied before the old bucket goes.
|
|
76
|
+
if (oldBucket && run.dryRun)
|
|
77
|
+
run.note(`would copy files added since, then delete ${oldBucket}`);
|
|
78
|
+
if (oldBucket && !run.dryRun) {
|
|
79
|
+
await copyFiles(ctx, oldBucket, n.bucket, true);
|
|
80
|
+
await run.mutate(`delete R2 bucket ${oldBucket}, now copied to ${n.bucket}`, async () => {
|
|
81
|
+
await ports.cloudflare.deleteObjects(oldBucket, "");
|
|
82
|
+
await ports.cloudflare.deleteBucket(oldBucket);
|
|
83
|
+
}, undefined);
|
|
84
|
+
}
|
|
81
85
|
return { hostname };
|
|
82
86
|
}
|
|
87
|
+
// The app's name belongs to one repo per Cloudflare account; the first deploy claims it.
|
|
88
|
+
async function checkClaim(ctx, claimIfFree) {
|
|
89
|
+
const { config, ports, run } = ctx;
|
|
90
|
+
const repo = await ctx.repo();
|
|
91
|
+
let claim = await ports.registry.get(config.name);
|
|
92
|
+
if (!claim && claimIfFree) {
|
|
93
|
+
const won = await run.mutate(`claim the app name ${config.name} for ${repo.name}`, () => ports.registry.claim(config.name, repo), true);
|
|
94
|
+
if (won)
|
|
95
|
+
return;
|
|
96
|
+
claim = await ports.registry.get(config.name);
|
|
97
|
+
}
|
|
98
|
+
if (!claim)
|
|
99
|
+
return;
|
|
100
|
+
if (claim.id !== repo.id) {
|
|
101
|
+
throw new PreflightError(`the app name ${config.name} belongs to ${claim.name} in this Cloudflare account, so nothing was changed; if ${repo.name} is meant to take it over, run \`npx @celsoft/platform apps move\` from ${repo.name}`);
|
|
102
|
+
}
|
|
103
|
+
if (claim.name !== repo.name) {
|
|
104
|
+
await run.mutate(`record that ${claim.name} is now ${repo.name}`, () => ports.registry.set(config.name, repo), undefined);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
run.note(`✓ app name ${config.name} belongs to ${repo.name}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// Hands the app's name to the repo running this, for when a different repo takes the app over.
|
|
111
|
+
export async function moveApp(ctx) {
|
|
112
|
+
const { config, ports, run } = ctx;
|
|
113
|
+
const repo = await ctx.repo();
|
|
114
|
+
const claim = await ports.registry.get(config.name);
|
|
115
|
+
if (claim?.id === repo.id)
|
|
116
|
+
return run.note(`✓ app name ${config.name} already belongs to ${repo.name}`);
|
|
117
|
+
await run.mutate(`give the app name ${config.name} to ${repo.name}${claim ? `, taking it from ${claim.name}` : ""}`, () => ports.registry.set(config.name, repo), undefined);
|
|
118
|
+
}
|
|
119
|
+
// The prod bucket before the `--` names, proven by its old marker.
|
|
120
|
+
async function legacyFilesBucket({ config, ports }) {
|
|
121
|
+
const name = legacyNames(config.name).filesBucket;
|
|
122
|
+
return (await ports.cloudflare.legacyBucketApp(name)) === config.name ? name : undefined;
|
|
123
|
+
}
|
|
124
|
+
async function copyFiles({ ports, run }, from, to, onlyMissing) {
|
|
125
|
+
const present = new Set(onlyMissing ? await ports.cloudflare.listObjects(to, "") : []);
|
|
126
|
+
const keys = (await ports.cloudflare.listObjects(from, "")).filter((key) => key !== LEGACY_BUCKET_MARKER && !present.has(key));
|
|
127
|
+
if (keys.length === 0)
|
|
128
|
+
return;
|
|
129
|
+
await run.mutate(`copy ${keys.length} files from ${from} to ${to}`, async () => {
|
|
130
|
+
for (const key of keys)
|
|
131
|
+
await ports.cloudflare.copyObject(from, key, to);
|
|
132
|
+
}, undefined);
|
|
133
|
+
}
|
|
83
134
|
export const PREVIEW_FILES_DAYS = 14;
|
|
84
135
|
// The shared preview bucket expires files after two weeks, a backstop for cleanups that never ran.
|
|
85
|
-
async function ensureBucket({
|
|
86
|
-
await run.ensure(`R2 bucket ${bucket}`, async () => ((await
|
|
87
|
-
await ports.cloudflare.createBucket(bucket
|
|
136
|
+
async function ensureBucket({ ports, run }, bucket, preview) {
|
|
137
|
+
await run.ensure(`R2 bucket ${bucket}`, async () => ((await ports.cloudflare.findBucket(bucket)) ? true : undefined), async () => {
|
|
138
|
+
await ports.cloudflare.createBucket(bucket);
|
|
88
139
|
return true;
|
|
89
140
|
}, true);
|
|
90
141
|
if (preview && (run.dryRun || (await ports.cloudflare.bucketExpiryDays(bucket)) !== PREVIEW_FILES_DAYS)) {
|
|
@@ -122,26 +173,38 @@ export async function dev(ctx) {
|
|
|
122
173
|
run.note(`serving at ${DEV_URL}; email is captured to this terminal`);
|
|
123
174
|
await ports.wrangler.dev(local, devSecrets, uri);
|
|
124
175
|
}
|
|
125
|
-
|
|
176
|
+
// Resend chooses these records' names, so the comment is what ties each one to its app.
|
|
177
|
+
export const dnsComment = (app) => `managed by @celsoft/platform for ${app}`;
|
|
126
178
|
// The app sends from its own hostname: Resend's DKIM and bounce records sit on names below it,
|
|
127
179
|
// so the zone's existing mail records are never touched.
|
|
128
|
-
async function ensureMailDomain({ ports, run }, hostname, zone) {
|
|
180
|
+
async function ensureMailDomain({ config, ports, run }, hostname, zone) {
|
|
129
181
|
const domain = await run.ensure(`Resend sending domain ${hostname}`, () => ports.mail.findDomain(hostname), () => ports.mail.createDomain(hostname), { id: "(new)", name: hostname, verified: false, records: [] });
|
|
130
|
-
|
|
131
|
-
const wanted = domain
|
|
182
|
+
const comment = dnsComment(config.name);
|
|
183
|
+
const wanted = mailRecords(domain, zone);
|
|
132
184
|
const label = (name) => name.slice(0, -(hostname.length + 1)) || name;
|
|
133
185
|
for (const record of wanted) {
|
|
134
|
-
const existing = await ports.cloudflare.dnsRecords(zone.id, record.name);
|
|
135
|
-
|
|
136
|
-
|
|
186
|
+
const existing = (await ports.cloudflare.dnsRecords(zone.id, record.name)).filter((e) => e.type === record.type);
|
|
187
|
+
// At a name Resend asked for, a record with the old comment can only be this app's.
|
|
188
|
+
const ours = existing.filter((e) => e.comment === comment || e.comment === LEGACY_DNS_COMMENT);
|
|
189
|
+
const match = existing.find((e) => unquote(e.content) === unquote(record.content));
|
|
190
|
+
if (match) {
|
|
191
|
+
if (match.comment === LEGACY_DNS_COMMENT) {
|
|
192
|
+
await run.mutate(`mark ${record.type} record ${label(record.name)} as ${config.name}'s`, () => ports.cloudflare.setDnsRecordComment(zone.id, match.id, comment), undefined);
|
|
193
|
+
}
|
|
194
|
+
else {
|
|
195
|
+
run.note(`✓ ${record.type} record ${label(record.name)}`);
|
|
196
|
+
}
|
|
137
197
|
continue;
|
|
138
198
|
}
|
|
139
|
-
if (
|
|
199
|
+
if (ours.length < existing.length) {
|
|
140
200
|
throw new PreflightError(`${label(record.name)} below the app hostname already has a ${record.type} record the platform did not create; remove it or send email from another hostname`);
|
|
141
201
|
}
|
|
142
|
-
|
|
202
|
+
for (const old of ours) {
|
|
203
|
+
await run.mutate(`delete outdated ${record.type} record ${label(record.name)}`, () => ports.cloudflare.deleteDnsRecord(zone.id, old.id), undefined);
|
|
204
|
+
}
|
|
205
|
+
await run.mutate(`create ${record.type} record ${label(record.name)}`, () => ports.cloudflare.createDnsRecord(zone.id, record, comment), undefined);
|
|
143
206
|
}
|
|
144
|
-
const stale = (await ports.cloudflare.
|
|
207
|
+
const stale = (await ports.cloudflare.commentedDnsRecords(zone.id, comment)).filter((e) => !wanted.some((w) => w.type === e.type && w.name === e.name));
|
|
145
208
|
for (const record of stale) {
|
|
146
209
|
await run.mutate(`delete stale ${record.type} record ${label(record.name)}`, () => ports.cloudflare.deleteDnsRecord(zone.id, record.id), undefined);
|
|
147
210
|
}
|
|
@@ -159,47 +222,71 @@ async function sendKey({ ports, run }, hostname, domainId) {
|
|
|
159
222
|
await run.mutate(`replace Resend sending key for ${hostname}`, () => ports.mail.deleteApiKey(old), undefined);
|
|
160
223
|
return run.mutate(`create Resend sending key for ${hostname}`, () => ports.mail.createSendKey(name, domainId), undefined);
|
|
161
224
|
}
|
|
225
|
+
// Resend names records relative to the zone, not to the sending hostname.
|
|
226
|
+
function mailRecords(domain, zone) {
|
|
227
|
+
return domain.records.map((record) => ({ ...record, name: `${record.name}.${zone.name}` }));
|
|
228
|
+
}
|
|
162
229
|
function unquote(value) {
|
|
163
230
|
return value.replace(/^"|"$/g, "");
|
|
164
231
|
}
|
|
165
232
|
export async function cleanup(ctx, pr) {
|
|
166
233
|
const { config, ports, run } = ctx;
|
|
167
234
|
const n = names(config, { kind: "preview", pr });
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if (
|
|
172
|
-
await requireOwnedHyperdrive(ports, config, hyperdrive, worker?.hyperdriveIds ?? []);
|
|
173
|
-
// Found by what exists, not by platform.jsonc, so a preview made with files on is still cleaned
|
|
174
|
-
// after files is turned off.
|
|
175
|
-
const bucket = await ownedBucket(ports, config, n.bucket);
|
|
176
|
-
if (worker)
|
|
235
|
+
await checkClaim(ctx, false);
|
|
236
|
+
// Found by what exists, not by platform.jsonc, so a preview made with a feature on is still
|
|
237
|
+
// cleaned after that feature is turned off.
|
|
238
|
+
if (await ports.cloudflare.findWorker(n.worker))
|
|
177
239
|
await run.mutate(`delete Worker ${n.worker}`, () => ports.cloudflare.deleteWorker(n.worker), undefined);
|
|
240
|
+
const hyperdrive = await ports.cloudflare.findHyperdrive(n.hyperdrive);
|
|
178
241
|
if (hyperdrive)
|
|
179
242
|
await run.mutate(`delete Hyperdrive config ${n.hyperdrive}`, () => ports.cloudflare.deleteHyperdrive(hyperdrive.id), undefined);
|
|
180
243
|
if (config.database) {
|
|
181
244
|
const project = config.database.neonProject;
|
|
182
245
|
const branch = await ports.neon.findBranch(project, n.neonBranch);
|
|
183
|
-
if (branch)
|
|
246
|
+
if (branch)
|
|
184
247
|
await run.mutate(`delete Neon branch ${branch.name}`, () => ports.neon.deleteBranch(project, branch.id), undefined);
|
|
185
|
-
}
|
|
186
248
|
}
|
|
187
|
-
if (bucket) {
|
|
249
|
+
if (await ports.cloudflare.findBucket(n.bucket)) {
|
|
188
250
|
await run.mutate(`delete files under ${n.filesPrefix} in ${n.bucket}`, () => ports.cloudflare.deleteObjects(n.bucket, n.filesPrefix), 0);
|
|
189
251
|
}
|
|
252
|
+
await cleanupLegacyPreview(ctx, pr);
|
|
253
|
+
}
|
|
254
|
+
// A preview made before the `--` names, removed only when its old tags or marker name this app.
|
|
255
|
+
async function cleanupLegacyPreview(ctx, pr) {
|
|
256
|
+
const { config, ports, run } = ctx;
|
|
257
|
+
const legacy = legacyNames(config.name);
|
|
258
|
+
const name = legacy.preview(pr);
|
|
259
|
+
const worker = await ports.cloudflare.legacyWorker(name);
|
|
260
|
+
const hyperdrive = await ports.cloudflare.findHyperdrive(name);
|
|
261
|
+
const ours = worker?.app === config.name;
|
|
262
|
+
if (ours)
|
|
263
|
+
await run.mutate(`delete old Worker ${name}`, () => ports.cloudflare.deleteWorker(name), undefined);
|
|
264
|
+
if (hyperdrive && (await legacyHyperdriveIsOurs(ctx, hyperdrive, ours ? worker.hyperdriveIds : []))) {
|
|
265
|
+
await run.mutate(`delete old Hyperdrive config ${name}`, () => ports.cloudflare.deleteHyperdrive(hyperdrive.id), undefined);
|
|
266
|
+
}
|
|
267
|
+
if ((await ports.cloudflare.legacyBucketApp(legacy.previewsBucket)) === config.name) {
|
|
268
|
+
await run.mutate(`delete old files under pr-${pr}/ in ${legacy.previewsBucket}`, () => ports.cloudflare.deleteObjects(legacy.previewsBucket, `pr-${pr}/`), 0);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
async function legacyHyperdriveIsOurs({ config, ports }, hyperdrive, boundIds) {
|
|
272
|
+
if (boundIds.includes(hyperdrive.id))
|
|
273
|
+
return true;
|
|
274
|
+
const host = hyperdrive.origin.split("@")[1]?.split("/")[0];
|
|
275
|
+
return Boolean(config.database && host && (await ports.neon.endpointHosts(config.database.neonProject)).includes(host));
|
|
190
276
|
}
|
|
191
277
|
// Removes every preview whose pull request is no longer open: the backstop for a close whose
|
|
192
278
|
// cleanup never ran. Previews are found by what exists in Cloudflare and Neon.
|
|
193
279
|
export async function sweep(ctx, open) {
|
|
194
280
|
const { config, ports, run } = ctx;
|
|
195
|
-
const
|
|
196
|
-
const prefix = `${config.name}-pr-`;
|
|
281
|
+
const legacy = legacyNames(config.name);
|
|
197
282
|
const found = new Set();
|
|
198
283
|
const add = (match) => match && found.add(Number(match[1]));
|
|
199
|
-
for (const
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
284
|
+
for (const [prefix, pattern] of [[`${config.name}--pr-`, previewPattern(config.name)], [legacy.previewPrefix, legacy.previewPattern]]) {
|
|
285
|
+
for (const worker of await ports.cloudflare.listWorkers(prefix))
|
|
286
|
+
add(pattern.exec(worker));
|
|
287
|
+
for (const hyperdrive of await ports.cloudflare.listHyperdrives(prefix))
|
|
288
|
+
add(pattern.exec(hyperdrive.name));
|
|
289
|
+
}
|
|
203
290
|
if (config.database) {
|
|
204
291
|
for (const branch of await ports.neon.listBranches(config.database.neonProject, "pr-"))
|
|
205
292
|
add(/^pr-(\d+)$/.exec(branch.name));
|
|
@@ -211,41 +298,67 @@ export async function sweep(ctx, open) {
|
|
|
211
298
|
run.note(`pull request ${pr} is closed; cleaning up its preview`);
|
|
212
299
|
await cleanup(ctx, pr);
|
|
213
300
|
}
|
|
301
|
+
await removeEmptyLegacyPreviewsBucket(ctx);
|
|
214
302
|
return stale;
|
|
215
303
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
304
|
+
async function removeEmptyLegacyPreviewsBucket({ config, ports, run }) {
|
|
305
|
+
const bucket = legacyNames(config.name).previewsBucket;
|
|
306
|
+
if ((await ports.cloudflare.legacyBucketApp(bucket)) !== config.name)
|
|
307
|
+
return;
|
|
308
|
+
if ((await ports.cloudflare.listObjects(bucket, "")).some((key) => key !== LEGACY_BUCKET_MARKER))
|
|
309
|
+
return;
|
|
310
|
+
await run.mutate(`delete old R2 bucket ${bucket}, now empty`, async () => {
|
|
311
|
+
await ports.cloudflare.deleteObjects(bucket, "");
|
|
312
|
+
await ports.cloudflare.deleteBucket(bucket);
|
|
313
|
+
}, undefined);
|
|
314
|
+
}
|
|
315
|
+
// Deletes everything the platform made for the app, found by name whatever platform.jsonc turns on
|
|
316
|
+
// now. Without `data` it keeps what holds the app's data: prod tables, backups, the dev branch and
|
|
317
|
+
// the prod file bucket. The app's name is released last.
|
|
219
318
|
export async function destroy(ctx, { data }) {
|
|
220
319
|
const { config, ports, run } = ctx;
|
|
320
|
+
const providers = ctx.providers ?? { neon: true, mail: true };
|
|
221
321
|
const prod = names(config, { kind: "prod" });
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
const
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
322
|
+
const preview = names(config, { kind: "preview", pr: 0 });
|
|
323
|
+
const legacy = legacyNames(config.name);
|
|
324
|
+
await checkClaim(ctx, false);
|
|
325
|
+
const workers = [
|
|
326
|
+
...((await ports.cloudflare.findWorker(prod.worker)) ? [prod.worker] : []),
|
|
327
|
+
...(await ports.cloudflare.listWorkers(`${config.name}--pr-`)).filter((w) => previewPattern(config.name).test(w)),
|
|
328
|
+
];
|
|
329
|
+
const hyperdrives = [
|
|
330
|
+
...[await ports.cloudflare.findHyperdrive(prod.hyperdrive)].filter((h) => h !== undefined),
|
|
331
|
+
...(await ports.cloudflare.listHyperdrives(`${config.name}--pr-`)).filter((h) => previewPattern(config.name).test(h.name)),
|
|
332
|
+
];
|
|
333
|
+
const buckets = [preview.bucket, ...(data ? [prod.bucket] : [])];
|
|
334
|
+
// What versions before the `--` names left, taken only where their old proof names this app.
|
|
335
|
+
const legacyBound = [];
|
|
336
|
+
for (const name of (await ports.cloudflare.listWorkers(legacy.previewPrefix)).filter((w) => legacy.previewPattern.test(w))) {
|
|
337
|
+
const worker = await ports.cloudflare.legacyWorker(name);
|
|
338
|
+
if (worker?.app !== config.name)
|
|
339
|
+
continue;
|
|
340
|
+
workers.push(name);
|
|
341
|
+
legacyBound.push(...worker.hyperdriveIds);
|
|
342
|
+
}
|
|
343
|
+
for (const h of (await ports.cloudflare.listHyperdrives(legacy.previewPrefix)).filter((h) => legacy.previewPattern.test(h.name))) {
|
|
344
|
+
if (await legacyHyperdriveIsOurs(ctx, h, legacyBound))
|
|
345
|
+
hyperdrives.push(h);
|
|
346
|
+
}
|
|
347
|
+
for (const bucket of [legacy.previewsBucket, ...(data ? [legacy.filesBucket] : [])]) {
|
|
348
|
+
if ((await ports.cloudflare.legacyBucketApp(bucket)) === config.name)
|
|
349
|
+
buckets.push(bucket);
|
|
243
350
|
}
|
|
244
351
|
for (const w of workers)
|
|
245
|
-
await run.mutate(`delete Worker ${w
|
|
352
|
+
await run.mutate(`delete Worker ${w}`, () => ports.cloudflare.deleteWorker(w), undefined);
|
|
246
353
|
for (const h of hyperdrives)
|
|
247
354
|
await run.mutate(`delete Hyperdrive config ${h.name}`, () => ports.cloudflare.deleteHyperdrive(h.id), undefined);
|
|
248
|
-
if (config.database) {
|
|
355
|
+
if (!config.database) {
|
|
356
|
+
run.note("platform.jsonc names no Neon project, so Neon was not checked");
|
|
357
|
+
}
|
|
358
|
+
else if (!providers.neon) {
|
|
359
|
+
run.note("! no Neon key is set, so Neon branches were left alone");
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
249
362
|
const project = config.database.neonProject;
|
|
250
363
|
const doomed = (await ports.neon.listBranches(project, "pr-")).filter((b) => /^pr-\d+$/.test(b.name));
|
|
251
364
|
if (data)
|
|
@@ -259,24 +372,35 @@ export async function destroy(ctx, { data }) {
|
|
|
259
372
|
}
|
|
260
373
|
}
|
|
261
374
|
for (const bucket of buckets) {
|
|
375
|
+
if (!(await ports.cloudflare.findBucket(bucket)))
|
|
376
|
+
continue;
|
|
262
377
|
await run.mutate(`empty and delete R2 bucket ${bucket}`, async () => {
|
|
263
378
|
await ports.cloudflare.deleteObjects(bucket, "");
|
|
264
379
|
await ports.cloudflare.deleteBucket(bucket);
|
|
265
380
|
}, undefined);
|
|
266
381
|
}
|
|
267
|
-
|
|
382
|
+
const zone = await ports.cloudflare.findZone(config.hostname);
|
|
383
|
+
const records = zone ? await ports.cloudflare.commentedDnsRecords(zone.id, dnsComment(config.name)) : [];
|
|
384
|
+
if (!providers.mail) {
|
|
385
|
+
run.note("! no Resend key is set, so the Resend sending domain and key were left alone");
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
268
388
|
const domain = await ports.mail.findDomain(config.hostname);
|
|
389
|
+
if (domain && zone) {
|
|
390
|
+
const wanted = new Set(mailRecords(domain, zone).map((r) => r.name));
|
|
391
|
+
records.push(...(await ports.cloudflare.commentedDnsRecords(zone.id, LEGACY_DNS_COMMENT)).filter((r) => wanted.has(r.name)));
|
|
392
|
+
}
|
|
269
393
|
if (domain)
|
|
270
394
|
await run.mutate(`delete Resend sending domain ${config.hostname}`, () => ports.mail.deleteDomain(domain.id), undefined);
|
|
271
395
|
const key = await ports.mail.findApiKey(sendKeyName(config.hostname));
|
|
272
396
|
if (key)
|
|
273
397
|
await run.mutate(`delete Resend sending key for ${config.hostname}`, () => ports.mail.deleteApiKey(key), undefined);
|
|
274
|
-
const zone = await ports.cloudflare.findZone(config.hostname);
|
|
275
|
-
const records = zone ? (await ports.cloudflare.managedDnsRecords(zone.id)).filter((r) => r.name.endsWith(`.${config.hostname}`)) : [];
|
|
276
|
-
for (const record of records) {
|
|
277
|
-
await run.mutate(`delete ${record.type} record ${record.name}`, () => ports.cloudflare.deleteDnsRecord(zone.id, record.id), undefined);
|
|
278
|
-
}
|
|
279
398
|
}
|
|
399
|
+
for (const record of records) {
|
|
400
|
+
await run.mutate(`delete ${record.type} record ${record.name}`, () => ports.cloudflare.deleteDnsRecord(zone.id, record.id), undefined);
|
|
401
|
+
}
|
|
402
|
+
if (await ports.registry.get(config.name))
|
|
403
|
+
await run.mutate(`release the app name ${config.name}`, () => ports.registry.release(config.name), undefined);
|
|
280
404
|
}
|
|
281
405
|
export const BACKUP_PREFIX = "backup-";
|
|
282
406
|
export const BACKUPS_KEPT = 3;
|
package/dist/lifecycle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"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"}
|
package/dist/ports.d.ts
CHANGED
|
@@ -30,7 +30,11 @@ export interface DnsRecord {
|
|
|
30
30
|
}
|
|
31
31
|
export interface ZoneRecord extends DnsRecord {
|
|
32
32
|
id: string;
|
|
33
|
-
|
|
33
|
+
comment: string | undefined;
|
|
34
|
+
}
|
|
35
|
+
export interface LegacyWorker {
|
|
36
|
+
app: string | null;
|
|
37
|
+
hyperdriveIds: string[];
|
|
34
38
|
}
|
|
35
39
|
export interface Cloudflare {
|
|
36
40
|
accountId(): Promise<string>;
|
|
@@ -41,24 +45,23 @@ export interface Cloudflare {
|
|
|
41
45
|
updateHyperdrive(id: string, connectionUri: string): Promise<Hyperdrive>;
|
|
42
46
|
deleteHyperdrive(id: string): Promise<void>;
|
|
43
47
|
findWorker(name: string): Promise<boolean>;
|
|
44
|
-
|
|
45
|
-
app: string | null;
|
|
46
|
-
hyperdriveIds: string[];
|
|
47
|
-
} | undefined>;
|
|
48
|
-
tagWorker(name: string, app: string, pr: number | undefined): Promise<void>;
|
|
48
|
+
legacyWorker(name: string): Promise<LegacyWorker | undefined>;
|
|
49
49
|
listWorkers(namePrefix: string): Promise<string[]>;
|
|
50
50
|
deleteWorker(name: string): Promise<void>;
|
|
51
51
|
workerSecretNames(worker: string): Promise<string[]>;
|
|
52
52
|
dnsRecords(zoneId: string, name: string): Promise<ZoneRecord[]>;
|
|
53
|
-
createDnsRecord(zoneId: string, record: DnsRecord): Promise<void>;
|
|
54
|
-
|
|
53
|
+
createDnsRecord(zoneId: string, record: DnsRecord, comment: string): Promise<void>;
|
|
54
|
+
setDnsRecordComment(zoneId: string, id: string, comment: string): Promise<void>;
|
|
55
|
+
commentedDnsRecords(zoneId: string, comment: string): Promise<ZoneRecord[]>;
|
|
55
56
|
findBucket(name: string): Promise<boolean>;
|
|
56
|
-
createBucket(name: string
|
|
57
|
-
|
|
57
|
+
createBucket(name: string): Promise<void>;
|
|
58
|
+
legacyBucketApp(name: string): Promise<string | null | undefined>;
|
|
58
59
|
deleteBucket(name: string): Promise<void>;
|
|
59
60
|
bucketExpiryDays(name: string): Promise<number | undefined>;
|
|
60
61
|
setBucketExpiry(name: string, days: number): Promise<void>;
|
|
61
62
|
deleteObjects(bucket: string, prefix: string): Promise<number>;
|
|
63
|
+
listObjects(bucket: string, prefix: string): Promise<string[]>;
|
|
64
|
+
copyObject(from: string, key: string, to: string): Promise<void>;
|
|
62
65
|
deleteDnsRecord(zoneId: string, id: string): Promise<void>;
|
|
63
66
|
}
|
|
64
67
|
export interface MailDomain {
|
|
@@ -76,6 +79,16 @@ export interface Mail {
|
|
|
76
79
|
createSendKey(name: string, domainId: string): Promise<string>;
|
|
77
80
|
deleteApiKey(id: string): Promise<void>;
|
|
78
81
|
}
|
|
82
|
+
export interface Repo {
|
|
83
|
+
id: number;
|
|
84
|
+
name: string;
|
|
85
|
+
}
|
|
86
|
+
export interface Registry {
|
|
87
|
+
get(app: string): Promise<Repo | undefined>;
|
|
88
|
+
claim(app: string, repo: Repo): Promise<boolean>;
|
|
89
|
+
set(app: string, repo: Repo): Promise<void>;
|
|
90
|
+
release(app: string): Promise<void>;
|
|
91
|
+
}
|
|
79
92
|
export interface Wrangler {
|
|
80
93
|
deploy(wranglerConfig: object, secrets: Record<string, string>): Promise<void>;
|
|
81
94
|
dev(wranglerConfig: object, secrets: Record<string, string>, databaseUrl: string | undefined): Promise<void>;
|
|
@@ -90,11 +103,13 @@ export interface GitHub {
|
|
|
90
103
|
setSecret(name: string, value: string): Promise<void>;
|
|
91
104
|
ensureEnvironment(name: string): Promise<void>;
|
|
92
105
|
openPullRequests(): Promise<number[]>;
|
|
106
|
+
repository(): Promise<Repo>;
|
|
93
107
|
}
|
|
94
108
|
export interface Ports {
|
|
95
109
|
neon: Neon;
|
|
96
110
|
cloudflare: Cloudflare;
|
|
97
111
|
mail: Mail;
|
|
112
|
+
registry: Registry;
|
|
98
113
|
wrangler: Wrangler;
|
|
99
114
|
migrator: Migrator;
|
|
100
115
|
}
|
package/dist/runtime/files.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { BUCKET_MARKER } from "../ownership.js";
|
|
2
1
|
// Paths are "folder/sub/file.json"; "/" makes folders. Previews share one bucket, so each
|
|
3
2
|
// preview's prefix is added here and never seen by app code.
|
|
4
3
|
export function createFiles(env) {
|
|
@@ -26,9 +25,7 @@ export function createFiles(env) {
|
|
|
26
25
|
let cursor;
|
|
27
26
|
do {
|
|
28
27
|
const page = await bucket().list({ prefix: base, delimiter: "/", ...(cursor && { cursor }) });
|
|
29
|
-
|
|
30
|
-
const objects = page.objects.filter((o) => o.key !== BUCKET_MARKER);
|
|
31
|
-
result.files.push(...objects.map((o) => ({ path: o.key.slice(prefix.length), size: o.size, uploaded: o.uploaded })));
|
|
28
|
+
result.files.push(...page.objects.map((o) => ({ path: o.key.slice(prefix.length), size: o.size, uploaded: o.uploaded })));
|
|
32
29
|
result.folders.push(...page.delimitedPrefixes.map((p) => p.slice(prefix.length)));
|
|
33
30
|
cursor = page.truncated ? page.cursor : undefined;
|
|
34
31
|
} while (cursor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/runtime/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/runtime/files.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/guard.js
CHANGED
|
@@ -16,7 +16,8 @@ export function isCrossSiteForm(request, url) {
|
|
|
16
16
|
export function needsSession(pathname) {
|
|
17
17
|
if (!pathname.startsWith("/api/"))
|
|
18
18
|
return false;
|
|
19
|
-
|
|
19
|
+
// Live rooms ask the app's canJoin instead, which may welcome visitors who are not signed in.
|
|
20
|
+
return !(pathname.startsWith(`${AUTH_PATH}/`) || pathname.startsWith(PUBLIC_API) || pathname.startsWith("/api/live/"));
|
|
20
21
|
}
|
|
21
22
|
// Guessing passwords is limited per account, signing up per address.
|
|
22
23
|
const LIMITED = {
|