EventKeeper

EventKeeper (nach etckeeper) ist eine Git-basierte Versionierung von Veranstaltungen auf Basis des partiellen Exports.

Warning

EventKeeper befindet sich noch in der Testphase. Insbesondere der Tatsache, dass in allen hier aufgeführten Szenarien tatsächlich Commits durchgeführt werden, sollte nicht allzu viel Vertrauen entgegengebracht werden.

Architektur

Zu jeder Veranstaltung existiert ein Git-Repositorium, das als einzige Datei den partiellen Export der Veranstaltung enthält. Einzige Abweichung ist, dass der timestamp aus dem Export entfernt wird.

In dieses Repositorium werden einmal pro halbe Stunde Snapshots vorgenommen, sofern eine Änderung stattgefunden hat. Darüber hinaus werden vor und nach größeren Änderungen weitere Snapshots vorgenommen. Dadurch lassen sich diese Änderungen im Nachhinein über das Git nachvollziehen.

Weitere Snapshots werden angelegt vor und nach:

  • Löschung eines Teilnehmers, eines Kurses oder einer Unterkunft

  • Änderung oder Löschung von Datenfeldern

  • Multi-Edit

  • partiellem Import

  • Entsperrung einer Veranstaltung

Zudem gibt es einen Snapshot nach Änderung des Datenbankschemas für Veranstaltungen.

Der Snapshot vor einer Änderung wird nur vorgenommen, wenn der partielle Export sich seit dem letzten Snapshot verändert hat. Im Gegensatz dazu werden Snapshots nach Änderungen immer vorgenommen, selbst wenn der partielle Export durch die Änderung nicht verändert wurde.

Mit der Archivierung oder Löschung einer Veranstaltung wird auch sein EventKeeper gelöscht. Dadurch soll diversen Fristen zur Löschung personenbezogener Daten Rechnung getragen werden.

Diese Architektur zeichnet sich insbesondere dadurch aus, dass sie diverse datenbanktheoretische Komplexitäten umschifft, die eine Versionierung in der Datenbank mit sich bringen würde. Darüber hinaus besteht über den Partiellen Import eine einfache Möglichkeit, eine alte Version der Veranstaltung aus dem EventKeeper in weiten Teilen wiederherzustellen.

Verwendung und Zugriff

Auf das Git kann durch Orgas und Veranstaltungs-Administrationen einfach mithilfe der Zugangsdaten für die Datenbank zugegriffen werden. Es kann mittels git clone heruntergeladen und später mit git pull aktualisiert werden.:

git clone https://db.cde-ev.de/git/event_keeper/<event_id>/.git/

Dies vereinfacht auch das Beziehen eines aktuellen partiellen Exports zur Verwendung in externen Tools, das nun rein über die Kommandozeile geschehen kann. Das Repositorium ist schreibgeschützt; git push hat somit keinen Effekt.

Nach dem Abschluss aller Organisationstätigkeiten müssen lokale Kopien des EventKeepers gelöscht werden.