4 Einschraenkungen
julian edited this page 2026-11-04 21:41:54 +01:00

Einschränkungen

Diese Seite listet ausdrücklich, was nicht getestet, nicht unterstützt oder nur eingeschränkt möglich ist. Stand: 0.9.0-beta.1 (Vorabversion).

Nicht getestete Bereiche

Linux-Betrieb

setup.sh, start.sh, die Portauswahl, die portable Perl-Laufzeit (relocatable-perl) und das Signalverhalten wurden nicht ausgeführt getestet. Es stand keine Linux-Umgebung zur Verfügung. Die Skripte folgen derselben Logik wie unter Windows, sind dort aber nicht verifiziert. Auch die Dateirechte beim Verschieben oder Kopieren sind unter Linux ungeprüft.

Microsoft-365-Live-Anmeldung

Die OAuth-Implementierung ist mit Mocks getestet, aber nicht live verifiziert (kein Testkonto, keine Entra-App). Nicht belegt sind:

  • ein erfolgreicher Token-Tausch gegen Microsoft,
  • Anmeldung mit MFA und Conditional Access,
  • die Zustimmung zu IMAP.AccessAsUser.All in einem echten Tenant,
  • das Verhalten bei ablaufendem Token während eines langen Laufs,
  • XOAUTH2 gegen outlook.office365.com.

Echte Migration Microsoft 365 → Zielserver

Eine Migration wurde lokal zwischen zwei IMAP-Servern mit imapsync 2.326 ausgeführt (Übertragung, Ordner, Flags, Wiederholung ohne Duplikate, Abbruch und Fortsetzung). Eine Migration von Exchange Online auf einen produktiven Zielserver wurde nicht durchgeführt. Nicht geprüft: TLS mit produktivem Zertifikat gegen Microsoft, Quota-Grenzen in Exchange Online, Shared Mailboxes.

Browser-Klicktest

Ein automatisierter Klicktest gegen den echten Build wurde nicht durchgeführt, weil das Testwerkzeug Loopback-Ziele blockiert. Ersatz: Komponententests, TypeScript-Prüfung, Produktionsbuild und HTTP-Integrationstests. Ein visueller Abnahmetest durch einen Menschen steht aus.

Signalverhalten unter Windows

Ein echtes Strg+C in einer Windows-Konsole war nicht reproduzierbar. Gemessen wurde ein geordneter Shutdown des Anwendungsteils, aber mit Exit-Code 3 durch die Signalzustellung der Testumgebung. Das Verhalten in einer normalen Konsole ist nicht belegt.

Absturz und Last

Recovery-Szenarien wurden über realistische Datenbankzustände erzeugt; ein echter Prozessabsturz mitten in einer Übertragung wurde nicht simuliert. Es gibt keine Messungen zu sehr großen Postfächern, vielen parallelen Migrationen über Stunden oder Speicherverbrauch bei langen Läufen.

Nicht unterstützte Funktionen

Bereich Einschränkung
App-only-Anmeldung IMAP.AccessAsApp und Client-Credentials nicht unterstützt
Device Code Flow nicht implementiert; nur Authorization Code Flow mit PKCE
Shared Mailboxes keine Zusicherung ohne Berechtigungstest
STARTTLS am Ziel Ziele werden ausschließlich mit implizitem TLS angesprochen
Ziele ohne TLS nicht vorgesehen
Docker kein Container-Betrieb, kein Compose
Mehrbenutzerbetrieb genau ein Administrator, keine Rollen
Zwei-Faktor-Anmeldung für die lokale Anmeldung nicht vorhanden
Cron-Ausdrücke nur feste Intervalle je Migration
Fortschrittsanzeige kein Prozentwert; imapsync liefert keinen belastbaren Fortschritt
Nachrichtengrößen in der Vorschau nur Zähler, keine Größen
Mehrere Instanzen genau eine Instanz pro Datenverzeichnis
Offline-Installation Setup und Update benötigen Internet
Automatische Updates kein Hintergrund-Update, kein Selbst-Update

Technische Grenzen

Netzwerk und Zugriff

  • Bindung ausschließlich an 127.0.0.1. Für LAN- oder Internetzugriff ist ein separater HTTPS-Reverse-Proxy nötig; die Anwendung terminiert selbst kein TLS für die Oberfläche.
  • Der Ausweichport reicht bis 8025. Ist keiner dieser Ports frei, startet die Anwendung nicht (Exit 3).
  • Der Ausweichport ist nicht dauerhaft; eine OAuth-Redirect-URI muss zum tatsächlichen Port passen.

Sitzung

Beim Abmelden wird das Cookie im Browser gelöscht. Eine zuvor kopierte Kopie bleibt bis zum Ablauf gültig, weil es keine serverseitige Sitzungstabelle gibt. Abhilfe bei Bedarf: SESSION_SECRET rotieren.

Datenbank

SQLite mit WAL und einem Schreiber. Unter Last oder bei zwei Instanzen können Sperren auftreten; die API antwortet mit 503 database_busy und Retry-After. Ein WAL-Snapshot-Upgrade kann trotz busy_timeout sofort scheitern; der Client muss wiederholen.

Laufzeit und Speicherplatz

  • runtime/ belegt unter Windows nach dem Setup etwa 1,3 GB.
  • Der Setup-Download umfasst etwa 360 MB (Windows) bzw. 370 MB (Linux).
  • Protokolle sind auf 5 MB je Lauf begrenzt; danach wird abgeschnitten.
  • Update-Sicherungen unter data/updates/ werden nicht automatisch gelöscht.

Dateirechte

Unter Windows wirkt chmod nicht; die Anwendung setzt eine explizite DACL. Auf FAT/exFAT gibt es keine Rechteübernahme — Kopien dorthin können Schlüssel und Tokens für andere Benutzer lesbar machen. Die POSIX-Rechtetests laufen nur unter Linux; unter Windows werden sie übersprungen.

imapsync

  • imapsync wird nicht gebündelt, sondern beim Setup von der offiziellen Quelle geladen. Es unterliegt der Lizenz des Autors (NO LIMIT PUBLIC LICENSE); es gibt keine Support-Zusage.
  • Die Erkennung akzeptiert nur die portable Installation bzw. einen explizit gesetzten Pfad; ein imapsync im System-PATH wird ignoriert.
  • Fehlt eine benötigte Option oder ist die Version älter als 2.200, gilt die Installation als inkompatibel.
  • Die PID-Prüfung nach einem Neustart ist eine Heuristik. Eine wiederverwendete PID kann zu einer falschen Markierung führen, nie zu einem Doppelstart.

Updates

  • Nur Releases mit gültiger Ed25519-Signatur der Prüfsummendatei werden akzeptiert. Der öffentliche Schlüssel ist fest eingebettet; eine Rotation erfordert ein neues Release.
  • Ein Update ist nur bei beendeter Anwendung und ohne laufende Migrationen möglich.
  • Ein Mirror ohne passenden Signaturschlüssel ist nutzlos.

Reifestatus

Die Anwendung ist eine Beta-Vorabversion. Sie ist für Tests, kontrollierte Migrationen und Labore geeignet. Für uneingeschränkten Produktivbetrieb fehlen insbesondere der Linux-Nachweis und die Live-Verifikation gegen Microsoft 365. Wer sie produktiv einsetzt, sollte die Quelle vor dem ersten Lauf sichern, zuerst eine kleine Migration mit wenigen Ordnern durchführen, die Protokolle des ersten Laufs vollständig prüfen und die Zielpostfächer stichprobenartig kontrollieren.