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

nbari / backup
80%
main: 80%

Build:
Build:
LAST BUILD BRANCH: develop
DEFAULT BRANCH: main
Repo Added 10 Dec 2023 11:26AM UTC
Token YjqAuYA9IixczNtI1a7Af25BPveXJSLyl regen
Build 125 Last
Files 40
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH develop
branch: develop
CHANGE BRANCH
x
Reset
Sync Branches
  • develop
  • 0.0.3
  • dependabot/cargo/openssl-0.10.66
  • main
  • sandbox

08 Jun 2026 03:56PM UTC coverage: 80.299% (+3.2%) from 77.14%
27150222772

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. Version 0.1.0. Unix only.

Storage & config
- content-addressed LocalStore: sharded layout (ab/cd/<id>), atomic temp+rename
  (unique per-writer temp names), overwrite semantics (replaces orphan blobs from
  interrupted runs), hex-only key validation (blocks path traversal), remove()
- 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 (one set query, not a blocking lookup per file); 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 (catalog key updated before blobs; tries duplicate
  sources; errors on a missing Files row; unrecoverable when source gone/changed)
- content ids checked concurrently with a bounded pool; results folded race-free,
  unrecoverable ids returned sorted

Pre-merge hardening
- bind content_id (content/file keys) and a fixed label (naming key) as AAD when
  wrapping keys, so a catalog wrapped-key row can't be reused under another id
- write the public key + sealed naming ... (continued)

1293 of 1479 new or added lines in 27 files covered. (87.42%)

8 existing lines in 5 files now uncovered.

3334 of 4152 relevant lines covered (80.3%)

15.08 hits per line

Relevant lines Covered
Build:
Build:
4152 RELEVANT LINES 3334 COVERED LINES
15.08 HITS PER LINE
Source Files on develop
  • Tree
  • List 40
  • Changed 24
  • Source Changed 24
  • Coverage Changed 24
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
27150222772 develop 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 ... push 08 Jun 2026 04:02PM UTC nbari github
80.3
27101529644 develop Add DESIGN.md: backup architecture & data-plane spec Architecture and data-plane design (no backend code): fast metadata-only snapshot + deferred, resumable, multi-destination upload; content-defined chunking with keyed-id dedup; compress-then-en... push 07 Jun 2026 06:51PM UTC nbari github
77.14
27101243743 develop DESIGN: add append-only + Object Lock (ransomware defense) The data model is append-only by construction; enforce it at the storage layer so a compromised client cannot delete history: routine backups use a write-but-not-delete credential + Objec... push 07 Jun 2026 06:38PM UTC nbari github
77.14
27100807233 develop DESIGN: storage backends, checklist, catalog auto-push & visibility (squashed) DESIGN.md refinements: phased implementation checklist; storage backends (filesystem adapter + s3m for vendor-agnostic S3); automatic sealed-catalog upload to every de... push 07 Jun 2026 06:19PM UTC nbari github
77.14
27100720694 develop DESIGN: note future service layer (backups.sh) + forward-compat levers Capture the optional hosted product (store vs convenience-layer models) and the per-user catalog-visibility tiers (encrypted-default / view key / opt-in plaintext) without com... push 07 Jun 2026 06:16PM UTC nbari github
77.14
27100462288 develop DESIGN: sealed catalog is pushed to every destination (redundant for free) Clarify that the automatic catalog upload targets each configured destination, so the catalog inherits the multi-destination redundancy of #19 without extra work. push 07 Jun 2026 06:05PM UTC nbari github
77.14
27100105434 develop DESIGN: make sealed-catalog upload automatic (critical dependency) The catalog is required to restore, so it is sealed to the public key and pushed automatically at the end of every successful run/upload (no separate command; keyless, so a cron/w... push 07 Jun 2026 05:50PM UTC nbari github
77.14
27099862020 develop DESIGN: define storage backends (filesystem adapter + s3m for S3) Two backends behind the Storage trait: a filesystem/path backend that transparently covers NFS, external drives and FUSE/userspace mounts (s3fs, rclone, Cryptomator, Dropbox); and ... push 07 Jun 2026 05:39PM UTC nbari github
77.14
27099692368 develop DESIGN: add phased implementation checklist (checkboxes) Turn the status section into a checkable roadmap: Done items ticked, and Phases 1-5 (local round-trip, chunking/packs, remote/redundancy, integrity/lifecycle, nice-to-have) as unchecked tas... push 07 Jun 2026 05:32PM UTC nbari github
77.14
27099636913 develop Add edit/restore commands and the DESIGN.md data-plane spec - edit: add/remove a backup's directories and files (normalize & replace); shared clap validators extracted to commands/validators.rs. - restore: wired placeholder (id/path/version + -... push 07 Jun 2026 05:30PM UTC nbari github
77.14
See All Builds (123)

Badge your Repo: backup

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
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