दस्तावेज़
iOS साथी को युग्मित करें
किसी मूल iOS बिल्ड को चालू डेस्कटॉप से कनेक्ट करें, प्रमाणपत्र सत्यापित करें और डिवाइस एक्सेस को नियंत्रित करें।
अंग्रेज़ी से स्वचालित रूप से अनुवादित। अंग्रेज़ी मूल देखें
कनेक्शन के दोनों सिरों की जाँच करें
साथी एक चालू डेस्कटॉप साइडकार का ग्राहक है। यह प्रोजेक्ट डेटाबेस, ज्योमेट्री कर्नेल, मॉडल प्रदाता या वर्कफ़्लो रनर को होस्ट नहीं करता है। युग्मित करने से पहले, पुष्टि करें कि डेस्कटॉप अपने प्रोजेक्ट खोलता है और फ़ोन वाई-फ़ाई, व्यक्तिगत हॉटस्पॉट, या पहले से कॉन्फ़िगर किए गए ओवरले/वीपीएन नेटवर्क के माध्यम से डेस्कटॉप पर जा सकता है।
युक्त देशी iOS बिल्ड का उपयोग करें modules/companion-net. एक्सपो गो में इस मॉड्यूल का अभाव है और यह पिन किया हुआ कनेक्शन नहीं बना सकता है। पैकेज में ब्राउज़र डेवलपमेंट फ़ॉलबैक भी है, लेकिन ब्राउज़र फ़ेच मूल पिनिंग नीति को लागू नहीं करता है। मेनिफेस्ट में एंड्रॉइड कॉन्फ़िगरेशन स्विफ्ट मॉड्यूल के एंड्रॉइड समकक्ष की आपूर्ति नहीं करता है।
bun install
bun run --cwd apps/mobile typecheck
bun run --cwd apps/mobile test
bun run --cwd apps/mobile ios iOS रन कमांड के लिए macOS, Xcode और CocoaPods की आवश्यकता होती है। भौतिक-डिवाइस निर्माण के लिए एक विश्वसनीय डिवाइस और हस्ताक्षर करने वाली टीम की आवश्यकता होती है। bun run --cwd apps/mobile build जावास्क्रिप्ट निर्यात करता है; यह इंस्टाल करने योग्य आईपीए नहीं बनाता है। देखें मोबाइल संदर्भ लेआउट और परिवहन कार्यान्वयन के लिए।
डेस्कटॉप गेटवे सक्षम करें
डेस्कटॉप सेटिंग्स खोलें → डिवाइस और उसका मोबाइल साथी पैनल, या उपयोग करें /settings/companion. गेटवे चालू करें, फिर एक नामित जोड़ी बनाएं और उसका क्यूआर कोड दिखाएं। यह सामान्य लूपबैक एपीआई से एक अलग श्रोता है: आईपीवी पर HTTPS4 0.0.0.0, पोर्ट 8443 डिफ़ॉल्ट रूप से।
सेवा पूर्णांक पोर्ट 1024–65535 स्वीकार करती है। यदि कोई अन्य एप्लिकेशन चयनित पोर्ट पर कब्जा कर लेता है, तो सक्षम करना विफल हो जाता है; एक मुफ़्त पोर्ट चुनें और परिणामी पते के साथ एक लिंक बनाएं। जिस नेटवर्क का आप उपयोग करना चाहते हैं उसके लिए डेस्कटॉप फ़ायरवॉल के माध्यम से कनेक्शन की अनुमति दें। एप्लिकेशन सार्वजनिक रिले, पोर्ट फ़ॉरवर्डिंग या वीपीएन नहीं बनाता है।
सक्षम स्थिति और पोर्ट कायम हैं। साइडकार पुनरारंभ होने के बाद, स्थानीय एपीआई तैयार होने के बाद गेटवे फिर से शुरू करने का प्रयास करता है। प्रमाणपत्र और निजी कुंजी फ़ाइलें साइडकार डेटा निर्देशिका के अंतर्गत रहती हैं companion/ उपनिर्देशिका; निजी कुंजी केवल स्वामी की अनुमतियों के साथ लिखी जाती है। मूल ऐप पेयरिंग के प्रमाणपत्र पर भरोसा करता है, न कि सामान्य वादे पर कि प्रत्येक स्थानीय प्रमाणपत्र सुरक्षित है।
डेस्कटॉप एपीआई के माध्यम से निरीक्षण करें और सक्षम करें
पुनरुत्पादित विकास सेटअप के लिए, आपके द्वारा नियंत्रित पृथक साइडकार के लॉन्च टोकन का उपयोग करें। पोर्ट 43111 को इसके रेडी-इवेंट पोर्ट से बदलें। ये डेस्कटॉप-प्रबंधन कॉल हैं; फ़ोन टोकन को अपना स्वयं का गेटवे प्रबंधित करने की अनुमति नहीं है।
CADCAM_URL=http://127.0.0.1:43111
CADCAM_TOKEN=local-development-token
CADCAM_PAIR_DIR=$(mktemp -d /tmp/cadcamfun-pair-guide.XXXXXX)
curl --fail-with-body "$CADCAM_URL/api/companion" -H "Authorization: Bearer $CADCAM_TOKEN"
curl --fail-with-body -X POST "$CADCAM_URL/api/companion/enable" -H "Authorization: Bearer $CADCAM_TOKEN" -H 'Content-Type: application/json' -d '{"port":18443}' स्थिति में सक्षम स्थिति, अशक्त पोर्ट/फ़िंगरप्रिंट, सुझाए गए होस्ट और डिवाइस प्रविष्टियाँ शामिल हैं। प्रमाणपत्र मौजूद होने से पहले फ़िंगरप्रिंट शून्य हो सकता है। एक सार्वजनिक स्वास्थ्य जांच लूपबैक प्रक्रिया स्वास्थ्य स्थापित करता है; यह साबित नहीं करता है कि HTTPS गेटवे सक्षम है, पहुंच योग्य है, या डिवाइस टोकन स्वीकार कर रहा है। उपयोग सहयोगी एपीआई सटीक प्रबंधन स्कीमों के लिए.
एक नामित युग्म बनाएँ
curl --fail-with-body -X POST "$CADCAM_URL/api/companion/pair" -H "Authorization: Bearer $CADCAM_TOKEN" -H 'Content-Type: application/json' -d '{"name":"Workshop iPhone","host":"192.168.1.20"}' -o "$CADCAM_PAIR_DIR/pairing.json"
CADCAM_DEVICE_ID=$(bun --no-env-file -e 'console.write((await Bun.file(process.argv[1]).json()).id)' "$CADCAM_PAIR_DIR/pairing.json") उदाहरण होस्ट को उस पते से बदलें जिस तक फ़ोन पहुंच सकता है, या खोज का उपयोग करने के लिए वैकल्पिक होस्ट को छोड़ दें। नाम छोटा कर दिया गया है और इसमें 1–60 अक्षर होने चाहिए। सफलता HTTP 201 के साथ है id और link. टोकन बनाने से श्रोता सक्षम नहीं होता; इसे अलग से सक्षम करें.
लिंक में डिवाइस टोकन, प्रमाणपत्र फ़िंगरप्रिंट, प्राथमिक HTTPS मूल, नाम और वैकल्पिक वैकल्पिक होस्ट शामिल हैं। इसे फ़ोन पर निजी तौर पर प्रदर्शित या स्थानांतरित करें; यह एक प्रमाण पत्र है. डेस्कटॉप टोकन हैश को उसके प्लेनटेक्स्ट के बजाय संग्रहीत करता है। इस कार्यान्वयन में रिकॉर्ड की कोई समाप्ति फ़ील्ड नहीं है, इसलिए यह मानने के बजाय कि यह समाप्त हो जाएगा, एक अप्रचलित डिवाइस को स्पष्ट रूप से रद्द कर दें।
iOS पर पेयरिंग लोड करें
- इंस्टॉल किए गए CADCAMFUN ऐप की कनेक्ट स्क्रीन खोलें।
- पेयरिंग क्यूआर कोड को स्कैन करें और कैमरा एक्सेस प्रदान करें चुनें, या पेयरिंग लिंक पेस्ट करें का उपयोग करें।
- मैन्युअल प्रविष्टि के लिए, कनेक्शन फॉर्म के माध्यम से डेस्कटॉप पता, टोकन और पूर्ण प्रमाणपत्र फ़िंगरप्रिंट प्रदान करें।
- iOS के संकेत देने पर स्थानीय-नेटवर्क एक्सेस की अनुमति दें। कैमरा एक्सेस और नेटवर्क एक्सेस अलग-अलग अनुमतियाँ हैं।
- स्वास्थ्य/बूटस्ट्रैप जांच के सफल होने और ऐप के प्रोजेक्ट खुलने तक प्रतीक्षा करें।
पार्सर को उपयोगकर्ता जानकारी, पथ सामग्री, क्वेरी या खंड के बिना HTTPS मूल की आवश्यकता होती है। टोकन में रिक्त स्थान/नियंत्रण वर्णों के बिना 16–4096 वर्ण होने चाहिए; फ़िंगरप्रिंट बिल्कुल 64 हेक्साडेसिमल वर्ण हैं। अनुरोध शुरू होने से पहले अमान्य लिंक अस्वीकार कर दिए जाते हैं।
खोजे गए वैकल्पिक मूल को काट दिया गया है। ग्राहक उम्मीदवारों की दौड़ लगाता है, पहले सफल कनेक्शन का उपयोग करता है, दूसरों को निरस्त करता है, और सफल मूल को बचाता है। डिस्कवरी छह उपयुक्त निजी आईपीवी 4 पतों का विज्ञापन करती है, जिसमें वाई-फाई, हॉटस्पॉट और टेलस्केल-शैली आईपीवी 4 श्रेणियां शामिल हैं; वर्तमान IPv4 श्रोता खोजे गए IPv6 होस्ट का विज्ञापन नहीं करता है।
कौन सा प्रमाणपत्र पिनिंग चेक करता है
स्विफ्ट परिवहन क्षणिक का उपयोग करता है URLSession उदाहरण और एक कस्टम ट्रस्ट प्रतिनिधि। यह लीफ सर्टिफिकेट के डीईआर बाइट्स प्राप्त करता है, SHA-256 की गणना करता है, और कनेक्शन तभी स्वीकार करता है जब वह हैश युग्मित फिंगरप्रिंट के बराबर हो। HTTPS आवश्यक है और रीडायरेक्ट अस्वीकार कर दिया गया है। यदि मॉड्यूल गुम है तो मूल कॉलर्स चुपचाप अनपिन किए गए फ़ेच पर वापस नहीं आते हैं।
यह मनमाने ढंग से स्व-हस्ताक्षरित सर्वर को स्वीकार किए बिना डेस्कटॉप के स्व-हस्ताक्षरित प्रमाणपत्र का समर्थन करता है। ट्रस्ट का निर्णय क्यूआर/लिंक को जोड़ने से आता है। डेस्कटॉप प्रमाणपत्र को बदलने से वह निर्णय बदल जाता है; बेमेल को दबाने के बजाय एक नई विश्वसनीय जोड़ी बनाएं।
सामान्य ब्राउज़र/कर्ल ट्रस्ट त्रुटियाँ ऐप के मूल प्रतिनिधि के परीक्षण के बराबर नहीं हैं। एक ब्राउज़र सही ढंग से पिन किए गए स्व-हस्ताक्षरित सर्वर को अस्वीकार कर सकता है क्योंकि यह एक अलग ट्रस्ट स्टोर का उपयोग करता है। विश्व स्तर पर प्रमाणपत्र सत्यापन को अक्षम करने के बजाय इंस्टॉल किए गए ऐप के माध्यम से सत्यापित करें और वास्तविक विफलता का निरीक्षण करें।
सफल डिवाइस प्रमाणीकरण के बाद, गेटवे अपनी वर्तमान सेवा स्थिति के लिए अंतिम बार देखे गए टाइमस्टैम्प को रिकॉर्ड करता है। प्रमाणित ट्रैफ़िक की पुष्टि के लिए डेस्कटॉप डिवाइस स्थिति ताज़ा करें। यह टोकन उपयोग को इंगित करता है; यह इस बात का प्रमाण नहीं है कि प्रत्येक परियोजना कार्रवाई सफल रही या कोई टिकाऊ सुरक्षा ऑडिट ट्रेल नहीं है।
डिवाइस टोकन स्कोप को समझें
| प्रवेश द्वार के माध्यम से अनुमति दी गई | डेस्कटॉप एपीआई पर रखा गया |
|---|---|
| परियोजना सूची/विस्तार; परियोजना घटनाएँ | प्रत्यक्ष फ़ाइल सिस्टम, फ़ाइल अपलोड और क्रेडेंशियल प्रबंधन |
| वीसीएस इतिहास/स्थिति और वर्तमान में प्रतिबद्ध/शाखा/चेकआउट/पुनर्स्थापना | GitHub रिमोट कॉन्फ़िगरेशन, पुश और पुल एंडपॉइंट |
| पुल-अनुरोध समीक्षा/विलय/बंद और वर्कफ़्लो संचालन | प्लगइन और बिलिंग प्रशासन |
| सूचनाएं और सहायक स्थिति/मॉडल/एजेंट | सहयोगी प्रशासन को सक्षम/जोड़ा/निरस्त करें |
| स्ट्रीमिंग चैट, कतार/निरस्त, अनुमति उत्तर, सत्र स्थिति/नियंत्रण | अन्य विधियाँ/पथ अनुमति-सूची से अनुपस्थित हैं |
डिवाइस टोकन विधि/पथ अनुमति-सूची द्वारा सीमित है। यह स्वाभाविक रूप से केवल पढ़ने योग्य नहीं है और किसी एक प्रोजेक्ट का चयन नहीं करता है। स्वीकृत अनुरोध डेस्कटॉप की एप्लिकेशन पहचान के तहत अग्रेषित किए जाते हैं और एंडपॉइंट प्राधिकरण के अधीन रहते हैं। युग्मन को कभी भी निष्क्रिय निगरानी प्रदान करने के रूप में वर्णित न करें।
सहायक अनुमतियाँ और लंबित प्रश्न अलग-अलग सत्र इंटरैक्शन हैं। अनुरोध किए जाने पर मोबाइल यूआई में उनका उत्तर दें। एक टोकन जो उत्तर समापन बिंदु तक पहुंच सकता है, इसका मतलब यह नहीं है कि प्रत्येक टूल कार्रवाई पहले ही स्वीकृत हो चुकी है।
सत्रों का उपयोग करें और कनेक्टिविटी पुनर्प्राप्त करें
इसके अवलोकन, इतिहास, आकर्षण और वर्कफ़्लो रन का निरीक्षण करने के लिए एक प्रोजेक्ट चुनें। सहायक सत्र डेस्कटॉप पर अपनी प्रदाता सेटिंग्स के साथ निष्पादित होते हैं। पहले वहां प्रदाता को कॉन्फ़िगर करें. फ़ोन युग्मित डेस्कटॉप के लिए चयनित प्रोजेक्ट और प्रति प्रोजेक्ट अंतिम सत्र को याद रखता है; डेस्कटॉप पहचान बदलने से वह मैपिंग साफ़ हो जाती है।
फ़ोरग्राउंड जांच जांच 15-सेकंड बजट के साथ होती है। विफल जांचें 30 सेकंड तक वापस बंद हो जाती हैं, और ऐप को आगे लाने से एक और जांच शुरू हो जाती है। पृष्ठभूमि स्थिति को ऑफ़लाइन स्थिति से अलग ट्रैक किया जाता है। मैन्युअल रूप से दोबारा जांच करने के लिए फ़ोन सेटिंग्स में डेस्कटॉप पंक्ति पर टैप करें।
कतारबद्ध सहायक संदेश अधिकतम 50 प्रविष्टियों के साथ जारी रहते हैं, सबसे पुराने को उस सीमा से परे छोड़ देते हैं। वे बाद में पुनः प्रयास करते हैं और अपना सत्र पहचानकर्ता बरकरार रख सकते हैं। यह सीमित संदेश वितरण समर्थन है, न कि ऑफ़लाइन सीएडी गणना या बिल्कुल-एक बार निष्पादन। बाधित लेखन/मोड़ के बाद, उसी परिवर्तन को दोहराने से पहले डेस्कटॉप सत्र और प्रोजेक्ट का निरीक्षण करें।
जानबूझकर निरस्त करना या अयुग्मित करना
curl --fail-with-body -X DELETE "$CADCAM_URL/api/companion/devices/$CADCAM_DEVICE_ID" -H "Authorization: Bearer $CADCAM_TOKEN"
curl --fail-with-body "$CADCAM_URL/api/companion" -H "Authorization: Bearer $CADCAM_TOKEN" प्रत्येक नए अनुरोध पर टोकन की जाँच की जाती है, इसलिए निरस्त टोकन का उपयोग करने वाले बाद के अनुरोध विफल हो जाते हैं। निरस्तीकरण पहले से अग्रेषित स्ट्रीम को स्पष्ट रूप से समाप्त नहीं करता है। गेटवे को अक्षम करने से श्रोता रुक जाता है; POST /api/companion/disable प्रशासनिक समापन बिंदु है.
फ़ोन सेटिंग्स → इस फ़ोन को अनपेयर करने से स्थानीय सहेजा गया पेयरिंग हट जाता है और कनेक्ट पर वापस आ जाता है। यह डेस्कटॉप रिवोक एंडपॉइंट को कॉल नहीं करता है। किसी उपकरण को बंद करते समय दोनों क्रियाओं का उपयोग करें। केवल डिवाइस क्रेडेंशियल को घुमाने के लिए, इसे रद्द करें और एक नई जोड़ी जारी करें; संपूर्ण प्रमाणपत्र बदलने से प्रत्येक फ़ोन का पिन भी बदल जाता है।
परत दर परत विफलताओं का निदान करें
| परिणाम | अगली जांच |
|---|---|
| कोई देशी पिनिंग मॉड्यूल नहीं | एक्सपो गो या किसी असमर्थित नेटिव प्लेटफ़ॉर्म के बजाय एक कस्टम नेटिव iOS बिल्ड खोलें। |
| डेस्कटॉप ने उत्तर नहीं दिया | गेटवे सक्षम, होस्ट/पोर्ट सही, डेस्कटॉप अवेक, फ़ायरवॉल, स्थानीय-नेटवर्क अनुमति और वाई-फ़ाई/वीपीएन रूट। |
| प्रमाणपत्र बेमेल | वर्तमान डेस्कटॉप पहचान सत्यापित करें और प्रमाणपत्र प्रतिस्थापन के बाद एक नई विश्वसनीय जोड़ी बनाएं। |
| 401 | डिवाइस टोकन गुम, गलत या निरस्त किया गया। |
| 403 | मार्ग अनुमति-सूची के बाहर विधि/पथ; किसी समापन बिंदु का अपना प्राधिकरण भी काम से इंकार कर सकता है। |
| 429 | एक ही पते से बार-बार असफल प्रमाणीकरण; गेटवे 60-सेकेंड विंडो के भीतर दस विफलताओं को ट्रैक करता है। |
| 502 | HTTPS श्रोता अपने स्थानीय अपस्ट्रीम एपीआई तक नहीं पहुंच सका। |
नेटिव सीआई एक अहस्ताक्षरित सिम्युलेटर ऐप बनाता है और वास्तविक गेटवे पेयरिंग/प्रोजेक्ट लिस्टिंग की जांच करता है। अलग-अलग सीआई टाइपचेक, तर्क परीक्षण और जावास्क्रिप्ट निर्यात की जांच करते हैं। ये भौतिक-डिवाइस हस्ताक्षर, टेस्टफ़्लाइट वितरण, रिमोट-नेटवर्क रूटिंग या वास्तविक मॉडल प्रदाता साबित नहीं होते हैं।
बार-बार खराब टोकन को थ्रॉटल कर दिया जाता है: 60 सेकंड के भीतर एक आईपी पते से दस असफल प्रयास विंडो समाप्त होने तक HTTP 429 वापस करने के लिए अनुरोध करते हैं। दोबारा जोड़ने के बाद 429 का आमतौर पर मतलब होता है कि पुराने डिवाइस टोकन का अभी भी दोबारा प्रयास किया जा रहा है।
कार्यान्वयन मानचित्र
प्रबंधन अनुबंध है packages/api/src/groups/companion.ts. साइडकार जीवनचक्र और मार्ग नीति शामिल हैं services/companion.ts और companion-gateway.ts. फोन पार्सिंग, कनेक्शन रिकवरी, स्टोरेज और यूआई शामिल हैं lib/pairing.ts, server.tsx, storage.ts, और app/connect.tsx. मूलनिवासी ट्रस्ट प्रतिनिधि है modules/companion-net/ios/CompanionNetModule.swift.
समर्थन रिपोर्ट के लिए, ऐप संस्करण, कनेक्शन विधि, गैर-गुप्त गेटवे होस्ट/पोर्ट, सटीक त्रुटि/स्थिति, और क्या मूल मॉड्यूल मौजूद है, बनाए रखें। रिडक्ट टोकन, पेयरिंग लिंक, मॉडल क्रेडेंशियल और निजी कुंजी। जोड़ें सिस्टम एपीआई दो विकास प्रक्रियाओं की तुलना करते समय संस्करण परिणाम।
युग्मित फ़ोन क्या कॉल कर सकता है
गेटवे के माध्यम से प्रत्येक अनुरोध में एक डिवाइस टोकन होना चाहिए और इस अनुमति-सूची से मेल खाना चाहिए। क्रेडेंशियल्स, प्लगइन्स, फ़ाइलें, बिलिंग और सहित बाकी सब कुछ /api/companion खुद ही मना कर दिया जाता है. स्वीकृत अनुरोधों को एप्लिकेशन टोकन के साथ लूपबैक एपीआई पर अग्रेषित किया जाता है, जिसे फ़ोन कभी नहीं देखता है।
| तरीकों | पथ पैटर्न | उद्देश्य |
|---|---|---|
| GET | /api/health | पहुंच योग्यता जांच. |
| GET | /api/projects, /api/projects/:id | प्रोजेक्ट सूची और हेडर. |
| प्राप्त करें, पोस्ट करें | /api/projects/:id/vcs/* (के अलावा remote, push, pull), /pulls/*, /actions/* | इतिहास, पुल अनुरोध, समीक्षाएँ और वर्कफ़्लो चलता है। GitHub सिंक डेस्कटॉप पर रहता है क्योंकि इसके लिए स्वामी के GitHub टोकन की आवश्यकता होती है। |
| GET | /api/projects/:id/events | इतिहास, वर्कफ़्लो और सहायक गतिविधि की लाइव एसएसई स्ट्रीम; फ़ोन का एकमात्र पुश चैनल. |
| प्राप्त करें, पोस्ट करें, डालें, हटाएँ | /api/notifications, /mark-all-read, /:id | पढ़ें, पढ़ा हुआ चिह्नित करें और सूचनाएं हटाएं। |
| GET | /api/ai/status, /models, /agents | सहायक खोज. |
| POST | /api/ai/chat/stream, chat/abort, chat/queue, permission/reply, sessions/state, sessions/control | सहायक सत्र. |
इतिहास का वर्तमान दायरा लिखता है
इतिहास पैटर्न वर्तमान में कमिट, चेकआउट और रीस्टोर से भी मेल खाता है। युग्मित फ़ोन को प्रोजेक्ट इतिहास बदलने में सक्षम मानें, और उन डिवाइसों को निरस्त करें जिन्हें आप अब नियंत्रित नहीं करते हैं।
पेयरिंग लिंक एनाटॉमी
POST /api/companion/pair एक उपकरण के साथ name (और वैकल्पिक रूप से ए host) एक डिवाइस टोकन बनाता है और एक लिंक के साथ उसकी आईडी लौटाता है, जिसे डेस्कटॉप एक क्यूआर कोड के रूप में दिखाता है:
cadcamfun://pair?host=https%3A%2F%2F192.168.1.20%3A8443&token=<43-char base64url>&fp=<sha256 hex>&name=Ada%27s+iPhone&hosts=https%3A%2F%2F100.64.0.7%3A8443 | पैरामीटर | सामग्री |
|---|---|
host | पसंदीदा मूल: डेस्कटॉप और गेटवे पोर्ट का सर्वोत्तम निजी पता। |
token | 32 यादृच्छिक बाइट्स, आधार64यूआरएल-एन्कोडेड। इसे एक बार दिखाया गया है; डेस्कटॉप केवल इसके SHA-256 हैश को संग्रहीत करता है, और डिवाइस आईडी 12 हेक्स वर्ण हैं। |
fp | SHA-256 गेटवे प्रमाणपत्र का फ़िंगरप्रिंट, कोलन के बिना लोअरकेस हेक्स। फ़ोन इसे पिन करता है. |
name | डिवाइस का नाम डिवाइस सूची में दिखाया गया है। |
hosts | पांच और उम्मीदवार मूल (कुल छह पते) तक, जिनका उत्तर देने वाले को ढूंढने के लिए फोन दौड़ता है। |
प्रमाणपत्र एक स्व-हस्ताक्षरित P-256 प्रमाणपत्र है जिसके विषय वैकल्पिक नाम शामिल हैं localhost, 127.0.0.1, और मशीन के पहुंच योग्य निजी पते। इसे अंदर रखा गया है <dataDir>/companion, इसलिए जोड़ियां पुनः आरंभ होने से बच जाती हैं। इसे बदलने से फ़िंगरप्रिंट बदल जाता है और दोबारा जोड़ने की आवश्यकता होती है।
गेटवे प्रशासन एपीआई
| मार्ग | शरीर | परिणाम |
|---|---|---|
GET /api/companion | — | enabled, port, fingerprint, host, और devices (id, name, createdAt, lastSeen). |
POST /api/companion/enable | वैकल्पिक port (डिफ़ॉल्ट 8443, या 1024–65535) | HTTPS श्रोता को चालू करता है 0.0.0.0 और सेटिंग जारी रहती है ताकि यह अगले लॉन्च पर फिर से शुरू हो। |
POST /api/companion/disable | — | श्रोता को रोकता है. |
POST /api/companion/pair | name, वैकल्पिक host | { id, link }. |
DELETE /api/companion/devices/:id | — | एक डिवाइस टोकन तुरंत रद्द कर देता है। |
विफल वाहक प्रयासों को प्रति आईपी पते पर थ्रॉटल कर दिया जाता है: 10 सेकंड के भीतर 60 विफलताओं के बाद, गेटवे HTTP 429 ("बहुत सारे विफल प्रयास") का उत्तर देता है जब तक कि विंडो पास नहीं हो जाती। गलत या निरस्त टोकन अन्यथा HTTP 401 प्राप्त करता है।
गेटवे स्थिति, कब्जा कर लिया गया
{ "enabled": false, "port": null, "fingerprint": null, "host": "172.30.0.2", "devices": [] } | मैदान | अर्थ |
|---|---|
enabled | क्या HTTPS गेटवे चल रहा है; डिफ़ॉल्ट रूप से बंद |
port | सक्षम होने पर गेटवे पोर्ट, अन्यथा null |
fingerprint | SHA-256 गेटवे प्रमाणपत्र का फ़िंगरप्रिंट, फ़ोन पिन; null जब तक कोई प्रमाणपत्र मौजूद न हो |
host | LAN पता, युग्मन लिंक विज्ञापित करेगा |
devices | युग्मित उपकरण; प्रत्येक को अपने आप रद्द किया जा सकता है |
अगर host यह वह पता नहीं है जिस तक आपका फोन पहुंच सकता है (उदाहरण के लिए एक कंटेनर या वीपीएन इंटरफ़ेस), बाकी सब कुछ सही होने पर भी नेटवर्क स्तर पर युग्मन विफल हो जाएगा।