Vito Sansevero
f193a3a1ce
feat(backup): review a restore, run it as an Activity job, verify backups
...
- POST /restore/preview stages an upload in the library's folder and
answers what it holds beside the live library, writing nothing live;
DELETE discards it; at most two stages are held (429 too-large).
- POST /restore/apply rechecks the live fingerprint (409 plan-changed) and
starts "Database restore": exclusive, not cancellable, indeterminate. It
waits for request leases, publishes the exact staged bytes, swaps the
database, prunes safety backups and logs counts, repairs and the backup.
- The legacy /restore runs the same stage and publish as an exclusive hold
with its old response, so a restore and the health check, Move library
and every other job refuse each other.
- JobRegistry.lease: Needs review decisions and maintenance and restore
previews are refused while an exclusive job runs, and a restore waits
for them before it switches the file.
- GET /backup holds a guarded slot, verifies a standalone snapshot before
streaming it and removes the closed temp file; GET /backup/status lists
the safety backups on disk and this session's verified download.
2026-10-25 06:20:12 -07:00
..
2026-10-24 21:00:30 -07:00
2026-10-24 12:54:09 -07:00
2026-10-17 13:14:02 -07:00
2026-10-23 11:09:12 -07:00
2026-10-24 21:00:30 -07:00
2026-10-24 12:54:09 -07:00
2026-02-07 08:30:09 -08:00
2026-10-19 22:04:32 -07:00
2026-10-17 23:26:37 -07:00
2026-10-22 10:36:58 -07:00
2026-10-19 17:26:37 -07:00
2026-10-23 11:09:12 -07:00
2026-10-23 11:09:12 -07:00
2026-10-22 21:39:01 -07:00
2026-10-08 18:53:11 -07:00
2026-10-23 11:09:12 -07:00
2026-10-23 14:19:11 -07:00
2026-10-22 07:19:53 -07:00
2026-10-25 06:20:12 -07:00
2026-10-22 10:36:58 -07:00
2026-10-23 14:19:11 -07:00
2026-10-24 21:00:30 -07:00
2026-10-25 06:20:12 -07:00
2026-10-24 08:35:14 -07:00
2026-10-17 08:00:42 -07:00
2026-10-24 06:50:53 -07:00
2026-10-24 05:28:44 -07:00
2026-10-24 21:00:30 -07:00
2026-10-21 02:25:25 -07:00
2026-10-24 21:00:30 -07:00
2026-10-24 12:54:09 -07:00
2026-10-21 04:18:28 -07:00
2026-10-17 08:00:42 -07:00
2026-10-22 21:39:01 -07:00
2026-10-25 05:54:20 -07:00
2026-10-17 08:00:42 -07:00
2026-10-23 01:38:36 -07:00
2026-10-22 10:36:58 -07:00
2026-10-23 18:07:14 -07:00
2026-10-24 21:00:30 -07:00
2026-10-22 07:19:53 -07:00
2026-10-24 06:50:53 -07:00
2026-10-22 10:36:58 -07:00
2026-10-17 08:00:42 -07:00
2026-10-22 10:36:58 -07:00
2026-10-17 23:26:37 -07:00
2026-10-21 23:10:57 -07:00
2026-10-23 03:24:20 -07:00
2026-10-23 11:09:12 -07:00
2026-10-08 18:53:11 -07:00
2026-10-22 21:39:01 -07:00
2026-10-24 21:00:30 -07:00
2026-10-24 20:39:08 -07:00
2026-10-19 11:10:47 -07:00
2026-10-23 04:59:18 -07:00
2026-10-22 07:19:53 -07:00
2026-10-24 05:28:44 -07:00
2026-10-17 16:42:07 -07:00
2026-10-08 18:53:11 -07:00
2026-10-08 18:53:11 -07:00
2026-10-17 23:26:37 -07:00
2026-10-17 23:26:37 -07:00
2026-10-19 11:10:47 -07:00
2026-10-17 19:51:22 -07:00
2026-10-17 19:51:22 -07:00
2026-10-17 23:26:37 -07:00
2026-10-17 19:51:22 -07:00
2026-10-19 11:10:47 -07:00
2026-10-17 16:42:07 -07:00
2026-10-17 23:26:37 -07:00
2026-10-25 05:54:20 -07:00
2026-10-17 23:26:37 -07:00
2026-10-17 23:26:37 -07:00
2026-10-19 11:10:47 -07:00
2026-10-17 23:26:37 -07:00
2026-10-17 23:26:37 -07:00
2026-10-17 23:26:37 -07:00
2026-10-23 02:36:07 -07:00
2026-10-17 23:26:37 -07:00
2026-10-17 16:42:07 -07:00
2026-10-17 05:31:24 -07:00
2026-10-23 13:15:06 -07:00
2026-10-19 20:56:51 -07:00
2026-10-19 20:56:51 -07:00
2026-10-23 05:17:10 -07:00
2026-10-08 18:53:11 -07:00
2026-10-21 04:18:28 -07:00
2026-10-18 17:17:05 -07:00
2026-10-21 02:25:25 -07:00
2026-10-17 23:26:37 -07:00
2026-10-21 10:55:35 -07:00
2026-10-21 09:10:18 -07:00
2026-10-08 18:53:11 -07:00
2026-10-08 18:53:11 -07:00
2026-10-21 00:53:04 -07:00
2026-10-22 21:39:01 -07:00
2026-10-24 12:54:09 -07:00
2026-10-23 00:52:00 -07:00
2026-10-19 09:54:29 -07:00
2026-10-23 11:09:12 -07:00
2026-10-21 10:55:35 -07:00
2026-10-21 04:18:28 -07:00
2026-10-19 09:54:29 -07:00
2026-10-22 10:36:58 -07:00
2026-10-23 11:09:12 -07:00
2026-10-24 05:28:44 -07:00
2026-10-25 06:20:12 -07:00
2026-10-23 16:58:06 -07:00
2026-10-24 12:54:09 -07:00
2026-10-24 12:54:09 -07:00
2026-10-24 20:39:08 -07:00
2026-10-24 12:54:09 -07:00
2026-10-18 20:03:15 -07:00
2026-10-23 14:19:11 -07:00
2026-10-23 11:09:12 -07:00
2026-10-08 18:53:11 -07:00
2026-10-08 18:53:11 -07:00
2026-10-24 05:28:44 -07:00
2026-10-24 20:39:08 -07:00
2026-10-23 14:19:11 -07:00
2026-02-07 12:36:11 -08:00
2026-10-22 10:36:58 -07:00
2026-10-08 18:53:11 -07:00
2026-10-07 13:52:09 -07:00
2026-10-24 06:50:53 -07:00
2026-10-17 08:00:42 -07:00
2026-10-08 18:53:11 -07:00
2026-10-17 08:00:42 -07:00
2026-10-17 19:51:22 -07:00
2026-10-21 10:55:35 -07:00
2026-10-23 14:19:11 -07:00
2026-10-17 08:00:42 -07:00
2026-10-17 08:00:42 -07:00
2026-10-23 14:19:11 -07:00
2026-10-23 14:19:11 -07:00
2026-10-22 07:19:53 -07:00
2026-10-17 08:00:42 -07:00
2026-10-17 08:00:42 -07:00
2026-10-08 18:53:11 -07:00
2026-10-17 06:47:46 -07:00
2026-10-17 19:51:22 -07:00
2026-10-23 11:09:12 -07:00
2026-10-18 20:03:15 -07:00
2026-04-10 12:49:59 -07:00
2026-10-08 18:53:11 -07:00
2026-10-17 16:42:07 -07:00
2026-10-23 11:09:12 -07:00
2026-10-25 06:20:12 -07:00
2026-10-25 05:54:20 -07:00
2026-10-23 18:07:14 -07:00
2026-10-23 18:07:14 -07:00
2026-10-23 18:07:14 -07:00
2026-10-23 14:19:11 -07:00
2026-10-23 18:07:14 -07:00
2026-10-21 09:10:18 -07:00
2026-10-23 14:19:11 -07:00
2026-10-08 18:53:11 -07:00
2026-10-24 12:54:09 -07:00
2026-10-08 18:53:11 -07:00
2026-10-17 06:47:46 -07:00
2026-10-24 12:54:09 -07:00
2026-10-24 21:00:30 -07:00
2026-10-24 21:00:30 -07:00
2026-10-24 21:00:30 -07:00
2026-10-24 21:00:30 -07:00
2026-10-24 21:00:30 -07:00
2026-10-24 21:00:30 -07:00
2026-10-17 16:42:07 -07:00
2026-10-08 18:53:11 -07:00
2026-10-18 10:01:19 -07:00
2026-10-08 18:53:11 -07:00
2026-10-22 10:21:02 -07:00
2026-10-08 18:53:11 -07:00
2026-10-22 07:19:53 -07:00
2026-10-24 06:50:53 -07:00
2026-10-24 06:50:53 -07:00
2026-10-24 06:50:53 -07:00
2026-10-24 06:50:53 -07:00
2026-10-23 01:58:02 -07:00
2026-10-23 07:49:39 -07:00