सामग्री पर जाएँ

मॉड्यूल ​

मॉड्यूल पैकेज Arkvory में एक सुविधा जोड़ता है। Arkvory केवल वही पैकेज इंस्टॉल करता है जिनके हस्ताक्षर वह सत्यापित कर सकता है। इस पेज के कमांड इंस्टॉलेशन के होस्ट पर चलते हैं: Linux पर root के रूप में, Windows पर व्यवस्थापक के रूप में। कंसोल और HTTP API न मॉड्यूल इंस्टॉल कर सकते हैं, न कुंजियों पर भरोसा कर सकते हैं, इसलिए कंसोल का चुराया गया व्यवस्थापक खाता सर्वर पर कोड नहीं चला सकता।

सेवाएँ हर बार शुरू होने पर इंस्टॉल किए गए मॉड्यूल फिर से जाँचती और लोड करती हैं। कोई मॉड्यूल तभी चलता है जब आप उसे चालू करते हैं।

Arkvory Pro ​

Arkvory Pro मुफ़्त Arkvory कोर के लिए ProAnimaStudio के हस्ताक्षरित, सशुल्क मॉड्यूलों का वैकल्पिक समूह है। Pro 0.1.0 Windows/Linux x64 पर Arkvory 0.6.3 के साथ काम करता है। पैकेज और लाइसेंस ProAnimaStudio से लें; मॉड्यूल कोर से अलग इंस्टॉल होते हैं। इंस्टॉलेशन और लाइसेंस देखें।

  • डीडुप्लिकेशन: साझा चंक को एक बार रखता है और कई ऑब्जेक्ट में दोबारा उपयोग करता है। साझा कैटलॉग प्रकाशन, पाठकों और बैकअप के साथ गार्बेज कलेक्शन का समन्वय करता है।
  • डेल्टा ट्रांसफ़र: संगत क्लाइंट के पास मौजूद सामग्री का दोबारा उपयोग करते हैं और केवल अनुपलब्ध डेटा या पैच भेजते हैं। समूह में सर्वर स्टोरेज और ट्रांसफ़र मॉड्यूल तथा डेल्टा क्लाइंट मॉड्यूल हैं। बचत डेटा और क्लाइंट पर निर्भर है; सामान्य HTTP डाउनलोड अपने आप डेल्टा ट्रांसफ़र नहीं बनते।
  • लाइसेंसिंग: सशुल्क लेखन और अनुकूलन नियंत्रित करती है। लाइसेंस समाप्त या अनुपलब्ध होने पर मौजूदा डेटा पढ़ने योग्य रहता है; नए अपलोड कोर स्टोरेज और सामान्य ट्रांसफ़र पर लौटते हैं। Pro कोटा स्वीकृत अधूरे अपलोड सहित Pro डेटा का तार्किक आकार गिनता है, डीडुप्लिकेशन की छूट के बिना। updatesUntil नए मॉड्यूल बिल्ड इस्तेमाल करने का अधिकार सीमित करता है।

मॉड्यूल सेवाएँ शुरू होने पर लोड होते हैं; Docker Compose इंस्टॉलेशन उन्हें लोड नहीं करते। अपडेट से पहले मेटाडेटा और मॉड्यूल डेटा का बैकअप लें। साझा कैटलॉग पहली बार अपनाते समय पुराने API/worker लेखन प्रोसेस रोकें; पुराने और नए लेखकों को साथ चलाना समर्थित नहीं है। डेटा और लाइसेंस स्थिति साथ बहाल करें, रिकवरी पूरी होने दें और सामान्य लेखन से पहले एक नया Pro अपलोड जाँचें।

बड़े कैटलॉग की रिकवरी लंबी हो सकती है: स्वीकृति स्टैंड पर पहले से बहाल साझा कैटलॉग वाले 40 लाख चंक बिना रीस्टार्ट 32 मिनट 43 सेकंड बाद लिखने योग्य हुए। यह रिकवरी समय की गारंटी या 4 TB थ्रूपुट माप नहीं है। एक भौतिक होस्ट पर HA परीक्षण आपकी साइट के fencing और विफलता डोमेन की जाँच का विकल्प नहीं है। Pro कोर के लाइसेंस की शर्तें नहीं बदलता।

