
CLI component of purpleteam
npm install -g purpleteam
इस रिपॉजिटरी को क्लोन करें।
config/config.example.json को config/config.local.json या config/config.cloud.json में कॉपी करें, यह इस बात पर निर्भर करता है कि आप किस वातावरण का उपयोग करने की योजना बना रहे हैं।
config/config.js का उपयोग दस्तावेज़ीकरण और आगे के उदाहरणों के लिए करें।
loggers.testerProgress.dirname इस मान को कॉन्फ़िगर करें।
purpleteamApi यदि आप local वातावरण का उपयोग करने की योजना बना रहे हैं, तो आप डिफ़ॉल्ट गुण मानों के साथ रह सकते हैं। यदि आप cloud वातावरण का उपयोग करने की योजना बना रहे हैं, तो जब आप purpleteam खाते के लिए साइन-अप करेंगे तो आपको यह जानकारी दी जाएगी।
testerFeedbackComms.medium लॉन्ग पोलिंग (lp) local और cloud दोनों वातावरणों में समर्थित है। सर्वर सेंट इवेंट्स (sse) केवल AWS सीमाओं के कारण local वातावरण में समर्थित है। lp और sse दोनों रीयल-टाइम हैं। दोनों कार्यान्वयनों के अपने फायदे और नुकसान हैं।
sse का उपयोग CLI से ऑर्केस्ट्रेटर तक प्रारंभिक सब्सक्रिप्शन के बाद एक-तरफ़ा संचार है। टेस्टर फीडबैक प्रकाशित करने के लिए टेस्टरों और ऑर्केस्ट्रेटर के बीच Redis pub/sub का उपयोग किया जाता है। यदि CLI किसी भी समय बंद हो जाता है (सब्सक्राइब नहीं है) जबकि बैक-एंड परीक्षण चला रहा है, तो घटनाएँ खो जाएंगी।
lp का उपयोग अनुरोध-प्रतिक्रिया संचार है। एक अनुरोध किया जाता है और उत्तर तभी दिया जाता है जब टेस्टर फीडबैक संदेश उपलब्ध हों, या एप्लिकेशन-विशिष्ट (AWS Api Gateway के बजाय) टाइमआउट पार हो गया हो। जैसे ही CLI को टेस्टर फीडबैक संदेशों का एक सेट (एक से अधिक) प्राप्त होता है, यह ऑर्केस्ट्रेटर (यदि local env में चल रहा है) या API (यदि cloud env में चल रहा है) को एक और अनुरोध करता है। टेस्टर फीडबैक प्रकाशित करने के लिए टेस्टरों और ऑर्केस्ट्रेटर के बीच Redis pub/sub का उपयोग किया जाता है।
जब तक टेस्टर फीडबैक के लिए प्रारंभिक CLI अनुरोध परीक्षण शुरू होने के तुरंत बाद किया जाता है, तब तक टेस्टर फीडबैक संदेश मेमोरी में Redis सूचियों में बने रहेंगे। इसका मतलब है कि यदि परीक्षण चलने के दौरान CLI क्षणिक रूप से बंद हो जाता है, तो जब इसे पुनः प्रारंभ किया जाता है, तो यह उन टेस्टर फीडबैक संदेशों को प्राप्त करेगा जो CLI के चलने पर ऑर्केस्ट्रेटर पर पहुँचे थे... बशर्ते ऑर्केस्ट्रेटर चलता रहे।
अतिरिक्त पृष्ठभूमि: यह भविष्य में बदल सकता है, WebSockets भी एक विकल्प है जिसे हम भविष्य में लागू कर सकते हैं, लेकिन WebSockets को लागू करने का मतलब होगा कि हमें अपना संपूर्ण प्रमाणीकरण दृष्टिकोण बदलना होगा। हमारा चुना हुआ क्लाउड इंफ्रास्ट्रक्चर AWS Api Gateway स्ट्रीमिंग का समर्थन नहीं करता है और यह Cognito User Pools के साथ OAuth क्लाइंट क्रेडेंशियल्स फ्लो का समर्थन नहीं करता है।
purpleteamAuth यदि आप local वातावरण का उपयोग करने की योजना बना रहे हैं, तो आप डिफ़ॉल्ट गुण मानों के साथ रह सकते हैं। यदि आप cloud वातावरण का उपयोग करने की योजना बना रहे हैं, तो जब आप purpleteam खाते के लिए साइन-अप करेंगे तो आपको यह जानकारी दी जाएगी।
buildUserConfig.fileUri इस मान को कॉन्फ़िगर करें यदि आप इसे मैन्युअल रूप से CLI में तर्क के रूप में पास नहीं करना चाहते हैं। यह वह Job फ़ाइल है जिसे आपने अपने सिस्टम अंडर टेस्ट (SUT) विवरण निर्दिष्ट करने के लिए कॉन्फ़िगर किया है।
outcomes.dir इस मान को कॉन्फ़िगर करें। यह आपकी पसंद की एक निर्देशिका है जहाँ ऑर्केस्ट्रेटर (यदि local env में चल रहा है) या API (यदि cloud env में चल रहा है) से आउटकम फ़ाइलें संग्रहीत की जाएंगी।