GC (Garbage collection)

Daten sollten grundsätzlich vermieden werden. Das gilt besonders bei personenbezogenen Daten.

Brandbox bietet integrierte Mechanismen, um gesammelte Daten automatisiert zu löschen. Ein Garbage Collector kann in jedem Main-Controller (Engine) registriert werden. Das Package ist damit in der Lage, die Daten, die es erzeugt bzw. sammelt, selbstständig zu löschen. Der Garbage Collector wird in Form eines Cronjobs zur Verfügung gestellt. Dazu muss die Engine das Interface \Brandbox\Framework\Brandbox\GC\GarbageCollectorInterface implementieren und eine Methode mit dem Namen runGarbageCollector integrieren. Diese Methode erhält die Arguments.

Beispiel: 

/** * @security( * classification="forbidden" * ) * * @param \Brandbox\Framework\Brandbox\GC\Logger $logger */ public function runGarbageCollector(\Brandbox\Framework\Brandbox\GC\Logger $logger): void { // Lösche Daten }

Ausführen des Garbage Collectors

Der GC wird über einen Cronjob wie folgt ausgeführt:

php /var/www/plugin/remote/brandbox/framework/src/entrypoint.php -endpoint=Cron -package=Brandbox/GC -host=HOST_DOMAIN

Liste der Garbage Collectors

App

Paket

Beschreibung

App

Paket

Beschreibung

base-core

Base/Consent

Löscht unbeantwortete Anfragen nach 3 Tagen

Betroffene Entities

  • ConsentRequest

base-core

Base/WebStorage

Löscht WebStorage Einträge mit dem Key BaseEdit[%][%][selected], die sich in den letzten 7 Tagen nicht geändert haben.

Betroffene Entities

  • WebStorage

base-core

Base/EntityWizard

Löscht Wizard Kontexte, die sich in den letzten 14 Tagen nicht geändert haben.

Betroffene Entities

  • BaseEntityWizardContext

base-core

Base/Wizard

Löscht temporäre Prozess Dateien aus /temp/cache/framework/wizard, die in den letzten 3 Stunden nicht geändert wurden.

dam-core

Dam/Category

Löscht Uploads für Kategorien älter als die definierte Lebenszeit (einstellbar in Uploadformulare)

Betroffene Entities

  • DynamicUpload

dam-core

Dam/Collection

Löscht Uploads für Sammlungen älter als die definierte Lebenszeit (einstellbar in Uploadformulare)

Betroffene Entities

  • DynamicUpload

dam-core

Ui/CollectionShare

Löscht maximal 50 Collections, die an der Root Collection hängen und älter als 1 Stunde sind.

Betroffene Entities

  • MamCollection

dam-core

Ui/Dam

Löscht alle Upload Prozesse, die älter als die definierte Lebenszeit sind (Einstellbar in ConfigDamUi)

Betroffene Entities

  • DamUploadProcess

print-core

PrintDocument/Render

Löscht Render Kontexte, die älter als eine 1h sind, in kein Print oder Seiten Kontext verwendet werden und als löschbar markiert sind (gc aktiv).

Betroffene Entities

  • PrintRenderContext

shop-core

Shop/Checkout

Löscht Sessions, die mit keinem User oder Warenkorbartikel verknüpft sind und älter als 2 Tage sind.

Betroffene Entities

  • ShopSession

Löscht Bestellprozesse, die länger als 2 Tage nicht geändert wurden.

Betroffene Entities

  • ShopSessionCheckout

Löscht Warenkorbartikel, die länger als 2 Tage nicht geändert wurden und mit shopSessionArticleCallGc=1 definiert wurde.

Betroffene Entities

  • ShopSessionArticle

shop-core

Shop/Delivery

Löscht Lieferresourcen, die sich länger als 14 Tage nicht geändert haben und keine Verknüpfungen haben

Betroffene Entities

  • ShopResourceSumArticle

  • ShopResourceSumOrder (unused)

shop-core

Shop/Register

Löscht Registrierungsanfragen und dazugehörige Verifikationen und Verifikationstokens, die älter als 1 Tag sind.

Betroffene Entities:

  • RegistrationRequest

  • Verification

  • VerificationToken

w2p-core

Editor/Base

Löscht Editor-Dokumente und dazugehörige Dateien (Strict, Nested, XLSX, H5e) ohne Warenkorb-Artikel-Referenz oder älter als 1 Jahr

Betrifft Entities

  • H5eDocument

  • NestedDocument

  • StrictDocument

  • StrictH5eDocument

Löscht alle leeren Ordner in Pfad share/private/editor/session/client-1/domain-1/s-%

w2p-core

Editor/H5e

Löscht temporäre H5e-Editor-Dokumente und dazugehörige Dateien aus dem Backend nach 1 Tag und wenn h5eDocumentCleanUp = 1 definiert wurde

Betrifft Entities:

  • H5eDocument

  • H5eTemplate

w2p-core

Parse/H5e

Löscht temporäre PDFLib-Thumbnails unter temp/cache/w2p-core/pdflib-thumbs nach 1 Tag

w2p-core

W2p/Temporary

Löscht temporäre Dateien, die älter als ihre definierteLebenszeit sind (aktuell Vorschaudateien des verschachtelten Editors)

Betrifft Entities:

  • TemporaryFile

workflow-core (ab service+2022.03.30)

Workflow/Service

Löscht abgeschlossene oder abgebrochen Workflow Warteschlangen nach einer definierten Zeit (die in der Workflow-Konfiguration einstellbar ist) mit zugehörigen Logs und Historie
Löscht Workflow-Logs von abgeschlossenen Workflow Warteschlangen, die seit einem Monat nicht mehr verändert worden

 

Betrifft Entities:

  • WorkflowQueue

  • WorkflowLog

  • WorkflowHistory

cms-layout-shop

View/Data

Löscht Anfragen zur Änderung der E-Mail-Adresse, die älter als 3 Stunden sind

Betrifft Entities:

  • MailChangeRequest

shop-discount

Shop/DiscountPreset

Löscht angewendete Rabatte, die von den Rabattvorlagen angelegt wurden, wenn sie auf den Bestellprozess zeigen und älter als 2 Wochen sind.

Betroffene Entities

  • ShopDiscount

shop-voucher

Shop/Voucher

Löscht Lieferresourcen, die sich länger als 14 Tage nicht geändert haben und keine Verknüpfungen haben.

Betroffene Entities:

  • ShopResourceSumArticle

w2p-voucher

Input/CouponCode

Löscht unbenutzte und nicht aktive Wertgutscheine nach 3 Wochen.

Betroffene Entities:

  • ShopCoupon

framework

Base/File

Löscht Thumbnails ohne Referenz zu einer Datei (mamFile)

  • Thumbnail

Löscht lokale Kopien aus temp/cache/framework-storage/local-copy/ , die älter als 1 Stunde sind.

framework

Base/Folder

Löscht dynamische Upload-Verzeichnisse älter als die definierte Lebenszeit (einstellbar in Uploadformulare)

Betroffene Entities:

  • DynamicUploadFolder

framework

Base/Upload

Löscht maximal 50 temporäre Upload-Dateien aus temp/cache/framework/import/client-%/domain-%, die älter als ein Tag sind.

Betrifft Entities:

  • MamFile

framework

Brandbox/Session

Löscht Anwender vom Typ Anonymous, die älter als 1 Tag sind.

Betroffene Entities:

  • User

framework

Brandbox/Cookie

Löscht Cookie Zustimmungen, die älter als X Monate sind (einstellbar in Cookie Konfiguration)

Betrifft Entities:

  • CookieConsent

framework

Brandbox/Log

Löscht Ereignisprotokolleinträge, die älter als 3 Monate sind.

Betrifft Entities:

  • RequestLog

framework

Component/Notification

Löscht Notification anhand der konfigurierten Lebenszeit.

Betroffene Entities:

  • Notification

framework

Component/Verification

Löscht Verifizierungs-Datensätze anhand der konfigurierten Lebenszeit

Betrifft Entitites:

  • VerificationToken

framework

Security/Csrf

Löscht CSRF-Tokens, die älter als 4 Stunden sind.

Betrifft Entities:

  • SecurityCsrfToken

framework

Security/IntrustionDetection

Löscht Datensätze aus Eindringlingserkennung (Log) älter als 1 Tag

Betrifft Entities:

  • SecurityIntrusionDetectionLog

Löscht Datensätze aus Eindringlingserkennung (IP Blacklist) nach Ablauf der eingestellten Gültigkeitsdauer

Betrifft Entities:

  • SecurityIntrusionDetectionBlacklist

framework

Security/Password

Löscht Anfragen zur Änderung des Passworts, die älter als 3 Stunden sind und die dazugehörigen Verifikationen und Verifikationtokens

Betrifft Entities:

  • SecurityPasswordChangeRequest

  • Verification

  • VerificationToken

framework

Security/Role

Löscht Token-Rollen anonymer Anwender älter als 1 Tag

  • Token

Löscht Rollendatensätze von nicht existierenden Datensätzen und Rollendatensätze von nicht mehr verwendeten Rollen

  • RoleRelationUser

  • RoleRelationDataset