मॉड्यूल क्षमताएँ और तृतीय-पक्ष प्लगइन ​

हस्ताक्षरित ProAnimaStudio मॉड्यूल स्टोरेज, ट्रांसफ़र प्रोटोकॉल और HTTP रूट जोड़ सकते हैं तथा अपनी भूमिकाओं के अनुसार पृष्ठभूमि कार्य, सीमित गणना और समन्वित डेटा सफ़ाई की सेवाएँ पा सकते हैं। मुफ़्त मॉड्यूलों को सशुल्क सुविधाओं का लाइसेंस नहीं चाहिए; सशुल्क मॉड्यूल अपनी आवश्यकताएँ घोषित करते हैं। हर पैकेज को कोर की extension API से संगत होना और हस्ताक्षर तथा अखंडता जाँच पास करनी होती है।

इस रिलीज़ में तृतीय-पक्ष प्लगइन इंस्टॉल और चलाना उपलब्ध नहीं है। आप भरोसेमंद लेखक कुंजियाँ रख सकते हैं, लेकिन कुंजी जोड़ने से प्लगइन इंस्टॉलेशन चालू नहीं होता। मॉड्यूल इंटरफ़ेस को मनमाने कोड के लिए सैंडबॉक्स न समझें।

पैकेज इंस्टॉल करें ​

  1. पैकेज फ़ाइल arkvory-module-<id>-<version>.tgz को होस्ट पर कॉपी करें।

  2. उसे जाँचें और उसकी शर्तें पढ़ें:

    bash
    sudo arkvory module install /root/arkvory-module-sample-1.0.0.tgz --root /opt/proanima-arkvory

    कमांड मॉड्यूल, उसकी भूमिकाएँ, वह कौन-सा डेटा रखता है, हस्ताक्षर कुंजी और पैकेज का SHA-256 दिखाता है, फिर मॉड्यूल की शर्तें। अभी कुछ नहीं बदलता।

  3. उसे इंस्टॉल करें:

    bash
    sudo arkvory module install /root/arkvory-module-sample-1.0.0.tgz --root /opt/proanima-arkvory --yes

Arkvory पैकेज को तब अस्वीकार करता है जब:

कारणसंदेश में कोड
हस्ताक्षर ProAnimaStudio की मॉड्यूल कुंजी का नहीं है, या मैनिफ़ेस्ट बदल गया हैunknown_key, wrong_key_class, signature_invalid
कोई फ़ाइल गायब है, बदली गई है या मैनिफ़ेस्ट में सूचीबद्ध नहीं हैfile_missing, file_mismatch, file_unlisted
आर्काइव में लिंक, डिवाइस, पैकेज से बाहर के पथ या केवल अक्षरों के केस में भिन्न नाम हैंlink_entry, special_entry, unsafe_path, case_collision
आर्काइव में नेटिव ऐड-ऑन (.node) हैnative_addon
मॉड्यूल को Arkvory का दूसरा संस्करण चाहिएmodule_incompatible
ProAnimaStudio ने यह संस्करण निरस्त कर दिया हैmodule_revoked, बदले में आने वाले संस्करण के साथ
कोई मौजूदा निरसन सूची नहीं (नीचे देखें)stale_revocations

सीमाएँ: प्रति पैकेज 1 GiB, प्रति फ़ाइल 256 MiB, 4096 फ़ाइलें। इससे बड़ा पैकेज उसका डेटा पढ़ने से पहले ही अस्वीकार हो जाता है।

जो संस्करण उन्हीं बाइट्स के साथ पहले से इंस्टॉल है, वह जैसा है वैसा रहता है। वही संस्करण अलग बाइट्स के साथ अस्वीकार होता है।

मॉड्यूल चालू करें और लोड करें ​

