swarm-deploy 0.3.1 → 0.4.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.
@@ -13,12 +13,21 @@ const errors_js_1 = require("../errors.js");
13
13
  const files_js_1 = require("../files.js");
14
14
  const hash_js_1 = require("../tar-protocol/hash.js");
15
15
  const atomic_file_js_1 = require("./atomic-file.js");
16
+ const commit_journal_js_1 = require("./commit-journal.js");
16
17
  const layout_js_1 = require("./layout.js");
17
18
  const tree_fs_js_1 = require("./tree-fs.js");
18
19
  const MAX_LINK_RECORD_BYTES = 4 * 1024;
19
20
  const RECORD_FILENAME = /^[0-9a-f]{64}\.json$/;
20
21
  const V1_RECORD_KEYS = 'name,target,targetKind,transferId,version';
21
22
  const V2_RECORD_KEYS = 'mode,name,target,targetKind,transferId,version';
23
+ function identityOf(stat) {
24
+ try {
25
+ return (0, commit_journal_js_1.fileIdentity)(stat);
26
+ }
27
+ catch {
28
+ return null;
29
+ }
30
+ }
22
31
  function conflict(message) {
23
32
  return new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.LINK_CONFLICT, message);
24
33
  }
@@ -104,12 +113,21 @@ async function syncDirectory(directory, storage) {
104
113
  /**
105
114
  * Owns every server-managed symlink in the storage root.
106
115
  *
107
- * A destination is replaceable only when a valid ownership record exists, the
108
- * visible destination is a symbolic link, and `readlink()` returns either the
109
- * recorded target or the desired target. Anything else is unmanaged: it is left
110
- * untouched and the operation fails closed. A link target is always exactly a
111
- * sibling basename, and `readlink()` output is only ever compared, never used
112
- * to build a path.
116
+ * Automatic reconciliation and every recorded link are replaceable only when a
117
+ * valid ownership record exists, the visible destination is a symbolic link, and
118
+ * `readlink()` returns either the recorded target or the desired target. Anything
119
+ * else is unmanaged: it is left untouched and the operation fails closed.
120
+ *
121
+ * The one exception is an explicit, authenticated manual request (`linkManual`)
122
+ * whose target has passed every policy check: a symlink at the requested name
123
+ * that has no ownership record at all is taken over by atomic replacement plus a
124
+ * manual record, whatever its old literal says. Regular files and directories,
125
+ * automatic, version 1, malformed, or foreign records, and a recorded link that
126
+ * changed externally are still never touched, and automatic reconciliation never
127
+ * takes anything over.
128
+ *
129
+ * A link target is always exactly a sibling basename, and `readlink()` output is
130
+ * only ever compared, never used to build a path or followed.
113
131
  */
114
132
  class LinkStore {
115
133
  layout;
@@ -192,7 +210,11 @@ class LinkStore {
192
210
  }
193
211
  if (!stat.isSymbolicLink())
194
212
  return { state: 'UNMANAGED' };
195
- return { state: 'SYMLINK', target: await this.storage.readlink(finalPath) };
213
+ return {
214
+ state: 'SYMLINK',
215
+ target: await this.storage.readlink(finalPath),
216
+ identity: identityOf(stat)
217
+ };
196
218
  });
197
219
  }
198
220
  async writeRecord(link, mode) {
@@ -253,12 +275,17 @@ class LinkStore {
253
275
  await this.storage.unlink(temporary);
254
276
  }).catch(() => { });
255
277
  }
