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

nbari / backup / 27149471032
80%
main: 80%

Build:
Build:
LAST BUILD BRANCH: develop
DEFAULT BRANCH: main
Ran 08 Jun 2026 03:49PM UTC
Jobs 1
Files 40
Run time 1min
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

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

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.

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 key atomica... (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.07 hits per line

Uncovered Changes

Lines Coverage ∆ File
44
0.0
src/cli/actions/verify.rs
29
91.43
0.11% src/engine/run.rs
25
90.89
-0.99% src/db/sqlite.rs
19
0.0
0.0% src/cli/actions/edit.rs
13
0.0
0.0% src/cli/actions/run.rs
12
0.0
0.0% src/cli/actions/show.rs
10
0.0
0.0% src/cli/dispatch/cmd_edit.rs
7
0.0
src/cli/dispatch/cmd_verify.rs
5
0.0
0.0% src/cli/dispatch/cmd_new.rs
5
98.68
src/engine/verify.rs
3
83.33
26.81% src/cli/start.rs
3
97.37
src/storage/local.rs
3
98.56
0.25% src/utils/crypto.rs
2
0.0
0.0% src/cli/actions/new.rs
1
0.0
0.0% src/bin/backup.rs
1
0.0
0.0% src/cli/actions/view.rs
1
98.46
-1.54% src/cli/commands/cmd_new.rs
1
0.0
0.0% src/cli/dispatch/mod.rs
1
67.92
-1.31% src/engine/show.rs
1
82.45
0.14% src/engine/view.rs

Coverage Regressions

Lines Coverage ∆ File
3
0.0
0.0% src/cli/actions/edit.rs
2
0.0
0.0% src/cli/actions/new.rs
1
0.0
0.0% src/cli/actions/run.rs
1
0.0
0.0% src/cli/actions/view.rs
1
83.33
26.81% src/cli/start.rs
Jobs
ID Job ID Ran Files Coverage
1 27149471032.1 08 Jun 2026 03:49PM UTC 40
80.3
GitHub Action Run
Source Files on build 27149471032
  • Tree
  • List 40
  • Changed 23
  • Source Changed 23
  • Coverage Changed 23
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27149471032
  • e30cdd6d on github
  • Prev Build on develop (#27101529644)
  • Next Build on sandbox (#27150053611)
  • Delete
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