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 --forceregelmäß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.