← The board

E3 Backup & restore

Area
E — Maintenance
Audience
operator
Kind
feature
Status
accepted
Maturity
built
Labels
storage, updates
Relates to
A5A6A7E1E4

The feature in the specification · Read at

Requirements

  1. E3-R1acceptedMUST

    Service databases MUST be quiesced or captured via the service's own backup mechanism; a live SQLite file MUST NOT be copied silently.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@5e24ee8626lemonfiber@e9cfed0581
  2. E3-R2acceptedMUST

    Backups MUST include service configuration, lemonfiber configuration, the expected-state baseline, and materialised stack files.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@a4c7d2dccelemonfiber@e9cfed0581lemonfiber@cee47eab80lemonfiber@dc488e7a19
  3. E3-R3acceptedMUST

    Backups MUST NOT include the media library.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@e9cfed0581
  4. E3-R4acceptedMUST

    Backups containing credentials MUST be labelled sensitive at creation and within the archive.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@e9cfed0581
  5. E3-R5acceptedMUST

    A backup MUST be taken automatically before updates, before adoption, and before configuration removal. The capture taken before an adoption MUST cover the existing setup's own configuration, at the host paths the survey reports, rather than lemonfiber's layout — which holds nothing worth protecting until the takeover has happened.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/update/run/staging.rscrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/app/quiesced.rs
    cited by
    lemonfiber@55c09e7313lemonfiber@43557a1f2a
  6. E3-R6acceptedMUST

    Restore MUST support whole-stack and single-service scope.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@e9cfed0581
  7. E3-R7acceptedMUST

    An archive MUST be verified and its contents listed before anything is overwritten.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@b03a922d2blemonfiber@e9cfed0581lemonfiber@8296315166lemonfiber@24f1280a8a
  8. E3-R8acceptedMUST

    A corrupt or incompatible archive MUST be refused before modification begins.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@e9cfed0581
  9. E3-R9acceptedMUST

    Restore from a newer lemonfiber version MUST be refused with the version gap stated.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@e9cfed0581
  10. E3-R10acceptedMUST

    Restore to a different data root MUST detect the path difference and offer to re-point.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@b03a922d2blemonfiber@e9cfed0581lemonfiber@23f65efaf8
  11. E3-R11acceptedMUST

    Retention MUST be bounded and MUST NOT prune the last remaining backup.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@e9cfed0581
  12. E3-R12acceptedMUST

    Insufficient disk space MUST be detected before capture begins.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@e9cfed0581
  13. E3-R13acceptedMUST

    Restore MUST report which restored credentials subsequently fail validation.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@e9cfed0581
  14. E3-R14acceptedMUST

    After restore, inter-service wiring MUST be reconciled by re-running seed.

    locked by
    0.3.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/backup/run.rscrates/lemonfiber-core/src/archive.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber/src/main.rscrates/lemonfiber/src/archive.rs
    cited by
    lemonfiber@e9cfed0581
  15. E3-R15acceptedSHOULD

    A full backup of a typical configuration SHOULD complete within 60 seconds.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber/src/archive/tests.rs
    cited by
    lemonfiber@a4c7d2dccelemonfiber@b74e46e28c
  16. E3-R16acceptedMUST

    lemonfiber MUST NOT restore a captured tree it does not manage. An archive of an existing setup MUST record the host path each tree was taken from, so putting it back is an ordinary extraction the operator performs deliberately. Writing into a tree lemonfiber does not manage is the one step in a restore nobody can sanction on the operator's behalf.

    locked by
    0.18.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/backup.rscrates/lemonfiber-core/src/app/restore.rscrates/lemonfiber-core/src/app/restore/tests.rs
    cited by
    lemonfiber@55c09e7313