मुख्य कंटेंट तक स्किप करें

डेटा पोर्टेबिलिटी

Libre WebUI सेटिंग → डेटा प्रबंधन से संस्करणित उपयोगकर्ता JSON संग्रह निर्यात/आयात करता है। यह समर्थित निजी डेटा को स्थापनाओं के बीच ले जाता या खाते में बहाल करता है; पूर्ण सर्वर बैकअप नहीं है।

संग्रह संस्करण 3

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

सर्वर प्रमाणित उपयोगकर्ता-सीमित क्वेरी से संग्रह बनाता है। इसमें हैं:

  • चुने reusable आवाज़-प्रोफ़ाइल संदर्भ को छोड़कर प्राथमिकताएँ;
  • चैट फ़ोल्डर;
  • सत्र, संदेश, शाखाएँ, रेटिंग, आर्टिफ़ैक्ट और चैट सेटिंग;
  • पिन स्थिति सहित स्वतंत्र नोट्स;
  • ज्ञान संग्रह;
  • निकाली दस्तावेज़ सामग्री, मेटाडेटा, सत्र/संग्रह संबंध और पाठ खंड।

एम्बेडिंग व्युत्पन्न हैं, निर्यात नहीं होते; आयात के बाद फिर बनाएँ। संग्रह RAG का निकला पाठ रखता है, मूल अपलोड बाइट नहीं, इसलिए मूल फ़ाइल ठीक-ठीक नहीं बना सकता।

exclusions सूची संस्करण 3 में ये छोड़ती है:

  • खाते, पासवर्ड, लॉगिन सत्र और OAuth स्थिति;
  • प्रदाता क्रेडेंशियल और एन्क्रिप्टेड प्लगइन चर;
  • जैवमितीय क्लोन-आवाज़ संदर्भ और transcript;
  • पर्सोना और स्मृति;
  • बनी इमेज, ऑडियो और वीडियो;
  • नोट संस्करण इतिहास और अटैचमेंट;
  • Work कार्य, रन, सैंडबॉक्स और Docker/Kubernetes वॉल्यूम।

चैनल, सूचनाएँ, कैलेंडर और ऑटोमेशन भी इंस्टेंस/टीम स्थिति हैं और पूर्ण सर्वर बैकअप से जाते हैं।

पूर्ण बहाली के लिए समान ENCRYPTION_KEY वाला डेटाबेस/डेटा-डायरेक्टरी बैकअप उपयोग करें; Work को सुसंगत वॉल्यूम चाहिए। SQLite बैकअप और Work वर्कस्पेस देखें।

अखंडता और निर्यात सत्यापन

संस्करण 3 SHA-256 से payload सुरक्षित करता है। libre-json-sort-v1 शीर्ष integrity हटाता, object keys शब्दकोश क्रम में रखता, array क्रम बचाता और compact UTF-8 JSON हैश करता है। digest न मिले तो वैध JSON भी अस्वीकृत।

यह दुर्घटनात्मक भ्रष्टाचार और बाद के बदलाव पहचानता है; डिजिटल हस्ताक्षर नहीं, निर्माता प्रमाणित नहीं करता और गोपनीयता नहीं देता। संग्रह को निजी चैट/नोट प्रति जैसा सुरक्षित रखें।

डाउनलोड से पहले आयात वाली श schema, फ़ील्ड आकार, ID और संख्या जाँच होती है; pretty JSON 50 MiB सीमा में होना चाहिए। बहाल न हो सकने वाली फ़ाइल के बजाय स्पष्ट त्रुटि आती है।

सीमाएँ:

  • 50 MiB संग्रह;
  • 100 चैट फ़ोल्डर;
  • 5,000 सत्र;
  • 100,000 संदेश;
  • 100 नोट, शीर्षक 200 और सामग्री 200,000 अक्षर;
  • 5,000 संग्रह;
  • 5,000 दस्तावेज़;
  • 100,000 खंड;
  • सामान्य सामग्री 2,000,000, ID 256 अक्षर; संसाधन और कम कर सकता है।

सुरक्षित आयात

फ़ाइल चुनते ही preflight चलता है। सेटिंग कुल, अपेक्षित बनाएँ/overwrite/skip, ID remap और चेतावनी अंतिम आयात से पहले दिखाती है। टकराव नीति बदलने से नया पूर्वावलोकन बनता है।

Preflight digest, पुराने प्रारूप migration, schema, counts, unique IDs, timestamps, bounds और relationships जाँचकर बिना लिखे योजना बनाता है। लटकते फ़ोल्डर/संग्रह/संदेश-parent/दस्तावेज़ संबंध अस्वीकृत। असली आयात फिर जाँचता और SQLite/PostgreSQL में एक transaction लिखता है; त्रुटि सब संसाधन साथ लौटाती है।

दो नीतियाँ:

  • डुप्लिकेट छोड़ें समान ID बचाकर नए आयात करता और प्राथमिकता मिलाता करता है।
  • मौजूदा पर लिखें समान ID बदलता और प्राथमिकता Libre defaults पर रखता है। संग्रह में अनुपस्थित रिकॉर्ड नहीं मिटते।

दोनों समान ID पर idempotent हैं। ID दूसरे खाते की हो तो Libre उसे और सभी संदर्भ निश्चित रूप से remap करता है; दूसरे का संसाधन नहीं पढ़ता/लिखता। बाहर रखी persona जैसे अनुपलब्ध संदर्भ preflight में session detach चेतावनी देते हैं।

परिणाम फ़ोल्डर, session, Notes, संग्रह, दस्तावेज़ के बनाया/overwritten/skipped counts दिखाता है। सफलता के बाद प्राथमिकता, चैट, फ़ोल्डर और दस्तावेज़ रीफ़्रेश होते हैं।

पुराने संग्रह

संस्करण 2 libre-webui-user-data स्वीकारकर 3 में migrate होता है। उसमें digest और Notes नहीं थे, इसलिए origin verify या कभी export न हुए Notes recover नहीं हो सकते; preview बताता है।

पुराना libre-webui-export 1.0 भी स्वीकार है। उसमें प्राथमिकता और ब्राउज़र-loaded sessions थे; documents खाली, फ़ोल्डर/Notes/संग्रह/खंड नहीं। सीमाएँ आयात से पहले बताई जाती हैं।

HTTP एंडपॉइंट

सभी को उपयोगकर्ता bearer टोकन या session चाहिए:

विधिएंडपॉइंटउद्देश्य
GET/api/preferences/exportवर्तमान v3 संग्रह बनाएँ
POST/api/preferences/import/preflightबिना लिखे जाँच और योजना
POST/api/preferences/importtransaction में आयात

UI multipart/form-data में archive और नीति strategy भेजता है। सीमा 50 MiB। छोटे API migration JSON भी लेते हैं:

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

strategy, skip या overwrite। पुराने client के लिए mergeStrategy: "merge"skip, mergeStrategy: "replace"overwrite