इंस्टॉल किया गया मॉड्यूल तब तक बंद रहता है जब तक आप उसे चालू नहीं करते। सेवाएँ मॉड्यूल केवल शुरू होते समय लोड करती हैं।

  1. मॉड्यूल को मॉड्यूल फ़ाइल में जोड़ें (ARKVORY_MODULES_FILE, एनवायरनमेंट वेरिएबल देखें)। मॉड्यूल की सेटिंग्स config में जाती हैं:

    json
    { "format": 1, "modules": { "sample": { "enabled": true } } }
  2. अगर मॉड्यूल फ़ाइलें रखता है, तो resources से उसकी डेटा डायरेक्टरी का आकार स्वीकृत करें, उदाहरण के लिए enabled के बगल में "resources": { "dataMiB": 512, "dataFiles": 10000 }। यह उस आकार की जगह लेता है जो पैकेज माँगता है। मॉड्यूल की डेटा डायरेक्टरी देखें।

  3. बदलाव लागू करें की तरह सेवाओं को पुनः आरंभ करें।

  4. ग्लोबल एडमिनिस्ट्रेटर के रूप में मॉड्यूल जाँचें: GET /api/v1/system/modules उसे API और हर रीड गेटवे पर running: true और health.status ok के साथ दिखाता है।

हस्ताक्षरित मॉड्यूल घोषित भूमिकाओं के अनुसार API, रीड गेटवे, worker और बैकअप एजेंट में चलते हैं। हर प्रक्रिया केवल अपनी भूमिका के लिए उपलब्ध और uses में घोषित सेवाएँ देती है। रूट के लिए routes आवश्यक है। Docker Compose अभी मॉड्यूल लोड नहीं करता।

मॉड्यूल स्टोरेज <module>.<name> के रूप में पंजीकृत होते हैं और नए अपलोड के लिए चुने जा सकते हैं। जब वे लिखना स्वीकार करना बंद करते हैं, नए अपलोड default का उपयोग करते हैं। हिस्सों से बने ऑब्जेक्ट को प्रकाशित करने से पहले कोर सभी बाइट जाँचता है। डेटा की सफाई सक्रिय रीड, सभी बैकअप पिन और कैप्चर अवरोध हटने तक प्रतीक्षा करती है। गणनाएँ सीमित थ्रेड में चलती हैं। सब्सक्रिप्शन सफल प्रसंस्करण के बाद ही इवेंट स्वीकार करते हैं और त्रुटि के बाद फिर से डिलीवर कर सकते हैं।

कोई सेवा मॉड्यूल का कोई भी कोड इम्पोर्ट करने से पहले पैकेज को फिर से जाँचती है:

  1. इंस्टॉलेशन डायरेक्टरी, modules/, मॉड्यूल सेट, रद्दीकरण सूची और उसकी डायरेक्टरी को केवल root (Windows पर SYSTEM और Administrators) या इंस्टॉलेशन डायरेक्टरी का मालिक बदल सकता है। इंस्टॉलेशन यही सेट करता है। जिस फ़ाइल को कोई दूसरा खाता बदल सकता है, और पैकेज के अंदर का लिंक, अस्वीकार किए जाते हैं (access_unsafe, access_link)।
  2. हस्ताक्षर, हर फ़ाइल और Arkvory का संस्करण, जैसे module install उन्हें जाँचता है।
  3. रद्दीकरण सूची। रद्द किया गया संस्करण कभी लोड नहीं होता। समाप्त सूची या सूची का न होना किसी मॉड्यूल को नहीं रोकता।

जो मॉड्यूल किसी जाँच में विफल होता है वह लोड नहीं होता; बाकी मॉड्यूल और Arkvory चलते रहते हैं। GET /api/v1/system/modules उसे running: false के साथ दिखाता है:

health.statusअर्थकोड
failedपैकेज अस्वीकार हुआ, या उसका कोड लोड या शुरू नहीं हुआfile_mismatch, unknown_key, module_incompatible, access_unsafe, config_invalid, start_failed और अन्य
revokedProAnimaStudio ने यह संस्करण रद्द कियारद्दीकरण सूची से कारण
unavailableहोस्ट पर पैकेज डायरेक्टरी नहीं हैmodule_unavailable

विफल मॉड्यूल Arkvory को तैयार स्थिति से तभी हटाता है (/health/ready 503 और module_failed लौटाता है) जब किसी दूसरे चालू मॉड्यूल को उसकी ज़रूरत हो। प्रकाशित फ़ाइलों के बाइट रखने वाला मॉड्यूल (डेटा layout) ऐसा कभी नहीं करता: Arkvory उसका डेटा परोसता रहता है और नए अपलोड मॉड्यूल के बजाय अपने स्टोरेज में लिखता है। लॉग module.refused और module.failed दर्ज करता है, कोड errorCode में होता है।

