spindb 0.68.10 → 0.69.1

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.
@@ -15,7 +15,8 @@ import { getDumpToolName } from '../../config/engines-registry.js';
15
15
  import { platformService } from '../../core/platform-service.js';
16
16
  import { TransactionManager } from '../../core/transaction-manager.js';
17
17
  import { Engine, isFileBasedEngine, isRemoteContainer, restoreCreatesDatabase, } from '../../types/index.js';
18
- import { logDebug } from '../../core/error-handler.js';
18
+ import { logDebug, describeThrown } from '../../core/error-handler.js';
19
+ import { classifyRestoreOutcome, restoreDiagnosticsJson, restoreErrorReportLines, restoreFailureMessage, } from '../../core/restore-outcome.js';
19
20
  import { getEngineMetadata } from '../helpers.js';
20
21
  import { copyRedisKeyspace, } from '../../engines/redis/resp-client.js';
21
22
  import { parseRedisConnectionString } from '../../engines/redis/index.js';
@@ -28,6 +29,8 @@ export const restoreCommand = new Command('restore')
28
29
  .option('--from-url <url>', 'Pull data from a remote database connection string')
29
30
  .option('-f, --force', 'Overwrite existing database without confirmation')
30
31
  .option('--into-existing', 'Restore INTO an existing database without dropping/recreating it (non-destructive to the database object; replaces its contents). The database must already exist. Safe to run against a live database with open connections (e.g. behind a connection pooler).')
32
+ .option('--pre-sql <file>', 'Run a SQL file against the target database after it is created and BEFORE the restore. For compatibility shims a dump needs and the target lacks: a missing extension, roles the dump grants to, a function a column default calls. Runs inside the same rollback scope as the restore.')
33
+ .option('--with-privileges', 'Replay the GRANT/REVOKE statements in the dump instead of dropping them. PostgreSQL only, and only for custom/tar/directory dumps (a plain-SQL dump is replayed as written, so its grants always ran). Object ownership is still stripped. A grant to a role this container does not have becomes a reported object error rather than silence.')
31
34
  .option('-j, --json', 'Output result as JSON')
