Mittels der App können Daten regelbasiert automatisch nach einer definierten Zeit gelöscht oder anonymisiert werden, um den Vorhaltezeiten des Gesetzgebers nachzukommen.
Löschaktion
Eine Löschaktion definiert ein Regelwerk, anhand dessen Daten automatisiert gelöscht werden. Im Folgenden werden die Konfigurationsmöglichkeiten beschrieben.
Einstellung | Beschreibung |
---|---|
Bezeichnung | Eine frei wählbare Bezeichnung |
Tabelle | Die Tabelle, aus der Datensätze gelöscht werden sollen |
Versionen einbeziehen | Versionen mitlöschen: ja/nein |
Nur Versionsdatensätze löschen | Bietet die Möglichkeit, nur die Versionsdatensätze einer Bezugsentität zu löschen |
Löschmethode | Löschen oder Anonymisieren. Beim Anonymisieren werden alle Textfelder eines Datensatzes auf den Anfangsbuchstaben gekürzt |
Löschauftrags-Zeitversatz | Zeit nach der Anlage von Löschaufträgen, nach der ermittelte Löschungen durchgeführt werden; Standard-Wert 24 |
Löschauftrags-Zeiteinheit | Die zugehörige Zeiteinheit; Standard-Wert "Stunden" |
Administratoren über Löschauftrag informieren | Die hier gewählten Administratoren werden über einen neu erzeugten Löschauftrag per Mail informiert |
Zusätzlich über durchgeführte Löschungen informieren | Die oben gewählten Administratoren werden zusätzlich über durchgeführte Löschungen informiert |
Filter | Ein Filter, der auf die anhand des Zeitversatzes gefundenen Datensätze zusätzlich angewandt wird |
Lösch-Zeitversatz | Der Zeitversatz, nach dem ein Datensatz gelöscht werden soll |
Lösch-Zeiteinheit | Die zugehörige Zeiteinheit |
Referenzdatum | Das Referenzdatum für den Zeitversatz: Anlagedatum oder letztes Änderungsdatum |
Es ist optional möglich, Datensätze, die als Kinddatensätze an den zu löschenden Datensätzen verknüpft sind, automatisch mit zu löschen. Das ist dann sinnvoll, wenn die Kinddatensätze ohne den gelöschten Datensatz keine Relevanz haben.
Hierzu müssen Einträge in der Tabelle "Löschtabelle" angelegt und als Kinddatensatz zur Löschaktion verknüpft werden. Bei der Löschtabelle ist die Entität der Kinddatensatzes zu wählen.
Beispiel: Beim Löschen einer Session sollen automatisch alle an die Session verknüpften Warenkorbartikel mit gelöscht werden.
Lösung: Ein Datensatz in der Tabelle "Löschtabelle" mit Bezugsentität "Warenkorbartikel (shopSessionArticle)", der als Kinddatensatz an die Löschaktion, die für die Session-Datensätze definiert wurden, verknüpft wird.
Der Mechanismus sucht dann zuerst Session-Datensätze anhand von Zeitversatz und Filter, und ermittelt anhand der verknüpften Löschtabellen vor der Löschung die Kinddatensätze der dort definierten Bezugsentität und löscht diese mit dem Session-Datensatz.
Wichtig: definierter Zeitversatz und Filter werden nicht für die Kinddatensätze angewendet.
Löschmethoden
Es können eigene Löschmethoden integriert werden. Dazu muss ein Manager eines Pakets das Interface
Brandbox\FrameworkDataErasure\Erasure\Job\Lib\Service\EraserServiceInterface
implementieren. Im Folgenden werden die in brandbox enthaltenen Löschmethoden gelistet:
App | Löschmethode | Beschreibung |
---|---|---|
brandbox/framework-data-erasure | Datenlöschung: Löschen | Löscht Daten |
brandbox/framework-data-erasure | Datenlöschung: Anonymisieren | Anonymisiert Daten; Dabei bleibt der Datensatz erhalten, es bleibt aber nur der erste Buchstabe jedes Feldes bestehen |
brandbox/framework-data-erasure | Datenlöschung: Undokumentiertes Löschen | Löscht Daten direkt ohne Löschung-Datensätze (erst verfügbar ab Version 2.0) |
brandbox/shop-data-erasure | Datenlöschung: Deaktivieren | Deaktiviert Kunden-Datensätze unter Einbeziehung des Einwilligungs-Handlings |
Datenlöschung: Deaktivieren
Mit Installation der App brandbox/shop-data-erasure erscheint eine neue Löschmethode bei den Löschaktionen. Diese ist nur für Datensätze der Tabelle "Kunden" nutzbar. Für die Nutzung muss "Konfiguration für Datenlöschung: Kunde deaktivieren" gepflegt werden.
Ziel ist es, inaktive Anwender zu deaktivieren, um sie zu einem späteren Zeitpunkt zu löschen.
Hierzu sollte ein freigegebener Filter definiert werden, der sich auf das letzte Login-Datum eines Kunden bezieht. Dieser Filter kann bei der Löschaktion gewählt werden.
Ablauf:
- Ein Löschauftrag wird erstellt. Pro erstellter Löschung wird eine Einwilligungsanfrage an den betroffenen Kunden gesendet. Hierfür muss eine "Vorlage für Einwilligungen" und eine E-Mail-Vorlage gepflegt werden.
- Lehnt der Kunde die Deaktivierung ab, wird ein Widerruf gespeichert und das letzte Login-Datum des Kunden wird auf den aktuellen Zeitpunkt gesetzt. Dadurch ist sichergestellt, dass der definierte Filter erst nach erneutem Ablauf der Login-Frist wieder greift.
- Beim Ausführen des Löschauftrags wird pro Löschung geprüft, ob ein Widerruf vorliegt. In diesem Fall wird der Kunden-Account nicht deaktiviert.
Optional kann eine Erinnerung nach einer definierten Anzahl Tagen gesendet werden, sofern der Anwendern nicht auf die Einwilligungsanfrage reagiert hat.
Löschauftrag
Ein Löschauftrag wird aus einer Löschaktion per Klick auf erstellt. Werden anhand der Filterkriterien zu löschende Datensätze gefunden, wird ein Löschauftrag erstellt und eine Erfolgsmeldung dargestellt, andernfalls erscheint eine Fehlermeldung. Der Löschauftrag erhält als Löschdatum automatisch den Zeitstempel seiner Erstellung plus den in der Löschaktion definierten Löschauftrags-Zeitversatz. Ein Löschauftrag wird also immer erst durchgeführt, wenn der Löschauftrags-Zeitversatz (Standardwert sind 24 Stunden) seit seiner Erstellung verstrichen ist. Gelöscht werden dann die zum Zeitpunkt seiner Erstellung ermittelten Datensätze.
Die Löschung wird mit Klick auf durchgeführt. Sofern die Löschung nicht schon durchgeführt wurde und der Lösch-Zeitstempel in der Vergangenheit liegt, wird die Löschung durchgeführt und eine Erfolgsmeldung darstellt. Andernfalls erscheint eine Fehlermeldung.
Prüfen
Versionshinweise
(brandbox >= 7.0)
Der Prüfmechanismus bietet die Möglichkeit, die Anzahl der zu löschenden Datensätze zum aktuellen Zeitpunkt zu ermitteln. Damit lässt sich vorab prüfen, ob die Löschaktion korrekt konfiguriert wurde.
Die Prüfung lässt sich mit Klick auf einen Toolbar-Button in der Datensatz-Ansicht der Löschaktion öffnen.
Automatisierung
Eine automatische Erstellung von Löschaufträgen ist mittels Cronjob möglich, der einmal täglich, vorzugsweise nachts, laufen sollte. Dieser muss wie folgt definiert sein:
-package=Erasure/Action -host=domain.brandbox.de
Die Abarbeitung der Löschungen erfolgt in Paketen zu 5000 Datensätzen über einen weiteren Cronjob, der alle 15 Minuten laufen sollte, jedoch aus Performancegründen nur zu Randzeiten:
-package=Erasure/Job -host=domain.brandbox.de