E4 Rollback
- Area
- E — Maintenance
- Audience
- operator
- Kind
- feature
- Status
- accepted
- Maturity
- shipped
- Shipped in
- 0.14.0
- Labels
- updates
The feature in the specification · Read at
Requirements
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
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
Each journaled change MUST be classified as reversible, irreversible, or partially reversible.
Rollback MUST NOT be offered where it cannot succeed.
Where rollback is unavailable due to a database migration, lemonfiber MUST state the reason and point at the pre-update backup.
A rollback MUST itself be journaled and MUST be rollable.
Rolling back a change with dependent later changes MUST detect the dependency and require confirmation or refuse.
A value manually changed since MUST be treated as drift and MUST NOT be silently overwritten.
Rolling back a data root move MUST state that data is not moved back.
An unavailable rollback target MUST be reported explicitly.
Journal history MUST be browsable, showing what changed and when.
A partially failed rollback MUST report the exact resulting state.
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
Changes applied as one operation MUST roll back as one unit.