AuditLog-Analyse
Wie Sie gezielt AuditLog-Entries fuer einen Kunden, eine Aktion oder einen Zeitraum finden. AuditLog ist die einzige Quelle der Wahrheit fuer sicherheitsrelevante Events.
AuditLog-Schema (Kurzfassung)
- id: UUID
- operator_id: Ops-User (oder
systemfuer Webhook-Trigger) - customer_id: Optional FK zu
self_service_customers(Phase 2) - action: Enum (z.B.
license.created,subscription.updated,invoice.pdf_rendered) - target: String mit Entity-Referenz (z.B.
license:abc-123) - request_id: Stripe-Event-ID bei Webhooks, sonst UUID
- created_at: DATETIME, UTC
Haeufige Such-Querys
Alle Aktionen eines Kunden (letzte 30 Tage)
SQLaudit.sql
SELECT * FROM audit_log
WHERE customer_id = 'abc-123'
AND created_at > datetime('now', '-30 days')
ORDER BY created_at DESC;Alle Stripe-Webhook-Events (mit Status)
SQLaudit.sql
SELECT request_id, action, target, created_at
FROM audit_log
WHERE operator_id = 'system'
AND action LIKE 'stripe.%'
ORDER BY created_at DESC
LIMIT 100;Fehlgeschlagene Webhooks (5xx-Response)
SQLaudit.sql
SELECT * FROM audit_log
WHERE action = 'stripe.webhook.failed'
AND created_at > datetime('now', '-7 days')
ORDER BY created_at DESC;Token-Version-Inkrements (Lizenz-Widerrufungen)
SQLaudit.sql
SELECT target, created_at, operator_id
FROM audit_log
WHERE action = 'license.token_version_incremented'
ORDER BY created_at DESC
LIMIT 50;Interpretation
license.token_version_incremented: Ops hat eine Lizenz manuell widerrufen oder migriert. Hardware-Binding bleibt erhalten, aber das alte JWT ist ab jetzt ungueltig.
invoice.pdf_rendered: Ein Rechnungs-PDF wurde generiert. Mit customer_id verknuepft, um Mehrfach-Downloads nachvollziehbar zu machen.
all_inclusive.activation: Phase-2-Bundle wurde fuer einen Kunden aktiviert. Target enthaelt eine Liste der eingeschlossenen Plugins (kommasepariert).
customer.reactivation: Hardware-Wechsel via Self-Service-Portal. operator_id = system, customer_id = Pilotkunde.