Dataportabiliteit
Libre WebUI exporteert/importert een JSON-archief per gebruiker via Instellingen → Gegevensbeheer voor verplaatsing of herstel. Het is geen volledige serverback-up.
Archiefversie 3
{
"format": "libre-webui-user-data",
"version": 3,
"integrity": {
"algorithm": "sha256",
"canonicalization": "libre-json-sort-v1",
"digest": "<64 lowercase hexadecimal characters>"
}
}
Bevat voorkeuren (zonder gekozen stemprofielreferentie), chatmappen, sessies/berichten/takken/beoordelingen/artefacten, Notities, kennisverzamelingen en geëxtraheerde documentinhoud, metadata, koppelingen en segmenten.
Embeddings zijn afgeleid en worden niet geëxporteerd. Regenereer na import. Het archief bevat geëxtraheerde tekst, niet originele bytes.
exclusions vermeldt bewust:
- accounts, wachtwoorden, sessies en OAuth;
- providerreferenties en versleutelde variabelen;
- gekloonde stemopnamen en transcripties;
- persona's en geheugen;
- gegenereerde media;
- revisies en bijlagen van notities;
- Work-taken, runs, sandboxes en volumes.
Kanalen, meldingen, agenda's en automatiseringen zijn instantie/teamstate en gaan met volledige back-up.
Gebruik dezelfde ENCRYPTION_KEY voor volledig herstel en back-up ook Work-volumes. Zie SQLite-migratie en Work.
Integriteit en validatie
SHA-256 beschermt payload. libre-json-sort-v1 laat integrity weg, sorteert objectsleutels, behoudt arrays en hasht compact UTF-8 JSON. Verkeerd digest wordt geweigerd.
Het is geen digitale handtekening of vertrouwelijkheid. Behandel als privégegevens.
Export gebruikt dezelfde schema-, grootte-, ID- en telcontroles als import en bevestigt maximaal 50 MiB.
Limieten: 50 MiB; 100 mappen; 5.000 sessies; 100.000 berichten; 100 Notities met 200/200.000 tekens; 5.000 verzamelingen; 5.000 documenten; 100.000 segmenten; algemene velden 2.000.000 en IDs 256.
Veilige import
Voorcontrole toont totalen, maken/overschrijven/overslaan, remaps en waarschuwingen. Ze verifieert digest, migreert formaten, valideert alles en plant zonder schrijven. Losse relaties worden geweigerd. De echte import herhaalt dit en schrijft in één transactie op SQLite/PostgreSQL; fout rolt alles terug.
- Duplicaten overslaan houdt gelijke IDs en voegt nieuwe toe; voorkeuren worden samengevoegd.
- Bestaande overschrijven vervangt gelijke IDs; afwezige records worden nooit verwijderd.
Beide zijn idempotent. IDs van andere accounts worden deterministisch met referenties geremapt; Libre leest/overschrijft niets van anderen. Uitgesloten referenties worden vooraf gemeld.
Na succes worden voorkeuren, chats, mappen en documenten vernieuwd.
Oudere archieven
Versie 2 libre-webui-user-data wordt gemigreerd; die had geen digest of Notities. Ook libre-webui-export 1.0 wordt geaccepteerd, met alleen voorkeuren en geladen sessies; documents was leeg en andere resources ontbraken. Beperkingen worden gemeld.
HTTP-endpoints
| Methode | Endpoint | Doel |
|---|---|---|
GET | /api/preferences/export | v3 bouwen |
POST | /api/preferences/import/preflight | Valideren/plannen |
POST | /api/preferences/import | Transactioneel importeren |
De UI stuurt multipart/form-data-veld archive en strategy. Limiet 50 MiB; JSON is ook mogelijk:
{
"data": { "format": "libre-webui-user-data", "version": 3 },
"strategy": "skip"
}
strategy is skip of overwrite. mergeStrategy: "merge" wordt skip; mergeStrategy: "replace" wordt overwrite.