Export (CSV / HTML)¶
Das Plugin bietet zwei Export-Formate für Audit-Berichte, DSGVO-Auskünfte oder externe Archivierung.
Export öffnen¶
- Admin → Erweiterungen → Other → Admin-Aktivitätsprotokoll öffnen
- Im Filter-Panel oben: Rubrik / Zeitraum / Bearbeiter / Entity wählen
- „Exportieren"-Button (oben rechts) klicken
- Im Modal Format wählen:
- CSV — Spreadsheet-Format, für Excel/Numbers/LibreOffice
- HTML — gestylte Tabelle, für Druck oder PDF-Weiterverarbeitung
CSV-Export¶
Eigenschaften:
- RFC-4180-konform (Quoting, Escaping nach Standard)
- Semikolon-Trenner (deutsche Excel-Default-Konfig)
- UTF-8 mit BOM (Excel erkennt Umlaute korrekt, kein Garbage in der ersten Spalte)
- Header-Zeile mit Spaltennamen
- Dateiname:
aktivitaetsprotokoll_<datum>_<zeit>.csv
Spalten:
| # | Spalte | Inhalt |
|---|---|---|
| 1 | Datum |
created_at als YYYY-MM-DD HH:MM:SS |
| 2 | Rubrik |
übersetzter Kategorie-Name |
| 3 | Aktion |
create / update / delete / login_success etc. |
| 4 | Bearbeiter |
actor_username |
| 5 | Bearbeiter-Typ |
admin / integration / system |
| 6 | Entität |
entity_name |
| 7 | Entität-Label |
entity_label (menschenlesbarer Name) |
| 8 | Entität-ID |
entity_id (UUID) |
| 9 | IP-Adresse |
nur befüllt, wenn captureIpAddress = true |
| 10 | User-Agent |
nur befüllt, wenn captureUserAgent = true |
| 11 | Diff (JSON) |
komplettes Diff als kompaktes JSON, max. 1000 Zeichen |
| 12 | Kontext (JSON) |
weitere Metadaten (z. B. HTTP-Status bei Login-Fails) |
Excel-Import-Tipps
- Doppelklick auf die .csv-Datei öffnet sie i. d. R. direkt korrekt
- Falls die Spalten in einer Zelle landen: in Excel Daten → Aus Text/CSV → Datei wählen → Delimiter: Semikolon, Codierung: 65001 (UTF-8)
- Diff-/Kontext-Spalten enthalten JSON-Strings — für formatierte Darstellung in Excel
=ANZEIGEN(...)nicht nötig, einfach Spaltenbreite anpassen
HTML-Export¶
Eigenschaften:
- Eigene Datei mit Inline-CSS — direkt im Browser öffnenbar
- Header mit Export-Zeitstempel und Filter-Parametern
- Gestylte Tabelle mit Zebra-Streifen und Sticky-Header
- Diff als
<pre>-Block für lesbares JSON - XSS-Safe (alle Strings via
htmlspecialcharsescaped) - Dateiname:
aktivitaetsprotokoll_<datum>_<zeit>.html
Nutzung:
- Direkt im Browser öffnen — Druck via
Strg/Cmd + P - Browser-Druck-Dialog → „Als PDF speichern" → archivierbares PDF
- Im Mail-Anhang versenden bei DSGVO-Auskunfts-Antworten
Filter, die im Export berücksichtigt werden¶
Der Export übernimmt alle aktiven Filter aus dem Listen-View:
- Rubrik — alle oder eine spezifische Kategorie (z. B.
authenticationfür Login-Fails) - Zeitraum —
created_atzwischen Start/Ende - Bearbeiter — bestimmter
actor_usernameoderactor_user_id - Entität —
entity_name(z. B. nurproductfür Katalog-Audit) - Aktion —
create/update/delete/login_*/plugin_* - Freitext-Suche — in
entity_label,actor_usernameund Diff-Inhalt
Maximalgröße pro Export
Der Export ist nicht paginiert — bei sehr großen Filtern (z. B. „letzte 365 Tage, alle Rubriken, keine Filter") kann der Export mehrere Minuten brauchen und 10+ MB CSV erzeugen. Empfehlung: vor Export sinnvolle Filter setzen — Zeitraum auf max. 90 Tage, ggf. Rubrik einschränken.
Use Cases¶
Use Case 1 — DSGVO-Auskunfts-Antwort¶
Ein Admin-User fragt nach Art. 15 DSGVO: „Welche Daten habt ihr über mich gespeichert?"
- Filter: Bearbeiter =
<username>, Zeitraum = letzte 12 Monate - Export als CSV
- CSV in Datenschutz-Antwort-Mail einhängen, mit erläuterndem Anschreiben
Use Case 2 — Forensik nach Sicherheits-Vorfall¶
Ein Produkt-Preis wurde manipuliert. Du weißt: irgendwann in der letzten Woche.
- Filter: Rubrik = Produktkatalog, Entität =
product_price, Zeitraum = letzte 7 Tage - Listen-View durchgehen, verdächtige Einträge identifizieren
- Filter erweitern: Bearbeiter =
<verdächtiger-username> - Export als HTML → für Audit-Bericht ausdrucken
Use Case 3 — Brute-Force-Erkennung¶
Verdacht auf Login-Brute-Force im letzten Monat.
- Filter: Rubrik = Authentifizierung, Aktion =
login_failed, Zeitraum = letzte 30 Tage - Sortieren nach
actor_usernameundcreated_at - Häufungen erkennen: viele Failures hintereinander oder mit wechselnden Usernames = Brute-Force-Indikator
- Export als CSV → in Sicherheits-Tool (z. B. Splunk, Graylog) importieren für weitergehende Analyse
Use Case 4 — Monatliches Audit-Reporting¶
Routine-Reporting für Compliance-Officer.
- Am Monatsende: Filter Zeitraum = letzter Monat, Rubrik = Admin-User + System-Konfig
- Export als HTML → drucken / archivieren
- In Compliance-Verzeichnis abheften
API-Aufruf (programmatisch)¶
Der Export-Endpunkt lässt sich auch direkt aufrufen:
POST /api/_action/kommora-activity-log/export
Authorization: Bearer <admin-token>
Content-Type: application/json
{
"format": "csv",
"filters": {
"category": "authentication",
"action": "login_failed",
"from": "2026-06-01T00:00:00Z",
"to": "2026-06-30T23:59:59Z"
}
}
Response: Content-Type: text/csv; charset=utf-8 mit Content-Disposition: attachment; filename="...".
ACL-Permission kommora_activity_log:read erforderlich.