# Audit-Log

Das Audit-Log protokolliert alle sicherheitsrelevanten und datenmutierenden Aktionen in Ihrem Orderport-Konto. Es ist die zentrale Anlaufstelle, wenn Sie nachvollziehen möchten, wer wann was geändert hat.

## Audit-Log öffnen

1. Klicken Sie in der Sidebar auf **Einstellungen**
2. Klicken Sie auf **Audit-Log**

Sie sehen eine Tabelle mit allen protokollierten Ereignissen, sortiert nach Zeitpunkt (neueste zuerst).

## Die Tabelle verstehen

Jede Zeile im Audit-Log zeigt:

| Spalte | Beschreibung |
|--------|-------------|
| **Zeitpunkt** | Wann die Aktion stattfand (Datum und Uhrzeit) |
| **Benutzer / API-Key** | Wer die Aktion ausgeführt hat – ein eingeloggter Benutzer, ein API-Key oder "System" |
| **Event** | Art der Aktion als technischer Bezeichner (z. B. `pipeline.created`) |
| **IP** | Von welcher IP-Adresse die Aktion ausgeführt wurde |
| **Details** | Bei Änderungen: die alten und neuen Werte (aufklappbar) |

### Details aufklappen

Wenn bei einer Aktion Werte geändert wurden (z. B. Pipeline bearbeitet), können Sie auf **Details anzeigen** klicken. Sie sehen dann:

- **Alt:** die vorherigen Werte
- **Neu:** die neuen Werte

So können Sie exakt nachvollziehen, was geändert wurde.

## Welche Ereignisse werden protokolliert?

### Authentifizierung

| Event | Bedeutung |
|-------|-----------|
| `auth.login` | Erfolgreicher Login |
| `auth.login_failed` | Fehlgeschlagener Login-Versuch |
| `auth.logout` | Benutzer hat sich abgemeldet |
| `auth.session_timeout` | Sitzung wurde wegen Inaktivität beendet |

### Zwei-Faktor-Authentifizierung

| Event | Bedeutung |
|-------|-----------|
| `auth.2fa_enabled` | 2FA wurde aktiviert |
| `auth.2fa_disabled` | 2FA wurde deaktiviert |

### Zugriffskontrolle

| Event | Bedeutung |
|-------|-----------|
| `auth.ip_blocked` | Eine Anfrage wurde durch die IP-Allowlist blockiert |
| `settings.ip_allowlist_changed` | IP-Allowlist wurde geändert (IP hinzugefügt oder entfernt) |
| `settings.password_changed` | Passwort wurde geändert |

### Pipelines

| Event | Bedeutung |
|-------|-----------|
| `pipeline.created` | Neue Pipeline angelegt |
| `pipeline.updated` | Pipeline bearbeitet (Details unter Alt/Neu) |
| `pipeline.deleted` | Pipeline gelöscht |
| `pipeline.activated` | Pipeline aktiviert |
| `pipeline.deactivated` | Pipeline deaktiviert |

### Transporte

| Event | Bedeutung |
|-------|-----------|
| `transport.created` | Neuer Transport angelegt |
| `transport.updated` | Transport bearbeitet |
| `transport.deleted` | Transport gelöscht |

### Credentials (Zugangsdaten)

| Event | Bedeutung |
|-------|-----------|
| `credential.created` | Neue Zugangsberechtigung angelegt |
| `credential.updated` | Zugangsberechtigung bearbeitet |
| `credential.activated` | Zugangsberechtigung aktiviert |
| `credential.revoked` | Zugangsberechtigung deaktiviert |
| `credential.deleted` | Zugangsberechtigung gelöscht |

### API-Keys

| Event | Bedeutung |
|-------|-----------|
| `apikey.created` | Neuer API-Key erstellt |
| `apikey.revoked` | API-Key widerrufen |

### Inbound (Eingehende Bestellungen)

| Event | Bedeutung |
|-------|-----------|
| `inbound.cxml_auth_failed` | cXML-SharedSecret-Validierung fehlgeschlagen |
| `inbound.duplicate_rejected` | Doppelte Bestellung erkannt und abgelehnt |

## Filtern

Oben auf der Seite finden Sie drei Filter:

- **Event** – Dropdown zur Auswahl eines bestimmten Ereignistyps (z. B. nur `auth.login`)
- **Von** – Startdatum (nur Ereignisse ab diesem Datum anzeigen)
- **Bis** – Enddatum (nur Ereignisse bis zu diesem Datum anzeigen)

Klicken Sie auf **Filtern**, um die Auswahl anzuwenden. Mit **Zurücksetzen** entfernen Sie alle Filter.

> **Tipp:** Wenn Sie einen Sicherheitsvorfall untersuchen, filtern Sie zunächst nach dem Zeitraum und dann nach dem verdächtigen Event-Typ.

## Wichtige Hinweise

- Audit-Log-Einträge können **nicht gelöscht oder bearbeitet** werden – auch nicht von Administratoren
- Einträge werden nach **365 Tagen** automatisch gelöscht
- Das Audit-Log ist **read-only** – es dient ausschließlich der Nachvollziehbarkeit
- Bei API-Calls wird der verwendete API-Key protokolliert (nicht der Benutzer)

## Typische Anwendungsfälle

### "Wer hat die Pipeline-Einstellungen geändert?"

1. Filtern Sie nach Event `pipeline.updated`
2. Suchen Sie den passenden Zeitraum
3. Klicken Sie auf **Details anzeigen**, um die Änderungen zu sehen

### "Gab es fehlgeschlagene Login-Versuche?"

1. Filtern Sie nach Event `auth.login_failed`
2. Prüfen Sie die IP-Adressen – unbekannte IPs könnten auf unbefugte Zugriffsversuche hindeuten
3. Erwägen Sie, die [IP-Allowlist](/docs/sicherheit) einzurichten

### "Warum werden Bestellungen abgelehnt?"

1. Filtern Sie nach Event `inbound.cxml_auth_failed`
2. Prüfen Sie, ob das SharedSecret korrekt konfiguriert ist
3. Filtern Sie nach `inbound.duplicate_rejected`, falls Bestellungen als Duplikate erkannt werden

## Nächste Schritte

- [Sicherheit](/docs/sicherheit) – 2FA und IP-Allowlist einrichten
- [Bestellungen verwalten](/docs/bestellungen) – Bestellstatus einsehen
