-
v0.8.0-beta.1 (Beta) Pre-release
released this
2026-11-04 19:54:54 +01:00 | 8 commits to main since this releaseRelease Notes — v0.8.0-beta.1
Status: Vorabversion (Beta / Prerelease). Nicht produktionsreif, nicht vollständig getestet.
Datum: 2026-11-04Neue Funktionen
- Migration von Microsoft-365-/Exchange-Online-Postfächern über IMAP (OAuth2/XOAUTH2)
auf beliebige IMAP-Ziele (Mailcow, Dovecot, Cyrus) mit imapsync. - Microsoft-Anmeldung über MSAL (Authorization Code Flow mit PKCE, Public Client),
verschlüsselter Token-Cache pro Identität, automatischer Token-Refresh. - Postfachverwaltung: Tenants, Microsoft-Konten, IMAP-Zielserver, Migrationsjobs.
- Migrationsengine: imapsync-Erkennung (Version + Pflichtoptionen), Secret-Dateien mit
restriktiven Rechten, Log-Redaktion, Exit-Code-Mapping, Abbruch, Zeitlimit. - Persistente Warteschlange: Parallelität (Standard 2), Prioritäten, Pause/Fortsetzen,
Zeitpläne je Job, Wiederholungen mit exponentiellem Backoff, Recovery nach Neustart. - Weboberfläche (React/TypeScript): Dashboard, Postfächer, Assistent, Migrationen,
Warteschlange, Laufdetails mit Logs, Microsoft-365-Verwaltung, Zielserver, Einstellungen,
Dark/Light-Mode, deutsch. - Betrieb ohne Docker:
setup.bat/setup.sh,start.bat/start.sh, ausschließlich
127.0.0.1:8000, ein Worker, keine automatischen Reloads.
Unterstützte Betriebssysteme
Plattform Status Windows 10/11, Windows Server 2019+ getestet (Installation, Start, Migration lokal) Debian 12 / Ubuntu 22.04+ vorbereitet, nicht getestet (keine Linux-Umgebung verfügbar) Installation
Windows:
M365-to-Exchange-Sync-Windows.zip entpacken setup.bat (fragt nach einem Administratorpasswort, mind. 12 Zeichen) start.bat → http://127.0.0.1:8000Linux (Debian/Ubuntu):
tar xzf M365-to-Exchange-Sync-Linux.tar.gz cd M365-to-Exchange-Sync ./setup.sh && ./start.shKein Docker, keine Administratorrechte für die Anwendung. Der React-Build ist enthalten —
Node.js wird nicht benötigt.Voraussetzungen
- Python 3.12 oder neuer.
- imapsync (Perl-Skript bzw.
imapsync.exe), Version ≥ 2.200, getestet mit 2.326.
Empfohlen: Strawberry Perl (portable) +cpanm-Module, siehedocs/INSTALL_WINDOWS.md. - Für die Microsoft-Anmeldung: eigene Entra-App-Registrierung (Public Client,
Redirect-URIhttp://127.0.0.1:8000/api/v1/oauth/callback, Scope
https://outlook.office.com/IMAP.AccessAsUser.All), siehedocs/ENTRA_SETUP.md.
Ohne Client-ID startet die Anwendung, die Anmeldung ist dann deaktiviert.
Getestete Funktionen
- Echtes imapsync 2.326 (Strawberry Perl 5.42.3, portable) gegen zwei lokale
IMAP-Server (Greenmail): 12 Nachrichten vollständig übertragen, Ordnerstruktur
inklusive Unterordner,\Seen-Flag übernommen, zweiter Lauf ohne Duplikate
(0 messages transferred), Abbruch mitten im Lauf und Fortsetzung bis 72/72. - Installation aus dem Release-Archiv in einem leeren Verzeichnis: Setup, Login,
Weboberfläche, Tenant/Zielserver/Konto/Job anlegen, Neustart mit erhaltenen Daten,
zweites Setup ohne Änderungen an.env, keine Secrets in Logs. - Automatisierte Tests: 254 Backend-Tests (3 übersprungen), 35 Frontend-Tests,
TypeScript-Prüfung, Produktionsbuild, Release-Archivprüfung.
Nicht getestete Funktionen
- Microsoft-365-Live-Anmeldung und -Migration: kein Testkonto, keine Entra-App
verfügbar. OAuth ist implementiert und mit Mocks getestet, nicht live verifiziert.
Ohne Entra-Konfiguration antwortetPOST /identities/{id}/authorizemit
502 oauth_provider_unavailable. - Linux-Betrieb: Skripte und Pfad-/Rechtebehandlung sind vorbereitet, aber nie
ausgeführt. Linux gilt ausdrücklich nicht als getestet. - Browser-Klicktest: nicht durchgeführt (Testumgebung blockiert Loopback-Adressen);
ersetzt durch Komponententests und einen HTTP-Integrationstest. - Token-Ablauf während eines langen Laufs: Mechanismus (Refresh + atomarer
Dateiaustausch) ist getestet, das reale Verhalten gegen Exchange Online nicht. - TLS gegen produktive Zertifikate: Testserver nutzten selbstsignierte Zertifikate.
Bekannte Einschränkungen
- Genau eine Backend-Instanz pro Datenverzeichnis (Sperrdatei
data/queue.lock);
mehrere Worker/Hosts werden nicht unterstützt (SQLite). - Standardport 8000 kann durch lokale Richtlinien gesperrt sein (
APP_PORTsetzen);
python -m app.cli checkwarnt dann. - imapsync ist nicht enthalten und muss separat installiert werden.
- Werden mehrere imapsync-Versionen im PATH gefunden, kann die falsche erkannt werden —
IMAPSYNC_PATHin.envsetzen. - Shared Mailboxes werden nicht zugesagt (delegierter Zugriff nicht getestet).
Bekannte Fehler
Keine kritischen Fehler bekannt. Beobachtet:
502 oauth_provider_unavailableohne konfigurierte Client-ID bzw. ohne Internetzugang
zur Microsoft-Discovery (erwartetes Verhalten, wird in der Oberfläche erklärt).- Ein fremdes
imapsync.batim Benutzerprofil kann als „inkompatibel (0.22)“ erkannt
werden; Abhilfe:IMAPSYNC_PATHsetzen.
Sicherheitshinweise
- Die Anwendung fragt keine Microsoft-Passwörter ab und speichert sie nicht.
- Tokens und Zielpasswörter liegen ausschließlich verschlüsselt in der lokalen SQLite-DB;
der Schlüssel steht in.env(APP_ENCRYPTION_KEY). Verlust des Schlüssels macht
gespeicherte Geheimnisse unlesbar —.envsichern. - Temporäre Token-/Passwortdateien:
0600indata/tmp/<run-id>/, unter Windows
explizite DACL (nur Benutzer, SYSTEM, Administratoren); Löschung nach jedem Lauf. - Logs werden vor dem Schreiben redigiert (Bearer, XOAUTH2, Passwörter).
- Die Anwendung bindet nur an
127.0.0.1. Für Netzwerkzugriff ist ein HTTPS-Reverse-Proxy
erforderlich; ohne HTTPS wird das Session-Cookie ohneSecuregesetzt. - Keine Standard-Zugangsdaten: Setup erzeugt ein zufälliges Startpasswort oder fragt ab.
Lizenzstatus
Der Quellcode dieses Projekts steht unter der MIT-Lizenz (
LICENSE).
imapsync wird nicht gebündelt (eigene Lizenz des Autors, extern zu installieren);
Python-Abhängigkeiten werden beim Setup von PyPI installiert; Frontend-Bibliotheken
(MIT/ISC) sind im Build enthalten. Details:LICENSE.md.Upgrade-Hinweis
Vorhandene
data/- und.env-Dateien werden beim Setup nicht überschrieben. Vor einem
Wechsel die Verzeichnisse sichern. Datenbankmigrationen laufen automatisch
(python -m app.cli init).Prüfsummen
SHA256SUMS.txtenthält die SHA-256-Werte für beide Archive und diese Release Notes.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Migration von Microsoft-365-/Exchange-Online-Postfächern über IMAP (OAuth2/XOAUTH2)