Zum Inhalt

viur-revision

Automatische Revisionsverfolgung und Rollback für ViUR-Skeletons.

Warum viur-revision?

viur-revision legt bei jedem Schreibvorgang einen Schnappschuss des Zustands vor dem Schreiben eines verfolgten Skeletons in einer begleitenden Datastore-Art (<kind>_revision) an. Das ergibt:

  • Durchsuchbare Änderungshistorie — jede Revision speichert den vollständigen Datensatz sowie die Liste der geänderten Bones.
  • Rollback per Klick — jede vergangene Revision lässt sich in den Live-Datensatz zurückspielen; der aktuelle Zustand wird zuvor automatisch gesichert, sodass die Wiederherstellung selbst rückgängig gemacht werden kann.
  • Gestaffelte Aufbewahrung — ein täglicher Hintergrund-Task dünnt die Historie je nach Alter auf einen Eintrag pro Stunde, Tag oder Woche aus.
  • Steuerung pro Skel — jeden Schreibvorgang verfolgen oder nur bestimmte Bones; das Coalescing-Fenster feinjustieren, das schnelle Auto-Save-Fluten zu einer einzigen Revision zusammenfasst.

Beispiel

from viur.revision import RevisionAbstractSkel, RevisionModule

class ExampleSkel(RevisionAbstractSkel, Skeleton):
    revision_fields = ["title", "body"]

class Example(RevisionModule, List):
    ...

Das Modul stellt nun list_revision, view_revision, apply_revision, delete_revision sowie einen täglichen Aufbewahrungs-Task bereit — keine weitere Verdrahtung nötig.

Nächste Schritte