@payload-auth-link/migrate 0.4.3 → 0.6.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.
Files changed (71) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +7 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +109 -19
  5. package/dist/cli.js.map +1 -1
  6. package/dist/doctor/database.d.ts.map +1 -1
  7. package/dist/doctor/database.js +31 -4
  8. package/dist/doctor/database.js.map +1 -1
  9. package/dist/doctor/run-doctor.d.ts.map +1 -1
  10. package/dist/doctor/run-doctor.js +67 -0
  11. package/dist/doctor/run-doctor.js.map +1 -1
  12. package/dist/doctor/types.d.ts +12 -0
  13. package/dist/doctor/types.d.ts.map +1 -1
  14. package/dist/doctor/users.d.ts.map +1 -1
  15. package/dist/doctor/users.js +20 -4
  16. package/dist/doctor/users.js.map +1 -1
  17. package/dist/importer/apply.d.ts +25 -5
  18. package/dist/importer/apply.d.ts.map +1 -1
  19. package/dist/importer/apply.js +164 -180
  20. package/dist/importer/apply.js.map +1 -1
  21. package/dist/importer/host-writes.d.ts +47 -0
  22. package/dist/importer/host-writes.d.ts.map +1 -0
  23. package/dist/importer/host-writes.js +198 -0
  24. package/dist/importer/host-writes.js.map +1 -0
  25. package/dist/importer/lifecycle.d.ts +26 -0
  26. package/dist/importer/lifecycle.d.ts.map +1 -1
  27. package/dist/importer/lifecycle.js +107 -22
  28. package/dist/importer/lifecycle.js.map +1 -1
  29. package/dist/importer/manifest-mac.d.ts +15 -0
  30. package/dist/importer/manifest-mac.d.ts.map +1 -0
  31. package/dist/importer/manifest-mac.js +73 -0
  32. package/dist/importer/manifest-mac.js.map +1 -0
  33. package/dist/importer/prelink.d.ts +57 -0
  34. package/dist/importer/prelink.d.ts.map +1 -0
  35. package/dist/importer/prelink.js +159 -0
  36. package/dist/importer/prelink.js.map +1 -0
  37. package/dist/importer/run-import.d.ts +15 -0
  38. package/dist/importer/run-import.d.ts.map +1 -1
  39. package/dist/importer/run-import.js +155 -14
  40. package/dist/importer/run-import.js.map +1 -1
  41. package/dist/importer/source.d.ts +35 -7
  42. package/dist/importer/source.d.ts.map +1 -1
  43. package/dist/importer/source.js +37 -6
  44. package/dist/importer/source.js.map +1 -1
  45. package/dist/importer/types.d.ts +34 -4
  46. package/dist/importer/types.d.ts.map +1 -1
  47. package/dist/importer/types.js.map +1 -1
  48. package/dist/index.d.ts +5 -4
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +3 -2
  51. package/dist/index.js.map +1 -1
  52. package/dist/private-file.d.ts +8 -0
  53. package/dist/private-file.d.ts.map +1 -0
  54. package/dist/private-file.js +19 -0
  55. package/dist/private-file.js.map +1 -0
  56. package/package.json +10 -10
  57. package/src/cli.ts +117 -9
  58. package/src/doctor/database.ts +36 -4
  59. package/src/doctor/run-doctor.ts +69 -0
  60. package/src/doctor/types.ts +12 -0
  61. package/src/doctor/users.ts +23 -4
  62. package/src/importer/apply.ts +198 -182
  63. package/src/importer/host-writes.ts +231 -0
  64. package/src/importer/lifecycle.ts +131 -24
  65. package/src/importer/manifest-mac.ts +90 -0
  66. package/src/importer/prelink.ts +237 -0
  67. package/src/importer/run-import.ts +207 -29
  68. package/src/importer/source.ts +72 -14
  69. package/src/importer/types.ts +35 -4
  70. package/src/index.ts +13 -1
  71. package/src/private-file.ts +18 -0
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/importer/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/importer/apply.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { Payload } from 'payload';
2
+ import type { FieldWrite, ImportManifest } from './types.js';
3
+ /**
4
+ * Seal one JSON-serialized value under the app's Payload secret. The
5
+ * entry it belongs to (`collection\0id\0field`) is bound as GCM
6
+ * associated data, so a sealed value cannot be moved onto another
7
+ * entry of the manifest.
8
+ */
9
+ export declare function sealValue(secret: string, plaintext: string, entry: string): string;
10
+ /** Open a sealed value; throws when the secret is not the sealing one. */
11
+ export declare function unsealValue(secret: string, sealed: string, entry: string): string;
12
+ /**
13
+ * The only host fields the kit ever writes (importer and
14
+ * `adopt-prelink`), plus the `updatedAt` it captures alongside them.
15
+ * Rollback restores nothing else: a manifest is a file on disk, and an
16
+ * edited one must not become a way to set arbitrary fields (roles are
17
+ * restored only because the importer writes them).
18
+ */
19
+ export declare const restorableFields: ReadonlySet<string>;
20
+ /** The captured prior value of one manifest entry, JSON-parsed. */
21
+ export declare function priorValue(secret: string, write: FieldWrite): unknown;
22
+ /** Keys of the field writes a manifest already holds (first capture wins). */
23
+ export declare function capturedKeys(writes: readonly FieldWrite[]): Set<string>;
24
+ /**
25
+ * Capture `fields` (plus `updatedAt`) of one document before it is
26
+ * written. Fields the document does not carry are skipped — they are
27
+ * neither written nor restored. Returns the fields the document DOES
28
+ * carry, so the caller writes only those.
29
+ */
30
+ export declare function captureBefore(options: {
31
+ readonly payload: Payload;
32
+ readonly collection: string;
33
+ readonly id: string | number;
34
+ readonly fields: readonly string[];
35
+ readonly captured: Set<string>;
36
+ readonly into: FieldWrite[];
37
+ }): Promise<{
38
+ readonly present: ReadonlySet<string>;
39
+ readonly newlyCaptured: number;
40
+ }>;
41
+ /**
42
+ * Restore every captured field, one adapter write per document so
43
+ * `updatedAt` lands exactly as captured. Returns the number of field
44
+ * values restored.
45
+ */
46
+ export declare function restoreCaptured(payload: Payload, manifest: Pick<ImportManifest, 'fieldWrites'>): Promise<number>;
47
+ //# sourceMappingURL=host-writes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-writes.d.ts","sourceRoot":"","sources":["../../src/importer/host-writes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAyC5D;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOlF;AAED,0EAA0E;AAC1E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBjF;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAM/C,CAAA;AAEF,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAerE;AAED,8EAA8E;AAC9E,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAEvE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,CAAA;CAC5B,GAAG,OAAO,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCrF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,GAC5C,OAAO,CAAC,MAAM,CAAC,CAyDjB"}
@@ -0,0 +1,198 @@
1
+ import { createCipheriv, createDecipheriv, createHash, randomBytes } from 'node:crypto';
2
+ /**
3
+ * Host-document field writes with exact rollback (issues #50, #88).
4
+ *
5
+ * Capture: before the importer (or `adopt-prelink`) writes a host
6
+ * field, its CURRENT value is captured into the manifest — once per
7
+ * document field, the FIRST capture wins, so a second `--apply` can
8
+ * never overwrite the pre-import value with imported state. The
9
+ * document's `updatedAt` is captured the same way, because the Local
10
+ * API write bumps it.
11
+ *
12
+ * Privacy: captured values (identity rows and `linkableEmail` carry
13
+ * email addresses) are sealed with AES-256-GCM under a key derived
14
+ * from the target app's Payload `secret`; the manifest stores no value
15
+ * in the clear. Rollback needs the same secret — it boots the same
16
+ * app.
17
+ *
18
+ * Restore: rollback writes the captured values back through the
19
+ * DATABASE ADAPTER (`payload.db.updateOne`), not the Local API
20
+ * operation: the operation would stamp a fresh `updatedAt` and re-run
21
+ * hooks, so the "restored" row would differ from the original. The
22
+ * adapter write sets exactly the captured fields — `updatedAt`
23
+ * included — on every adapter (Postgres, SQLite, Mongo). What it
24
+ * cannot preserve is documented in docs/migrating-from-payload-auth.md
25
+ * (the forward Local API write re-creates hasMany child rows such as
26
+ * `users_role` with new row ids; their values and order are intact).
27
+ */
28
+ const sealPrefix = 'v1.';
29
+ const writeKey = (collection, id, field) => `${collection}\u0000${String(id)}\u0000${field}`;
30
+ function keyFor(secret) {
31
+ return createHash('sha256')
32
+ .update('payload-auth-link/migrate/manifest-seal/v1\u0000')
33
+ .update(secret)
34
+ .digest();
35
+ }
36
+ /**
37
+ * Seal one JSON-serialized value under the app's Payload secret. The
38
+ * entry it belongs to (`collection\0id\0field`) is bound as GCM
39
+ * associated data, so a sealed value cannot be moved onto another
40
+ * entry of the manifest.
41
+ */
42
+ export function sealValue(secret, plaintext, entry) {
43
+ const iv = randomBytes(12);
44
+ const cipher = createCipheriv('aes-256-gcm', keyFor(secret), iv);
45
+ cipher.setAAD(Buffer.from(entry, 'utf8'));
46
+ const body = Buffer.concat([cipher.update(plaintext, 'utf8'), cipher.final()]);
47
+ const tag = cipher.getAuthTag();
48
+ return `${sealPrefix}${Buffer.concat([iv, tag, body]).toString('base64url')}`;
49
+ }
50
+ /** Open a sealed value; throws when the secret is not the sealing one. */
51
+ export function unsealValue(secret, sealed, entry) {
52
+ if (!sealed.startsWith(sealPrefix)) {
53
+ throw new Error('manifest value is not a sealed v1 value');
54
+ }
55
+ const raw = Buffer.from(sealed.slice(sealPrefix.length), 'base64url');
56
+ const iv = raw.subarray(0, 12);
57
+ const tag = raw.subarray(12, 28);
58
+ const body = raw.subarray(28);
59
+ const decipher = createDecipheriv('aes-256-gcm', keyFor(secret), iv);
60
+ decipher.setAuthTag(tag);
61
+ decipher.setAAD(Buffer.from(entry, 'utf8'));
62
+ try {
63
+ return Buffer.concat([decipher.update(body), decipher.final()]).toString('utf8');
64
+ }
65
+ catch {
66
+ throw new Error('cannot open the manifest: a value was sealed with a different PAYLOAD_SECRET or for a different entry (edited manifest) — run rollback against the same app (same secret) that ran the import, with the manifest it wrote');
67
+ }
68
+ }
69
+ /**
70
+ * The only host fields the kit ever writes (importer and
71
+ * `adopt-prelink`), plus the `updatedAt` it captures alongside them.
72
+ * Rollback restores nothing else: a manifest is a file on disk, and an
73
+ * edited one must not become a way to set arbitrary fields (roles are
74
+ * restored only because the importer writes them).
75
+ */
76
+ export const restorableFields = new Set([
77
+ 'identities',
78
+ 'roles',
79
+ 'linkable',
80
+ 'linkableEmail',
81
+ 'updatedAt',
82
+ ]);
83
+ /** The captured prior value of one manifest entry, JSON-parsed. */
84
+ export function priorValue(secret, write) {
85
+ if (!restorableFields.has(write.field)) {
86
+ throw new Error(`manifest entry for '${write.collection}.${write.field}' is not a field this kit writes; refusing to restore it (edited manifest?)`);
87
+ }
88
+ if (write.sealedBefore !== undefined) {
89
+ return JSON.parse(unsealValue(secret, write.sealedBefore, writeKey(write.collection, write.id, write.field)));
90
+ }
91
+ // Version-1 manifests stored the value in the clear.
92
+ return write.before === null || write.before === undefined
93
+ ? null
94
+ : JSON.parse(write.before);
95
+ }
96
+ /** Keys of the field writes a manifest already holds (first capture wins). */
97
+ export function capturedKeys(writes) {
98
+ return new Set(writes.map((write) => writeKey(write.collection, write.id, write.field)));
99
+ }
100
+ /**
101
+ * Capture `fields` (plus `updatedAt`) of one document before it is
102
+ * written. Fields the document does not carry are skipped — they are
103
+ * neither written nor restored. Returns the fields the document DOES
104
+ * carry, so the caller writes only those.
105
+ */
106
+ export async function captureBefore(options) {
107
+ const { payload, collection, id, fields, captured, into } = options;
108
+ const doc = await payload.findByID({
109
+ collection,
110
+ id,
111
+ depth: 0,
112
+ overrideAccess: true,
113
+ });
114
+ const record = typeof doc === 'object' && doc !== null ? doc : undefined;
115
+ const present = new Set();
116
+ let newlyCaptured = 0;
117
+ for (const field of [...fields, 'updatedAt']) {
118
+ if (record === undefined || !(field in record)) {
119
+ continue;
120
+ }
121
+ present.add(field);
122
+ const key = writeKey(collection, id, field);
123
+ if (captured.has(key)) {
124
+ // The FIRST capture is the pre-import value; a later pass would
125
+ // only capture this tool's own earlier write (issue #88).
126
+ continue;
127
+ }
128
+ captured.add(key);
129
+ into.push({
130
+ collection,
131
+ id,
132
+ field,
133
+ sealedBefore: sealValue(payload.secret, JSON.stringify(record[field] ?? null), key),
134
+ });
135
+ newlyCaptured += 1;
136
+ }
137
+ return { present, newlyCaptured };
138
+ }
139
+ /**
140
+ * Restore every captured field, one adapter write per document so
141
+ * `updatedAt` lands exactly as captured. Returns the number of field
142
+ * values restored.
143
+ */
144
+ export async function restoreCaptured(payload, manifest) {
145
+ const byDoc = new Map();
146
+ for (const write of manifest.fieldWrites) {
147
+ const key = `${write.collection}\u0000${String(write.id)}`;
148
+ const entry = byDoc.get(key) ?? { collection: write.collection, id: write.id, data: {} };
149
+ entry.data[write.field] = priorValue(payload.secret, write);
150
+ byDoc.set(key, entry);
151
+ }
152
+ let restored = 0;
153
+ for (const entry of byDoc.values()) {
154
+ const fields = payload.collections[entry.collection]?.config.flattenedFields ?? [];
155
+ const isChildRowField = (name) => {
156
+ const field = fields.find((candidate) => candidate.name === name);
157
+ return (field !== undefined &&
158
+ (field.type === 'array' ||
159
+ field.type === 'blocks' ||
160
+ ('hasMany' in field && field.hasMany === true)));
161
+ };
162
+ const childRows = {};
163
+ const columns = {};
164
+ for (const [field, value] of Object.entries(entry.data)) {
165
+ if (isChildRowField(field)) {
166
+ childRows[field] = value;
167
+ }
168
+ else {
169
+ columns[field] = value;
170
+ }
171
+ }
172
+ // Child-row fields (arrays, hasMany) go through the Local API: the
173
+ // SQL adapters rewrite child tables only through a full-document
174
+ // upsert, which the operation provides.
175
+ if (Object.keys(childRows).length > 0) {
176
+ await payload.update({
177
+ collection: entry.collection,
178
+ id: entry.id,
179
+ data: childRows,
180
+ overrideAccess: true,
181
+ });
182
+ }
183
+ // Column fields — `updatedAt` LAST-WRITTEN, exactly as captured —
184
+ // go straight through the adapter: a plain UPDATE of just these
185
+ // columns, no fresh timestamp, no hooks.
186
+ if (Object.keys(columns).length > 0) {
187
+ await payload.db.updateOne({
188
+ collection: entry.collection,
189
+ id: entry.id,
190
+ data: columns,
191
+ returning: false,
192
+ });
193
+ }
194
+ restored += Object.keys(entry.data).length;
195
+ }
196
+ return restored;
197
+ }
198
+ //# sourceMappingURL=host-writes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-writes.js","sourceRoot":"","sources":["../../src/importer/host-writes.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,22 @@ import { type ImportManifest } from './types.js';
6
6
  * manifest so the source tables may be dropped — by the operator, as a
