feat(quick-260914-m97): Fehlermeldungen per E-Mail — Empfaenger in SmtpConfig (Migration), MailService-Anhaenge, Modul bug-reports mit Drossel, PNG-Pruefung und Mandant aus der Sitzung
- SmtpConfig.bugReportRecipient (nullable, additive Migration 20260914170000), DTO @IsOptional @IsEmail, SAFE_SELECT, getBugReportRecipient gebunden - MailService: Versandkern deliver (wirft, Anhaenge), sendViaTenantTransport bleibt verschluckender Mantel (T-02-12), sendBugReport laesst Fehler durch - POST /bug-reports: Multipart 4 MiB je Route, alle angemeldeten Rollen, Drossel 5/10 min -> 429, PNG-Signatur -> 400, kein Empfaenger -> 409, Versandfehler -> 502, eine Protokollzeile - Falsifizierungen (a)-(d) als Specs; @Expose() im DTO, damit errors auch bei fehlendem Feld zu [] wird - Doku-Zeile fuer rls-access-inventory, TESSERA_BUGREPORT_TO in docker-compose.prod.yml Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018N9CD3ebPKm1b32bPpBknY
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
-- Fehler-melden-Knopf (quick-260914-m97): Anwender schicken aus der
|
||||
-- Kopfzeile ein Bildschirmfoto der aktuellen Seite samt Beschreibung und
|
||||
-- Kontext als E-Mail an ein Postfach, das der Administrator unter
|
||||
-- Administrator -> SMTP im Feld "Fehlermeldungen an" festlegt.
|
||||
--
|
||||
-- Warum in "SmtpConfig" und nicht in einer eigenen Tabelle: der Empfaenger
|
||||
-- gehoert zum Mailversand des Mandanten -- ohne gespeicherte
|
||||
-- SMTP-Einstellungen gibt es ohnehin keinen Transport, ueber den die
|
||||
-- Meldung rausgehen koennte. Die bestehende Zeilenschutz-Regel
|
||||
-- "tenant_isolation_policy" auf "SmtpConfig" (Migration 20260909140000)
|
||||
-- gilt fuer die neue Spalte automatisch mit. Eine Systemleseregel ist
|
||||
-- nicht noetig: die Route POST /bug-reports laeuft immer mit einem
|
||||
-- angemeldeten Benutzer, also mit gesetztem Mandantenkontext.
|
||||
--
|
||||
-- Additiv und nullbar: Bestandszeilen bleiben unangetastet (Spalte ist
|
||||
-- fuer sie NULL = kein Postfach, der Betriebs-Rueckfall TESSERA_BUGREPORT_TO
|
||||
-- greift). Keine bestehende Migration wurde angefasst.
|
||||
ALTER TABLE "SmtpConfig" ADD COLUMN "bugReportRecipient" TEXT;
|
||||
@@ -339,6 +339,7 @@ model SmtpConfig {
|
||||
username String?
|
||||
encryptedPassword String? // AES-256-GCM via CalendarCryptoService
|
||||
fromAddress String
|
||||
bugReportRecipient String? // Postfach fuer den Fehler-melden-Knopf (quick-260914-m97); leer = Rueckfall TESSERA_BUGREPORT_TO
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user