बदले हुए या गायब पैकेज को ठीक करने के लिए उसे फिर से इंस्टॉल करें। इंस्टॉलेशन की हर सेवा को वही मॉड्यूल दिखने चाहिए, चालू हों या नहीं: अलग मॉड्यूल वाला रीड गेटवे या वर्कर तैयार नहीं होता (module_plan_mismatch)। हर रीड गेटवे के होस्ट पर वही पैकेज इंस्टॉल करें।

मॉड्यूल की डेटा डायरेक्टरी ​

जो मॉड्यूल अपने इंडेक्स, कैश या स्थिति रखता है, उसे डेटा वॉल्यूम पर एक डायरेक्टरी मिलती है: default की स्टोरेज डायरेक्टरी में module-data/<id>/। इसका data भाग बैकअप के लिए है, cache भाग नहीं। Arkvory हर लेखन को स्वीकृत आकार के विरुद्ध गिनता है, MiB में और फ़ाइलों में, दोनों भागों को मिलाकर। इससे आगे का लेखन अस्वीकार किया जाता है (module_quota_exceeded) और मॉड्यूल चलता रहता है। स्वीकृत आकार के बिना मॉड्यूल केवल पढ़ सकता है। वॉल्यूम का रिज़र्व भी लागू होता है। रीड गेटवे पर मॉड्यूल वही फ़ाइलें पढ़ता है और उन्हें बदल नहीं सकता।

तार्किक बैकअप इंस्टॉल किए मॉड्यूल की backup भूमिका से प्रकाशित ऑब्जेक्ट के बाइट पढ़ता है; मॉड्यूल निर्देशिका, कैश और निजी समन्वय स्थिति को फ़ाइल सिस्टम इमेज की तरह कॉपी नहीं करता। कॉपी पूरी होने तक स्रोत मॉड्यूल इंस्टॉल और पढ़ने योग्य रखें। --to-default-storage मूल मॉड्यूल या सशुल्क लाइसेंस के बिना इन्हें सामान्य कोर blob के रूप में बहाल करता है; पूरे तार्किक आकार की जगह रखें। इंस्टॉलेशन रहस्य अलग बचाएँ और सशुल्क लेखन दोबारा शुरू करने से पहले लाइसेंस रिकवरी करें। मॉड्यूल हटाने से उसकी डेटा निर्देशिका नहीं मिटती; प्रकाशित ऑब्जेक्ट द्वारा संदर्भित फ़ाइलें न मिटाएँ।

extension API 0.7.0 में अपग्रेड करने से पहले मॉड्यूल डेटा लिखने वाली सभी पुरानी API और worker प्रक्रियाएँ रोकें। सभी नई लेखक प्रक्रियाएँ स्थापना के PostgreSQL coordinator से साझा कोटा लेखांकन करती हैं; अस्थायी फ़ाइलें भी कोटा में गिनी जाती हैं। पुराने और नए संस्करणों से एक साथ लिखना समर्थित नहीं है। क्रैश के बाद Arkvory आवश्यकतानुसार लेखांकन फिर बनाता है और पिछले स्वामी का डेटाबेस लॉक प्राप्त करने के बाद ही नए प्रोटोकॉल की अस्थायी डायरेक्टरी हटाता है। पुरानी अस्थायी फ़ाइलें अपने आप नहीं हटतीं और कोटा में गिनी जाती रहती हैं; लेखक प्रक्रियाएँ रोककर उनकी अलग से जाँच करें। backup प्रक्रियाओं को केवल पढ़ने की अनुमति है.

मॉड्यूल के रूट ​

मॉड्यूल अपने प्रीफ़िक्स /api/ext/<id>/v<major>/ के अंतर्गत HTTP रूट जोड़ सकता है, उदाहरण के लिए /api/ext/sample/v1/। मॉड्यूल का कोई भी कोड चलने से पहले Arkvory हर अनुरोध की जाँच करता है:

