Hoppa till huvudinnehåll

Dataportabilitet

Libre WebUI kan exportera och importera ett versionshanterat JSON-arkiv per användare från Inställningar → Datahantering. Arkivet är avsett för att flytta personliga data som stöds mellan Libre WebUI-installationer eller återställa dem till ett konto. Det är inte en fullständig serversäkerhetskopia.

Arkivversion 3

Det aktuella formatet identifieras av:

{
"format": "libre-webui-user-data",
"version": 3,
"integrity": {
"algorithm": "sha256",
"canonicalization": "libre-json-sort-v1",
"digest": "<64 lowercase hexadecimal characters>"
}
}

Backend skapar exporten från autentiserade, användaravgränsade databasfrågor. Den innehåller:

  • användarinställningar, förutom referensen till en vald återanvändbar röstprofil;
  • chattmappar;
  • chattsessioner, meddelanden, grenar, betyg, artefakter och inställningar per chatt;
  • fristående anteckningar, inklusive fäststatus;
  • kunskapssamlingar;
  • extraherat dokumentinnehåll och metadata, sessions-/samlingskopplingar och textsegment.

Dokumentinbäddningar exporteras inte eftersom de är härledda data. Skapa om inbäddningar efter import när semantisk hämtning är aktiverad. Arkivet innehåller den extraherade text som RAG använder, inte originalfilens byte, och kan därför inte återskapa uppladdningen byte för byte.

Varje arkiv innehåller listan exclusions. Version 3 utesluter avsiktligt:

  • konton, lösenord, inloggningssessioner och OAuth-tillstånd;
  • leverantörsuppgifter och krypterade pluginvariabler;
  • referensinspelningar och transkriptioner för klonade röster, vilka är biometriska data och kräver separat samtyckeshantering;
  • personor och personaminne;
  • genererade bild-, ljud- och videobiblioteksfiler;
  • anteckningars versionshistorik och bilagor;
  • Work-uppgifter, körningar, sandlådor och Docker-/Kubernetes-volymer.

Kanaler, meddelanden, kalendrar och automatiseringar finns också utanför det portabla arkivet. De är instans-/teamtillstånd och följer i stället en fullständig serversäkerhetskopia.

Använd en säkerhetskopia av databasen/datamappen med samma ENCRYPTION_KEY för fullständig serveråterställning. Work kräver även en konsekvent säkerhetskopia av sina namngivna volymer. Se SQLite-migrering och säkerhetskopiering och Work-arbetsytor.

Integritet och exportvalidering

Version 3 skyddar arkivpayloaden med en SHA-256-integritetsdigest. Den kanoniska formen libre-json-sort-v1 utesluter fältet integrity på toppnivå, sorterar objektens nycklar lexikografiskt, bevarar matrisordning och hashar kompakt JSON som UTF-8. Import avvisar ett version 3-arkiv vars digest inte matchar även om JSON-syntaxen är giltig.

Digesten upptäcker oavsiktlig korruption och ändringar efter export. Den är ingen digital signatur, autentiserar inte skaparen och gör inte arkivet konfidentiellt. Behandla arkivet som varje annan kopia av användarens privata chattar och anteckningar.

Före hämtning kör exporten samma kontroller av schema, fältstorlek, ID och arkivantal som importen. Den verifierar också att formaterad JSON från webb-UI:t inte överskrider uppladdningsgränsen 50 MiB. Exporten returnerar ett exakt valideringsfel i stället för en fil som Libre WebUI redan vet inte kan återställas.

Aktuella arkiv- och kontogränser:

  • 50 MiB per uppladdat eller genererat arkiv;
  • 100 chattmappar;
  • 5 000 chattsessioner;
  • 100 000 chattmeddelanden;
  • 100 anteckningar, rubriker på högst 200 tecken och innehåll på högst 200 000 tecken;
  • 5 000 kunskapssamlingar;
  • 5 000 dokument;
  • 100 000 dokumentsegment;
  • enskilda allmänna innehållsfält på högst 2 000 000 tecken och ID på högst 256 tecken, med snävare gränser där runtimeresursen kräver det.

Säkert importbeteende

När en fil väljs förgranskar backend den omedelbart. Inställningar visar inkommande totalsummor, beräknade antal skapade/överskrivna/överhoppade poster, ID-ommappningar och migreringsvarningar innan den slutliga Importera-åtgärden aktiveras. Ändrad konfliktpolicy beräknar och visar en ny förhandsvisning.

Förgranskningen verifierar integritetsdigesten, migrerar äldre format som stöds, validerar fullständigt schema, resursantal, unika ID:n, tidsstämplar, innehållsgränser och relationer samt planerar konflikter och referensommappning utan att skriva data. Hängande mapp-, samlings-, meddelandeförälder- eller dokumentkopplingar avvisas i stället för att tyst tas bort. Backend upprepar validering och planering vid faktisk import. Alla skrivningar sker i en databastransaktion på SQLite och PostgreSQL; fel återställer inställningar, mappar, sessioner/meddelanden, anteckningar, samlingar, dokument och segment tillsammans.

Två konfliktpolicyer finns:

  • Hoppa över dubbletter behåller poster med matchande ID och importerar nya. Inställningar sammanfogas med kontots aktuella inställningar.
  • Skriv över befintliga ersätter poster med matchande ID. Inställningar ersätter Libre WebUI:s standardvärden. Poster som saknas i arkivet tas aldrig bort.

Båda policyerna är idempotenta för matchande ID. Om ett ID redan ägs av ett annat konto på målservern mappar Libre WebUI deterministiskt om det och alla referenser. Det skriver aldrig över eller läser en annan användares resurs. Referenser till uteslutna eller otillgängliga resurser, exempelvis en persona från en annan installation, är ett dokumenterat undantag: förgranskningen rapporterar att sessionen kopplas loss före import.

Resultatet i Inställningar rapporterar skapade, överskrivna och överhoppade mappar, sessioner, anteckningar, samlingar och dokument. Efter lyckad import läser Libre om inställningar, chattar och mappar och uppdaterar dokument.

Äldre arkiv

Importören accepterar libre-webui-user-data version 2 och migrerar till version 3 vid validering. Version 2 saknade integritetsdigest och anteckningar, så Libre kan inte verifiera ursprung eller återställa anteckningar som aldrig exporterades. Förhandsvisningen anger båda begränsningarna.

Importören accepterar även den tidigare formen libre-webui-export version 1.0. Det webbläsargenererade formatet innehöll inställningar och endast sessionerna som lästs in där. Matrisen documents var alltid tom och formatet saknade mappar, anteckningar, kunskapssamlingar och dokumentsegment. Libre rapporterar begränsningarna före import.

HTTP-endpoints

Alla endpoints kräver den autentiserade användarens bearer-token eller session:

MetodEndpointSyfte
GET/api/preferences/exportSkapa aktuell användares v3-arkiv
POST/api/preferences/import/preflightValidera och planera utan skrivning
POST/api/preferences/importValidera och importera transaktionellt

Webb-UI:t skickar arkivet som ett multipart/form-data-fält med namnet archive och konfliktpolicyn som strategy. Uppladdningsgränsen är 50 MiB. För mindre API-drivna migreringar accepterar båda POST-endpoints även JSON:

{
"data": { "format": "libre-webui-user-data", "version": 3 },
"strategy": "skip"
}

strategy är skip eller overwrite. För kompatibilitet med den tidigare klienten mappar mergeStrategy: "merge" till skip och mergeStrategy: "replace" till overwrite.