Offline and installation (PWA)
What is this about?
In short: Illumentis runs in the browser and can be installed as an app. If the connection drops, you keep writing, your text is saved locally in the browser and synced with the server later. This has limits, which we name here.
Protection goal
A dropped connection should not pull you out of your writing flow or cost you text. At the same time, nothing should be overwritten silently during syncing.
How it works
A PWA (progressive web app) is a web app that behaves like an installed app. In Illumentis, three parts work together for this:
- Manifest and service worker: the manifest makes the app installable. The service worker stores the app shell, that is the interface itself, in the browser so that it starts without a connection. It loads further parts of the interface on first use and keeps them.
- Local data storage: your chapter drafts are kept in the browser’s database (IndexedDB). The editor saves there continuously, even without a connection.
- Sync: when the connection returns, Illumentis syncs the text with the server. A version counter notices if the chapter was changed elsewhere in the meantime.
The service worker deliberately does not store responses from the interface. The state of your texts comes from the local storage and the server, not from a second, competing cache.
Measures
- The editor saves locally and shows the status, for example “Offline – saved locally”.
- In case of a conflict, you choose in the conflict dialog how to continue instead of one side silently winning.
- Repeated requests after a dropped connection are recognized so that nothing is processed twice.
- The app announces new versions, and you decide when to switch with “Update now”.
- If the local save fails, the app shows an emergency text rescue.
- Offline Validator Lite checks simple writing mistakes without a network. The Illuminatio Engine runs online only.
- If a device is revoked, it deletes its local data at the next sync. On shared devices you can encrypt the local storage with shared device mode and lock the app when it is idle.
What we do not promise
- The browser can delete local data, for example when storage is short or when you remove site data. Your own exports remain useful as an additional backup.
- What you have opened before is available offline. A page you have not visited before does not load without a connection.
- The Illuminatio Engine continuity check needs a connection.
- The local storage is on your device. The protection in shared device mode does not replace encryption of the device, and a short PIN is guessed faster than a long password.
- For offline use, the browser needs IndexedDB and service workers.
How we check this
Syncing, local saving and revoking devices have automated tests, which the table below names. The related scenarios (“Race Conditions”, “Session Hijacking”) are in the monthly report.
Evidence tests
| Test | What the test proves |
|---|---|
OfflineSyncIdempotencyTest |
If a response is not received after saving, retrying does not lead to double processing. |
chapterDraftDb.test.js |
Chapter drafts are saved locally in the browser database. |
chapterDraftStore.test.js |
The interface’s local draft store manages drafts and status. |
remoteWipeInterceptor.test.js |
A revoked device deletes its local data at the next sync. |
schutzschirmCrypto.test.js |
In shared device mode, the local cache is encrypted with a key derived from the PIN. |
offlineValidatorNoNetworkCall.test.js |
Offline Validator Lite makes no network request. |
Change history
- : First version.