Dataportabilitet
Libre WebUI kan eksportere og importere et versionsstyret JSON-arkiv pr. bruger fra Indstillinger → Dataadministration. Arkivet er beregnet til at flytte understøttede personlige data mellem Libre WebUI-installationer eller gendanne dem til en konto. Det er ikke en komplet serversikkerhedskopi.
Arkivversion 3
Det aktuelle format identificeres af:
{
"format": "libre-webui-user-data",
"version": 3,
"integrity": {
"algorithm": "sha256",
"canonicalization": "libre-json-sort-v1",
"digest": "<64 lowercase hexadecimal characters>"
}
}
Backend opretter eksporten fra godkendte, brugerafgrænsede databaseforespørgsler. Den indeholder:
- brugerindstillinger undtagen reference til en valgt genanvendelig stemmeprofil;
- chatmapper;
- chatsessioner, beskeder, grene, vurderinger, artefakter og indstillinger pr. chat;
- selvstændige noter, inklusive fastgjort status;
- videnssamlinger;
- udtrukket dokumentindhold og metadata, sessions-/samlingsforbindelser og tekstsegmenter.
Dokumentindlejringer eksporteres ikke, da de er afledte data. Gendan indlejringer efter import, når semantisk hentning er aktiveret. Arkivet indeholder den udtrukne tekst, som RAG bruger, ikke den oprindelige fils bytes, og kan derfor ikke genskabe uploaden byte for byte.
Hvert arkiv indeholder listen exclusions. Version 3 udelader bevidst:
- konti, adgangskoder, loginsessioner og OAuth-tilstand;
- udbyderlegitimationsoplysninger og krypterede pluginvariabler;
- referenceoptagelser og transskriptioner til klonede stemmer, som er biometriske data og kræver separat samtykkehåndtering;
- personaer og personahukommelse;
- genererede billed-, lyd- og videobiblioteksfiler;
- noters versionshistorik og vedhæftninger;
- Work-opgaver, kørsler, sandkasser og Docker-/Kubernetes-volumener.
Kanaler, notifikationer, kalendere og automatiseringer findes også uden for det portable arkiv. De er instans-/teamtilstand og følger i stedet en fuld serversikkerhedskopi.
Brug en sikkerhedskopi af databasen/datamappen med samme ENCRYPTION_KEY til fuld servergendannelse. Work kræver også en konsistent sikkerhedskopi af sine navngivne volumener.
Se SQLite-migrering og sikkerhedskopiering og Work-arbejdsområder.
Integritet og eksportvalidering
Version 3 beskytter arkivpayloaden med en SHA-256-integritetsdigest. Den kanoniske form libre-json-sort-v1 udelader feltet integrity på øverste niveau, sorterer objektnøgler leksikografisk, bevarer arrayrækkefølge og hasher kompakt JSON som UTF-8. Import afviser et version 3-arkiv, hvis digesten ikke matcher, selv når JSON-syntaksen er gyldig.
Digesten registrerer utilsigtet beskadigelse og ændringer efter eksport. Den er ikke en digital signatur, godkender ikke ophavsmanden og gør ikke arkivet fortroligt. Behandl arkivet som enhver anden kopi af brugerens private chats og noter.
Før download kører eksporten samme kontrol af skema, feltstørrelse, ID og arkivantal som importen. Den kontrollerer også, at formateret JSON fra web-UI'et ikke overstiger uploadgrænsen på 50 MiB. Eksporten returnerer en præcis valideringsfejl i stedet for en fil, som Libre WebUI allerede ved ikke kan gendannes.
Aktuelle arkiv- og kontogrænser:
- 50 MiB pr. uploadet eller genereret arkiv;
- 100 chatmapper;
- 5.000 chatsessioner;
- 100.000 chatbeskeder;
- 100 noter med titler på højst 200 tegn og indhold på højst 200.000 tegn;
- 5.000 videnssamlinger;
- 5.000 dokumenter;
- 100.000 dokumentsegmenter;
- enkelte generelle indholdsfelter på højst 2.000.000 tegn og ID'er på højst 256 tegn, med snævrere grænser, hvor runtimeressourcen kræver det.
Sikker importadfærd
Når en fil vælges, forhåndskontrollerer backend den straks. Indstillinger viser indgående totaler, beregnede antal oprettede/overskrevne/sprunget over poster, ID-omtilknytninger og migreringsadvarsler, før den endelige Importér-handling aktiveres. Ændring af konfliktpolitikken beregner og viser en ny forhåndsvisning.
Forhåndskontrollen verificerer integritetsdigesten, migrerer understøttede ældre formater, validerer komplet skema, ressourceantal, entydige ID'er, tidsstempler, indholdsgrænser og relationer samt planlægger konflikter og referenceomtilknytning uden at skrive data. Hængende mappe-, samlings-, beskedforælder- eller dokumentforbindelser afvises i stedet for lydløst at blive fjernet. Backend gentager validering og planlægning ved den faktiske import. Alle skrivninger sker i én databasetransaktion på SQLite og PostgreSQL; fejl ruller indstillinger, mapper, sessioner/beskeder, noter, samlinger, dokumenter og segmenter tilbage samlet.
Der findes to konfliktpolitikker:
- Spring dubletter over bevarer poster med matchende ID'er og importerer nye. Indstillinger flettes med kontoens aktuelle indstillinger.
- Overskriv eksisterende erstatter poster med matchende ID'er. Indstillinger erstatter Libre WebUI's standardværdier. Poster, der mangler i arkivet, slettes aldrig.
Begge politikker er idempotente for matchende ID'er. Hvis et ID allerede ejes af en anden konto på målserveren, omtilknytter Libre WebUI det og alle referencer deterministisk. Det overskriver eller læser aldrig en anden brugers ressource. Referencer til udeladte eller utilgængelige ressourcer, f.eks. en persona fra en anden installation, er en dokumenteret undtagelse: forhåndskontrollen rapporterer, at sessionen afkobles før import.
Resultatet i Indstillinger rapporterer oprettede, overskrevne og oversprungne mapper, sessioner, noter, samlinger og dokumenter. Efter vellykket import genindlæser Libre indstillinger, chats og mapper og opdaterer dokumenter.
Ældre arkiver
Importen accepterer libre-webui-user-data version 2 og migrerer til version 3 under validering. Version 2 manglede integritetsdigest og noter, så Libre kan ikke verificere oprindelsen eller gendanne noter, der aldrig blev eksporteret. Forhåndsvisningen angiver begge begrænsninger.
Importen accepterer også den tidligere form libre-webui-export version 1.0. Det browsergenererede format indeholdt indstillinger og kun de sessioner, der var indlæst i browseren. Arrayet documents var altid tomt, og formatet manglede mapper, noter, videnssamlinger og dokumentsegmenter. Libre rapporterer begrænsningerne før import.
HTTP-endpoints
Alle endpoints kræver den godkendte brugers bearer-token eller session:
| Metode | Endpoint | Formål |
|---|---|---|
GET | /api/preferences/export | Opret den aktuelle brugers v3-arkiv |
POST | /api/preferences/import/preflight | Valider og planlæg uden skrivning |
POST | /api/preferences/import | Valider og importér transaktionelt |
Web-UI'et sender arkivet som et multipart/form-data-felt med navnet archive og konfliktpolitikken som strategy. Uploadgrænsen er 50 MiB. Ved mindre API-drevne migreringer accepterer begge POST-endpoints også JSON:
{
"data": { "format": "libre-webui-user-data", "version": 3 },
"strategy": "skip"
}
strategy er skip eller overwrite. For kompatibilitet med den tidligere klient tilknyttes mergeStrategy: "merge" til skip og mergeStrategy: "replace" til overwrite.