Przejdź do głównej zawartości

Przenoszenie danych

W Ustawienia → Zarządzanie danymi można przenieść wspierane dane między instalacjami. To nie pełny backup serwera.

Wersja 3

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

Zawiera preferencje (bez wybranego profilu głosu), foldery, sesje, wiadomości, gałęzie, oceny, artefakty, ustawienia chatów, Notatki, kolekcje, dokumenty i fragmenty.

Embeddingi są pochodne i nie są eksportowane. Archiwum ma tekst RAG, nie oryginalne bajty.

exclusions: konta, hasła, sesje/OAuth, poświadczenia, biometria głosu, persony/pamięć, media, rewizje/załączniki, Work i wolumeny. Kanały, powiadomienia, kalendarze i automatyzacje też wymagają backupu serwera.

Pełny odzysk: baza z tym samym ENCRYPTION_KEY i wolumeny Work. SQLite, Work.

Integralność

SHA-256 na kanonicznym libre-json-sort-v1: pomija integrity, sortuje klucze, zachowuje tablice, hashuje kompaktowy UTF-8. Błędny digest odrzucony. Nie jest podpisem ani szyfrowaniem.

Eksport używa tych samych kontroli i limitu 50 MiB. Limity: 100 folderów, 5000 sesji, 100 000 wiadomości, 100 Notatek, 5000 kolekcji/dokumentów, 100 000 fragmentów, pola 2 000 000, ID 256.

Bezpieczny import

Preflight pokazuje sumy, plan, remapy i ostrzeżenia, weryfikuje schema, ID, relacje bez zapisu. Oderwane relacje odrzucone. Import powtarza i zapisuje jedną transakcją SQLite/PostgreSQL.

  • Pomiń duplikaty — zachowuje ID, łączy preferencje.
  • Nadpisz — zastępuje zgodne ID; nie usuwa nieobecnych.

ID innego konta jest deterministycznie mapowane z referencjami, bez odczytu/nadpisania cudzych danych. Po sukcesie interfejs odświeża.

Starsze

Importer obsługuje starsze archiwa libre-webui-user-data.

Wersja 2 jest migrowana, ale bez digestu i Notatek. libre-webui-export 1.0 zawierał tylko preferencje i załadowane sesje, pusty documents. Ograniczenia raportowane.

HTTP

MetodaEndpointCel
GET/api/preferences/exportEksport
POST/api/preferences/import/preflightPlan
POST/api/preferences/importImport

multipart/form-data: archive, strategy, max 50 MiB. JSON:

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

strategy: skip/overwrite; mergeStrategy: "merge"skip, mergeStrategy: "replace"overwrite.