जाँच/api/v1 की तरह
क्रेडेंशियलवही कुंजियाँ, सत्र और टोकन; रूट हर साइन-इन कॉलर के लिए खुला होता है या केवल ग्लोबल एडमिनिस्ट्रेटर के लिए
अनुमतिरूट अपने पाथ की रिपॉज़िटरी पर जिस अनुमति का नाम देता है, जैसे content.read या upload.create: सर्विस कुंजी को वह अनुमति चाहिए, खाते को पढ़ने या लिखने का अधिकार
अनुरोध का बॉडीरूट की आकार सीमा, सर्वर की अपलोड सीमाएँ, समय-सीमाएँ और बैंडविड्थ
फ़ाइलेंArkvory स्वयं भेजता है: ETag, Range, If-Range, 304, डाउनलोड कतार और डाउनलोड बैंडविड्थ

त्रुटियाँ API के त्रुटि प्रारूप में होती हैं। मॉड्यूल क्रेडेंशियल या अन्य हेडर कभी नहीं देखता। रीड गेटवे मॉड्यूल के पठन रूट देता है और बाकी पर read_only लौटाता है।

हर मॉड्यूल अपने रूट का वर्णन एक OpenAPI दस्तावेज़ में करता है, और मॉड्यूल शुरू होते समय Arkvory दोनों का मिलान करता है। जिस मॉड्यूल के रूट नियम तोड़ते हैं, वह शुरू नहीं होता और कुछ नहीं देता; Arkvory चलता रहता है। GET /api/v1/system/modules उसे running: false और health.status failed के साथ दिखाता है:

कोडअर्थ
routes_invalidकोई रूट नियम तोड़ता है, जैसे मॉड्यूल के प्रीफ़िक्स से बाहर का पाथ या हर साइन-इन कॉलर के लिए खुला बदलाव
openapi_invalidOpenAPI दस्तावेज़ नहीं है या अमान्य है
openapi_route_mismatchकिसी रूट का दस्तावेज़ में कोई ऑपरेशन नहीं है, या किसी ऑपरेशन का कोई रूट नहीं है
transfer_invalidमॉड्यूल ऐसा ट्रांसफ़र प्रोटोकॉल देता है जो वह नहीं दे सकता

रूट के दस्तावेज़:

पताकौन पढ़ सकता हैसामग्री
GET /api/ext/openapi.jsonहर साइन-इन कॉलरइस सेवा द्वारा चलाए जाने वाले सभी मॉड्यूल के रूट, उन ऑपरेशन के साथ जिन्हें कॉलर कॉल कर सकता है
GET /api/v1/system/modules/{id}/openapiग्लोबल एडमिनिस्ट्रेटरएक मॉड्यूल के रूट

/api/v1/openapi.json कभी भी मॉड्यूल के रूट सूचीबद्ध नहीं करता। transfer प्रकार का मॉड्यूल फ़ाइलें ट्रांसफ़र करने का दूसरा तरीका दे सकता है: GET /api/v1/capabilities उसे transfer में सूचीबद्ध करता है। क्लाइंट उसका उपयोग केवल मेल खाते एक्सटेंशन के साथ करता है; अन्यथा वह फ़ाइलें सामान्य तरीके से ट्रांसफ़र करता है।

अपडेट, पिन और डाउनग्रेड ​

नए संस्करण की फ़ाइल को --yes के साथ इंस्टॉल करें। पिछला पैकेज अगले मॉड्यूल बदलाव तक होस्ट पर रहता है।

कामकमांड
इंस्टॉल किया गया संस्करण बनाए रखेंsudo arkvory module pin sample 1.0.0 --root …
अन्य संस्करण फिर से अनुमति देंsudo arkvory module pin sample --unpin --root …
पुराना संस्करण इंस्टॉल करेंsudo arkvory module install <file> --downgrade --yes --root …

पिन किया गया मॉड्यूल हर दूसरे संस्करण को तब तक अस्वीकार करता है जब तक आप पिन नहीं हटाते। स्थापित संस्करण से, या हटाए गए ऐसे संस्करण से जिसका पैकेज अभी भी होस्ट पर है, पुराने संस्करण के लिए --downgrade चाहिए।

इंस्टॉल किए गए मॉड्यूल जाँचें ​

bash
sudo arkvory module list --root /opt/proanima-arkvory

कमांड हर इंस्टॉल किए गए पैकेज को फिर से सत्यापित करता है, जैसा सेवाएँ उसे लोड करने से पहले करती हैं: हस्ताक्षर, हर फ़ाइल और आर्काइव। हर मॉड्यूल एक स्थिति दिखाता है:

