This repository has been archived on 2026-02-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
breakpilot-pwa/docs-src/architecture/mail-rbac-architecture.md
Benjamin Admin 21a844cb8a fix: Restore all files lost during destructive rebase
A previous `git pull --rebase origin main` dropped 177 local commits,
losing 3400+ files across admin-v2, backend, studio-v2, website,
klausur-service, and many other services. The partial restore attempt
(660295e2) only recovered some files.

This commit restores all missing files from pre-rebase ref 98933f5e
while preserving post-rebase additions (night-scheduler, night-mode UI,
NightModeWidget dashboard integration).

Restored features include:
- AI Module Sidebar (FAB), OCR Labeling, OCR Compare
- GPU Dashboard, RAG Pipeline, Magic Help
- Klausur-Korrektur (8 files), Abitur-Archiv (5+ files)
- Companion, Zeugnisse-Crawler, Screen Flow
- Full backend, studio-v2, website, klausur-service
- All compliance SDKs, agent-core, voice-service
- CI/CD configs, documentation, scripts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 09:51:32 +01:00

9.1 KiB

Mail-RBAC Architektur mit Mitarbeiter-Anonymisierung

Version: 1.0.0 Status: Architekturplanung


Executive Summary

Dieses Dokument beschreibt eine neuartige Architektur, die E-Mail, Kalender und Videokonferenzen mit rollenbasierter Zugriffskontrolle (RBAC) verbindet. Das Kernkonzept ermöglicht die vollständige Anonymisierung von Mitarbeiterdaten bei Verlassen des Unternehmens, während geschäftliche Kommunikationshistorie erhalten bleibt.


1. Das Problem

Traditionelle E-Mail-Systeme

max.mustermann@firma.de → Person gebunden
                        → DSGVO: Daten müssen gelöscht werden
                        → Geschäftshistorie geht verloren

BreakPilot-Lösung: Rollenbasierte E-Mail

klassenlehrer.5a@schule.breakpilot.app → Rolle gebunden
                                       → Person kann anonymisiert werden
                                       → Kommunikationshistorie bleibt erhalten

2. Architektur-Übersicht

┌─────────────────────────────────────────────────────────────────┐
│                     BreakPilot Groupware                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐             │
│  │   Webmail   │  │  Kalender   │  │   Jitsi     │             │
│  │   (SOGo)    │  │   (SOGo)    │  │  Meeting    │             │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘             │
│         │                │                │                     │
│         └────────────────┼────────────────┘                     │
│                          │                                      │
│              ┌───────────┴───────────┐                         │
│              │   RBAC-Mail-Bridge    │ ◄─── Neue Komponente    │
│              │   (Python/Go)         │                         │
│              └───────────┬───────────┘                         │
│                          │                                      │
│    ┌─────────────────────┼─────────────────────┐               │
│    │                     │                     │                │
│    ▼                     ▼                     ▼                │
│ ┌──────────┐     ┌──────────────┐     ┌────────────┐           │
│ │PostgreSQL│     │ Mail Server  │     │  MinIO     │           │
│ │(RBAC DB) │     │ (Stalwart)   │     │ (Backups)  │           │
│ └──────────┘     └──────────────┘     └────────────┘           │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3. Komponenten-Auswahl

3.1 E-Mail Server: Stalwart Mail Server

Empfehlung: Stalwart Mail Server

Kriterium Bewertung
Lizenz AGPL-3.0 (Open Source)
Sprache Rust (performant, sicher)
Features IMAP, SMTP, JMAP, WebSocket
Kalender CalDAV integriert
Kontakte CardDAV integriert
Spam/Virus Integriert
API REST API für Administration

3.2 Webmail-Client: SOGo oder Roundcube

Option A: SOGo (empfohlen)

  • Lizenz: GPL-2.0 / LGPL-2.1
  • Kalender, Kontakte, Mail in einem
  • ActiveSync Support
  • Outlook-ähnliche Oberfläche

Option B: Roundcube

  • Lizenz: GPL-3.0
  • Nur Webmail
  • Benötigt separaten Kalender

