feat: production launch — email audit, team invites, security headers, router fixes
Some checks failed
CI / ruff (push) Successful in 9s
CI / pytest (push) Failing after 47m32s
CI / validate (push) Successful in 23s
CI / dependency-scanning (push) Successful in 29s
CI / docs (push) Has been skipped
CI / deploy (push) Has been skipped

- Fix loyalty & monitoring router bugs (_get_router → named routers)
- Implement team invitation email with send_template + seed templates (en/fr/de)
- Add SecurityHeadersMiddleware (nosniff, HSTS, referrer-policy, permissions-policy)
- Build email audit admin page: service, schemas, API, page route, menu, i18n, HTML, JS
- Clean stale TODO in platform-menu-config.js
- Add 67 tests (unit + integration) covering all new functionality

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-27 18:24:30 +01:00
parent 4ebd419987
commit ce822af883
25 changed files with 2485 additions and 19 deletions

View File

@@ -59,7 +59,52 @@
"account_settings": "Kontoeinstellungen",
"messages": "Nachrichten",
"notifications": "Benachrichtigungen",
"email_templates": "E-Mail-Vorlagen"
"email_templates": "E-Mail-Vorlagen",
"email_logs": "E-Mail-Protokolle"
},
"email_logs": {
"title": "E-Mail-Protokolle",
"subtitle": "Alle über die Plattform gesendeten E-Mails prüfen",
"recipient": "Empfänger",
"subject": "Betreff",
"template": "Vorlage",
"status": "Status",
"store": "Shop",
"date": "Datum",
"sent_at": "Gesendet am",
"provider": "Anbieter",
"from": "Von",
"to": "An",
"reply_to": "Antwort an",
"related_entity": "Verknüpfte Entität",
"error_message": "Fehlermeldung",
"actions": "Aktionen",
"view_detail": "Details anzeigen",
"email_detail": "E-Mail-Detail",
"html_preview": "HTML-Vorschau",
"text_preview": "Text-Vorschau",
"metadata": "Metadaten",
"content": "Inhalt",
"filter_by_recipient": "Nach Empfänger-E-Mail suchen...",
"filter_by_status": "Alle Status",
"filter_by_template": "Alle Vorlagen",
"filter_by_store": "Alle Shops",
"date_from": "Von Datum",
"date_to": "Bis Datum",
"apply_filters": "Anwenden",
"reset_filters": "Zurücksetzen",
"total_sent": "Gesamt gesendet",
"total_failed": "Fehlgeschlagen",
"total_pending": "Ausstehend",
"total_delivered": "Zugestellt",
"no_logs": "Keine E-Mail-Protokolle gefunden",
"status_sent": "Gesendet",
"status_failed": "Fehlgeschlagen",
"status_pending": "Ausstehend",
"status_delivered": "Zugestellt",
"status_bounced": "Abgewiesen",
"status_opened": "Geöffnet",
"status_clicked": "Angeklickt"
},
"permissions": {
"view_messages": "Nachrichten anzeigen",