स्थितिअर्थ
okपैकेज सुरक्षित है
refused: <code>कोई फ़ाइल बदली गई, जोड़ी गई या लिंक से बदली गई (file_mismatch, file_unlisted, link_entry और अन्य)
revoked (<reason>)ProAnimaStudio ने यह संस्करण निरस्त किया है। read path only का अर्थ है कि उसका डेटा पढ़ने योग्य बना रहता है

अस्वीकार किया गया पैकेज कभी उपयोग नहीं होता। उसे ठीक करने के लिए पैकेज फ़ाइल फिर से इंस्टॉल करें।

मॉड्यूल हटाएँ ​

bash
sudo arkvory module remove sample --root /opt/proanima-arkvory

मॉड्यूल इंस्टॉलेशन से हट जाता है, और उसका पैकेज अगले मॉड्यूल बदलाव तक होस्ट पर रहता है। जो मॉड्यूल प्रकाशित फ़ाइलों के बाइट्स संग्रहीत करता है (डेटा layout), उसे हटाया नहीं जा सकता: Arkvory module_owns_data के साथ अस्वीकार करता है, ताकि उसका डेटा कभी अपठनीय न हो।

निरस्तीकरण सूची ​

ProAnimaStudio निरस्त किए गए मॉड्यूल संस्करणों की हस्ताक्षरित सूची प्रकाशित करता है। हर सूची का एक क्रमांक होता है, और Arkvory कभी ऐसी सूची स्वीकार नहीं करता जिसका क्रमांक उसके पास मौजूद सूची से कम हो। मॉड्यूल पैकेज में नई सूची हो सकती है: पैकेज इंस्टॉल करने पर Arkvory उसे रख लेता है। जिस होस्ट से हब तक पहुँच नहीं है, उस पर सूची फ़ाइल खुद संग्रहीत करें:

bash
sudo arkvory module revocations /root/module-revocations.json --root /opt/proanima-arkvory

हर सूची समाप्ति तिथि के साथ हस्ताक्षरित होती है: डिफ़ॉल्ट 90 दिन, कभी 180 से अधिक नहीं। module install और module pin <id> <version> को मौजूदा सूची चाहिए; समाप्त सूची के साथ या सूची न होने पर वे stale_revocations के साथ अस्वीकार करते हैं। मौजूदा सूची वाला पैकेज भी मान्य है। फिर भी आगे बढ़ने के लिए --allow-stale-revocations जोड़ें: Arkvory चेतावनी दिखाता है और निर्णय को modules/audit.jsonl में दर्ज करता है। समाप्त सूची स्थापित मॉड्यूल को कभी नहीं रोकती: वे चलते रहते हैं और उनका डेटा पढ़ा जा सकता है; केवल निरसन प्रविष्टि किसी संस्करण को रोकती है। बड़े नंबर वाली सूची हमेशा संग्रहीत सूची की जगह लेती है, भले ही वह समाप्त हो चुकी हो।

जब ProAnimaStudio अपनी मॉड्यूल हस्ताक्षर कुंजी बदलता है, तो एक रिलीज़ में दोनों कुंजियाँ होती हैं और अगली सूची नई कुंजी से हस्ताक्षरित होती है; पुरानी कुंजी केवल बाद की रिलीज़ हटाती है। जब तक होस्ट पर पुरानी कुंजी से हस्ताक्षरित सूची है, उस रिलीज़ पर अपडेट अस्वीकार होता है: पहले मौजूदा सूची संग्रहीत करें। sudo arkvory module check-revocations --root … दिखाता है कि यह रिलीज़ संग्रहीत सूची की कुंजी पर भरोसा करती है या नहीं।

किसी प्लगइन लेखक पर भरोसा करें ​

आपकी टीम या किसी दूसरे लेखक के प्लगइन लेखक की कुंजी से हस्ताक्षरित होते हैं। ऐसे प्लगइन इंस्टॉल करने से पहले कुंजी को होस्ट की भरोसा सूची में जोड़ें। भरोसा सूची होस्ट की है: सेवाएँ उसे पढ़ सकती हैं, बदल नहीं सकतीं।

  1. लेखक से सार्वजनिक कुंजी फ़ाइल (.pub, minisign प्रारूप) लें, और उसका फ़िंगरप्रिंट किसी दूसरे माध्यम से।

  2. कुंजी दिखाएँ और फ़िंगरप्रिंट मिलाएँ:

    bash
    sudo arkvory module trust add /root/acme.pub --label "Acme platform team" --plugins "op-acme-*" --root /opt/proanima-arkvory
  3. उसे --yes के साथ जोड़ें।