256
- /** Atomically swaps an owned link by renaming a private temporary link over it. */
257
- async replaceLink(link, mode) {
278
+ /**
279
+ * Atomically swaps a link by renaming a private temporary link over it.
280
+ * `beforeSwap` runs immediately before the rename, so a caller that does not
281
+ * yet own the destination can re-prove what it saw and fail closed.
282
+ */
283
+ async replaceLink(link, mode, beforeSwap) {
258
284
  const temporary = _path_1.default.join(this.layout.publications, `.link-${randomSuffix()}`);
259
285
  try {
260
286
  await (0, layout_js_1.withSafeDirectoryIdentity)(this.layout.publications, this.storage, () => this.storage.symlink(link.target, temporary));
261
287
  await (0, layout_js_1.withSafeDirectoryIdentity)(this.layout.publications, this.storage, () => syncDirectory(this.layout.publications, this.storage));
288
+ await beforeSwap?.();
262
289
  await (0, layout_js_1.withSafeDirectoryIdentity)(this.layout.root, this.storage, () => (0, layout_js_1.withSafeDirectoryIdentity)(this.layout.publications, this.storage, () => this.storage.rename(temporary, this.finalPath(link.name))));
263
290
  await (0, layout_js_1.withSafeDirectoryIdentity)(this.layout.root, this.storage, () => syncDirectory(this.layout.root, this.storage));
264
291
  await this.writeRecord(link, mode);
@@ -389,11 +416,82 @@ class LinkStore {
389
416
  }
390
417
  return result;
391
418
  }
419
+ /** A visible entry's identity, `'missing'` when absent, or `null` when the adapter reports none. */
420
+ entryIdentity(name) {
421
+ return (0, layout_js_1.withSafeDirectoryIdentity)(this.layout.root, this.storage, async () => {
422
+ try {
423
+ return identityOf(await this.storage.lstat(this.finalPath(name)));
424
+ }
425
+ catch (error) {
426
+ if ((0, error_code_js_1.isMissing)(error))
427
+ return 'missing';
428
+ throw error;
429
+ }
430
+ });
431
+ }
432
+ /**
433
+ * Re-proves, immediately before a takeover swap, that the destination is still
434
+ * the unrecorded symlink that was inspected: same literal, same inode when the
435
+ * adapter reports one, and still no ownership record. Anything else (a file, a
436
+ * directory, another symlink, a new record) fails closed. The old literal is
437
+ * only compared as text, never resolved.
438
+ *
439
+ * Records are keyed by the exact spelling of a name, but on a case-insensitive
440
+ * volume `Latest` and `latest` are one directory entry, so a request for one
441
+ * spelling would otherwise miss the record of the other and replace a link that
442
+ * is recorded. Two filesystem-aware checks close that: the entry must be listed
443
+ * in the root under exactly the requested spelling, and no protected name that
444
+ * differs only in case may resolve to the same entry. Protected names are every
445
+ * recorded name (so an externally case-renamed recorded link is caught) and the
446
+ * configured automatic link names and managed artifact names passed in, which
447
+ * are reserved even before they have a record. Names that are genuinely distinct
448
+ * on a case-sensitive volume, including a recorded `latest` beside an unrecorded
449
+ * `Latest`, stay independent. If the adapter reports no inode identity and a
450
+ * protected case variant exists, independence cannot be proven and the request
451
+ * fails closed.
452
+ *
453
+ * This narrows the window but cannot close it: the adapter has no
454
+ * compare-and-swap rename, so a writer outside this process that changes the
455
+ * path between this check and the rename can still be replaced.
456
+ */
457
+ async assertTakeoverStillSafe(name, seen, reserved) {
458
+ if (seen.state !== 'SYMLINK')
459
+ throw failure('Invalid takeover state');
460
+ const now = await this.classify(name);
461
+ if (now.state !== 'SYMLINK' ||
462
+ now.target !== seen.target ||
463
+ (seen.identity !== null &&
464
+ now.identity !== null &&
465
+ !(0, commit_journal_js_1.identitiesEqual)(seen.identity, now.identity)) ||
466
+ (await this.readRecord(name)) !== null) {
467
+ throw conflict('Existing symlink changed while it was being taken over');
468
+ }
469
+ const entries = await (0, layout_js_1.withSafeDirectoryIdentity)(this.layout.root, this.storage, () => this.storage.readdir(this.layout.root));
470
+ if (!entries.includes(name)) {
471
+ throw conflict('Existing symlink is another spelling of a different directory entry');
472
+ }
473
+ const protectedNames = new Set(reserved);
474
+ for (const record of await this.listRecords())
475
+ protectedNames.add(record.name);
476
+ const folded = name.toLowerCase();
477
+ for (const other of protectedNames) {
478
+ if (other === name || other.toLowerCase() !== folded)
479
+ continue;
480
+ const identity = await this.entryIdentity(other);
481
+ if (identity === 'missing')
482
+ continue;
483
+ if (identity === null || now.identity === null || (0, commit_journal_js_1.identitiesEqual)(identity, now.identity)) {
484
+ throw conflict('Existing symlink is a case variant of a protected managed name');
485
+ }
486
+ }
487
+ }
392
488
  async convergeManual(link, { managedArtifactNames, automaticLinkNames }) {
393
489
  if (!managedArtifactNames ||
394
490
  typeof managedArtifactNames.has !== 'function' ||
491
+ typeof managedArtifactNames[Symbol.iterator] !== 'function' ||
395
492
  !automaticLinkNames ||
396
- typeof automaticLinkNames.has !== 'function') {
493
+ typeof automaticLinkNames.has !== 'function' ||
494
+ typeof automaticLinkNames[Symbol.iterator] !== 'function') {
397
495
  throw failure('Invalid manual link options');
398
496
  }
399
497
  assertSafeName(link.name, 'Invalid managed link name');
@@ -424,7 +522,17 @@ class LinkStore {
424
522
  return { status: 'LINKED' };
425
523
  }
426
524
  if (record === null) {
427
- throw conflict('Unrecorded symlink at a requested manual link name');
525
+ // An explicit manual request, whose target has passed every check above, takes
526
+ // over a symlink that has no ownership record: it is replaced atomically by the
527
+ // requested link and then recorded. The old link is never followed, so whatever
528
+ // it pointed at (a legacy directory, a dangling or foreign path) is left alone and
529
+ // never imported. Even a link that already reads as the target is replaced, so the
530
+ // visible text and the record agree for every later comparison. The swap comes
531
+ // first and the record second: a crash between them leaves a symlink at the
532
+ // requested target that this same request takes over again on retry.
533
+ const reserved = [...automaticLinkNames, ...managedArtifactNames];
534
+ await this.replaceLink(link, 'manual', () => this.assertTakeoverStillSafe(link.name, destination, reserved));
535
+ return { status: 'LINKED' };
428
536
  }
429
537
  if (destination.target !== record.target && destination.target !== link.target) {
430
538
  throw conflict('Managed link does not match its ownership record');
@@ -1 +1 @@
1
- {"version":3,"file":"link-store.js","sourceRoot":"","sources":["../../src/storage/link-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link-store.js","sourceRoot":"","sources":["../../src/storage/link-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import type { StorageAdapter } from './types.js';
2
+ /** Every private metadata directory a reset archives, in archive order. */
3
+ export declare const METADATA_DIRECTORIES: readonly ['staging', 'sessions', 'commits', 'journals', 'publications', 'links', 'trash'];
4
+ export type MetadataDirectoryName = (typeof METADATA_DIRECTORIES)[number];
5
+ export declare const ARCHIVE_DIRECTORY_NAME = "archive";
6
+ export declare const ARCHIVE_MARKER_NAME = "reset.json";
7
+ /** Verbatim copy of a version 1 marker, kept when a retry upgrades it to the bounded format. */
8
+ export declare const ARCHIVE_LEGACY_MARKER_NAME = "reset.v1.json";
9
+ export interface StorageResetOptions {
10
+ storageDir: string;
11
+ /** Archive the metadata. Without it the reset is a read-only preview. */
12
+ apply?: boolean;
13
+ /** Milliseconds to keep polling a live lock before failing closed. */
14
+ wait?: number;
15
+ storage?: StorageAdapter;
16
+ isProcessAlive?: (pid: number) => boolean;
17
+ clock?: {
18
+ now(): number;
19
+ };
20
+ pid?: number;
21
+ pollInterval?: number;
22
+ sleep?: (ms: number) => Promise<void>;
23
+ }
24
+ export type ResetLockState = {
25
+ status: 'free';
26
+ } | {
27
+ status: 'held';
28
+ pid: number;
29
+ ageMs: number;
30
+ } | {
31
+ status: 'stale';
32
+ pid: number;
33
+ ageMs: number;
34
+ } | {
35
+ status: 'malformed';
36
+ } | {
37
+ status: 'unsafe';
38
+ };
39
+ /** What an archive physically holds. Lock residue is counted; its names stay in `locks/`. */
40
+ export interface ArchiveHoldings {
41
+ directories: string[];
42
+ lockEntries: number;
43
+ }
44
+ export interface ArchiveSummary {
45
+ name: string;
46
+ path: string;
47
+ /** What the marker claims; an `in-progress` marker can lag the archive after a hard stop. */
48
+ status: 'completed' | 'in-progress' | 'unknown';
49
+ /** What the archive physically holds, read from the filesystem rather than the marker. */
50
+ held: ArchiveHoldings;
51
+ }
52
+ export interface StorageResetReport {
53
+ root: string;
54
+ applied: boolean;
55
+ lock: ResetLockState;
56
+ /** Entry counts per private metadata directory before the reset. */
57
+ metadata: Record<MetadataDirectoryName, number>;
58
+ commits: {
59
+ records: number;
60
+ missingPayloads: string[];
61
+ invalid: number;
62
+ };
63
+ links: {
64
+ records: number;
65
+ invalid: number;
66
+ };
67
+ obsoleteLocks: number;
68
+ /** Entries in the internal directory the reset does not recognise and leaves alone. */
69
+ unknownInternal: string[];
70
+ archives: ArchiveSummary[];
71
+ /** Visible root entries the reset never touches; they stay after the reset. */
72
+ remaining: {
73
+ payloads: string[];
74
+ symlinks: string[];
75
+ other: string[];
76
+ };
77
+ /** True only when nothing visible remains, so the next server really starts empty. */
78
+ freshStart: boolean;
79
+ resetPending: boolean;
80
+ /** The archive an interrupted reset left pending, which the next apply resumes. */
81
+ pendingArchive: string | null;
82
+ /** The archive this run created or resumed, when applied. */
83
+ archive: string | null;
84
+ /** What a resumed archive already held before this run; null when a new archive was made. */
85
+ resumed: ArchiveHoldings | null;
86
+ }
87
+ /** Read-only inspection of a storage root: never creates, moves, or locks anything. */
88
+ export declare function inspectStorageReset(options: StorageResetOptions): Promise<StorageResetReport>;
89
+ /**
90
+ * Archives every private metadata directory of a storage root into
91
+ * `.swarm-deploy/archive/<reset-stamp>/` and recreates them empty, under the
92
+ * storage lock. Visible payloads and symlinks in the root are never touched,
93
+ * and nothing is deleted: the archive is restorable by moving it back.
94
+ */
95
+ export declare function resetStorage(options: StorageResetOptions): Promise<StorageResetReport>;