You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Attachments:** NATS Object Store entkoppelt Payload-Größe vom JetStream-Limit. Bucket-TTL (72 h) bereinigt Waisen-Objekte nach Worker-Crash ohne Cleanup.
197
221
198
-
**Bounce-Matching:** Dreistufig — Trace-ID im NDR-Body → Anhänge → Empfänger-Lookup im Audit-Stream (implementiert im Crawler, Stufen 2/3 deferiert).
222
+
**Bounce-Matching:**`BounceService` (MS Graph) ruft alle 15 Minuten ungelesene Nachrichten aus der Bounce-Mailbox ab, extrahiert die Trace-ID via `X-Dispatch-TraceId`-Header im NDR-Body und schreibt einen `BounceRecord` nach `DISPATCH_BOUNCES`. Verarbeitete Nachrichten werden via `PATCH .../messages/{id}` als gelesen markiert.
223
+
224
+
**Attachment-Streaming:** Base64-Inhalt von Anhängen wird im Gateway nie vollständig als `[]byte` dekodiert. Validierung (Größe, Formatprüfung) und Upload in den NATS Object Store erfolgen durch Streaming via `base64.NewDecoder` — O(1) Speicher unabhängig von der Anhangsgröße.
199
225
200
226
---
201
227
@@ -206,10 +232,11 @@ Alle Werte kommen aus Umgebungsvariablen. Keine Config-Dateien.
206
232
**Pflichtfelder** (ohne die kein Start):
207
233
```
208
234
NATS_URL
209
-
MS_GRAPH_TENANT_ID \
210
-
MS_GRAPH_CLIENT_ID } entfallen wenn MS_GRAPH_MOCK_TOKEN gesetzt
211
-
MS_GRAPH_CLIENT_SECRET /
235
+
MS_GRAPH_TENANT_ID \
236
+
MS_GRAPH_CLIENT_ID } entfallen wenn MS_GRAPH_MOCK_TOKEN gesetzt
237
+
MS_GRAPH_CLIENT_SECRET /
212
238
MS_GRAPH_SENDER_EMAIL
239
+
DISPATCH_ADMIN_AUTH_SECRET # HMAC-Schlüssel für Admin-API JWT-Auth
|`internal/gateway`| 75 % |`AttachmentStore.Upload` nur via Integration |
179
+
|`internal/hash`| 100 % ||
180
+
|`internal/msgraph`| 46 % |`Service.SendEmail` nur via Integration |
181
+
|`internal/pii`| 100 % ||
182
+
|`internal/quota`| 89 % ||
183
+
|`internal/sender`| 92 % ||
184
+
|`internal/spam`| 78 % ||
185
+
|`internal/worker`| 55 % | Consumer/AttachStore nur via Integration |
184
186
185
187
Mutation-Tests laufen mit [gremlins](https://github.com/go-gremlins/gremlins) (`go tool gremlins unleash`) auf den Packages `internal/gateway`, `internal/quota`, `internal/spam`, `internal/worker`, `internal/pii`, `internal/hash` und `internal/msgraph`. Die Schwellwerte sind in [`.gremlins.yaml`](.gremlins.yaml) hinterlegt.
0 commit comments