विकल्पअर्थ
--labelकुंजी किसके पास है; अनिवार्य
--pluginsप्लगइन id जिन पर कुंजी हस्ताक्षर कर सकती है, अल्पविराम से अलग: सटीक id या * वाला उपसर्ग। डिफ़ॉल्ट op-*
--expiresUTC समय, जैसे 2027-01-31T00:00:00Z। उसके बाद कुंजी कोई नया इंस्टॉलेशन स्वीकार नहीं करती
--allow-in-processकुंजी के प्लगइन को Arkvory प्रक्रिया के भीतर चलने देता है। ऐसे कोड को सेवा के सभी अधिकार मिलते हैं

प्लगइन id हमेशा op- से शुरू होते हैं। प्लगइन कुंजी कभी ProAnimaStudio मॉड्यूल पर हस्ताक्षर नहीं करती, और ProAnimaStudio की कुंजियाँ कभी op- प्लगइन पर हस्ताक्षर नहीं करतीं। जो कुंजी होस्ट पहले से किसी दूसरे id से या किसी दूसरे प्रकार की कुंजी के रूप में जानता है, वह अस्वीकार होती है (duplicate_key)। हस्ताक्षर prehash वाले होने चाहिए, जो minisign के मौजूदा संस्करणों का डिफ़ॉल्ट है; पुराने हस्ताक्षर signature_algorithm के साथ अस्वीकार होते हैं।

sudo arkvory module trust list --root … भरोसेमंद कुंजियाँ दिखाता है। sudo arkvory module trust remove <key id> --root … एक कुंजी हटाता है।

यह रिलीज़ भरोसा सूची रखती है; प्लगइन बाद की रिलीज़ इंस्टॉल करेगी।

रुकावट के बाद ​

मॉड्यूल सेट का हर बदलाव अपडेट जर्नल में दर्ज होता है। अगर कोई कमांड बीच में रुक जाए, तो अगला डिप्लॉयमेंट कमांड Interrupted deployment के साथ अस्वीकार करता है। sudo arkvory recover --root … चलाएँ: यह पिछला मॉड्यूल सेट वापस लाता है। तब तक कुछ भी बदलने वाला हर मॉड्यूल कमांड अस्वीकार करता है, module trust और module revocations भी।

मॉड्यूल अनुरोध की अवधि ​

रूट स्ट्रीमिंग सहित उत्तर समाप्त होने तक कॉल करने वाले की अनुमतियाँ उपयोग करता है। रद्द होने या पूरा होने पर अनुमतियाँ वापस ली जाती हैं और पठन संसाधन बंद होते हैं। upload-read अधूरे अपलोड के स्वीकार किए गए भाग पढ़ता है और स्वामित्व, upload.read, सीमा तथा रद्दीकरण जाँचता है। मॉड्यूल चलते समय स्थानांतरण प्रस्ताव वापस ले सकता है। अगली क्षमता क्वेरी में वह नहीं दिखता; मौजूदा रूट और स्थानांतरण बने रहते हैं। क्लाइंट पुराने प्रस्ताव कैश कर सकता है, इसलिए रूट को हर कार्रवाई जाँचनी चाहिए।

व्युत्पन्न कैश की रिकवरी ​

हस्ताक्षरित मॉड्यूल derived-cache घोषित कर सकते हैं (extension API 0.9.0)। API और worker अपरिवर्तनीय generations बनाते और पढ़ते हैं; reader केवल पढ़ता है और backup को यह सेवा नहीं मिलती। हर अनुरोध में स्रोत की अनुमति जाँचना आवश्यक है। संसाधन बजट में पुराने data/cache और रोकी गई generations दोनों शामिल हैं। कैश न मिलने पर दोबारा बनाना या fallback आवश्यक है।

