
CLI tool for the Horizon3.ai API
NodeZero MCP सर्वर अब उपलब्ध है, जो आपको स्थानीय रूप से होस्ट किए गए MCP सर्वर को चलाने और प्रबंधित करने में सक्षम बनाता है, जो NodeZero की Find, Fix, Verify (FFV) क्षमताओं को सीधे आपके विकास और सुरक्षा वर्कफ़्लो में लाता है।
h3-cli, Horizon3.ai API तक पहुँचने के लिए एक सुविधाजनक CLI (कमांड-लाइन इंटरफ़ेस) है। Horizon3.ai API, Horizon3.ai पोर्टल के माध्यम से उपलब्ध कार्यक्षमता के एक उपसमुच्चय तक प्रोग्रामेटिक पहुँच प्रदान करती है। उच्च स्तर पर, API आपको निम्न की अनुमति देता है:
API का उपयोग विभिन्न उपयोग-मामलों के लिए किया जा सकता है, जैसे आपके वातावरण के आवधिक मूल्यांकन शेड्यूल करना या निरंतर एकीकरण बिल्ड पाइपलाइन के भाग के रूप में पेंटेस्ट शुरू करना।
नीचे दिए गए चरण आपको h3-cli के साथ जल्दी से आरंभ करने में मदद करेंगे। ये निर्देश macOS और Linux मशीनों पर परीक्षण किए गए थे, और आम तौर पर bash समर्थन वाले किसी भी POSIX-संगत सिस्टम पर काम करने चाहिए।
यदि आप h3-cli का उपयोग करके आंतरिक पेंटेस्ट चलाने की योजना बनाते हैं, तो आपको h3-cli को उसी Docker Host पर स्थापित करना चाहिए जहाँ आप NodeZero लॉन्च करते हैं।
यह मान लिया गया है कि आपके पास पहले से Horizon3.ai के साथ एक खाता है। यदि नहीं, तो https://portal.horizon3ai.com/ पर साइन अप करें।
H3 API तक पहुँचने के लिए एक API कुंजी आवश्यक है। आप इसे पोर्टल में User -> Account Settings मेनू के अंतर्गत बना सकते हैं।
API कुंजी बनाते समय आपको इसे एक भूमिका (role) सौंपनी होगी जो इसकी अनुमतियों को नियंत्रित करती है। उपलब्ध भूमिकाएँ हैं:
हम User भूमिका की अनुशंसा करते हैं यदि आप h3-cli का परीक्षण कर रहे हैं और इसकी सभी सुविधाओं के साथ प्रयोग करना चाहते हैं। उसके बाद, आप अपने उपयोग-मामले के आधार पर अधिक प्रतिबंधात्मक अनुमतियों का उपयोग करना चाह सकते हैं। उदाहरण के लिए, यदि आप केवल NodeZero Runner सेट करने के लिए h3-cli का उपयोग करना चाहते हैं, तो हम NodeZero Runner भूमिका का उपयोग करने की अनुशंसा करते हैं।
आप एक ही h3-cli इंस्टॉलेशन के भीतर कई API कुंजियाँ आसानी से प्रबंधित कर सकते हैं। यहाँ और जानें।
❗ अपनी API कुंजी को सुरक्षित रखें, क्योंकि आपकी API कुंजी रखने वाला कोई भी व्यक्ति आपके H3 खाते तक पहुँच सकता है। API कुंजी को एक साथ मिले हुए उपयोगकर्ता नाम + पासवर्ड की तरह समझें। API कुंजी रखने वाला कोई भी व्यक्ति कहीं से भी आपके खाते तक पहुँच सकता है। h3-cli आपकी API कुंजी को $HOME/.h3 निर्देशिका के अंतर्गत संग्रहीत करेगा। यह निर्देशिका स्थापना के दौरान बनाई जाती है और ऐसी अनुमतियों के साथ कॉन्फ़िगर की जाती है कि केवल आप ही इसे पढ़ या लिख सकें।
अपनी मशीन पर h3-cli git repo स्थापित करने के लिए शेल/टर्मिनल सत्र में निम्नलिखित git कमांड निष्पादित करें।
git clone https://github.com/horizon3ai/h3-cli
यह एक नई निर्देशिका, h3-cli, बनाएगा और रिपॉजिटरी की सामग्री को उसमें डाउनलोड करेगा। h3-cli निर्देशिका उस निर्देशिका में बनाई जाएगी जहाँ आप git कमांड चलाते हैं। आप h3-cli को फाइलसिस्टम पर कहीं भी स्थापित कर सकते हैं।
यदि आपके पास git नहीं है, तो आप रिपॉजिटरी को ऊपर दिए गए मेनू से zip संग्रह के रूप में डाउनलोड कर सकते हैं, और इसे फाइलसिस्टम पर कहीं भी अनज़िप कर सकते हैं।
h3-cli को स्थापित करने और कॉन्फ़िगर करने के लिए निम्नलिखित कमांड चलाएँ। your-api-key-here को अपनी वास्तविक API कुंजी से बदलें।
cd h3-cli
bash install.sh your-api-key-here
इंस्टॉल स्क्रिप्ट निर्भरताएँ (jq) स्थापित करेगी और $HOME/.h3 निर्देशिका के अंतर्गत आपकी डिफ़ॉल्ट h3-cli प्रोफ़ाइल बनाएगी। आपकी API कुंजी आपकी h3-cli प्रोफ़ाइल में संग्रहीत की जाती है। निर्देशिका और प्रोफ़ाइल की अनुमतियाँ प्रतिबंधित हैं ताकि कोई अन्य उपयोगकर्ता (आपके अलावा) उन्हें पढ़ या लिख न सके।
इंस्टॉल स्क्रिप्ट आपसे आपकी शेल प्रोफ़ाइल ($HOME/.bash_profile या $HOME/.bash_login या $HOME/.profile, आपके ऑपरेटिंग सिस्टम के आधार पर) को संपादित करने के लिए कहेगी ताकि निम्नलिखित पर्यावरण चर सेट किए जा सकें:
H3_CLI_HOME: यह पर्यावरण चर h3-cli द्वारा स्वयं को और अपनी सहायक फ़ाइलों को खोजने के लिए उपयोग किया जाता है।PATH: यह पर्यावरण चर उन निर्देशिकाओं को निर्दिष्ट करता है जिन्हें शेल कमांड खोजने के लिए खोजा जाना है।अपनी शेल प्रोफ़ाइल को अपडेट करने के बाद, प्रोफ़ाइल परिवर्तनों को प्रभावी करने के लिए पुनः लॉगिन करें या अपना शेल सत्र पुनः आरंभ करें, फिर कमांड प्रॉम्प्ट से h3 चलाकर सत्यापित करें कि आप इसे आमंत्रित कर सकते हैं:
h3
यदि सब कुछ सही ढंग से स्थापित है, तो आपको h3-cli सहायता टेक्स्ट देखना चाहिए।
हम हर महीने h3-cli के लिए नई सुविधाएँ, बग फिक्स और अन्य अपडेट जारी करते हैं। नीचे दिए गए तरीकों में से किसी एक का उपयोग करके अपनी स्थापना को अपग्रेड करें।
h3 upgrade कमांड के माध्यम से (अनुशंसित)जून, 2023 से, आप h3-cli के नवीनतम संस्करण में अपग्रेड करने के लिए h3 upgrade कमांड का उपयोग कर सकते हैं।
यदि आपको ERROR: unrecognized command: "upgrade" मिलता है, तो आप h3-cli के पिछले संस्करण पर हैं जो upgrade कमांड का समर्थन नहीं करता है। h3-cli को अपग्रेड करने के लिए नीचे दिए गए तरीकों में से किसी एक का उपयोग करें।
easy_install.sh के माध्यम से (यदि h3 upgrade उपलब्ध नहीं है तो अनुशंसित)यह कमांड h3-cli की पैरेंट निर्देशिका (अर्थात वह निर्देशिका जिसमें h3-cli/ निर्देशिका है) से चलाएँ:
curl https://raw.githubusercontent.com/horizon3ai/h3-cli/public/easy_install.sh | bash
यदि आपने रिपॉजिटरी स्थापित करने के लिए git clone का उपयोग किया है, तो नवीनतम संस्करण स्थापित करने के लिए बस git pull चलाएँ।
यदि आपने रिपॉजिटरी को zip फ़ाइल के रूप में डाउनलोड किया है, तो zip फ़ाइल को पुनः डाउनलोड करें और इसे उसी स्थान पर अनज़िप करें (दूसरे शब्दों में अपनी मौजूदा h3-cli स्थापना को नई zip से बदलें)।
जून, 2023 से, आप निम्न के माध्यम से अपना वर्तमान h3-cli संस्करण देख सकते हैं:
h3 version
आप निम्न के माध्यम से संस्करणों और रिलीज़ नोट्स का पूरा इतिहास देख सकते हैं:
h3 version -v
API के साथ कनेक्टिविटी सत्यापित करने के लिए निम्नलिखित कमांड चलाएँ।
h3 hello-world
आपको निम्न प्रतिक्रिया देखनी चाहिए:
{
"data": {
"hello": "world!"
}
}
❗️ यदि आपको त्रुटि प्रतिक्रिया मिल रही है, तो कृपया Horizon3.ai Portal में चैट आइकन के माध्यम से H3 से संपर्क करें।
नीचे दिया गया कमांड आपके खाते में पेंटेस्ट की सूची लौटाएगा, सबसे हालिया पहले।
h3 pentests
दिए गए खोज शब्द से मेल खाने वाले पेंटेस्ट को फ़िल्टर करने के लिए, खोज शब्द को पैरामीटर के रूप में पास करें:
h3 pentests sample
अपने खाते में सबसे हालिया पेंटेस्ट क्वेरी करने के लिए:
h3 pentest
अपने खाते में किसी भी पेंटेस्ट को क्वेरी करने के लिए, पेंटेस्ट का op_id पैरामीटर के रूप में पास करें:
h3 pentest your-op-id-here
कई h3-cli कमांड सबसे हालिया पेंटेस्ट को डिफ़ॉल्ट के रूप में उपयोग करेंगे, जब तक कि op_id को पैरामीटर के रूप में पास न किया जाए।
"op" और "pentest" शब्द अक्सर एक दूसरे के स्थान पर उपयोग किए जाते हैं।
पेंटेस्ट चलाने के लिए एक op टेम्पलेट निर्दिष्ट करना आवश्यक है। एक op टेम्पलेट एक पूर्ण पेंटेस्ट कॉन्फ़िगरेशन निर्दिष्ट करता है, जिसमें स्कोप, हमले के पैरामीटर और अन्य (वैकल्पिक) कॉन्फ़िगरेशन शामिल होते हैं।
Horizon3.ai नए उपयोगकर्ताओं को Default 1 - Recommended नामक एक डिफ़ॉल्ट op टेम्पलेट प्रदान करता है। यह टेम्पलेट हमेशा हमारे नवीनतम हमले पैरामीटर और अनुशंसित कॉन्फ़िगरेशन के साथ अद्यतित रहता है। डिफ़ॉल्ट टेम्पलेट कोई स्कोप परिभाषित नहीं करता है, ऐसी स्थिति में NodeZero Intelligent Scope का उपयोग करेगा - NodeZero का होस्ट सबनेट प्रारंभिक स्कोप प्रदान करेगा, और पेंटेस्ट के दौरान अधिक होस्ट और सबनेट खोजे जाने पर यह स्वाभाविक रूप से विस्तारित होगा। Intelligent Scope और अन्य डिप्लॉयमेंट विकल्पों के बारे में अधिक जानकारी के लिए, हमारा उत्पाद दस्तावेज़ देखें।
अनुभवी उपयोगकर्ताओं के लिए, Horizon3.ai Portal के माध्यम से कस्टम op टेम्पलेट बनाए जा सकते हैं। कस्टम op टेम्पलेट बनाने के लिए, Run a Pentest मोडल के माध्यम से आगे बढ़ें जब तक कि आपको पेंटेस्ट कॉन्फ़िगरेशन को अनुकूलित करने का विकल्प न दिखे। op टेम्पलेट को वास्तव में पेंटेस्ट चलाए बिना बनाया जा सकता है।
डिफ़ॉल्ट op टेम्पलेट और Intelligent Scope का उपयोग करके पेंटेस्ट प्रावधानित करने के लिए:
h3 run-pentest
JSON प्रतिक्रिया में नव निर्मित पेंटेस्ट का विवरण होता है। आप अपने Horizon3.ai Portal की जाँच करके, या h3 pentest चलाकर सत्यापित कर सकते हैं कि पेंटेस्ट प्रावधानित हो रहा है।
पेंटेस्ट बनाते समय अतिरिक्त पैरामीटर निर्दिष्ट करने के कई तरीके हैं। अधिक जानकारी के लिए अतिरिक्त उदाहरण यहाँ देखें।
❗ रुको! आपने अभी काम पूरा नहीं किया है!
आंतरिक पेंटेस्ट (जो डिफ़ॉल्ट हैं) के लिए, पेंटेस्ट चलना शुरू होने से पहले अतिरिक्त चरणों की आवश्यकता होती है। अपने पेंटेस्ट की शुरुआत पूरी करने के लिए NodeZero को डाउनलोड करने और चलाने के बारे में अगला अनुभाग देखें।
यदि आप बाहरी पेंटेस्ट चला रहे हैं, तो NodeZero आपके लिए स्वचालित रूप से H3 क्लाउड में
h3 run-pentestके भाग के रूप में लॉन्च किया जाता है, ऐसी स्थिति में पेंटेस्ट शुरू करने के लिए आपकी ओर से कोई अतिरिक्त चरण नहीं हैं।
❗ ️निम्नलिखित चरण केवल आंतरिक पेंटेस्ट पर लागू होता है; बाहरी पेंटेस्ट के लिए, NodeZero आपके लिए स्वचालित रूप से H3 क्लाउड में लॉन्च किया जाता है।
आंतरिक पेंटेस्ट बनाने के बाद, आपको अपने नेटवर्क के अंदर एक Docker Host पर हमारा NodeZero कंटेनर चलाना होगा। यह आपके Docker Host पर NodeZero Launch Script चलाकर किया जाता है।
अपने सबसे हालिया बनाए गए पेंटेस्ट के लिए NodeZero Launch Script चलाने हेतु:
h3 run-nodezero
आपका पेंटेस्ट लॉन्च हो गया है! यह मानते हुए कि सभी कमांड बिना किसी त्रुटि के चले, आपने सफलतापूर्वक अपना पेंटेस्ट बना और लॉन्च कर लिया है। आपको NodeZero Launch Script से आउटपुट कंसोल पर लॉग होते हुए देखना चाहिए। स्क्रिप्ट पहले सत्यापित करेगी कि आपका सिस्टम NodeZero के साथ संगत है, उसके बाद इसे डाउनलोड और चलाएगी। जब पेंटेस्ट पूरा हो जाएगा, तो NodeZero स्वचालित रूप से स्वयं को बंद कर लेगा।
NodeZero एक Docker कंटेनर है। आप इसे docker ps का उपयोग करके देख सकते हैं। कंटेनर का नाम n0-xxxx के रूप में होगा।
आपके पेंटेस्ट के समाप्त होने के बाद, सबसे हालिया बनाए गए पेंटेस्ट के लिए सभी PDF और CSV रिपोर्ट वाली एक zip फ़ाइल डाउनलोड करने के लिए निम्नलिखित कमांड का उपयोग करें:
h3 pentest-reports
उपरोक्त कमांड zip फ़ाइल को वर्तमान निर्देशिका में pentest-reports-{op_id}.zip के रूप में डाउनलोड करेगा।
jq का उपयोग करके JSON पार्सिंग। जानें कि h3-cli से JSON प्रतिक्रियाओं को पार्स करने के लिए jq की शक्ति का लाभ कैसे उठाएँ। jq विशिष्ट फ़ील्ड पार्स कर सकता है, किसी प्रतिक्रिया की संरचना प्रिंट कर सकता है, और यहाँ तक कि JSON प्रतिक्रिया को CSV में बदल सकता है।जब आप h3 कमांड का आह्वान करते हैं तो प्रमाणीकरण सहज और स्वचालित रूप से होता है। प्रमाणीकरण के लिए आपको स्पष्ट रूप से कुछ भी करने की आवश्यकता नहीं है। यह अनुभाग अंतर्निहित तंत्रों का दस्तावेजीकरण करता है।
h3-cli, Horizon3.ai API में प्रमाणीकरण करने और एक (अस्थायी) सत्र स्थापित करने के लिए आपकी h3-cli प्रोफ़ाइल ($HOME/.h3 के अंतर्गत) से आपकी H3_API_KEY पढ़ता है। सत्र टोकन (एक JWT) $HOME/.h3 के अंतर्गत कैश किया जाता है। सत्र टोकन 1 घंटे के बाद समाप्त हो जाता है, जिस बिंदु पर h3-cli स्वचालित रूप से पुनः प्रमाणीकरण करेगा और सत्र को पुनः स्थापित करेगा।
आप निम्नलिखित कमांड का उपयोग करके स्पष्ट रूप से प्रमाणीकरण कर सकते हैं:
h3 auth
उपरोक्त कमांड सत्र टोकन आउटपुट करेगा (और इसे $HOME/.h3 के अंतर्गत कैश भी करेगा)। यदि आपके पास पहले से एक स्थापित (गैर-समाप्त) सत्र टोकन है, तो h3 auth पुनः प्रमाणीकरण करने के बजाय उस सत्र टोकन का उपयोग जारी रखेगा।
यदि आप h3-cli को पुनः प्रमाणीकरण के लिए बाध्य करना चाहते हैं, तो force विकल्प का उपयोग करें:
h3 auth force
आप एक ही $HOME/.h3 निर्देशिका के अंतर्गत कई h3-cli प्रमाणीकरण प्रोफ़ाइल प्रबंधित कर सकते हैं। प्रत्येक h3-cli प्रोफ़ाइल की अपनी API कुंजी होती है।
जब आप पहली बार h3-cli स्थापित करते हैं, तो यह स्वचालित रूप से default नामक एक प्रारंभिक प्रोफ़ाइल बनाएगा, जिसमें आपने install.sh को दी गई API कुंजी होगी।
यदि आप एक अलग API कुंजी के साथ एक और प्रोफ़ाइल बनाना चाहते हैं, तो निम्नलिखित कमांड का उपयोग करें:
h3 save-profile my-profile {api-key}
यह दिए गए {api_key} के लिए $HOME/.h3 के अंतर्गत my-profile नामक एक प्रोफ़ाइल बनाएगा। अपने वर्तमान शेल सत्र में प्रोफ़ाइल को सक्रिय करने के लिए, निम्नलिखित कमांड का उपयोग करें (आरंभिक डॉट . पर ध्यान दें):
. h3 profile my-profile
आप h3 profile का उपयोग करके वर्तमान में सक्रिय प्रोफ़ाइल सत्यापित कर सकते हैं, और h3 whoami का उपयोग करके इसकी API कुंजी के बारे में विवरण देख सकते हैं:
h3 profile
h3 whoami
आप अलग-अलग h3-cli प्रोफ़ाइलों के अंतर्गत कई API कुंजियाँ सहेज सकते हैं और उपरोक्त कमांड का उपयोग करके आवश्यकता अनुसार उनके बीच स्विच कर सकते हैं। उदाहरण के लिए, default प्रोफ़ाइल पर वापस स्विच करने के लिए:
. h3 profile default
अपनी $HOME/.h3 निर्देशिका के अंतर्गत h3-cli प्रोफ़ाइलों की सूची देखने के लिए:
h3 profiles
आप निम्न का उपयोग करके अपनी $HOME/.h3 निर्देशिका से एक प्रोफ़ाइल हटा सकते हैं:
h3 delete-profile {name}
यह स्थानीय मशीन पर आपकी $HOME/.h3 निर्देशिका से {name} नामक प्रोफ़ाइल और उसकी API कुंजी को हटा देगा। ध्यान दें कि यह API कुंजी को रद्द (revoke) नहीं करेगा; यह केवल इसे स्थानीय मशीन से हटाता है। आप API कुंजी को पोर्टल से रद्द कर सकते हैं।
इस अनुभाग में h3-cli का उपयोग करके पेंटेस्ट चलाने के अतिरिक्त उदाहरण हैं।
पेंटेस्ट प्रावधानित करने का सबसे सरल तरीका डिफ़ॉल्ट op टेम्पलेट और Intelligent Scope का उपयोग करना है:
h3 run-pentest
एक पेंटेस्ट प्रावधानित करने और स्थानीय मशीन पर NodeZero लॉन्च करने के लिए (केवल आंतरिक पेंटेस्ट के लिए):
h3 run-pentest-and-nodezero
ध्यान दें कि यह केवल आंतरिक पेंटेस्ट पर लागू होता है। बाहरी पेंटेस्ट के लिए, NodeZero आपके लिए h3 run-pentest के भाग के रूप में H3 क्लाउड में स्वचालित रूप से लॉन्च किया जाता है।
यदि आप किसी बाहरी पेंटेस्ट के लिए
h3 run-pentest-and-nodezeroचलाते हैं, तो यह केवल NodeZero को डाउनलोड करने और चलाने वाले भाग को छोड़ देगा, क्योंकि यह H3 क्लाउड में स्वचालित रूप से संभाला जाता है।
कस्टम op टेम्पलेट का उपयोग करके पेंटेस्ट चलाने के लिए, इसे schedule_op_template.graphql में पैरामीटर के रूप में निर्दिष्ट करें:
h3 run-pentest '{"op_template_name":"your-op-template-here"}'
डिफ़ॉल्ट op टेम्पलेट का उपयोग करके पेंटेस्ट चलाने के लिए लेकिन इसे अपनी पसंद का नाम देने के लिए, वैकल्पिक op_name पैरामीटर का उपयोग करें:
h3 run-pentest '{"op_name":"your-op-name-here"}'
डिफ़ॉल्ट op टेम्पलेट का उपयोग करके पेंटेस्ट चलाने के लिए लेकिन इसका नाम और स्कोप निर्दिष्ट करने के लिए, वैकल्पिक schedule_op_form पैरामीटर का उपयोग करें:
h3 run-pentest '{"schedule_op_form":{"op_name":"your-op-name-here", "op_param_max_scope": "192.168.0.0/24"}}'
ध्यान दें कि
h3 run-pentestऔरh3 run-pentest-and-nodezeroसमान सभी वैकल्पिक पैरामीटर स्वीकार करते हैं।
एक पेंटेस्ट चलाने और इसे my-nodezero-runner नामक NodeZero Runner को सौंपने के लिए:
h3 run-pentest '{"schedule_op_form":{"op_name":"Pentest created via h3-cli and launched via runner", "runner_name":"my-nodezero-runner"}}'
यदि आपके पास अपने बाहरी पेंटेस्ट के लिए कॉन्फ़िगर किया गया op टेम्पलेट है:
h3 run-pentest '{"op_template_name":"your-op-template-here"}'
यदि आपके पास op टेम्पलेट नहीं है, तो आप पहले h3 asset-groups के माध्यम से अपने Asset Group का uuid देखकर एक बाहरी पेंटेस्ट चला सकते हैं:
h3 asset-groups
फिर उस Asset Group के विरुद्ध बाहरी पेंटेस्ट चलाने के लिए नीचे दिए गए कमांड का उपयोग करें। {your-asset-group-uuid} के स्थान पर अपने Asset Group का uuid लगाएँ:
h3 run-pentest '{"schedule_op_form": {"op_type": "ExternalAttack", "asset_group_uuid": "{your-asset-group-uuid}"}}'
Horizon3.ai API GraphQL द्वारा संचालित है। इस CLI दस्तावेज़ के अतिरिक्त, प्रासंगिक दस्तावेज़ों में शामिल हैं:
h3-cli आपकी अपनी GraphQL क्वेरी चलाने के लिए एक सरल तंत्र प्रदान करता है। पहले आप GraphQL क्वेरी को एक फ़ाइल में परिभाषित करें (आमतौर पर .graphql एक्सटेंशन के साथ, हालाँकि यह आवश्यक नहीं है)। फिर फ़ाइल को h3 gql में पास करें:
h3 gql {your-query-file}
उदाहरण के लिए, my_session.graphql नामक फ़ाइल में निम्नलिखित परिभाषित करें:
query {
session_user_account {
email
name
company_name
}
}
फिर चलाएँ:
h3 gql ./my_session.graphql
आपको GraphQL सर्वर से कच्ची JSON प्रतिक्रिया देखनी चाहिए। आप jq का उपयोग करके JSON प्रतिक्रिया को pretty-print कर सकते हैं:
h3 gql ./my_session.graphql | jq .
महत्वपूर्ण! आपको graphql फ़ाइल का पथ निर्दिष्ट करना होगा (पूर्ण या सापेक्ष, जैसे केवल my_session.graphql के बजाय ./my_session.graphql), अन्यथा आप उन graphql फ़ाइलों से टकराव का जोखिम उठाते हैं जिनका उपयोग h3-cli आंतरिक रूप से करता है।
GraphQL क्वेरी पैरामीटर भी परिभाषित कर सकती हैं, जिन्हें h3 gql में JSON ऑब्जेक्ट के रूप में पास किया जाता है।
उदाहरण के लिए, my_pentest.graphql नामक फ़ाइल में निम्नलिखित परिभाषित करें:
query q($op_id: String!) {
pentest(op_id:$op_id) {
op_id
name
state
}
}
इस उदाहरण में, $op_id एक पैरामीटर है जिसे क्वेरी चलाने के लिए प्रदान किया जाना चाहिए। पैरामीटर को JSON ऑब्जेक्ट के भीतर क्वेरी में पास किया जाता है:
h3 gql ./my_pentest.graphql '{"op_id":"your-op-id-here"}' | jq .
your-op-id-hereको वास्तविकop_idसे बदलें।