Zum Inhalt springen

Betrieb

Datenhaltung und Aufbewahrung

Was Wo Wie lange
Links, Konten, Einstellungen, Seiten Datenbank bis zur Löschung — Links bleiben als Datensatz bestehen, damit der Slug belegt bleibt
Klick-Protokoll (gekürzte IP, Zeitpunkt, Browserkennung) Datenbank SHORTLINK_CLICK_LOG_RETENTION_DAYS, Standard 90 Tage
Versandprotokoll (Empfängeradresse, Absender, Zeitpunkt, Ergebnis) Datenbank SHORTLINK_SEND_LOG_RETENTION_DAYS, Standard 90 Tage
Sitzungen Datenbank SESSION_LIFETIME, Standard 120 Minuten
Logo storage/app/public/branding/ bis zum Ersetzen oder Entfernen
Eigenes Theme storage/app/private/theme/tokens.css bis zum Ersetzen oder Zurücksetzen
Aktualisierte Public Suffix List storage/app/private/public-suffix-list.dat bis zur nächsten Aktualisierung
Bereitgestellte Update-Pakete storage/app/private/updates/ bis zum Aufräumlauf, nachdem sie eingespielt wurden

Der Lebenszyklus eines Links endet halb von selbst. Ein abgelaufener Link leitet sofort nicht mehr weiter; nach der Karenzzeit legt das Aufräumen ihn still. Die Karenz ist dafür da, dass ein um einen Tag verpasster Termin kein Verlust wird — in dieser Zeit kann der Eigentümer den Link verlängern, statt einen neuen Slug ausgeben zu müssen.

Wird ein Link stillgelegt oder gelöscht, gehen seine Klick- und Versandprotokolle mit. Sie sind personenbezogen (gekürzte IP-Adresse, Empfängeradresse) und haben ohne wirksamen Link keinen Zweck mehr. Der Klick-Zähler am Link bleibt: eine Zahl ohne Personenbezug.

Zwei Fälle bleiben bewusst außen vor, weil sie kein berechenbares Ende haben:

  • Links ohne Ablaufdatum (sofern in den Funktionen erlaubt),
  • Links, die nur ihr Klick-Limit erreicht haben.

Beide bleiben aktiv gelistet, bis jemand sie löscht. Wer das nicht will, verbietet „Kein Ablauf" in den Funktionen — dann hat jeder Link ein Ende.

Was hier NICHT steht, ist Absicht: Es gibt keinen Wert und keinen Befehl, der einen Link endgültig aus der Tabelle entfernt. Der Slug muss dauerhaft belegt bleiben. Wer Datensätze wirklich loswerden muss (etwa auf Betroffenen-Verlangen), tut das in der Datenbank und muss dann selbst dafür sorgen, dass der Slug nicht neu vergeben wird.

Die geltenden Fristen stehen in der Oberfläche unter Einstellungen → Wartung, Karte Geltende Fristen — mit den Werten, die tatsächlich wirken, nicht nur mit den Namen der Schlüssel. Zwei davon befristen personenbezogene Daten, und wer für eine Auskunft nach DSGVO geradesteht, muss den geltenden Wert nachsehen können, ohne sich auf den Server zu verbinden. Geändert werden sie weiterhin nur in der .env; die Karte ist eine Anzeige.

Damit das Aufräumen greift, muss shortlink:cleanup --force regelmäßig laufen (Cron). Ohne diesen Eintrag bleibt alles liegen. Prüfe nach der Einrichtung einmal den Testlauf, damit du siehst, was der erste echte Lauf entfernen würde.

Quelle dieser Seite: docs/betrieb/daten.md im Repository. Sie wird beim Bauen daraus erzeugt — Änderungen gehören in die Markdown-Datei, nicht in diese Seite.