PostgreSQL session खोना फ़ाइल I/O रुकने का प्रमाण नहीं है। अनिश्चित owner की reservations और स्थायी reader references गिनी जाती रहती हैं। पहले इस core संस्करण की database migrations लागू करें। रिकवरी से पहले सभी संबंधित hosts रोककर प्रक्रियाओं और I/O का अंत सत्यापित करें, या सटीक owner process incarnation के समाप्त होने और फिर शुरू न हो सकने का प्रमाण दें; पहुँच से बाहर hosts पर fencing करें। diagnostics से सटीक owner UUID लें और प्रमाण दर्ज करें। PID, timeout या DB lock का न होना पर्याप्त नहीं है।

विश्वसनीय host पर ARKVORY_DATABASE_URL सेट करके इस core संस्करण के built packages से नीचे की command चलाएँ। flag भौतिक रूप से रुकने की पुष्टि है; सक्रिय owner lock होने पर रिकवरी फिर भी अस्वीकार होती है। पुष्टि के बिना कोई कार्रवाई नहीं होती। फिर reconciliation शुरू करके सफाई सत्यापित करें; पुष्टि मात्र से quota तुरंत मुक्त नहीं होता। यह host maintenance है, module या remote CLI का अधिकार नहीं।

sh
node scripts/recover-derived-cache.mjs --owner UUID --confirm-owner-stopped

मॉड्यूल समन्वय स्थिति ​

Extension API 0.10.0 हस्ताक्षरित मॉड्यूल के लिए सीमित आकार वाला परमाणु स्थिति रजिस्टर जोड़ता है। यह HA फ़ेलओवर के बाद सुरक्षित रहता है, लेकिन पोर्टेबल तार्किक बैकअप में शामिल नहीं होता। पुनर्स्थापना के बाद मॉड्यूल की स्पष्ट पुनः आरंभीकरण प्रक्रिया अपनाएँ; संग्रहीत ऑब्जेक्ट पढ़ना और पुनर्स्थापित करना उपलब्ध रहना चाहिए। यह स्थिति ऑब्जेक्ट संग्रहण से अलग है और मॉड्यूल दोबारा स्थापित करने पर रीसेट नहीं होती।

ट्रांसफ़र मॉड्यूल अपना प्रोटोकॉल अस्थायी रूप से हटा सकता है और नीति की जाँच सफल होने पर Arkvory को पुनः शुरू किए बिना उसे बहाल कर सकता है। हर अनुरोध पर मॉड्यूल की वर्तमान नीति लागू रहती है।

एक्सटेंशन API 0.12.0 हस्ताक्षरित स्टोरेज मॉड्यूल को तार्किक बाइट सीमा तय करने देता है। कोर सभी रिपॉजिटरी के ऑब्जेक्ट और स्वीकार किए गए अधूरे अपलोड का पूरा आकार गिनता है, डीडुप्लिकेशन की छूट के बिना। सीमा पूरी होने पर नए अपलोड डिफ़ॉल्ट स्टोरेज में जाते हैं; स्वीकृत अपलोड का गंतव्य बना रहता है और पुराने ऑब्जेक्ट पढ़े जा सकते हैं। सफ़ाई के बाद ही गिनती घटती है।

साझा संसाधन कैटलॉग ​

Extension API 0.13.0 हस्ताक्षरित मॉड्यूल को साझा संसाधन कैटलॉग देता है। जब तक अपलोड या निर्भर संसाधन किसी फ़ाइल का संदर्भ रखते हैं, वह सुरक्षित रहती है। केवल कोर की सफ़ाई अपलोड के संदर्भ छोड़ सकती है। भौतिक विलोपन पढ़ने और बैकअप पूरे होने की प्रतीक्षा करता है; विफलता पर दोबारा प्रयास के लिए निर्भरताएँ बनी रहती हैं।

इस कैटलॉग का उपयोग करने वाले मॉड्यूल में पहली बार अपग्रेड करने से पहले सभी पुराने API और worker प्रक्रियाएँ रोकें। पुराने और नए लेखन प्रक्रियाओं को एक साथ न चलाएँ। तार्किक पुनर्स्थापना के बाद सफ़ाई तब तक बंद रहती है जब तक मॉड्यूल सभी रेसिपी, फ़ाइलों और निर्भरताओं की सफल जाँच न कर ले। सफ़ाई फिर शुरू करने से पहले गायब या क्षतिग्रस्त डेटा की मरम्मत करें।

Arkvory · ProAnimaStudio