7
7
  * separate later step.
8
8
  */
9
+ /**
10
+ * The importer's default manifest location: the CURRENT WORKING
11
+ * DIRECTORY. Pass `--manifest` to put it somewhere access-controlled;
12
+ * it holds ids and sealed values only (no emails in the clear) and is
13
+ * written with mode 0600. Keep it until `finalize` + your soak period
14
+ * ends, then delete it (docs/migrating-from-payload-auth.md).
15
+ */
9
16
  export declare const defaultManifestPath = "payload-auth-link-migration.json";
17
+ /** The `adopt-prelink` default manifest location (cwd; same rules). */
18
+ export declare const defaultPrelinkManifestPath = "payload-auth-link-prelink.json";
10
19
  export declare function readManifest(path: string): ImportManifest | null;
20
+ /**
21
+ * Write the manifest owner-read/write only (0600, issue #88) — on
22
+ * create AND on every rewrite, so a manifest created by an older kit
23
+ * is tightened too.
24
+ */
11
25
  export declare function writeManifest(manifest: ImportManifest, path: string): void;
12
26
  export type VerifyIssue = {
13
27
  readonly code: string;
@@ -41,6 +55,8 @@ export declare function verifyImport(options: {
41
55
  readonly sourceTables?: Readonly<Record<string, string | null>> | undefined;
42
56
  /** Whether the import carried sessions; `drop` skips the session count. */
43
57
  readonly sessions?: 'carry' | 'drop' | undefined;
58
+ /** Injectable clock: what counts as an expired source session. */
59
+ readonly now?: (() => Date) | undefined;
44
60
  }): Promise<VerifyResult>;
45
61
  /**
46
62
  * Rollback (issue #50): delete the created rows in reverse order and
@@ -52,6 +68,16 @@ export declare function rollbackImport(options: {
52
68
  readonly payload: Payload;
53
69
  readonly manifest: ImportManifest;
54
70
  readonly log?: (message: string) => void;
71
+ /**
72
+ * When given, the manifest at this path is RESET after a successful
73
+ * rollback (issue #88): no created rows, no field writes, no totals —
74
+ * so a later `--apply` starts from the restored state instead of
75
+ * building on stale entries.
76
+ */
77
+ readonly manifestPath?: string | undefined;
78
+ readonly now?: (() => Date) | undefined;
79
+ /** Accept a pre-0.6.0 manifest that has no MAC (`--allow-unsigned-manifest`). */
80
+ readonly allowUnsignedManifest?: boolean | undefined;
55
81
  }): Promise<{
56
82
  deleted: number;
57
83
  restored: number;
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/importer/lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AAEH,eAAO,MAAM,mBAAmB,qCAAqC,CAAA;AAErE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAahE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAE1E;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAChF,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IAC7D,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3E,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CACjD,GAAG,OAAO,CAAC,YAAY,CAAC,CAmUxB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAiCjD;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAOvF"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/importer/lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAA;AAEnB;;;;;GAKG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,qCAAqC,CAAA;AAErE,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,mCAAmC,CAAA;AAE1E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAahE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAE1E;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAA;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAChF,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAA;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAA;IAC7D,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3E,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;IAChD,kEAAkE;IAClE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;CACxC,GAAG,OAAO,CAAC,YAAY,CAAC,CA6YxB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1C,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IACvC,iFAAiF;IACjF,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACrD,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAoCjD;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAOvF"}
@@ -1,4 +1,7 @@
1
- import { existsSync, readFileSync, writeFileSync } from 'node:fs';
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { writePrivateFile } from '../private-file.js';
3
+ import { restoreCaptured } from './host-writes.js';
4
+ import { authenticateManifest, signManifest } from './manifest-mac.js';
2
5
  import { defaultTargetSlugs, resolveSourceTables, sourceModelNames, } from './types.js';
