feature/restore
backupRestore (Restore... on backups_run) and backupRestoreTable (Restore this table on backups_artifact): inputs for tables, per-table filters, target table, mode (INSERT_NEW, UPSERT, REPLACE), match key, id strategy (PRESERVE, REMAP_NEW_IDS with backups_id_map and reference rewriting) and options. Review is a real dry run with per-table summary lines (inserted, updated, unchanged, skipped, deleted, conflicts, orphans, schema, sequences, files) and a masked sample diff. Execute takes the pre-restore backup, writes in manifest order in page transactions behind a RestoreWriter (core RestoreWriteFlag and resyncKeySequences selected reflectively), restores files through the content-addressed store with a SHA-256 re-check, and records backups_restore_run and backups_restore_run_table rows. Safety rails enforced in the engine. backupImportCatalog rebuilds backups_run and backups_artifact from the manifests under a bucket alias and prefix (trigger IMPORTED). backupDownload issues audited presigned links, ciphertext only. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
QBit Backups
QQQ QBit: logical backup, restore and verification of QQQ data to S3-compatible storage.
Status: design: QRun-IO/qqq#1091; implementation in progress. Nothing is published yet.
Requirements
- Java 21.
- QQQ 4.1 (built against
4.1.0-RC.4).
Install
Not yet published. Once released, add com.kingsrook.qbits:qbit-backups and produce the qbit into your QInstance:
new BackupsQBitProducer()
.withQBitConfig(new BackupsQBitConfig().withBackendName("rdbms"))
.produce(qInstance);
Naming
Tables are backups_<name> (lowercase snake_case, backend name equal to the table name). Permissions are backups.<action>.
Adopting in another app
Follow the QQQ adoption checklist once the first release is published.
Build
./mvnw verify
Always use the Maven wrapper (Maven 3.9.11); Maven 3.10 cannot read the parent POM.
License
Description
QQQ QBit: logical backup, restore and verification of QQQ data to S3-compatible storage
Readme
20 MiB
0 Stars
3 Watchers
0 Forks
Languages
Java
100%