प्लेटफ़ॉर्म आधार
Libre WebUI स्थानीय solo और साझा team प्रोफ़ाइल समर्थन करता है। Solo SQLite, एन्क्रिप्टेड स्थानीय ब्लॉब, एन्क्रिप्टेड अंतर्निहित वेक्टर, स्थानीय समन्वय और अंतर्निहित स्थायी वर्कर उपयोग करता है। Team PostgreSQL, निजी S3-संगत ब्लॉब, PGVector, Redis और बाहरी वर्कर उपयोग करता है। प्रारंभ स्थिति को चुपचाप बाँटने के बजाय मिश्रित प्रोफ़ाइल अस्वीकार करता है।
वर्तमान चरण
| क्षेत्र | लागू आधार | शेष काम |
|---|---|---|
| स्थायित्व | SQLite/PostgreSQL रिपॉज़िटरी, अपरिवर्तनीय माइग्रेशन, पूल लेन-देन | नए डोमेन रिपॉज़िटरी सीमा मानें |
| ब्लॉब | एन्क्रिप्टेड स्थानीय/S3 स्ट्रीम, रेंज, चेकसम, कोटा | अटैचमेंट, अवतार और शेष बाइनरी क्षेत्र ले जाएँ |
| वेक्टर | एन्क्रिप्टेड वेक्टर, PGVector ACL, सुरक्षित इंडेक्स पुनर्निर्माण | नए एम्बेडिंग कॉल समान अधिकार/जीवनचक्र रखें |
| समन्वय | स्थानीय/Redis ईवेंट, कैश, लीज़, दर सीमा, अमान्यकरण, स्वास्थ्य | Redis प्रामाणिक न बने |
| कार्य/ईवेंट | SQLite/PostgreSQL कतार, लेन-देन ईवेंट, वर्कर, पुनः प्रयास, रद्द, प्रशासन | हर नया दुष्प्रभाव समशक्ति या आउटबॉक्स माँगे |
| संचालन | स्वास्थ्य जाँच, हस्ताक्षरित/एन्क्रिप्टेड संग्रह, साफ़ पुनर्प्राप्ति | हर परिनियोजन में अभ्यास |
रनटाइम प्रोफ़ाइल
LIBRE_PLATFORM_MODE=solo डिफ़ॉल्ट SQLite, स्थानीय ब्लॉब, वेक्टर, स्थानीय समन्वय और वर्कर चुनता है। Solo में Redis चुनना SQLite या फ़ाइलों को प्रतिकृतियों में साझा-सुरक्षित नहीं बनाता।
LIBRE_PLATFORM_MODE=team साथ में चाहता है:
DATABASE_BACKEND=postgresऔरDATABASE_URL;BLOB_STORE_BACKEND=s3;VECTOR_STORE_BACKEND=pgvector;COORDINATION_BACKEND=redisऔरREDIS_URL; तथाJOB_WORKER_MODE=external।
यह एक संगत सेट है। कोई साझा निर्भरता गायब या स्थानीय बैकएंड मिला हो तो team शुरू नहीं होता।
मौजूदा solo स्थापना माइग्रेट करना
सभी ऐप और वर्कर रोकें। उदाहरण npm/Homebrew स्थापित libre-webui उपयोग करते हैं; न हो तो npx --yes libre-webui@latest। स्रोत से एक बार बनाकर libre-webui migrate-postgres की जगह npm run migrate:postgres --। लक्ष्य PostgreSQL, S3 और कुंजी वातावरण team जैसा सेट करें, पहले केवल-पठन विश्लेषण:
libre-webui migrate-postgres \
--source /absolute/path/to/data.sqlite \
--plugins /absolute/path/to/plugins \
--mode dry-run
केवल रिपोर्ट वाले खाली लक्ष्य पर लागू करें। विफलता चेकसम जर्नल छोड़ती है; उसी स्रोत/लक्ष्य को जारी रखें:
libre-webui migrate-postgres \
--source /absolute/path/to/data.sqlite \
--plugins /absolute/path/to/plugins \
--mode apply
# Only after an interrupted apply of this exact source and target:
libre-webui migrate-postgres \
--source /absolute/path/to/data.sqlite \
--plugins /absolute/path/to/plugins \
--mode apply --resume
libre-webui migrate-postgres \
--source /absolute/path/to/data.sqlite \
--plugins /absolute/path/to/plugins \
--mode validate
संबंधित पंक्ति, प्लगइन, स्थानीय ब्लॉब, वेक्टर और पुराने persona वेक्टर PostgreSQL/S3/PGVector में स्थानांतरित और प्रमाणित होने तक पूरा चिह्न नहीं मिलता। ENCRYPTION_KEY स्रोत .encryption_key से मिलना और STORAGE_ENCRYPTION_KEYS में सक्रिय कुंजी तथा legacy होना चाहिए।
पैकेज team प्रोफ़ाइल चलाना
सुरक्षित बंद विफल नमूने से शुरू करें। वातावरण फ़ाइल रिपॉज़िटरी बाहर और ऑपरेटर तक सीमित रखें:
cp deploy/team/.env.example /absolute/path/to/libre-team.env
chmod 600 /absolute/path/to/libre-team.env
हर REPLACE_* बदलें। PostgreSQL पासवर्ड openssl rand -hex 32 जैसी URL-सुरक्षित वर्णमाला से बनाएँ क्योंकि वही DATABASE_URL में है। ENCRYPTION_KEY और STORAGE_ENCRYPTION_KEYS मान ठीक 64 hex अक्षर हों। नई स्थापना में legacy और ENCRYPTION_KEY समान; माइग्रेशन में दोनों स्रोत कुंजी। नए ब्लॉब के लिए दूसरी सक्रिय कुंजी उपयोग कर पुराने तब तक रखें जब तक सूची उन्हें अनुपयोगी न सिद्ध करे।
फ़ाइल POSTGRES_MIGRATION_MODE, POSTGRES_POOL_MAX, PostgreSQL समय-सीमा, REDIS_CONNECT_TIMEOUT_MS, OLLAMA_BASE_URL, OLLAMA_TIMEOUT, OLLAMA_LONG_OPERATION_TIMEOUT, OLLAMA_MAX_CONTEXT सेट कर सकती है; Compose ऐप और वर्कर को समान देता है। समय 1,000–3,600,000 ms, संदर्भ 128–2,097,152 टोकन; लंबा समय सामान्य से छोटा नहीं। गलत मान स्थिति बनने से पहले रोकते हैं। स्थानीय Agent CLI और Codex OAuth बाहरी वर्कर पर समर्थित नहीं; team उन्हें बंद रखता है। प्रतिकृति, वर्कर, PostgreSQL/PGVector, Redis, संस्करणित MinIO और गेटवे शुरू करें:
docker compose --env-file /absolute/path/to/libre-team.env \
-f docker-compose.team.yml up --build --scale libre-webui=3 -d
docker compose --env-file /absolute/path/to/libre-team.env \
-f docker-compose.team.yml ps
मूल team Docker सॉकेट नहीं माउंट करता; Work बंद है। हर जीवनचक्र कमांड में ओवरले जोड़कर खोलें:
docker compose --env-file /absolute/path/to/libre-team.env \
-f docker-compose.team.yml -f docker-compose.team.work.yml \
up --build --scale libre-webui=3 -d
docker compose --env-file /absolute/path/to/libre-team.env \
-f docker-compose.team.yml -f docker-compose.team.work.yml ps
ओवरले ऐप और वर्कर को आंतरिक फ़िल्टर सॉकेट प्रॉक्सी देता है। कच्चा सॉकेट या समूह नहीं, होस्ट फ़ोल्डर Work बंद। प्रॉक्सी info, images, containers, exec, volumes, networks और आवश्यक लिखना देता है। यह API घटाता, किरायेदार सीमा नहीं बनाता; कंटेनर होस्ट पथ माउंट कर सकता है। अलगाव के लिए अलग VM या rootless सेवा उपयोग करें।
Compose PostgreSQL, Redis, MinIO सार्वजनिक न करें। प्रबंधित निर्भरता में TLS वाला Helm team उपयोग करें। बाहरी वर्कर बिना तैयारी विफल।
स्थायित्व और माइग्रेशन सीमा
पहचान/प्राधिकरण असिंक्रोनस रिपॉज़िटरी उपयोग करते हैं। लेन-देन कॉलबैक उसी कनेक्शन की कार्य इकाई पाता है; अंदर वैश्विक रिपॉज़िटरी अस्वीकार है। यह SQLite व्यवहार रखते PostgreSQL पूल की सीमा है।
SQLite समन्वयक शिमा जाँच के बाद पुरानी स्थापना अपनाता है। माइग्रेशन संख्या/नाम/चेकसम दर्ज, हर शुरू पर जाँच, नया/अज्ञात/गलत जर्नल अस्वीकार और त्रुटि पर प्रारंभ रोकता है। तैयारी और पुनर्प्राप्ति वही अनुबंध उपयोग करते हैं।
स्थिति सेवाओं से पहले प्रारंभ SQLite और WAL/SHM को निजी अस्थायी फ़ोल्डर में कॉपी कर जाँचता है। PLATFORM_PREFLIGHT_TMP_DIR में पर्याप्त स्थान चाहिए। Docker/Helm अलग डिस्क माउंट करते हैं, सीमित /tmp पर निर्भर नहीं। पुरानी कुंजी या घोंसला डेटा फ़ोल्डर गायब हो तो नई स्थिति बनने से पहले रोकता है।
शिमा v4 एन्क्रिप्टेड ईमेल के लिए कुंजीबद्ध समानता टोकन जोड़ता है। पुनर्प्राप्ति उपस्थिति/मिलान माँगती है। v4 कमिट के बाद संकीर्ण विफलता में प्रमाणित ईमेल का अनुपस्थित टोकन या बिना आवरण पुराना मान स्वीकार है ताकि भराई पूरी हो। खाली मान NULL बनता है; टूटा आवरण या अंतर रोकता है।
ऐप सेवाएँ असिंक्रोनस उपभाषा रिपॉज़िटरी उपयोग करती हैं। स्थानीय SQLite एडाप्टर, माइग्रेशन/जाँच और स्पष्ट स्वास्थ्य तक सीमित। रनटाइम भंडारण चुनी Persistence से आता; PostgreSQL SQLite या cwd JSON पर वापस नहीं जाता।
स्थायी कार्य रनटाइम ड्राइवर-निरपेक्ष है। अभिनेता अधिकार पहचान रिपॉज़िटरी से; स्थानीय कार्य रिपॉज़िटरी एक एडाप्टर सीमा में। प्रकाशक SQLite में अपारदर्शी सिंक्रोनस, PostgreSQL में लेन-देन निष्पादक पाते हैं; better-sqlite3 नहीं।
ब्लॉब और वेक्टर आधार
गैलरी/दस्तावेज़ BlobStore; RAG/persona स्मृति VectorStore उपयोग करते हैं। पुराने SQLite गैलरी रिकॉर्ड दो तरह पढ़कर पहली पहुँच में ब्लॉब संदर्भ बनते हैं। संबंधी मेटाडेटा और स्थायी संदर्भ प्रामाणिक; प्रदाता URL और भौतिक S3 कुंजी सामग्री नहीं। अटैचमेंट, अवतार और शेष बाइनरी अभी माइग्रेट नहीं।
पुनर्प्राप्ति हर स्थायी वस्तु और वेक्टर आवरण को स्पष्ट सीमा में क्रम से प्रमाणित करती है। पुराने टेक्स्ट और आवाज़ आवरण ENCRYPTION_KEY से सख़्त जाँचे जाते; डिक्रिप्ट-मूल वापस विकल्प नहीं। स्रोत आरंभ, सुधार, पुनर्लेखन या हटाया नहीं जाता; खराब एन्क्रिप्शन, गलत कुंजी, गैर-मानक लेआउट और सीमा बाधा हैं।
डिफ़ॉल्ट 250,000 वस्तु, 64 GiB ब्लॉब, 250,000 वेक्टर पंक्ति, 4 GiB वेक्टर एन्क्रिप्शन और 500 मिलियन घटक। RecoveryInventoryOptions परीक्षण बदल सकते हैं; CLI नमूना या छोड़ता नहीं।
पुराने एन्क्रिप्शन की सीमा एक मिलियन क्षेत्र और 16 GiB सहेजा/प्रमाणित सादा टेक्स्ट है। पुराने शिमा का असली सादा टेक्स्ट संगत; प्रमाणित आवरण ही गिने जाते हैं। आवाज़ आवरण प्रोफ़ाइल/मालिक/क्षेत्र से प्रमाणित हैं।
एन्क्रिप्टेड स्थानीय ब्लॉब
BlobStore मालिक-सीमित स्ट्रीम put/read, metadata/stat, समावेशी रेंज और समशक्त हटाना देता है। LocalEncryptedBlobStore ${DATA_DIR}/blobs में UUID वस्तु लिखता है। विशिष्ट स्टेजिंग, fsync, परमाणु नाम बदलना, 0700 फ़ोल्डर और 0600 फ़ाइल उपयोग करता है।
हर वस्तु की यादृच्छिक 256-bit डेटा कुंजी। AES-256-GCM निजी मेटाडेटा और अलग भाग प्रमाणित करता है। अतिरिक्त डेटा ब्लॉब ID, मालिक, उद्देश्य, भाग, लंबाई बाँधता है। संस्करणित keyring कुंजी लपेटता है। वर्णक आकार, SHA-256, प्रकार, समय, फ़ॉर्मैट, कुंजी ID रखता है। पूरी पढ़ाई SHA-256 और रेंज छुए भाग जाँचती है।
कोटा स्ट्रीम से पहले क्षमता आरक्षित, वास्तविक बाइट लेता, दृश्यता के बाद कमिट और विफल आरक्षण छोड़ता है। SQLite BEGIN IMMEDIATE; PostgreSQL serializable लेन-देन/पंक्ति लॉक। S3 मेटाडेटा और कोटा एक लेन-देन। प्रारंभ समाप्त आरक्षण और गायब ब्लॉब मिलाता है। BLOB_QUOTA_BYTES_PER_USER सीमा, BLOB_QUOTA_RESERVATION_TTL_MS अवधि।
BLOB_STORE_BACKEND=s3 निजी S3 बकेट उपयोग करता है। Libre अपारदर्शी कुंजी और एन्क्रिप्टेड भाग अपलोड, वर्णक PostgreSQL में, HTTP रेंज, SHA-256 और समशक्त हटाना देता है। हटाने पंक्ति भौतिक और मेटाडेटा/कोटा हटने तक रहती; समंजन पुनः प्रयास और अनाथ हटाता है। MinIO परीक्षण प्रतिकृति पढ़ना/हटाना, किरायेदार अलगाव, कोटा विवाद, अधूरी स्ट्रीम और DB विफलता कवर करता है।
एन्क्रिप्टेड अंतर्निहित वेक्टर
VectorStore हर क्वेरी/परिवर्तन में अभिनेता चाहता है। रिकॉर्ड नेमस्पेस, किरायेदार ID, मालिक, संसाधन, मॉडल, आयाम, संस्करण, स्रोत संशोधन, गुण और अनुमति रखते हैं।
SQLite एन्क्रिप्टेड वेक्टर बाहर आने से पहले नेमस्पेस/मॉडल/आयाम/संस्करण, मालिक/अनुमति, संसाधन, गुण शर्त लगाता है। केवल सीमित अधिकृत उम्मीदवार डिक्रिप्ट/कोसाइन अंकित होते हैं। वही ID मालिक पर अलग, दूसरा किरायेदार नहीं खुलता। अपसर्ट वेक्टर/ACL/गुण परमाणु बदलता; हटाना मालिक-सीमित और शृंखलित।
एम्बेडिंग AES-256-GCM और पहचान/मॉडल अतिरिक्त डेटा उपयोग करते हैं। खोज योग्य पहचान, अनुमति, मॉडल, संस्करण, संशोधन और फ़िल्टर सादा हैं; रहस्य न रखें। एम्बेडिंग संवेदनशील व्युत्पन्न डेटा हैं।
VECTOR_STORE_BACKEND=pgvector सभी शर्त दूरी क्रम और LIMIT वाले SQL में लगाता है। बाद में वैश्विक पड़ोसी फ़िल्टर वर्जित। समूह हर क्वेरी में विश्वसनीय सदस्यता से; groupIds अनदेखा। अनुमति वापसी तुरंत।
दस्तावेज़ ग्रहण और पुनर्जनन काम से पहले एक अपरिवर्तनीय विनिर्देश लेता है: सक्षम, मॉडल, वेक्टर/खंड संस्करण, आकार, ओवरलैप, सीमा। यही खंड, संबंधी प्रकाशन, अपसर्ट और क्वेरी चलाता है; बीच पसंद बदलना मिश्रण नहीं। मेटाडेटा संशोधन और विनिर्देश दर्ज, SQL मैनिफ़ेस्ट है।
पुनर्जनन हर दस्तावेज़ की स्वतः नवीकृत लीज़ रखता और प्रकाशन/परिवर्तन से पहले-बाद मालिक पंक्ति व हटाने निशान जाँचता है। अपसर्ट के दौरान हटाना हो तो बाद की जाँच बने वेक्टर हटाती है। PostgreSQL/team पढ़ाई PGVector नहीं बदलती। SQLite सटीक मैनिफ़ेस्ट पर लीज़ से आलसी प्रकाशन करता; व्यस्त संशोधन कीवर्ड या स्पष्ट पुनर्जनन के लिए रहता है।
इंडेक्स अधिकतम 1,000 वेक्टर बैच में बदलते; जाँच पूर्ण मैनिफ़ेस्ट पृष्ठित करती है। दस्तावेज़ अधिकतम 100,000 खंड; 100,001वाँ एम्बेडिंग से पहले अस्वीकार और बिना पुनः प्रयास विफल कतार। खंड आकार बढ़ाएँ।
मैनिफ़ेस्ट से पहले solo में मॉडल जानकारी रहित प्रमाणित इनलाइन वेक्टर हो सकते हैं। पहली अर्थ खोज अधिकृत टेक्स्ट फिर विभाजित कर वर्तमान विनिर्देश से सभी वेक्टर लीज़ में बनाती है। पुराना डेटा कॉपी या आज की पसंद से लेबल नहीं। प्रदाता विफलता पुरानी कीवर्ड खोज रखती है।
SQLite से team माइग्रेशन पुराने दस्तावेज़ को वर्तमान प्रमाणित मैनिफ़ेस्ट और सटीक एन्क्रिप्टेड इंडेक्स न ढकें तो बंद विफल। वर्तमान पसंद ऐतिहासिक मॉडल सिद्ध नहीं। बाधा पर वही DATA_DIR/ENCRYPTION_KEY solo चलाएँ, मॉडल चुनें, Settings -> Documents -> Regenerate embeddings उपयोग कर पुनः जाँचें। फिर team इनलाइन एन्क्रिप्शन छोड़कर प्रमाणित वेक्टर ले जाता है।
गोपनीयता अलग है। SQLite ACL के बाद एम्बेडिंग एन्क्रिप्ट करता है। PGVector संख्याओं पर काम करता, कॉलम ऐप से एन्क्रिप्ट नहीं। TLS, एन्क्रिप्टेड PostgreSQL, न्यूनतम भूमिका, सीमित प्रशासन और सामग्री-रहित SQL लॉग चाहिए। स्रोत टेक्स्ट, persona स्मृति, गैलरी और वर्णक आवरण-एन्क्रिप्टेड; वेक्टर गुण सादा और रहस्य-रहित।
भंडारण एन्क्रिप्शन कुंजी
संस्करणित keyring पर स्थिर 64-अक्षर ENCRYPTION_KEY, STORAGE_ENCRYPTION_KEYS में वही legacy, और STORAGE_ENCRYPTION_ACTIVE_KEY_ID चाहिए। लिखना सक्रिय, पढ़ना सभी ID उपयोग करता है। यह पुराने सेवा को अलग कुंजी बनाने से रोकता है। सब पुनर्लिखित/जाँचे तक पुरानी कुंजी रखें।
मैप न हो तो एडाप्टर 64-अक्षर ENCRYPTION_KEY को legacy या ${DATA_DIR}/.encryption_key पढ़ता है। केवल सामान्य, लिंक-रहित निजी फ़ाइल; बनाता/बदलता नहीं। वातावरण कुंजी से टकराए तो प्रारंभ बंद। रोटेशन में पुरानी कुंजी जाँच तक legacy। गलत/गायब/अज्ञात कुंजी बंद विफल।
अंतर्निहित क्वेरी SQLite में ACL/मेटाडेटा लगाकर उम्मीदवार संख्या, एन्क्रिप्टेड बाइट और आयाम काम गिनती है, फिर Node को देती है। बजट पार हो तो क्वेरी बंद और दायरा घटाना चाहिए।
समन्वय
अनुबंध ईवेंट, समाप्त कैश, फ़ेंस लीज़ और स्थिर-विंडो दर सीमा देता है। स्थानीय केवल एक solo प्रतिकृति। Redis अलग कमांड/सदस्यता क्लाइंट, सीमित सामग्री, स्वास्थ्य, नेमस्पेस, परमाणु स्क्रिप्ट, मालिक टोकन, समाप्ति और फ़ेंस उपयोग करता है। Redis त्रुटि के बाद स्थानीय विकल्प नहीं।
Redis सत्य स्रोत नहीं। प्राधिकरण, स्थायी कार्य और पुनः चलने योग्य ईवेंट DB में; Redis जागरण, कैश अमान्यकरण, उपस्थिति, कोटा और समन्वय। गंभीर काम दुष्प्रभाव से पहले DB लीज़/फ़ेंस जाँचता है।
टिकट, कैश, साझा अमान्यकरण, कनेक्शन सीमा, Work ईवेंट और वितरित लॉक यह सीमा उपयोग करते हैं। केवल Redis स्थानीय स्थायित्व साझा नहीं बनाता; पूरा team चाहिए।
स्थायी कार्य और ईवेंट
SQLite माइग्रेशन v3 कार्य, प्रयास, स्ट्रीम सिर और क्रमबद्ध ईवेंट तालिकाएँ देता है। अनुबंध समशक्त कतार, सीमित पुनः प्रयास, रद्द, प्रगति, लीज़ धड़कन/वापसी, विफल कतार और कर्सर पुनः चलाना समर्थन करता है। एन्क्रिप्टेड JSON platform keyring और कार्य/ईवेंट पहचान उपयोग करता; संदर्भ सीमित ID।
SQLite v13 और PostgreSQL v12 (stream_id, subject_id, global_cursor) इंडेक्स जोड़ते हैं। फ़िल्टर सीमा से पहले लगते, पुराने जनरेशन बजट नहीं लेते।
ऐप और बाहरी वर्कर दस्तावेज़, मीडिया और सफ़ाई हैंडलर दर्ज करते हैं। व्यवस्थापक सीमित निरीक्षण/रद्द देता है। कतार समशक्त और संबंधी बनाना/हटाना उसी लेन-देन में कार्य जोड़ता है। सफ़ाई वेक्टर, ब्लॉब, संदर्भ, कैश और कार्य पुनः प्रयास-सुरक्षित हटाती है।
पुनर्प्राप्ति स्थिति, प्रयास, स्ट्रीम, कर्सर गिनती; सक्रिय काम रोकती और सामग्री प्रमाणित करती है। सिर अंतर और टूटे क्रम अस्वीकार।
एकरूपी लीज़ टोकन पुराने वर्कर रोकते हैं। ठीक-एक बार गारंटी नहीं: बाहरी दुष्प्रभाव के बाद सफलता लिखने से पहले विफलता हो सकती है। प्रदाता समशक्ति कुंजी या लेन-देन आउटबॉक्स और दुष्प्रभाव से पहले प्राधिकरण चाहिए।
SQLite v4 यादृच्छिक पहचान एन्क्रिप्शन के साथ अद्वितीय ईमेल खोज टोकन जोड़ता है। ऐप कुंजी HMAC बिना सादा या नियत एन्क्रिप्शन के डुप्लिकेट रोकता है। प्रारंभ पुराने ईमेल भरकर ही ट्रैफ़िक लेता है।
स्वास्थ्य और पुनर्प्राप्ति
जाँच प्रक्रिया जीवन और निर्भरता तैयारी अलग करती है:
/healthऔर/health/liveकेवल प्रक्रिया;/health/readyDB, शिमा जर्नल, लिखने योग्य डेटा और आवश्यक निर्भरता जाँचता, वैकल्पिक प्रदाता नहीं; और/health/deepव्यवस्थापक चाहता और HTTP चक्र बाहर सीमित वर्कर में SQLite जाँचता है। Ollama जैसी वैकल्पिक जाँच चेतावनी है।
libre-webui recovery-check --json; स्रोत से npm run recovery:check -- --json चलाएँ। केवल-पठन सूची शिमा/कुंजी, ब्लॉब, वेक्टर, पुराने ऐप/आवाज़ और कार्य/ईवेंट प्रमाणित करती; आकार, प्लगइन, मीडिया, Work, चेकपॉइंट, सक्रिय काम, बाधा और बहिष्करण बताती है। यह बैकअप-पूर्व जाँच है। पुनर्प्राप्ति तैयारी देखें।
प्रमाणित बहु-प्रतिकृति संचालन
Team PostgreSQL, PGVector, Redis, S3, साझा गुप्त और JOB_WORKER_MODE=external साथ हों तो 3+ ऐप प्रतिकृति और बाहरी वर्कर के लिए प्रमाणित है। Helm रेंडर पर बाध्य करता; पूर्ण team बिना बहु-प्रतिकृति नहीं। माइग्रेशन PostgreSQL सलाह लॉक से नेता चुनता है।
प्रमाण रन योग्य है: रिलीज़ पाइपलाइन वास्तविक इमेज से तीन-प्रतिकृति अभ्यास (npm run test:team-platform) करती; प्रतिकृति स्ट्रीम, लिखते वर्कर मृत्यु, Redis विफलता, अनुमति वापसी, साझा दर सीमा, S3 पुनः हटाना और किरायेदार अलगाव जाँचती है। secrets.existingSecret और networkPolicy.enabled से मज़बूत करें। Pod सुरक्षा root-रहित, केवल-पठन जड़, हटे अधिकार, seccomp RuntimeDefault, कोई उन्नयन नहीं।
ज्ञात शेष परिवर्तन
आधार का अर्थ हर बाइनरी क्षेत्र ब्लॉब नहीं। आवाज़ ऑडियो, अटैचमेंट, अवतार और भविष्य प्लगइन को संदर्भ मेटाडेटा, दोहरा पढ़ना/भरना, संरक्षण और हटाने परीक्षण चाहिए। हर एम्बेडिंग कॉल को मॉडल, आयाम, संस्करण, स्रोत संशोधन, मालिक, दायरा और विश्वसनीय अनुमति VectorStore से ले जानी चाहिए; सीधी तालिका पहुँच नहीं।
नए लंबे या बाहरी दुष्प्रभाव स्थायी लक्ष्य दर्ज, रद्द/पुनः प्रयास और संबंधी परिवर्तन के साथ लेन-देन कतार उपयोग करें। Team में खोलने से पहले प्रतिकृति अपलोड, पढ़ना, खोज, हटाना, बैकअप और पुनर्प्राप्ति जाँच में जोड़ें।