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

nbari / backup
80%

Build:
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 main
branch: main
CHANGE BRANCH
x
Reset
Sync Branches
  • main
  • 0.0.3
  • dependabot/cargo/openssl-0.10.66
  • develop
  • sandbox

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

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 main
  • 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
27150234123 main 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
27101533153 main 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
27099484040 main 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:23PM UTC nbari github
77.14
27092796670 main Add addressable entries to view: file ids and path drill-down - File rows now show a stable id ([N] = FileNames.name_id) in a left gutter. - `view <name> <id>` (or #id) resolves the file to its full path and reports it would be restored; ids st... push 07 Jun 2026 12:41PM UTC nbari github
77.61
27091060450 main 0.0.13 push 07 Jun 2026 11:23AM UTC nbari github
79.18
27089169895 main remove verbose flag push 07 Jun 2026 09:55AM UTC nbari github
76.34
27087308904 main 0.0.12 push 07 Jun 2026 08:27AM UTC nbari github
75.5
27086448327 main 0.0.11 push 07 Jun 2026 07:46AM UTC nbari github
64.66
17775167600 main coverage workflow push 16 Sep 2025 06:23PM UTC nbari github
54.0
17700101405 main dry-run returns version=0 push 13 Sep 2025 05:59PM UTC nbari github
53.62
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