← The board

E4 Rollback

Area
E — Maintenance
Audience
operator
Kind
feature
Status
accepted
Maturity
shipped
Shipped in
0.14.0
Labels
updates
Relates to
A4C3C9E1E3

The feature in the specification · Read at

Requirements

  1. E4-R1acceptedMUST

    Every change lemonfiber makes MUST be journaled with prior value, new value, timestamp and originating operation, a secret's values by their fingerprints (ARCH-R276).

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/recover.rscrates/lemonfiber-core/src/config/env.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber/src/setup/interrupted.rscrates/lemonfiber/src/setup.rs
    cited by
    lemonfiber@ca12106e63lemonfiber@468091e1dclemonfiber@be01322365lemonfiber@bf54885153lemonfiber@588d3227a1lemonfiber@6d343cd1d7lemonfiber@6049dcbe19
  2. E4-R2acceptedMUST

    Rollback MUST operate on individual changes, not only on points in time.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/recover.rscrates/lemonfiber-core/src/config/env.rscrates/lemonfiber-core/src/config/store.rscrates/lemonfiber/src/setup/interrupted.rscrates/lemonfiber/src/setup.rs
    cited by
    lemonfiber@d4f5fc4840lemonfiber@d7d549ba42lemonfiber@0a2e2fd45elemonfiber@6049dcbe19
  3. E4-R3acceptedMUST

    Each journaled change MUST be classified as reversible, irreversible, or partially reversible.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/rollback.rscrates/lemonfiber-core/src/app/history.rs
  4. E4-R4acceptedMUST

    Rollback MUST NOT be offered where it cannot succeed.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/putting_back.rscrates/lemonfiber-core/src/app/recover.rs
    cited by
    lemonfiber@d4f5fc4840
  5. E4-R5acceptedMUST

    Where rollback is unavailable due to a database migration, lemonfiber MUST state the reason and point at the pre-update backup.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/rollback.rscrates/lemonfiber-core/src/migration/version.rscrates/lemonfiber-core/src/app/history.rs
    cited by
    lemonfiber@2700adfac2
  6. E4-R6acceptedMUST

    A rollback MUST itself be journaled and MUST be rollable.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/putting_back.rscrates/lemonfiber-core/src/app/recover.rs
    cited by
    lemonfiber@ca12106e63lemonfiber@d4f5fc4840
  7. E4-R7acceptedMUST

    Rolling back a change with dependent later changes MUST detect the dependency and require confirmation or refuse.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/rollback.rscrates/lemonfiber-core/src/app/history.rs
  8. E4-R8acceptedMUST

    A value manually changed since MUST be treated as drift and MUST NOT be silently overwritten.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/rollback.rscrates/lemonfiber-core/src/app/history.rs
  9. E4-R9acceptedMUST

    Rolling back a data root move MUST state that data is not moved back.

    locked by
    0.14.0 uncited
    recorded done
    lemonfibercrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/rollback.rscrates/lemonfiber-core/src/app/history.rs
  10. E4-R10acceptedMUST

    An unavailable rollback target MUST be reported explicitly.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/putting_back.rscrates/lemonfiber-core/src/app/recover.rs
    cited by
    lemonfiber@d4f5fc4840
  11. E4-R11acceptedMUST

    Journal history MUST be browsable, showing what changed and when.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/rollback.rscrates/lemonfiber-core/src/app/history.rs
    cited by
    lemonfiber@01d7407251
  12. E4-R12acceptedMUST

    A partially failed rollback MUST report the exact resulting state.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/putting_back.rscrates/lemonfiber-core/src/app/recover.rs
    cited by
    lemonfiber@d4f5fc4840
  13. E4-R13acceptedMUST

    Journal retention MUST be bounded and the horizon MUST be stated.

    locked by
    0.14.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/journal/keeping.rs
    cited by
    lemonfiber@a7561cfa8f
  14. E4-R14acceptedMUST

    Changes applied as one operation MUST roll back as one unit.

    locked by
    0.14.0 met
    recorded done
    lemonfibercontract/web-api/index.jsoncrates/lemonfiber-api/src/actions.rscrates/lemonfiber-api/src/actions/asked.rscrates/lemonfiber-api/src/actions/asked/takers.rs
    cited by
    lemonfiber@d4f5fc4840lemonfiber@01d7407251