• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nbari / backup / 27145885383

08 Jun 2026 02:43PM UTC coverage: 80.0% (+2.9%) from 77.14%
27145885383

push

github

nbari
data plane: content-addressed blob storage, run upload, and verify/repair

Builds the local write path on top of the metadata engine: a backup `run` now
compresses, encrypts, and writes content-addressed blobs to one or more
configured filesystem destinations, and a new `verify`/`--repair` command keeps
those destinations consistent with the catalog.

Storage & config
- content-addressed LocalStore: sharded layout (ab/cd/<id>), atomic temp+rename,
  overwrite semantics (replaces orphan blobs from interrupted runs); remove() too
- per-backup destinations via -t/--to on `new`/`edit` (repeatable; filesystem now,
  s3:// recognized and skipped with a notice)

Run upload (Phase 1)
- seal each new file's content: zstd compress (raw fallback) + ChaCha20-Poly1305,
  content id + codec bound as AAD, per-content key wrapped to the backup public key
- dedup by keyed content id; write to every destination; metadata-only when none
- bounded parallel seal/encrypt/store worker pool with progress
- interrupted-run safety: a version is completed only after its blobs are stored,
  so `view` shows the last complete snapshot and a re-run re-stores cleanly

Verify / repair
- existence check across destinations (no secrets); --repair restores missing
  blobs by copying from a healthy destination (key preserved) or re-sealing from
  source when gone everywhere (fresh key written before blobs; tries duplicate
  sources; unrecoverable when source is gone/changed)
- content ids checked concurrently with a bounded pool; results folded race-free,
  unrecoverable ids returned sorted

Fixes & cleanup
- -c/--config was ignored by every command except `new`; resolve it once in start
  and thread through GlobalArgs (honored before/after the subcommand)
- replace num_cpus with std::thread::available_parallelism (worker pool + SQLite
  pool); drop the dependency
- remove dead --no-compression/--no-encryption flags and a dead exclusions.rs stub
- README/.backupignore docs and DESIGN che... (continued)

1151 of 1325 new or added lines in 27 files covered. (86.87%)

8 existing lines in 5 files now uncovered.

3232 of 4040 relevant lines covered (80.0%)

12.96 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.68
/src/db/sqlite.rs


Source Not Available

STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc