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/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.
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 24 Stunden. Ein Löschauftrag wird also immer erst 24 Stunden nach seiner Erstellung durchgeführt und löscht 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.
Automatisierung
Eine automatische Erstellung von Löschaufträgen ist mittels Cronjob möglich. Dieser muss wie folgt definiert sein:
-package=Erasure/Job -host=domain.brandbox.de