3
6
  /**
4
7
  * Manifest lifecycle (issue #50): `verify` checks both sides, `rollback`
@@ -6,21 +9,36 @@ import { defaultTargetSlugs, resolveSourceTables, sourceModelNames, } from './ty
6
9
  * manifest so the source tables may be dropped — by the operator, as a
7
10
  * separate later step.
8
11
  */
12
+ /**
13
+ * The importer's default manifest location: the CURRENT WORKING
14
+ * DIRECTORY. Pass `--manifest` to put it somewhere access-controlled;
15
+ * it holds ids and sealed values only (no emails in the clear) and is
16
+ * written with mode 0600. Keep it until `finalize` + your soak period
17
+ * ends, then delete it (docs/migrating-from-payload-auth.md).
18
+ */
9
19
  export const defaultManifestPath = 'payload-auth-link-migration.json';
20
+ /** The `adopt-prelink` default manifest location (cwd; same rules). */
21
+ export const defaultPrelinkManifestPath = 'payload-auth-link-prelink.json';
10
22
  export function readManifest(path) {
11
23
  if (!existsSync(path)) {
12
24
  return null;
13
25
  }
14
26
  const parsed = JSON.parse(readFileSync(path, 'utf8'));
15
- if (typeof parsed !== 'object' ||
16
- parsed === null ||
17
- parsed.version !== 1) {
18
- throw new Error(`manifest at ${path} is not a version-1 import manifest`);
27
+ const version = typeof parsed === 'object' && parsed !== null
28
+ ? parsed.version
29
+ : undefined;
30
+ if (version !== 1 && version !== 2 && version !== 3) {
31
+ throw new Error(`manifest at ${path} is not a version-1/2/3 import manifest`);
19
32
  }
20
33
  return parsed;
21
34
  }
35
+ /**
36
+ * Write the manifest owner-read/write only (0600, issue #88) — on
37
+ * create AND on every rewrite, so a manifest created by an older kit
38
+ * is tightened too.
39
+ */
22
40
  export function writeManifest(manifest, path) {
23
- writeFileSync(path, `${JSON.stringify(manifest, null, 2)}\n`);
41
+ writePrivateFile(path, `${JSON.stringify(manifest, null, 2)}\n`);
24
42
  }
25
43
  /**
26
44
  * Verify (issues #50, #68, #69): fail closed on the source layout
@@ -74,11 +92,6 @@ export async function verifyImport(options) {
74
92
  const countPairs = [
75
93
  { label: 'users', table: sourceTables['users'], collection: String(slugs['user']) },
76
94
  { label: 'accounts', table: sourceTables['accounts'], collection: String(slugs['account']) },
77
- {
78
- label: 'sessions',
79
- table: sessions === 'carry' ? sourceTables['sessions'] : null,
80
- collection: String(slugs['session']),
81
- },
82
95
  {
83
96
  label: 'verifications',
84
97
  table: sourceTables['verifications'],
@@ -116,6 +129,53 @@ export async function verifyImport(options) {
116
129
  passed: true,
117
130
  });
118
131
  }
132
+ else if (sourceTables['sessions'] === null) {
133
+ checks.push({
134
+ name: 'count sessions (skipped: null-mapped — not installed on the source)',
135
+ passed: true,
136
+ });
137
+ }
138
+ else {
139
+ // Sessions are LIVE data after go-live (issue #88): sign-ins add
140
+ // ba-sessions rows, and Better Auth deletes expired rows when a
141
+ // lookup meets them. So the check is scoped to the IMPORTED rows
142
+ // (deterministic `sess-<source id>` baIds): every unexpired source
143
+ // session must be present; sessions created after cutover and
144
+ // expired sessions already cleaned up are reported, never failed.
145
+ const nowMs = (options.now ?? (() => new Date()))().getTime();
146
+ const sourceSessions = await client.query(`SELECT id, expires_at FROM ${sourceTables['sessions']}`);
147
+ const target = await payload.find({
148
+ collection: String(slugs['session']),
149
+ depth: 0,
150
+ pagination: false,
151
+ overrideAccess: true,
152
+ select: { baId: true },
153
+ });
154
+ const targetBaIds = new Set(target.docs.map((doc) => String(doc['baId'])));
155
+ let missingLive = 0;
156
+ let cleanedExpired = 0;
157
+ const imported = new Set();
158
+ for (const row of sourceSessions.rows) {
159
+ const baId = `sess-${String(row.id)}`;
160
+ imported.add(baId);
161
+ if (targetBaIds.has(baId)) {
162
+ continue;
163
+ }
164
+ const expires = row.expires_at instanceof Date ? row.expires_at.getTime() : Number.NaN;
165
+ if (Number.isFinite(expires) && expires <= nowMs) {
166
+ cleanedExpired += 1;
167
+ }
168
+ else {
169
+ missingLive += 1;
170
+ }
171
+ }
172
+ const created = [...targetBaIds].filter((baId) => !imported.has(baId)).length;
173
+ check('imported sessions present (unexpired source sessions)', missingLive === 0, `${missingLive} unexpired source session(s) missing from ${String(slugs['session'])}`);
174
+ checks.push({
175
+ name: `sessions after cutover (info): ${created} created since the import, ${cleanedExpired} expired imported session(s) already cleaned up`,
176
+ passed: true,
177
+ });
178
+ }
119
179
  // 2. every source user has exactly one target row and its host doc.
120
180
  let userMatches = 0;
121
181
  let userIssues = 0;
@@ -233,6 +293,28 @@ export async function verifyImport(options) {
233
293
  check('every account resolves to its user (credential hashes intact)', orphanAccounts === 0, `${orphanAccounts} account(s) with a missing user or empty credential hash`);
234
294
  const sourceAccountsCount = sourceTables['accounts'] === null ? 0 : (sourceCounts[sourceTables['accounts']] ?? 0);
235
295
  check('credential accounts carry hashes', sourceAccountsCount === 0 || credentialAccounts > 0, 'no credential account carries a password hash');
296
+ // 3b. bans carried (issue #88): a banned source user stays banned.
297
+ // The importer refuses to run when banned users exist and the
298
+ // target declares no `banned` field, so here the field is present
299
+ // whenever it matters.
300
+ const bannedSource = users.filter((user) => user.banned === true);
301
+ if (bannedSource.length > 0) {
302
+ let notBanned = 0;
303
+ for (const user of bannedSource) {
304
+ const found = await payload.find({
305
+ collection: String(slugs['user']),
306
+ where: { baId: { equals: user.id } },
307
+ limit: 1,
308
+ depth: 0,
309
+ overrideAccess: true,
310
+ });
311
+ const doc = found.docs[0];
312
+ if (doc?.['banned'] !== true) {
313
+ notBanned += 1;
314
+ }
315
+ }
316
+ check('banned source users stay banned', notBanned === 0, `${notBanned} banned source user(s) are not banned on ${String(slugs['user'])}`);
317
+ }
236
318
  // 4. API keys: hash present, owner resolves, rate-limit state kept.
237
319
  const keys = await payload.find({
238
320
  collection: String(slugs['apikey']),
@@ -317,6 +399,9 @@ export async function rollbackImport(options) {
317
399
  // the migration's history, not a TODO to undo.
318
400
  throw new Error('the migration is finalized; rollback is no longer possible');
319
401
  }
402
+ // Every row below is deleted, and every field restored, with
403
+ // overrideAccess: only a manifest this app signed may drive that.
404
+ authenticateManifest(payload.secret, manifest, { allowUnsigned: options.allowUnsignedManifest });
320
405
  let deleted = 0;
321
406
  for (const row of [...manifest.created].reverse()) {
322
407
  try {
@@ -329,18 +414,18 @@ export async function rollbackImport(options) {
329
414
  log(`rollback: ${row.collection}#${row.id} already absent`);
330
415
  }
331
416
  }
332
- let restored = 0;
333
- for (const write of manifest.fieldWrites) {
334
- const data = {
335
- [write.field]: write.before === null ? null : JSON.parse(write.before),
336
- };
337
- await payload.update({
338
- collection: write.collection,
339
- id: write.id,
340
- data,
341
- overrideAccess: true,
417
+ // Captured values go back through the adapter, one write per
418
+ // document, `updatedAt` included — see host-writes.ts for why.
419
+ const restored = await restoreCaptured(payload, manifest);
420
+ if (options.manifestPath !== undefined) {
421
+ const reset = signManifest(payload.secret, {
422
+ ...manifest,
423
+ created: [],
424
+ fieldWrites: [],
425
+ totals: {},
426
+ rolledBackAt: (options.now ?? (() => new Date()))().toISOString(),
342
427
  });
343
- restored += 1;
428
+ writeManifest(reset, options.manifestPath);
344
429
  }
345
430
  log(`rollback: ${deleted} row(s) deleted, ${restored} field value(s) restored`);
346
431
  return { deleted, restored };