From 818246a26d3053346ba074c2a17b63ed265dc62d Mon Sep 17 00:00:00 2001 From: Marcel Date: Wed, 6 May 2026 12:18:42 +0200 Subject: [PATCH] =?UTF-8?q?docs(c4):=20add=20Email=20Service=20to=20L1=20a?= =?UTF-8?q?nd=20L2=20=E2=80=94=20NotificationService=20and=20PasswordReset?= =?UTF-8?q?Service=20send=20SMTP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- docs/architecture/c4-diagrams.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/architecture/c4-diagrams.md b/docs/architecture/c4-diagrams.md index a2f6f7db..188eb7a2 100644 --- a/docs/architecture/c4-diagrams.md +++ b/docs/architecture/c4-diagrams.md @@ -14,9 +14,11 @@ C4Context Person(member, "Family Member", "Searches, browses, reads, and transcribes archived documents") System(familienarchiv, "Familienarchiv", "Web application for digitising, organising, and searching family documents") + System_Ext(mail, "Email Service", "SMTP server. Delivers notification emails (mentions, replies) and password-reset links.") Rel(admin, familienarchiv, "Manages via browser", "HTTPS") Rel(member, familienarchiv, "Searches, reads, and transcribes via browser", "HTTPS") + Rel(familienarchiv, mail, "Sends notification and password-reset emails (optional)", "SMTP") ``` --- @@ -30,6 +32,7 @@ C4Container title Container Diagram: Familienarchiv Person(user, "User", "Admin or family member") + System_Ext(mail, "Email Service", "SMTP server. Delivers notification and password-reset emails.") System_Boundary(archiv, "Familienarchiv (Docker Compose)") { Container(frontend, "Web Frontend", "SvelteKit / Node.js", "Server-side rendered UI. Handles auth session cookies, document search and viewer, transcription editor, annotation layer, family tree (Stammbaum), stories (Geschichten), activity feed (Chronik), enrichment workflow, and admin panel.") @@ -51,6 +54,7 @@ C4Container Rel(backend, db, "Reads and writes metadata and sessions", "JDBC / SQL") Rel(backend, storage, "Uploads and streams document files", "HTTP / S3 API (AWS SDK v2)") Rel(backend, ocr, "OCR job requests with presigned MinIO URL", "HTTP / REST / JSON") + Rel(backend, mail, "Sends notification and password-reset emails (optional)", "SMTP") Rel(ocr, storage, "Fetches PDF via presigned URL", "HTTP / S3 presigned") Rel(mc, storage, "Creates bucket on startup", "MinIO Client CLI") ```