Offline und Installation (PWA)
Worum geht es?
Kurz gesagt: Illumentis läuft im Browser und lässt sich als App installieren. Bricht die Verbindung ab, schreibst du weiter, dein Text wird lokal im Browser gesichert und später mit dem Server abgeglichen. Das hat Grenzen, die wir hier nennen.
Schutzziel
Eine abgebrochene Verbindung soll dich nicht aus dem Schreibfluss reißen und keinen Text kosten. Zugleich soll beim Abgleich nichts still überschrieben werden.
Funktionsprinzip
Eine PWA (Progressive Web App) ist eine Web-App, die sich wie eine installierte App verhält. Bei Illumentis arbeiten dafür drei Teile zusammen:
- Manifest und Service Worker: Das Manifest macht die App installierbar. Der Service Worker legt die App-Hülle, also die Oberfläche selbst, im Browser ab, damit sie auch ohne Verbindung startet. Weitere Teile der Oberfläche lädt er beim ersten Gebrauch nach und behält sie.
- Lokale Datenhaltung: Deine Kapitelentwürfe liegen in der Datenbank des Browsers (IndexedDB). Der Editor sichert dort laufend, auch ohne Verbindung.
- Abgleich: Kehrt die Verbindung zurück, gleicht Illumentis den Text mit dem Server ab. Ein Versionszähler bemerkt, wenn das Kapitel zwischenzeitlich anderswo geändert wurde.
Antworten der Schnittstelle legt der Service Worker bewusst nicht ab. Der Stand deiner Texte kommt aus der lokalen Datenhaltung und dem Server, nicht aus einem zweiten, konkurrierenden Zwischenspeicher.
Maßnahmen
- Der Editor sichert lokal und zeigt den Status, zum Beispiel „Offline – lokal gesichert“.
- Bei einem Konflikt wählst du im Konfliktdialog, wie es weitergeht, statt dass eine Seite still gewinnt.
- Wiederholte Anfragen nach einem Verbindungsabbruch werden erkannt, damit nichts doppelt verarbeitet wird.
- Neue App-Versionen kündigt die App an, und du entscheidest mit „Jetzt aktualisieren“, wann du wechselst.
- Schlägt die lokale Sicherung fehl, zeigt die App eine Notfall-Textrettung an.
- Der Offline Validator Lite prüft einfache Schreibfehler ohne Netz. Die Illuminatio Engine läuft nur online.
- Wird ein Gerät widerrufen, löscht es seine lokalen Daten beim nächsten Abgleich. Auf geteilten Geräten kannst du den lokalen Speicher mit dem Shared-Device-Modus verschlüsseln und die App bei Inaktivität sperren.
Was wir nicht versprechen
- Der Browser kann lokale Daten löschen, etwa bei knappem Speicher oder wenn du Website-Daten entfernst. Eigene Exporte bleiben als zusätzliche Sicherung sinnvoll.
- Offline verfügbar ist, was du schon einmal geöffnet hast. Eine Seite, die du bisher nicht besucht hast, lädt ohne Verbindung nicht.
- Die Kontinuitätsprüfung der Illuminatio Engine braucht eine Verbindung.
- Der lokale Speicher liegt auf deinem Gerät. Der Schutz im Shared-Device-Modus ersetzt keine Verschlüsselung des Geräts, und eine kurze PIN ist schneller erraten als ein langes Passwort.
- Für Offline-Betrieb braucht der Browser IndexedDB und Service Worker.
Wie wir das prüfen
Der Abgleich, die lokale Sicherung und der Widerruf von Geräten haben automatisierte Tests, die die Tabelle unten nennt. Die Abgleich-Szenarien („Race Conditions“, „Session Hijacking“) stehen im Monatsbericht.
Nachweis-Tests
| Test | Das belegt der Test |
|---|---|
OfflineSyncIdempotencyTest |
Wird eine Antwort nach dem Speichern nicht empfangen, führt der erneute Versuch nicht zu doppelter Verarbeitung. |
chapterDraftDb.test.js |
Kapitelentwürfe werden lokal in der Browser-Datenbank gesichert. |
chapterDraftStore.test.js |
Der lokale Entwurfsspeicher der Oberfläche verwaltet Entwürfe und Status. |
remoteWipeInterceptor.test.js |
Ein widerrufenes Gerät löscht seine lokalen Daten beim nächsten Abgleich. |
schutzschirmCrypto.test.js |
Der lokale Zwischenspeicher wird im Shared-Device-Modus mit einem aus der PIN abgeleiteten Schlüssel verschlüsselt. |
offlineValidatorNoNetworkCall.test.js |
Der Offline Validator Lite macht keine Netzwerkanfrage. |
Änderungsverlauf
- : Erste Fassung.