HarperFast / HarperFast/harper

[Epic] Backup/restore correctness

Open
#2,100 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
89
Forks
10
Avg merge
2d 6h
Merged PRs (30d)
200

Description

Backups and offline backup CLI landed for 5.2 (#1831 and its follow-ups). This epic collects correctness work on that surface: the operations, the CLI's offline paths, and the on-disk metadata they rely on.

## Scope

**In:** `create_backup` / `list_backups` / `delete_backup` / `purge_backups` / `get_backup`, the offline CLI paths in `bin/backup.ts`, the reserved `restore` metadata directory, and the interaction between backup management operations and the RocksDB backup-directory writer lock.

**Out:** `copy-db` (#2048) — a separate CLI verb with its own defects, tracked under CLI/install robustness. Crash-recovery and transaction-log correctness (#1949, #2016) — those are audit-log/storage concerns even though they also affect what a restore produces.

## Theme so far

Two of the three open defects are the same shape as the wider false-green pattern in #2095: the operation reports success while the artifact it produced is unusable, or acts on a target that isn't the one the operator meant. That's worth keeping in mind when choosing fixes — a backup surface that can report success it hasn't earned is worse than one that fails loudly.

## Note on older backup issues

#996 (`delete_backup` operation), #997 (`list_backups` operation), and #131 (`get_backup` support for rocksdb) predate the 5.2 work and all three operations are now implemented. They're likely closable rather than epic children — left out of this epic deliberately, pending confirmation that the shipped implementations cover what they asked for.

_Created during backlog triage; the child issues keep their own priorities and milestones._

Contributor guide

Open the contributing guide

Research direction

This is an umbrella epic rather than a self-contained change. Start by selecting one child defect, then read the scoped create_backup, list_backups, delete_backup, purge_backups, or get_backup entry point and the offline paths in bin/backup.ts. Done means the selected correctness issue is fixed and its backup artifact, metadata, or writer-lock behavior is verified.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js, typescript
Domain
cli, databases
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.