32
35
  .action(async (name, backup, options) => {
33
36
  let tempDumpPath = null;
@@ -35,6 +38,10 @@ export const restoreCommand = new Command('restore')
35
38
  // choose one (a `mysql://` source can be MySQL or MariaDB). Surfaced in
36
39
  // --json so a conversion is visible to a script, not just to a reader.
37
40
  let remoteSource;
41
+ // Whether --pre-sql ran, and how the restore itself turned out. Both are
42
+ // reported in --json.
43
+ let preSqlApplied = false;
44
+ let outcome;
38
45
  try {
39
46
  let containerName = name;
40
47
  let backupPath = backup;
@@ -110,6 +117,45 @@ export const restoreCommand = new Command('restore')
110
117
  }
111
118
  process.exit(1);
112
119
  }
120
+ // --pre-sql runs a SQL file through the engine's own client. The
121
+ // allowlist is the set of engines whose client can be told to keep its
122
+ // chatter off stdout (runScript's `quiet`), because --pre-sql --json
123
+ // has to stay parseable.
124
+ const PRE_SQL_ENGINES = new Set(['postgresql', 'mysql', 'mariadb']);
125
+ if (options.preSql) {
126
+ if (!PRE_SQL_ENGINES.has(engineName)) {
127
+ const msg = `--pre-sql is not supported for ${engineName}. It is available for ${[...PRE_SQL_ENGINES].join(', ')}.`;
128
+ if (options.json) {
129
+ console.log(JSON.stringify({ error: msg }));
130
+ }
131
+ else {
132
+ console.error(uiError(msg));
133
+ }
134
+ process.exit(1);
135
+ }
136
+ if (!existsSync(options.preSql)) {
137
+ const msg = `--pre-sql file not found: ${options.preSql}`;
138
+ if (options.json) {
139
+ console.log(JSON.stringify({ error: msg }));
140
+ }
141
+ else {
142
+ console.error(uiError(msg));
143
+ }
144
+ process.exit(1);
145
+ }
146
+ }
147
+ // --with-privileges only means anything where the restore tool can be
148
+ // told to drop privileges in the first place, which is pg_restore.
149
+ if (options.withPrivileges && engineName !== Engine.PostgreSQL) {
150
+ const msg = `--with-privileges is not supported for ${engineName}. It is available for postgresql, whose restore drops the dump's GRANT/REVOKE statements by default.`;
151
+ if (options.json) {
152
+ console.log(JSON.stringify({ error: msg }));
153
+ }
154
+ else {
155
+ console.error(uiError(msg));
156
+ }
157
+ process.exit(1);
158
+ }
113
159
  // Check if container needs to be running for restore
114
160
  // - File-based engines (SQLite, DuckDB) don't need to be running
115
161
  // - Redis/Valkey RDB restore requires container to be STOPPED (text format needs running)
@@ -178,11 +224,23 @@ export const restoreCommand = new Command('restore')
178
224
  const isRedisUrl = options.fromUrl.startsWith('redis://') ||
179
225
  options.fromUrl.startsWith('rediss://');
180
226
  if (engineName === 'postgresql' && !isPgUrl) {
181
- console.error(uiError('Connection string must start with postgresql:// or postgres:// for PostgreSQL containers'));
227
+ const msg = 'Connection string must start with postgresql:// or postgres:// for PostgreSQL containers';
228
+ if (options.json) {
229
+ console.log(JSON.stringify({ error: msg }));
230
+ }
231
+ else {
232
+ console.error(uiError(msg));
233
+ }
182
234
  process.exit(1);
183
235
  }
184
236
  if (engineName === 'mysql' && !isMysqlUrl) {
185
- console.error(uiError('Connection string must start with mysql:// for MySQL containers'));
237
+ const msg = 'Connection string must start with mysql:// for MySQL containers';
238
+ if (options.json) {
239
+ console.log(JSON.stringify({ error: msg }));
240
+ }
241
+ else {
242
+ console.error(uiError(msg));
243
+ }
186
244
  process.exit(1);
187
245
  }
188
246
  if (isRedisLike && !isRedisUrl) {
@@ -230,6 +288,10 @@ export const restoreCommand = new Command('restore')
230
288
  const targetDb = parseInt(options.database || config.database || '0', 10) || 0;
231
289
  const copySpinner = createSpinner('Copying keyspace from the remote database...');
232
290
  copySpinner.start();
291
+ // Hoisted out of the progress callback so a failure can say how
292
+ // far the copy got. A migration that moved 40,000 keys and then
293
+ // died is a different problem than one that moved none.
294
+ let keysCopied = 0;
233
295
  try {
234
296
  const copyResult = await copyRedisKeyspace({
235
297
  host: source.host,
@@ -247,6 +309,7 @@ export const restoreCommand = new Command('restore')
247
309
  database: targetDb,
248
310
  }, {
249
311
  onProgress: (p) => {
312
+ keysCopied = p.restored;
250
313
  copySpinner.text = `Copying keyspace... ${p.restored}/${p.total} keys`;
251
314
  },
252
315
  });
@@ -269,9 +332,20 @@ export const restoreCommand = new Command('restore')
269
332
  }
270
333
  catch (error) {
271
334
  copySpinner.fail('Redis migration failed');
272
- const msg = error.message;
335
+ // A rejected RESP call is not always an Error (a socket teardown
336
+ // can reject with a plain object), and `(error as Error).message`
337
+ // was then undefined - which JSON.stringify drops, so --json
338
+ // printed a bare `{}`.
339
+ const thrown = describeThrown(error);
340
+ const msg = `Redis migration failed: ${thrown.message}`;
273
341
  if (options.json) {
274
- console.log(JSON.stringify({ error: msg }));
342
+ console.log(JSON.stringify({
343
+ error: msg,
344
+ ...(thrown.name ? { errorName: thrown.name } : {}),
345
+ ...(thrown.code ? { errorCode: thrown.code } : {}),
346
+ phase: 'redis-keyspace-copy',
347
+ keysCopied,
348
+ }));
275
349
  }
276
350
  else {
277
351
  console.error(uiError(msg));
@@ -302,7 +376,7 @@ export const restoreCommand = new Command('restore')
302
376
  { targetVersion: config.version });
303
377
  dumpSpinner.succeed('Dump created from remote database');
304
378
  remoteSource = dumpResult.remoteSource;
305
- if (dumpResult.warnings?.length) {
379
+ if (dumpResult.warnings?.length && !options.json) {
306
380
  for (const warning of dumpResult.warnings) {
307
381
  console.log(chalk.yellow(` ${warning}`));
308
382
  }
@@ -311,36 +385,82 @@ export const restoreCommand = new Command('restore')
311
385
  dumpSuccess = true;
312
386
  }
313
387
  catch (error) {
314
- const e = error;
388
+ const thrown = describeThrown(error);
315
389
  dumpSpinner.fail('Failed to create dump');
316
- if (e.message.includes(`${dumpTool} not found`) ||
317
- e.message.includes('ENOENT')) {
390
+ if (thrown.message.includes(`${dumpTool} not found`) ||
391
+ thrown.message.includes('ENOENT')) {
392
+ // No prompting in JSON mode - a script cannot answer it.
393
+ if (options.json) {
394
+ console.log(JSON.stringify({
395
+ error: `${dumpTool} not installed: ${thrown.message}`,
396
+ phase: 'remote-dump',
397
+ tool: dumpTool,
398
+ }));
399
+ process.exit(1);
400
+ }
318
401
  const installed = await promptInstallDependencies(dumpTool, engineName);
319
402
  if (!installed) {
320
403
  process.exit(1);
321
404
  }
322
405
  continue;
323
406
  }
324
- console.log();
325
- console.error(uiError(`${dumpTool} error:`));
326
- console.log(chalk.gray(` ${e.message}`));
407
+ // This path printed NOTHING in --json mode, so a failed remote
408
+ // dump exited 1 with empty stdout. It also split the label onto
409
+ // stderr and the detail onto stdout, which no pipe keeps
410
+ // together.
411
+ if (options.json) {
412
+ console.log(JSON.stringify({
413
+ error: `${dumpTool} error: ${thrown.message}`,
414
+ ...(thrown.name ? { errorName: thrown.name } : {}),
415
+ ...(thrown.code ? { errorCode: thrown.code } : {}),
416
+ phase: 'remote-dump',
417
+ tool: dumpTool,
418
+ }));
419
+ }
420
+ else {
421
+ console.error();
422
+ console.error(uiError(`${dumpTool} error:`));
423
+ console.error(chalk.gray(` ${thrown.message}`));
424
+ }
327
425
  process.exit(1);
328
426
  }
329
427
  }
330
428
  if (!dumpSuccess) {
331
- console.error(uiError('Failed to create dump after retries'));
429
+ const msg = 'Failed to create dump after retries';
430
+ if (options.json) {
431
+ console.log(JSON.stringify({
432
+ error: msg,
433
+ phase: 'remote-dump',
434
+ tool: dumpTool,
435
+ }));
436
+ }
437
+ else {
438
+ console.error(uiError(msg));
439
+ }
332
440
  process.exit(1);
333
441
  }
334
442
  }
335
443
  else {
336
444
  if (!backupPath) {
337
- console.error(uiError('Backup file path is required'));
338
- console.log(chalk.gray(' Usage: spindb restore <container> <backup-file>'));
339
- console.log(chalk.gray(' or: spindb restore <container> --from-url <connection-string>'));
445
+ const msg = 'Backup file path is required';
446
+ if (options.json) {
447
+ console.log(JSON.stringify({ error: msg }));
448
+ }
449
+ else {
450
+ console.error(uiError(msg));
451
+ console.log(chalk.gray(' Usage: spindb restore <container> <backup-file>'));
452
+ console.log(chalk.gray(' or: spindb restore <container> --from-url <connection-string>'));
453
+ }
340
454
  process.exit(1);
341
455
  }
342
456
  if (!existsSync(backupPath)) {
343
- console.error(uiError(`Backup file not found: ${backupPath}`));
457
+ const msg = `Backup file not found: ${backupPath}`;
458
+ if (options.json) {
459
+ console.log(JSON.stringify({ error: msg }));
460
+ }
461
+ else {
462
+ console.error(uiError(msg));
463
+ }
344
464
  process.exit(1);
345
465
  }
346
466
  }
@@ -356,7 +476,13 @@ export const restoreCommand = new Command('restore')
356
476
  }
357
477
  }
358
478
  if (!backupPath) {
359
- console.error(uiError('No backup path specified'));
479
+ const msg = 'No backup path specified';
480
+ if (options.json) {
481
+ console.log(JSON.stringify({ error: msg }));
482
+ }
483
+ else {
484
+ console.error(uiError(msg));
485
+ }
360
486
  process.exit(1);
361
487
  }
362
488
  const detectSpinner = createSpinner('Detecting backup format...');
@@ -372,11 +498,23 @@ export const restoreCommand = new Command('restore')
372
498
  });
