directus-deploy-cli 0.17.0 → 0.19.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.
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,525 @@
1
+ import { spawn } from "node:child_process";
2
+ import { mkdtemp, rm } from "node:fs/promises";
3
+ import { tmpdir } from "node:os";
4
+ import { join, resolve } from "node:path";
5
+ import { createDirectusClient } from "./http.js";
6
+ import { run } from "./runner.js";
7
+ import { diffExtensions, loadTargets } from "./extensions.js";
8
+ function exec(cmd, args, cwd) {
9
+ return new Promise((res, rej) => {
10
+ const child = spawn(cmd, args, { cwd });
11
+ let stdout = "";
12
+ let stderr = "";
13
+ child.stdout.on("data", (d) => (stdout += d.toString()));
14
+ child.stderr.on("data", (d) => (stderr += d.toString()));
15
+ child.on("error", (e) => rej(e));
16
+ child.on("close", (code) => res({ code: code ?? -1, stdout, stderr }));
17
+ });
18
+ }
19
+ async function git(repoRoot, args) {
20
+ const r = await exec("git", ["-C", repoRoot, ...args]);
21
+ if (r.code !== 0) {
22
+ throw new Error(`git ${args[0]} failed: ${r.stderr.trim() || r.stdout.trim()}`);
23
+ }
24
+ return r.stdout;
25
+ }
26
+ // Classify `git diff --name-status <to> <from>` lines into the overview's
27
+ // four dimensions. Pure — exported for tests.
28
+ export function classifyPromotionPaths(entries) {
29
+ const migrations = { added: [], modified: [], removed: [] };
30
+ const extSet = new Set();
31
+ const schema = [];
32
+ const seeds = [];
33
+ for (const { status, path } of entries) {
34
+ // register manifests are config, not runnable SQL — schema dimension.
35
+ if (/^migrations\/register\//.test(path)) {
36
+ schema.push(path);
37
+ continue;
38
+ }
39
+ const extMigration = path.match(/^extensions\/([^/]+)\/migrations\/.+\.sql$/);
40
+ if (/^migrations\/[^/]+\.sql$/.test(path) || extMigration) {
41
+ const label = extMigration ? `ext/${extMigration[1]}/${path.split("/").pop()}` : path.replace(/^migrations\//, "");
42
+ if (status === "A")
43
+ migrations.added.push(label);
44
+ else if (status === "D")
45
+ migrations.removed.push(label);
46
+ else
47
+ migrations.modified.push(label);
48
+ continue;
49
+ }
50
+ if (/^directus_config\/(snapshot|collections)\//.test(path)) {
51
+ schema.push(path);
52
+ continue;
53
+ }
54
+ if (/^directus_config\/seed\//.test(path)) {
55
+ seeds.push(path);
56
+ continue;
57
+ }
58
+ const extSrc = path.match(/^extensions\/([^/]+)\/src\//);
59
+ if (extSrc)
60
+ extSet.add(extSrc[1]);
61
+ }
62
+ return {
63
+ migrations,
64
+ extensions: [...extSet].sort(),
65
+ schema: schema.sort(),
66
+ seeds: seeds.sort(),
67
+ };
68
+ }
69
+ export async function computePromotionQueue(repoRoot, from, to) {
70
+ const ahead = Number((await git(repoRoot, ["rev-list", "--count", `${to}..${from}`])).trim());
71
+ const behind = Number((await git(repoRoot, ["rev-list", "--count", `${from}..${to}`])).trim());
72
+ const raw = await git(repoRoot, [
73
+ "diff",
74
+ "--name-status",
75
+ "--no-renames",
76
+ to,
77
+ from,
78
+ "--",
79
+ "directus_config",
80
+ "migrations",
81
+ "extensions",
82
+ ]);
83
+ const entries = raw
84
+ .split("\n")
85
+ .map((l) => l.trim())
86
+ .filter(Boolean)
87
+ .map((l) => {
88
+ const [status = "", ...rest] = l.split("\t");
89
+ return { status: status.charAt(0), path: rest.join("\t") };
90
+ });
91
+ return { from, to, commitsAhead: ahead, commitsBehind: behind, ...classifyPromotionPaths(entries) };
92
+ }
93
+ // -------------------- ref materialization --------------------
94
+ // Extract the deployable dirs at a ref into a temp dir so the file-reading
95
+ // reconcilers see the branch's state instead of the working tree. `extensions`
96
+ // is included because the migrations reconciler scans extensions/*/migrations.
97
+ async function materializeRef(repoRoot, ref) {
98
+ const dir = await mkdtemp(join(tmpdir(), "dd-overview-"));
99
+ const quote = (s) => `'${s.replace(/'/g, "'\\''")}'`;
100
+ const cmd = `git -C ${quote(repoRoot)} archive ${quote(ref)} directus_config migrations extensions | tar -xf - -C ${quote(dir)}`;
101
+ const r = await exec("sh", ["-c", cmd]);
102
+ if (r.code !== 0) {
103
+ await rm(dir, { recursive: true, force: true });
104
+ throw new Error(`could not materialize ${ref}: ${r.stderr.trim() || r.stdout.trim()} (is the ref fetched?)`);
105
+ }
106
+ return dir;
107
+ }
108
+ const CONFIG_ENTITIES = [
109
+ "collections",
110
+ "fields",
111
+ "relations",
112
+ "roles",
113
+ "policies",
114
+ "permissions",
115
+ "flows",
116
+ "operations",
117
+ ];
118
+ const LAYOUT = {
119
+ snapshotDir: "directus_config/snapshot",
120
+ configDir: "directus_config/collections",
121
+ registerDir: "migrations/register",
122
+ seedDir: "directus_config/seed",
123
+ migrationsDir: "migrations",
124
+ extensionsDir: "extensions",
125
+ };
126
+ async function checkTarget(input) {
127
+ const out = {
128
+ target: input.name,
129
+ ref: input.ref,
130
+ migrations: { error: "not run" },
131
+ extensions: { error: "not run" },
132
+ config: { error: "not run" },
133
+ seeds: { error: "not run" },
134
+ };
135
+ // Extensions need no token — always attempted. Compares deployed source
136
+ // tree hash against the target's ref (worktree targets compare vs HEAD).
137
+ const extPromise = (async () => {
138
+ try {
139
+ const report = await diffExtensions({
140
+ targetsFile: input.targetsFile,
141
+ targets: [input.name],
142
+ repoRoot: input.repoRoot,
143
+ reference: input.ref ?? "HEAD",
144
+ });
145
+ const summary = { match: 0, drift: 0, missing: 0, driftList: [], missingList: [] };
146
+ for (const row of report.rows) {
147
+ const cell = row.cells[input.name];
148
+ if (!cell)
149
+ continue;
150
+ if (cell.error) {
151
+ summary.missing++;
152
+ summary.missingList.push(row.extension);
153
+ }
154
+ else if (cell.matchesReference) {
155
+ summary.match++;
156
+ }
157
+ else {
158
+ summary.drift++;
159
+ summary.driftList.push({ name: row.extension, hint: cell.branchHint });
160
+ }
161
+ }
162
+ return summary;
163
+ }
164
+ catch (e) {
165
+ return { error: e.message };
166
+ }
167
+ })();
168
+ const token = process.env[input.tokenEnv];
169
+ if (!token) {
170
+ const error = `${input.tokenEnv} not set`;
171
+ out.migrations = { error };
172
+ out.config = { error };
173
+ out.seeds = { error };
174
+ out.extensions = await extPromise;
175
+ return out;
176
+ }
177
+ const client = createDirectusClient({ baseUrl: input.baseUrl, token });
178
+ const p = (rel) => join(input.layoutRoot, rel);
179
+ const migPromise = (async () => {
180
+ try {
181
+ const { reconcileMigrations } = await import("./reconcilers/migrations.js");
182
+ const results = await reconcileMigrations({
183
+ migrationsDir: p(LAYOUT.migrationsDir),
184
+ extensionsDir: p(LAYOUT.extensionsDir),
185
+ includeExtensions: true,
186
+ client,
187
+ opts: { dryRun: true },
188
+ });
189
+ if (results.length === 1 && results[0]?.label === "migrations") {
190
+ return { error: results[0].reason ?? "target unreachable" };
191
+ }
192
+ const s = { applied: 0, pending: 0, mutated: 0, pendingList: [], mutatedList: [] };
193
+ for (const r of results) {
194
+ const f = r.label.replace(/^migrations\//, "");
195
+ if (r.action === "unchanged")
196
+ s.applied++;
197
+ else if (r.action === "created") {
198
+ s.pending++;
199
+ s.pendingList.push(f);
200
+ }
201
+ else if (r.action === "failed") {
202
+ s.mutated++;
203
+ s.mutatedList.push(f);
204
+ }
205
+ }
206
+ return s;
207
+ }
208
+ catch (e) {
209
+ return { error: e.message };
210
+ }
211
+ })();
212
+ const cfgPromise = (async () => {
213
+ try {
214
+ const report = await run({
215
+ target: input.name,
216
+ paths: {
217
+ snapshotDir: p(LAYOUT.snapshotDir),
218
+ configDir: p(LAYOUT.configDir),
219
+ registerDir: p(LAYOUT.registerDir),
220
+ },
221
+ migrationsDir: p(LAYOUT.migrationsDir),
222
+ extensionsDir: p(LAYOUT.extensionsDir),
223
+ includeExtensions: true,
224
+ seedDir: p(LAYOUT.seedDir),
225
+ client,
226
+ opts: { dryRun: true },
227
+ entities: new Set([...CONFIG_ENTITIES, "seeds"]),
228
+ });
229
+ const config = { changes: 0, changeList: [] };
230
+ const seeds = { changes: 0, changeList: [] };
231
+ for (const r of report.results) {
232
+ if (r.action !== "created" && r.action !== "updated")
233
+ continue;
234
+ const bucket = r.kind === "seeds" ? seeds : config;
235
+ bucket.changes++;
236
+ bucket.changeList.push(`${r.action === "created" ? "+" : "~"} ${r.label}`);
237
+ }
238
+ return { config, seeds };
239
+ }
240
+ catch (e) {
241
+ const error = e.message;
242
+ return { config: { error }, seeds: { error } };
243
+ }
244
+ })();
245
+ const [ext, mig, cfg] = await Promise.all([extPromise, migPromise, cfgPromise]);
246
+ out.extensions = ext;
247
+ out.migrations = mig;
248
+ out.config = cfg.config;
249
+ out.seeds = cfg.seeds;
250
+ return out;
251
+ }
252
+ // Infer the promotion pair from the targets' refs: exactly two distinct refs,
253
+ // where a build_forbidden (prod-like) target pins the `to` side.
254
+ export function inferPromotionPair(targets) {
255
+ const refs = [...new Set(targets.map((t) => t.ref).filter((r) => r !== null))];
256
+ if (refs.length !== 2) {
257
+ return { skipped: `need exactly 2 distinct refs across targets to infer the pair (found ${refs.length}) — pass --from/--to` };
258
+ }
259
+ const prodRefs = [...new Set(targets.filter((t) => t.buildForbidden && t.ref).map((t) => t.ref))];
260
+ if (prodRefs.length !== 1) {
261
+ return { skipped: "could not tell which ref is the promotion destination — pass --from/--to" };
262
+ }
263
+ const to = prodRefs[0];
264
+ const from = refs.find((r) => r !== to);
265
+ return { from, to };
266
+ }
267
+ export async function runOverview(input) {
268
+ const repoRoot = resolve(input.repoRoot);
269
+ const cfg = await loadTargets(input.targetsFile);
270
+ const names = input.targets?.length ? input.targets : Object.keys(cfg.targets);
271
+ const missing = names.filter((n) => !cfg.targets[n]);
272
+ if (missing.length)
273
+ throw new Error(`unknown target(s): ${missing.join(", ")}`);
274
+ // Materialize each distinct ref once, shared across targets.
275
+ const matCache = new Map();
276
+ const materialized = (ref) => {
277
+ let p = matCache.get(ref);
278
+ if (!p) {
279
+ p = materializeRef(repoRoot, ref);
280
+ matCache.set(ref, p);
281
+ }
282
+ return p;
283
+ };
284
+ const targetChecks = names.map(async (name) => {
285
+ const t = cfg.targets[name];
286
+ const ref = t.ref ?? null;
287
+ let layoutRoot = repoRoot;
288
+ if (ref) {
289
+ try {
290
+ layoutRoot = await materialized(ref);
291
+ }
292
+ catch (e) {
293
+ const error = e.message;
294
+ return {
295
+ target: name,
296
+ ref,
297
+ migrations: { error },
298
+ extensions: { error },
299
+ config: { error },
300
+ seeds: { error },
301
+ };
302
+ }
303
+ }
304
+ return checkTarget({
305
+ name,
306
+ baseUrl: t.base_url,
307
+ tokenEnv: t.token_env ?? `DIRECTUS_${name.toUpperCase()}_TOKEN`,
308
+ ref,
309
+ layoutRoot,
310
+ repoRoot,
311
+ targetsFile: input.targetsFile,
312
+ });
313
+ });
314
+ let promotion = null;
315
+ let promotionSkipped;
316
+ let pair;
317
+ if (input.from && input.to) {
318
+ pair = { from: input.from, to: input.to };
319
+ }
320
+ else if (input.from || input.to) {
321
+ pair = { skipped: "--from and --to must be passed together" };
322
+ }
323
+ else {
324
+ pair = inferPromotionPair(names.map((n) => ({
325
+ ref: cfg.targets[n].ref ?? null,
326
+ buildForbidden: Boolean(cfg.targets[n].build_forbidden),
327
+ })));
328
+ }
329
+ const promotionPromise = (async () => {
330
+ if ("skipped" in pair) {
331
+ promotionSkipped = pair.skipped;
332
+ return;
333
+ }
334
+ try {
335
+ promotion = await computePromotionQueue(repoRoot, pair.from, pair.to);
336
+ }
337
+ catch (e) {
338
+ promotionSkipped = e.message;
339
+ }
340
+ })();
341
+ const targets = await Promise.all(targetChecks);
342
+ await promotionPromise;
343
+ // Best-effort temp cleanup — a leaked dir in tmpdir is harmless.
344
+ for (const p of matCache.values()) {
345
+ p.then((dir) => rm(dir, { recursive: true, force: true })).catch(() => { });
346
+ }
347
+ return { targets, promotion, promotionSkipped };
348
+ }
349
+ // -------------------- rendering --------------------
350
+ function isErr(d) {
351
+ return typeof d.error === "string";
352
+ }
353
+ function cellMigrations(d) {
354
+ if (isErr(d))
355
+ return "⚠ unreachable";
356
+ if (d.pending === 0 && d.mutated === 0)
357
+ return `✓ ${d.applied} applied`;
358
+ const parts = [`${d.pending} pending`];
359
+ if (d.mutated > 0)
360
+ parts.push(`${d.mutated} mutated`);
361
+ return `✗ ${parts.join(", ")}`;
362
+ }
363
+ function cellExtensions(d) {
364
+ if (isErr(d))
365
+ return "⚠ unreachable";
366
+ const total = d.match + d.drift + d.missing;
367
+ if (d.drift === 0)
368
+ return `✓ ${d.match}/${total} match`;
369
+ return `✗ ${d.drift} behind`;
370
+ }
371
+ function cellChanges(d) {
372
+ if (isErr(d))
373
+ return "⚠ unreachable";
374
+ return d.changes === 0 ? "✓ in sync" : `✗ ${d.changes} change${d.changes === 1 ? "" : "s"}`;
375
+ }
376
+ export function renderOverview(report) {
377
+ const dims = ["migrations", "extensions", "config", "seeds"];
378
+ const colWidth = 20;
379
+ const labelWidth = 14;
380
+ const headers = [];
381
+ const subHeaders = [];
382
+ for (const t of report.targets) {
383
+ headers.push(t.target);
384
+ subHeaders.push(t.ref ? `vs ${t.ref}` : "vs worktree");
385
+ }
386
+ const promo = report.promotion;
387
+ if (promo) {
388
+ headers.push(`${short(promo.from)} → ${short(promo.to)}`);
389
+ subHeaders.push("promotion queue");
390
+ }
391
+ const lines = [];
392
+ lines.push("".padEnd(labelWidth) + headers.map((h) => h.padEnd(colWidth)).join("").trimEnd());
393
+ lines.push("".padEnd(labelWidth) + subHeaders.map((h) => h.padEnd(colWidth)).join("").trimEnd());
394
+ lines.push("");
395
+ for (const dim of dims) {
396
+ const cells = [];
397
+ for (const t of report.targets) {
398
+ switch (dim) {
399
+ case "migrations":
400
+ cells.push(cellMigrations(t.migrations));
401
+ break;
402
+ case "extensions":
403
+ cells.push(cellExtensions(t.extensions));
404
+ break;
405
+ case "config":
406
+ cells.push(cellChanges(t.config));
407
+ break;
408
+ case "seeds":
409
+ cells.push(cellChanges(t.seeds));
410
+ break;
411
+ }
412
+ }
413
+ if (promo)
414
+ cells.push(promotionCell(dim, promo));
415
+ lines.push(` ${dim.padEnd(labelWidth - 2)}` + cells.map((c) => c.padEnd(colWidth)).join("").trimEnd());
416
+ }
417
+ // Detail block: every red/⚠ cell explains itself.
418
+ const details = [];
419
+ for (const t of report.targets) {
420
+ if (isErr(t.migrations))
421
+ details.push(`⚠ ${t.target} migrations: ${t.migrations.error}`);
422
+ else {
423
+ if (t.migrations.pendingList.length)
424
+ details.push(`✗ ${t.target} migrations pending: ${t.migrations.pendingList.join(", ")}`);
425
+ if (t.migrations.mutatedList.length)
426
+ details.push(`✗ ${t.target} migrations MUTATED: ${t.migrations.mutatedList.join(", ")}`);
427
+ }
428
+ if (isErr(t.extensions))
429
+ details.push(`⚠ ${t.target} extensions: ${t.extensions.error}`);
430
+ else {
431
+ for (const d of t.extensions.driftList)
432
+ details.push(`✗ ${t.target} extension ${d.name} differs from ${t.ref ?? "HEAD"}${d.hint ? ` — running ${d.hint}` : ""}`);
433
+ if (t.extensions.missingList.length)
434
+ details.push(`? ${t.target} extensions unreachable: ${t.extensions.missingList.join(", ")}`);
435
+ }
436
+ if (isErr(t.config))
437
+ details.push(`⚠ ${t.target} config: ${t.config.error}`);
438
+ else
439
+ for (const c of truncate(t.config.changeList))
440
+ details.push(`✗ ${t.target} config ${c}`);
441
+ if (isErr(t.seeds))
442
+ details.push(`⚠ ${t.target} seeds: ${t.seeds.error}`);
443
+ else
444
+ for (const c of truncate(t.seeds.changeList))
445
+ details.push(`✗ ${t.target} seeds ${c}`);
446
+ }
447
+ if (details.length) {
448
+ lines.push("");
449
+ lines.push(...details.map((d) => ` ${d}`));
450
+ }
451
+ lines.push("");
452
+ if (promo) {
453
+ lines.push(` ${short(promo.from)} is ${promo.commitsAhead} commit(s) ahead of ${short(promo.to)}` +
454
+ (promo.commitsBehind > 0
455
+ ? ` — and ${short(promo.to)} has ${promo.commitsBehind} commit(s) not on ${short(promo.from)} (hotfix?)`
456
+ : ""));
457
+ const promoDetails = [];
458
+ for (const m of promo.migrations.added)
459
+ promoDetails.push(` queued migration: ${m}`);
460
+ for (const m of promo.migrations.modified)
461
+ promoDetails.push(` ⚠ migration MODIFIED between refs: ${m}`);
462
+ for (const m of promo.migrations.removed)
463
+ promoDetails.push(` ⚠ migration removed on ${short(promo.from)}: ${m}`);
464
+ if (promo.extensions.length)
465
+ promoDetails.push(` queued extensions: ${promo.extensions.join(", ")}`);
466
+ if (promoDetails.length)
467
+ lines.push(...promoDetails.map((d) => ` ${d}`));
468
+ }
469
+ else if (report.promotionSkipped) {
470
+ lines.push(` (promotion column skipped: ${report.promotionSkipped})`);
471
+ }
472
+ const anyDrift = hasDrift(report);
473
+ const anyErr = hasErrors(report);
474
+ lines.push("");
475
+ lines.push(anyDrift
476
+ ? " Drift detected."
477
+ : anyErr
478
+ ? " No drift found, but some checks could not run."
479
+ : " All environments in sync.");
480
+ return lines.join("\n");
481
+ }
482
+ function short(ref) {
483
+ return ref.replace(/^origin\//, "");
484
+ }
485
+ // Keep the detail block readable when a whole collection changes at once —
486
+ // the full list is always available via --json.
487
+ function truncate(list, max = 6) {
488
+ if (list.length <= max)
489
+ return list;
490
+ return [...list.slice(0, max - 1), `… and ${list.length - (max - 1)} more (see --json)`];
491
+ }
492
+ function promotionCell(dim, p) {
493
+ switch (dim) {
494
+ case "migrations": {
495
+ const n = p.migrations.added.length;
496
+ const warn = p.migrations.modified.length + p.migrations.removed.length;
497
+ if (n === 0 && warn === 0)
498
+ return "none";
499
+ return `${n} new${warn ? ` (⚠ ${warn})` : ""}`;
500
+ }
501
+ case "extensions":
502
+ return p.extensions.length === 0 ? "none" : `${p.extensions.length} changed`;
503
+ case "config":
504
+ return p.schema.length === 0 ? "none" : `${p.schema.length} file(s)`;
505
+ case "seeds":
506
+ return p.seeds.length === 0 ? "none" : `${p.seeds.length} file(s)`;
507
+ }
508
+ }
509
+ export function hasDrift(report) {
510
+ for (const t of report.targets) {
511
+ if (!isErr(t.migrations) && (t.migrations.pending > 0 || t.migrations.mutated > 0))
512
+ return true;
513
+ if (!isErr(t.extensions) && t.extensions.drift > 0)
514
+ return true;
515
+ if (!isErr(t.config) && t.config.changes > 0)
516
+ return true;
517
+ if (!isErr(t.seeds) && t.seeds.changes > 0)
518
+ return true;
519
+ }
520
+ return false;
521
+ }
522
+ export function hasErrors(report) {
523
+ return report.targets.some((t) => isErr(t.migrations) || isErr(t.extensions) || isErr(t.config) || isErr(t.seeds));
524
+ }
525
+ //# sourceMappingURL=overview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overview.js","sourceRoot":"","sources":["../src/overview.ts"],"names":[],"mappings":"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"}