4. Anonymisierungs-Workflow

Mitarbeiter kündigt
        │
        ▼
┌───────────────────────────┐
│ 1. Functional Mailboxes   │
│    → Neu zuweisen oder    │
│    → Deaktivieren         │
└───────────┬───────────────┘
            │
            ▼
┌───────────────────────────┐
│ 2. Personal Email Account │
│    → Anonymisieren:       │
│    max.mustermann@...     │
│    → mitarbeiter_a7x2@... │
└───────────────────────────┘
            │
            ▼
┌───────────────────────────┐
│ 3. Users-Tabelle          │
│    → Pseudonymisieren:    │
│    name: "Max Mustermann" │
│    → "Ehem. Mitarbeiter"  │
└───────────────────────────┘
            │
            ▼
┌───────────────────────────┐
│ 4. Mailbox Assignments    │
│    → Bleiben für Audit    │
│    → User-Referenz zeigt  │
│      auf anonymisierte    │
│      Daten                │
└───────────────────────────┘
            │
            ▼
┌───────────────────────────┐
│ 5. E-Mail-Archiv          │
│    → Header anonymisieren │
│    → Inhalte optional     │
│      löschen              │
└───────────────────────────┘

5. Unified Inbox Implementation

Implementierte Komponenten

Die Unified Inbox wurde als Teil des klausur-service implementiert:

Komponente Pfad Beschreibung
Models klausur-service/backend/mail/models.py Pydantic Models für Accounts, E-Mails, Tasks
Database klausur-service/backend/mail/mail_db.py PostgreSQL-Operationen mit asyncpg
Credentials klausur-service/backend/mail/credentials.py Vault-Integration für IMAP/SMTP-Passwörter
Aggregator klausur-service/backend/mail/aggregator.py Multi-Account IMAP Sync
AI Service klausur-service/backend/mail/ai_service.py KI-Analyse (Absender, Fristen, Kategorien)
Task Service klausur-service/backend/mail/task_service.py Arbeitsvorrat-Management
API klausur-service/backend/mail/api.py FastAPI Router mit 30+ Endpoints

API-Endpoints (Port 8086)

# Account Management
POST   /api/v1/mail/accounts              - Neues Konto hinzufügen
GET    /api/v1/mail/accounts              - Alle Konten auflisten
DELETE /api/v1/mail/accounts/{id}         - Konto entfernen
POST   /api/v1/mail/accounts/{id}/test    - Verbindung testen

# Unified Inbox
GET    /api/v1/mail/inbox                 - Aggregierte Inbox
GET    /api/v1/mail/inbox/{id}            - Einzelne E-Mail
POST   /api/v1/mail/send                  - E-Mail senden

# KI-Features
POST   /api/v1/mail/analyze/{id}          - E-Mail analysieren
GET    /api/v1/mail/suggestions/{id}      - Antwortvorschläge

# Arbeitsvorrat
GET    /api/v1/mail/tasks                 - Alle Tasks
POST   /api/v1/mail/tasks                 - Manuelle Task erstellen
PATCH  /api/v1/mail/tasks/{id}            - Task aktualisieren
GET    /api/v1/mail/tasks/dashboard       - Dashboard-Statistiken

Niedersachsen-spezifische Absendererkennung

KNOWN_AUTHORITIES_NI = {
    "@mk.niedersachsen.de": "Kultusministerium Niedersachsen",
    "@rlsb.de": "Regionales Landesamt für Schule und Bildung",
    "@landesschulbehoerde-nds.de": "Landesschulbehörde",
    "@nibis.de": "NiBiS",
}

6. Lizenz-Übersicht

Komponente Lizenz Kommerzielle Nutzung Veröffentlichungspflicht
Stalwart Mail AGPL-3.0 Ja Nur bei Code-Änderungen
SOGo GPL-2.0/LGPL Ja Nur bei Code-Änderungen
Roundcube GPL-3.0 Ja Nur bei Code-Änderungen
RBAC-Mail-Bridge Eigene N/A Kann proprietär bleiben
BreakPilot Backend Eigene N/A Proprietär

7. Referenzen