373
499
  const isRdbFormat = format.format === 'rdb';
374
500
  if (isRdbFormat && running) {
375
- console.error(uiError(`Container "${containerName}" must be stopped for RDB restore. Run: spindb stop ${containerName}`));
501
+ const msg = `Container "${containerName}" must be stopped for RDB restore. Run: spindb stop ${containerName}`;
502
+ if (options.json) {
503
+ console.log(JSON.stringify({ error: msg }));
504
+ }
505
+ else {
506
+ console.error(uiError(msg));
507
+ }
376
508
  process.exit(1);
377
509
  }
378
510
  if (!isRdbFormat && !running) {
379
- console.error(uiError(`Container "${containerName}" is not running. Start it first for text format restore.`));
511
+ const msg = `Container "${containerName}" is not running. Start it first for text format restore.`;
512
+ if (options.json) {
513
+ console.log(JSON.stringify({ error: msg }));
514
+ }
515
+ else {
516
+ console.error(uiError(msg));
517
+ }
380
518
  process.exit(1);
381
519
  }
382
520
  }
@@ -503,6 +641,33 @@ export const restoreCommand = new Command('restore')
503
641
  // while live connections (a pooler, a health monitor) stay open.
504
642
  dbSpinner.succeed(`Restoring into existing database "${databaseName}"`);
