TODO aktualisiert: MAPI-Stand, offene Punkte (Gmail, macOS)

This commit is contained in:
dimedtec 2026-08-31 16:56:52 +02:00
parent 567018a4aa
commit 5f7edf13f5

34
TODO.md
View file

@ -1,17 +1,27 @@
# TODO
- **Mehrere Office365/Outlook-Accounts gleichzeitig.**
Aktuell: `Contacts:Office365` in appsettings ist ein einzelnes Objekt, `Office365ContactProvider`
ist ein Singleton mit einem MSAL-Token-Cache.
Geplant: `Contacts:Office365Accounts` als Liste (`Name`, `TenantId`, `ClientId` je Eintrag),
`Office365ContactProvider` bekommt einen Konstruktor-Parameter fuer den Account und einen
eigenen Token-Cache-Pfad pro Account (sonst ueberschreiben sich die Logins). Ein Provider
pro konfiguriertem Account wird in `ContactSyncService` registriert, `ContactInfo.Id` bekommt
ein Account-Praefix, damit Kontakte aus verschiedenen Accounts nicht kollidieren.
## Erledigt
- **outlook.com / persoenliche Microsoft-Accounts (MSA).**
Technisch identisch zu Office365 ueber Microsoft Graph, nur `TenantId: "consumers"` statt der
Organisations-Tenant-ID. Kein separater Provider noetig - einfach ein weiterer Eintrag in der
oben geplanten Account-Liste mit `TenantId = "consumers"`.
- ~~Mehrere Office365/Outlook-Accounts gleichzeitig~~ - `Contacts:Office365Accounts` ist eine
Liste, jeder Account hat eigenen Token-Cache/AuthenticationRecord (Keyed DI Services).
- ~~outlook.com / persoenliche Microsoft-Accounts~~ - laeuft aktuell ueber den lokalen
MAPI-Provider (deckt alle im lokalen Outlook eingerichteten Konten automatisch ab, siehe unten).
Der Graph/OAuth-Weg (`TenantId: "consumers"`) ist ebenfalls fertig im Code, aber deaktiviert.
## Aktueller Kontakt-Provider-Stand
- **`OutlookMapi` (aktiv):** liest lokal per COM/MAPI aus dem installierten klassischen Outlook,
deckt automatisch ALLE dort eingerichteten Konten ab (aktuell: `info@dimedtec.de` +
`jan.wurl@outlook.com`). Kein Azure/OAuth noetig. Nachteil: langsamer als Graph bei sehr
grossen Kontaktlisten (COM-Marshaling pro Kontakt), und ggf. Outlook-Sicherheitsdialog.
- **`Office365Accounts:work` (Graph, vorruebergehend deaktiviert):** MAPI deckt denselben Account
bereits ab. Bei Bedarf einfach `Enabled: true` setzen in `appsettings.Local.json`.
- **`Office365Accounts:outlook` (Graph, deaktiviert):** Alternative zu MAPI fuer outlook.com,
falls MAPI mal nicht verfuegbar ist (z. B. anderer Rechner ohne installiertes Outlook). Braucht
noch die Azure-App-Registration-Anpassung (Kontotyp "auch persoenliche Microsoft-Konten").
## Offen
- **Google Contacts (Gmail).** Code ist fertig (`GoogleContactProvider`), braucht noch OAuth-Client
(Desktop-App) aus der Google Cloud Console (People API aktivieren, Client-ID/Secret).
- **macOS-Client** (urspruenglich offene Frage, noch nicht angegangen).