505
643
  }
644
+ // --pre-sql: compatibility shims the dump needs and the target does
645
+ // not have (a missing extension, the roles a dump grants to, a
646
+ // function a column default calls). It runs AFTER the database
647
+ // exists and BEFORE the restore, inside the same transaction scope,
648
+ // so a shim that fails takes the created database down with it
649
+ // rather than leaving a half-prepared one behind. With
650
+ // --into-existing there is no created database and no rollback, so a
651
+ // failed shim just aborts before anything is restored.
652
+ if (options.preSql) {
653
+ const preSqlSpinner = createSpinner(`Applying pre-restore SQL from ${options.preSql}...`);
654
+ preSqlSpinner.start();
655
+ try {
656
+ await engine.runScript(config, {
657
+ file: options.preSql,
658
+ database: databaseName,
659
+ // Keep psql/mysql chatter off stdout: --json owns it.
660
+ quiet: true,
661
+ });
662
+ preSqlApplied = true;
663
+ preSqlSpinner.succeed('Pre-restore SQL applied');
664
+ }
665
+ catch (preSqlErr) {
666
+ preSqlSpinner.fail('Pre-restore SQL failed');
667
+ const thrown = describeThrown(preSqlErr);
668
+ throw new Error(`--pre-sql failed (${options.preSql}): ${thrown.message}`);
669
+ }
670
+ }
506
671
  const restoreSpinner = createSpinner('Restoring backup...');
507
672
  restoreSpinner.start();
508
673
  const result = await engine.restore(config, backupPath, {
@@ -511,31 +676,34 @@ export const restoreCommand = new Command('restore')
511
676
  // Object-level clean so an in-place restore is a faithful REPLACE
512
677
  // (not a merge into the existing contents).
513
678
  ...(options.intoExisting ? { clean: true } : {}),
679
+ ...(options.withPrivileges ? { withPrivileges: true } : {}),
514
680
  });
515
- // Check if restore completely failed (non-zero code with no data restored)
516
- if (result.code !== 0 && result.stderr?.includes('FATAL')) {
681
+ // What the restore tool actually did. The old rule here failed only
682
+ // on a literal FATAL in stderr, so a pg_restore that could not create
683
+ // a single table (missing extension -> failed defaults -> skipped
684
+ // COPY) reported success and exited 0.
685
+ outcome = classifyRestoreOutcome(result);
686
+ if (outcome.failed) {
517
687
  restoreSpinner.fail('Restore failed');
518
- throw new Error(result.stderr || 'Restore failed with fatal error');
519
- }
520
- if (result.code === 0) {
521
- restoreSpinner.succeed('Backup restored successfully');
522
- }
523
- else {
524
- // pg_restore often returns warnings even on success
525
- restoreSpinner.warn('Restore completed with warnings');
526
- if (result.stderr) {
527
- console.log(chalk.yellow('\n Warnings:'));
528
- const lines = result.stderr.split('\n').slice(0, 5);
529
- lines.forEach((line) => {
530
- if (line.trim()) {
531
- console.log(chalk.gray(` ${line}`));
532
- }
533
- });
534
- if (result.stderr.split('\n').length > 5) {
535
- console.log(chalk.gray(' ...'));
688
+ throw new Error(restoreFailureMessage(result));
689
+ }
690
+ if (outcome.hadObjectErrors) {
691
+ restoreSpinner.warn(outcome.summary);
692
+ // STDOUT belongs to --json. This block used to write to it
693
+ // unconditionally, which made the JSON unparseable exactly when
694
+ // something had gone wrong.
695
+ if (!options.json) {
696
+ console.log(chalk.yellow('\n Objects that failed to restore:'));
697
+ for (const line of restoreErrorReportLines(outcome.diagnostics, 10)) {
698
+ console.log(chalk.gray(` ${line}`));
536
699
  }
700
+ console.log(chalk.gray('\n The database was created and holds what could be restored.'));
701
+ console.log(chalk.gray(' Re-run with --pre-sql <file> to create the missing extensions/roles first.'));
537
702
  }
538
703
  }
704
+ else {
705
+ restoreSpinner.succeed(outcome.summary);
706
+ }
539
707
  // Restore succeeded - commit transaction (clear rollback actions)
540
708
  tx.commit();
541
709
  }
@@ -551,13 +719,21 @@ export const restoreCommand = new Command('restore')
551
719
  if (options.json) {
552
720
  const metadata = await getEngineMetadata(engineName);
553
721
  console.log(JSON.stringify({
722
+ // success + exit 0 still mean "the restore ran and the database
723
+ // is usable". `status` is what says whether everything in the
724
+ // dump made it: additive on purpose, so existing consumers
725
+ // (layerbase-desktop, layerbase-cloud) keep working unchanged.
554
726
  success: true,
727
+ status: outcome?.status ?? 'completed',
555
728
  database: databaseName,
556
729
  container: containerName,
557
730
  engine: engineName,
558
731
  format: format.description,
559
732
  sourceType: options.fromUrl ? 'remote' : 'file',
560
733
  ...(remoteSource ? { remoteSource } : {}),
734
+ ...(preSqlApplied ? { preSqlApplied: true } : {}),
735
+ ...(options.withPrivileges ? { privilegesRestored: true } : {}),
736
+ ...(outcome ? restoreDiagnosticsJson(outcome) : {}),
561
737
  connectionString,
562
738
  overwritten: databaseExists,
563
739
  ...metadata,
@@ -583,7 +759,7 @@ export const restoreCommand = new Command('restore')
583
759
  }
584
760
  }
585
761
  catch (error) {
586
- const e = error;
762
+ const thrown = describeThrown(error);
587
763
  const missingToolPatterns = [
588
764
  'pg_restore not found',
589
765
  'psql not found',
@@ -591,10 +767,14 @@ export const restoreCommand = new Command('restore')
591
767
  'mysql not found',
592
768
  'mysqldump not found',
593
769
  ];
594
- const matchingPattern = missingToolPatterns.find((p) => e.message.includes(p));
770
+ const matchingPattern = missingToolPatterns.find((p) => thrown.message.includes(p));
595
771
  if (matchingPattern) {
596
772
  if (options.json) {
597
- console.log(JSON.stringify({ error: e.message }));
773
+ console.log(JSON.stringify({
774
+ error: thrown.message,
775
+ ...(thrown.name ? { errorName: thrown.name } : {}),
776
+ ...(thrown.code ? { errorCode: thrown.code } : {}),
777
+ }));
598
778
  process.exit(1);
599
779
  }
600
780
  const missingTool = matchingPattern.replace(' not found', '');
@@ -605,10 +785,17 @@ export const restoreCommand = new Command('restore')
605
785
  process.exit(1);
606
786
  }
607
787
  if (options.json) {
608
- console.log(JSON.stringify({ error: e.message }));
788
+ console.log(JSON.stringify({
789
+ error: thrown.message,
790
+ ...(thrown.name ? { errorName: thrown.name } : {}),
791
+ ...(thrown.code ? { errorCode: thrown.code } : {}),
792
+ ...(outcome?.hadObjectErrors
793
+ ? restoreDiagnosticsJson(outcome)
794
+ : {}),
795
+ }));
609
796
  }
610
797
  else {
611
- console.error(uiError(e.message));
798
+ console.error(uiError(thrown.message));
612
799
  }
613
800
  process.exit(1);
614
801
  }
@@ -1 +1 @@
1
- {"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../cli/commands/restore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../cli/commands/restore.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  // Auto-generated — do not edit manually
2
- export const VERSION = '0.68.10';
2
+ export const VERSION = '0.69.1';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../config/version.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../config/version.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAA"}
@@ -15,6 +15,7 @@ import { containerManager } from './container-manager.js';
15
15
  import { getMissingDependencies } from './dependency-manager.js';
16
16
  import { platformService } from './platform-service.js';
17
17
  import { getEngine } from '../engines/index.js';
18
+ import { classifyRestoreOutcome, restoreErrorReportLines, restoreFailureMessage, } from './restore-outcome.js';
18
19
  import { createSpinner } from '../cli/ui/spinner.js';
19
20
  import { uiSuccess, uiError, formatBytes } from '../cli/ui/theme.js';
20
21
  import { getBackupExtension, getBackupSpinnerLabel, LARGE_BACKUP_THRESHOLD, VERY_LARGE_BACKUP_THRESHOLD, } from '../config/backup-formats.js';
@@ -157,8 +158,31 @@ export async function performRestore(options) {
157
158
  const result = await engine.restore(config, backupPath, {
158
159
  database: databaseName,
159
160
  });
161
+ // Same classifier the CLI restore uses, so a partial restore reads the
162
+ // same way here: the objects that failed, not the first 10 lines of
163
+ // whatever the tool printed.
164
+ const outcome = classifyRestoreOutcome(result);
160
165
  const warnings = [];
161
- if (result.code === 0) {
166
+ // A restore the classifier calls FAILED (a `FATAL`, or a non-zero exit
167
+ // with no object errors to explain it) is not a warning. Reporting it as
168
+ // `success: true` is the same swallow the classifier exists to end - the
169
+ // engine's restore() resolves rather than throwing, so nothing below
170
+ // would have caught it.
171
+ if (outcome.failed) {
172
+ const error = restoreFailureMessage(result);
173
+ spinner?.fail('Restore failed');
174
+ if (interactive) {
175
+ console.log();
176
+ console.log(uiError(error));
177
+ console.log();
178
+ }
179
+ return { success: false, error };
180
+ }
181
+ if (outcome.hadObjectErrors) {
182
+ spinner?.warn(outcome.summary);
183
+ warnings.push(...restoreErrorReportLines(outcome.diagnostics, 10));
184
+ }
185
+ else if (result.code === 0) {
162
186
  spinner?.succeed('Restore completed successfully');
163
187
  }
164
188
  else {