अपडेट पर वापस जाएँ
New releaseSep 4, 2026

safe-chain v1.5.16

npm, yarn, pnpm, npx, pnpx, pip, uv और poetry के माध्यम से इंस्टॉल किए गए दुर्भावनापूर्ण कोड से Aikido Safe Chain के साथ सुरक्षा करें। उपयोग के लिए निःशुल्क, किसी टोकन की आवश्यकता नहीं है।

साझा करें

Aikido Safe Chain

Aikido Safe Chain

NPM Version NPM Downloads

  • डेवलपर लैपटॉप और CI/CD पर मैलवेयर ब्लॉक करें
  • npm और PyPI सपोर्ट करता है, और अधिक पैकेज मैनेजर आ रहे हैं
  • 48 घंटे से नए पैकेज ब्लॉक करता है बिना आपके बिल्ड को तोड़े
  • टोकन-रहित, मुफ्त, कोई बिल्ड डेटा साझा नहीं किया जाता

npm और PyPI से परे सुरक्षा चाहिए?

Aikido Device Protection Safe Chain पर आधारित है, जो पैकेज और एक्सटेंशन सुरक्षा को अधिक इकोसिस्टम तक विस्तारित करता है: npm, PyPI, VS Code, Open VSX - (Cursor, Windsurf, Kiro, Vs Codium, ...), Maven, NuGet, Chrome एक्सटेंशन, Go, Skills.sh AI स्किल्स, Ruby, Rust, और अधिक।

केंद्रीकृत पॉलिसी प्रबंधन, अनुरोध-और-अनुमोदन वर्कफ़्लो, और आपके संगठन के हर डेवलपर वर्कस्टेशन पर दृश्यता प्राप्त करें। यह उसी Aikido Intel फ़ीड द्वारा संचालित है। इसे मैन्युअल रूप से तैनात करें या अपने MDM टूल (Jamf, Fleet, या Iru) के माध्यम से प्रबंधित करें।


Aikido Safe Chain निम्नलिखित पैकेज मैनेजरों का समर्थन करता है:

  • 📦 npm
  • 📦 npx
  • 📦 yarn
  • 📦 pnpm
  • 📦 pnpx
  • 📦 rush
  • 📦 rushx
  • 📦 bun
  • 📦 bunx
  • 📦 pip
  • 📦 pip3
  • 📦 uv
  • 📦 poetry
  • 📦 uvx
  • 📦 pipx
  • 📦 pdm

उपयोग

Aikido Safe Chain demo

इंस्टॉलेशन

Aikido Safe Chain को इंस्टॉलेशन स्क्रिप्ट के साथ इंस्टॉल करना आसान है।

Unix/Linux/macOS```shell

curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.sh -o /tmp/install-safe-chain.sh
&& echo "7a7b6e54c2e0adbcb53bc1bf7d258cc974f8f31e77ed048b88e4d2e4ac758839 /tmp/install-safe-chain.sh" | sha256sum -c -
&& sh /tmp/install-safe-chain.sh
&& rm /tmp/install-safe-chain.sh

### Windows (PowerShell)```powershell
$installer = Join-Path $env:TEMP "install-safe-chain.ps1"
Invoke-WebRequest "https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.ps1" -OutFile $installer -UseBasicParsing
$expectedHash = "6F46B5CFA42DDF9545616E169A567E764CE179E6321E6555D2C3A81768E2635D"
if ((Get-FileHash $installer -Algorithm SHA256).Hash -ne $expectedHash) {
    Remove-Item $installer -ErrorAction SilentlyContinue
    throw "Checksum verification failed for install-safe-chain.ps1"
}
& $installer
Remove-Item $installer

उपरोक्त इंस्टॉल कमांड हमेशा एक विशिष्ट रिलीज़ को संदर्भित करते हैं। किसी अलग संस्करण को इंस्टॉल करने के लिए, संस्करण को अपने इच्छित संस्करण संख्या से बदलें। सभी उपलब्ध संस्करण रिलीज़ पेज पर हैं।

डाउनलोड अखंडता

इंस्टॉल स्क्रिप्ट एक संस्करणित रिलीज़ URL (releases/download/1.5.16/...) से प्रदान की जाती हैं। GitHub रिलीज़ अपरिवर्तनीय हैं — एक बार किसी आर्टिफैक्ट को संस्करणित URL पर प्रकाशित कर दिया जाए, तो उसे संशोधित या प्रतिस्थापित नहीं किया जा सकता, इसलिए आपके द्वारा डाउनलोड की गई फ़ाइल की गारंटी है कि वह बिल्कुल वही है जो रिलीज़ की गई थी।

इंस्टॉलेशन सत्यापित करें

  1. ❗अपना टर्मिनल पुनः आरंभ करें Aikido Safe Chain का उपयोग शुरू करने के लिए।

    • यह चरण महत्वपूर्ण है क्योंकि यह सुनिश्चित करता है कि npm, npx, yarn, pnpm, pnpx, rush, rushx, bun, bunx, pip, pip3, poetry, uv, uvx, pipx और pdm के लिए शेल एलियास सही ढंग से लोड हों। यदि आप अपना टर्मिनल पुनः आरंभ नहीं करते हैं, तो एलियास उपलब्ध नहीं होंगे।
  2. इंस्टॉलेशन सत्यापित करें सत्यापन कमांड चलाकर: ```shell npm safe-chain-verify pnpm safe-chain-verify pip safe-chain-verify uv safe-chain-verify

    Any other supported package manager: {packagemanager} safe-chain-verify

  • आउटपुट में "OK: Safe-chain works!" प्रदर्शित होना चाहिए, जो पुष्टि करता है कि Aikido Safe Chain सही ढंग से इंस्टॉल और चल रहा है।
  1. (वैकल्पिक) मैलवेयर ब्लॉकिंग का परीक्षण करने के लिए एक टेस्ट पैकेज इंस्टॉल करने का प्रयास करें:

    JavaScript/Node.js के लिए: ```shell npm install safe-chain-test

Python के लिए: ```shell pip3 install safe-chain-pi-test

- आउटपुट से यह दिखना चाहिए कि Aikido Safe Chain इन टेस्ट पैकेजों की स्थापना को ब्लॉक कर रहा है, क्योंकि उन्हें मैलवेयर के रूप में फ्लैग किया गया है।

`npm`, `npx`, `yarn`, `pnpm`, `pnpx`, `rush`, `rushx`, `bun`, `bunx`, `pip`, `pip3`, `uv`, `uvx`, `poetry`, `pipx` और `pdm` कमांड चलाते समय, Aikido Safe Chain स्वचालित रूप से उन पैकेजों में मैलवेयर की जाँच करेगा जिन्हें आप इंस्टॉल करने का प्रयास कर रहे हैं। यह उपलब्ध होने पर pip के लिए Python मॉड्यूल इनवोकेशन को भी इंटरसेप्ट करता है (जैसे, `python -m pip install ...`, `python3 -m pip download ...`)। यदि कोई मैलवेयर पाया जाता है, तो यह आपको कमांड से बाहर निकलने के लिए प्रॉम्प्ट करेगा।

आप इंस्टॉल किए गए संस्करण को निम्न कमांड चलाकर जाँच सकते हैं:```shell
safe-chain --version

यह कैसे काम करता है

मैलवेयर ब्लॉकिंग

Aikido Safe Chain एक हल्का प्रॉक्सी सर्वर चलाकर काम करता है जो npm रजिस्ट्री और PyPI से पैकेज डाउनलोड को इंटरसेप्ट करता है। जब आप npm, npx, yarn, pnpm, pnpx, rush, rushx, bun, bunx, pip, pip3, uv, uvx, poetry, pipx या pdm कमांड चलाते हैं, तो सभी पैकेज डाउनलोड इस स्थानीय प्रॉक्सी के माध्यम से रूट होते हैं, जो Aikido Intel - Open Sources Threat Intelligence के विरुद्ध वास्तविक समय में पैकेजों को सत्यापित करता है। यदि किसी पैकेज (गहरी निर्भरताओं सहित) में मैलवेयर पाया जाता है, तो प्रॉक्सी दुर्भावनापूर्ण कोड आपकी मशीन तक पहुँचने से पहले डाउनलोड को ब्लॉक कर देता है।

न्यूनतम पैकेज आयु

Safe Chain समर्थित इकोसिस्टम पर न्यूनतम पैकेज आयु जाँच लागू करता है।

वर्तमान प्रवर्तन इकोसिस्टम के अनुसार भिन्न होता है:

  • npm-आधारित पैकेज प्रबंधक:
    • सामान्य पैकेज रिज़ॉल्यूशन के दौरान, Safe Chain रजिस्ट्री द्वारा लौटाए गए पैकेज मेटाडेटा से उन संस्करणों को दबा देता है जो कॉन्फ़िगर की गई न्यूनतम आयु से नए हैं
    • उन सीधे पैकेज डाउनलोड अनुरोधों के लिए जो उस मेटाडेटा प्रवाह को बायपास करते हैं, Safe Chain नए जारी किए गए पैकेजों की कैश्ड सूची का उपयोग करके अनुरोध को स्वयं ब्लॉक कर सकता है
  • Python पैकेज प्रबंधक:
    • पैकेज रिज़ॉल्यूशन के दौरान, Safe Chain PyPI मेटाडेटा प्रतिक्रियाओं से बहुत नई फ़ाइलों और रिलीज़ों को दबा देता है
    • उन सीधे पैकेज डाउनलोड अनुरोधों के लिए जो उस मेटाडेटा प्रवाह को बायपास करते हैं, Safe Chain नए जारी किए गए पैकेजों की कैश्ड सूची का उपयोग करके अनुरोध को स्वयं ब्लॉक कर सकता है

डिफ़ॉल्ट रूप से, न्यूनतम पैकेज आयु 48 घंटे है। यह उस महत्वपूर्ण अवधि के दौरान एक अतिरिक्त सुरक्षा परत प्रदान करता है जब नए प्रकाशित पैकेजों में अनपहचाने खतरे होने की सबसे अधिक संभावना होती है। आप इस सीमा को कॉन्फ़िगर कर सकते हैं या इस सुरक्षा को पूरी तरह से बायपास कर सकते हैं - नीचे Minimum Package Age Configuration अनुभाग देखें।

शेल एकीकरण

Aikido Safe Chain आपके शेल के साथ एकीकृत होता है ताकि npm, npx, yarn, pnpm, pnpx, rush, rushx, bun, bunx, और Python पैकेज प्रबंधकों (pip, uv, uvx, poetry, pipx, pdm) का उपयोग करते समय एक सहज अनुभव प्रदान किया जा सके। यह इन कमांडों के लिए उपनाम सेट करता है ताकि वे Aikido Safe Chain कमांडों द्वारा रैप किए जाएँ, जो मूल कमांडों को निष्पादित करने से पहले प्रॉक्सी सर्वर का प्रबंधन करते हैं। हम वर्तमान में समर्थन करते हैं:

  • Bash
  • Zsh
  • Fish
  • PowerShell
  • PowerShell Core

शेल एकीकरण के बारे में अधिक जानकारी shell integration documentation में पाई जा सकती है।

अनइंस्टॉलेशन

Aikido Safe Chain को अनइंस्टॉल करने के लिए, हमारे एक-लाइन अनइंस्टॉलर का उपयोग करें:

Unix/Linux/macOS```shell

curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/uninstall-safe-chain.sh | sh

### Windows (PowerShell)```powershell
iex (iwr "https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/uninstall-safe-chain.ps1" -UseBasicParsing)

❗अपने टर्मिनल को पुनः आरंभ करें अनइंस्टॉल करने के बाद, यह सुनिश्चित करने के लिए कि सभी एलियास हटा दिए गए हैं।

कॉन्फ़िगरेशन

लॉगिंग

आप Aikido Safe Chain से आउटपुट को --safe-chain-logging फ्लैग या SAFE_CHAIN_LOGGING एनवायरनमेंट वेरिएबल का उपयोग करके नियंत्रित कर सकते हैं।

कॉन्फ़िगरेशन विकल्प

आप लॉगिंग स्तर को कई स्रोतों के माध्यम से सेट कर सकते हैं (प्राथमिकता के क्रम में):

  1. CLI आर्गुमेंट (उच्चतम प्राथमिकता):

    • --safe-chain-logging=silent - मैलवेयर ब्लॉक होने के अलावा सभी Aikido Safe Chain आउटपुट को दबा देता है। पैकेज मैनेजर का आउटपुट सामान्य रूप से stdout पर लिखा जाता है, और Safe Chain केवल एक छोटा संदेश लिखता है यदि उसने मैलवेयर ब्लॉक किया है और प्रक्रिया को बाहर निकलने का कारण बनता है।

      npm install express --safe-chain-logging=silent
      
    • --safe-chain-logging=verbose - Aikido Safe Chain से विस्तृत डायग्नोस्टिक आउटपुट सक्षम करता है। समस्याओं के निवारण या यह समझने के लिए उपयोगी है कि Safe Chain पर्दे के पीछे क्या कर रहा है।

      npm install express --safe-chain-logging=verbose
      
  2. एनवायरनमेंट वेरिएबल: ```shell export SAFE_CHAIN_LOGGING=verbose npm install express

silent, normal, verbose मान्य मान हैं।

यह आपके टर्मिनल सत्र या CI/CD वातावरण में सभी पैकेज मैनेजर कमांड के लिए डिफ़ॉल्ट लॉगिंग स्तर निर्धारित करने के लिए उपयोगी है।

फ़ाइल लॉगिंग

आप --safe-chain-log-file फ़्लैग या SAFE_CHAIN_LOG_FILE पर्यावरण चर का उपयोग करके Aikido Safe Chain आउटपुट को लॉग फ़ाइल में मिरर कर सकते हैं। फ़ाइल लॉगिंग डिफ़ॉल्ट रूप से अक्षम है और पथ सेट होने पर सक्षम होती है। फ़ाइल प्रारूप (--safe-chain-log-file-format) और वर्बोसिटी (--safe-chain-log-file-verbosity) टर्मिनल आउटपुट से स्वतंत्र रूप से नियंत्रित होते हैं।

कॉन्फ़िगरेशन विकल्प

इनमें से किसी के माध्यम से सेट करें (प्राथमिकता के क्रम में):

  1. CLI तर्क (उच्चतम प्राथमिकता): ```shell npm install express
    --safe-chain-log-file=~/safe-chain.log
    --safe-chain-log-file-format=plain
    --safe-chain-log-file-verbosity=normal
  2. पर्यावरण चर: ```shell export SAFE_CHAIN_LOG_FILE=~/safe-chain.log export SAFE_CHAIN_LOG_FILE_FORMAT=plain export SAFE_CHAIN_LOG_FILE_VERBOSITY=normal
  3. कॉन्फ़िग फ़ाइल (~/.safe-chain/config.json): ```json { "logFile": "~/safe-chain.log", "logFileFormat": "plain", "logFileVerbosity": "normal" }

logFileFormatjson (डिफ़ॉल्ट) या plain

logFileVerbositysilent, normal, या verbose (डिफ़ॉल्ट)। यह --safe-chain-logging से स्वतंत्र है।

न्यूनतम पैकेज आयु

आप कॉन्फ़िगर कर सकते हैं कि Safe Chain द्वारा पैकेज इंस्टॉल करने की अनुमति देने से पहले पैकेज कितने समय तक मौजूद रहना चाहिए। डिफ़ॉल्ट रूप से, पैकेज इंस्टॉल होने से पहले कम से कम 48 घंटे पुराने होने चाहिए।

npm-आधारित पैकेज मैनेजरों के लिए, यह जाँच वर्तमान में दो प्रवर्तन मोड में काम करती है:

  • Safe Chain सामान्य निर्भरता समाधान के दौरान पैकेज मेटाडेटा से बहुत नए संस्करणों को दबा देता है।
  • Safe Chain सीधे पैकेज डाउनलोड अनुरोधों को तब ब्लॉक करता है जब उन्हें कैश की गई नई रिलीज़ की सूची से मिलाया जाता है।

Python पैकेज मैनेजरों के लिए, यह जाँच वर्तमान में दो प्रवर्तन मोड में काम करती है:

  • Safe Chain निर्भरता समाधान के दौरान PyPI मेटाडेटा से बहुत नई फ़ाइलों और रिलीज़ को दबा देता है।
  • Safe Chain सीधे पैकेज डाउनलोड अनुरोधों को तब ब्लॉक करता है जब उन्हें कैश की गई नई रिलीज़ की सूची से मिलाया जाता है।

कॉन्फ़िगरेशन विकल्प

आप न्यूनतम पैकेज आयु को कई स्रोतों के माध्यम से सेट कर सकते हैं (प्राथमिकता के क्रम में):

  1. CLI तर्क (उच्चतम प्राथमिकता): ```shell npm install express --safe-chain-minimum-package-age-hours=48
  2. पर्यावरण चर: ```shell export SAFE_CHAIN_MINIMUM_PACKAGE_AGE_HOURS=48 npm install express
  3. कॉन्फ़िग फ़ाइल (~/.safe-chain/config.json): ```json { "minimumPackageAgeHours": 48 }

पैकेजों को बाहर करना

न्यूनतम आयु फ़िल्टरिंग से विश्वसनीय पैकेजों को पर्यावरण चर या कॉन्फ़िग फ़ाइल के माध्यम से बाहर करें (दोनों को मर्ज किया जाता है)। किसी संगठन के सभी पैकेजों पर भरोसा करने के लिए @scope/* का उपयोग करें:```shell export SAFE_CHAIN_MINIMUM_PACKAGE_AGE_EXCLUSIONS="@aikidosec/*"

यहाँ आपका अनुवाद है:

**सुरक्षा अनुसंधान और शिक्षा के लिए उपयोग**

यह टूल विशेष रूप से सुरक्षा अनुसंधान, शैक्षिक उद्देश्यों और अधिकृत पैठ परीक्षण के लिए डिज़ाइन किया गया है। इसका उपयोग केवल उन प्रणालियों पर करें जिनके आप स्वामी हैं या जिनका परीक्षण करने के लिए आपके पास स्पष्ट अनुमति है। अनधिकृत उपयोग या दुर्भावनापूर्ण गतिविधियाँ सख्त वर्जित हैं और स्थानीय कानूनों के तहत आपराधिक अपराध हो सकते हैं। उपयोगकर्ता इस टूल के उपयोग से उत्पन्न होने वाले किसी भी परिणाम के लिए पूरी तरह जिम्मेदार हैं।```json
{
  "npm": {
    "minimumPackageAgeExclusions": ["@aikidosec/*"]
  },
  "pip": {
    "minimumPackageAgeExclusions": ["requests"]
  }
}

कस्टम रजिस्ट्रियाँ

Safe Chain को कस्टम या निजी रजिस्ट्रियों से पैकेज स्कैन करने के लिए कॉन्फ़िगर करें।

समर्थित इकोसिस्टम:

  • Node.js
  • Python

कॉन्फ़िगरेशन विकल्प

आप एनवायरनमेंट वेरिएबल या कॉन्फ़िग फ़ाइल के माध्यम से कस्टम रजिस्ट्रियाँ सेट कर सकते हैं। दोनों स्रोतों को एक साथ मर्ज किया जाता है।

  1. एनवायरनमेंट वेरिएबल (कॉमा-सेपरेटेड): ```shell export SAFE_CHAIN_NPM_CUSTOM_REGISTRIES="npm.company.com,registry.internal.net" export SAFE_CHAIN_PIP_CUSTOM_REGISTRIES="pip.company.com,registry.internal.net"
  2. कॉन्फ़िग फ़ाइल (~/.safe-chain/config.json): ```json { "npm": { "customRegistries": ["npm.company.com", "registry.internal.net"] }, "pip": { "customRegistries": ["pip.company.com", "registry.internal.net"] } }

PYPI कॉन्फ़िगरेशन फ़ाइल

यदि आप pip कॉन्फ़िगरेशन के लिए pip.conf फ़ाइल पर निर्भर हैं, तो आपको PIP_CONFIG_FILE पर्यावरण चर के माध्यम से pip को स्पष्ट रूप से उस ओर इंगित करना होगा ताकि Safe Chain इसे मर्ज कर सके।

Safe Chain अपने MITM प्रॉक्सी के पीछे pip चलाता है और अपने प्रमाणपत्र और प्रॉक्सी सेटिंग्स इंजेक्ट करने के लिए एक अस्थायी pip कॉन्फ़िगरेशन फ़ाइल लिखता है। जब PIP_CONFIG_FILE सेट होता है, तो Safe Chain अपनी सेटिंग्स को आपकी फ़ाइल की एक प्रति में मर्ज करता है (आपकी मूल फ़ाइल कभी संशोधित नहीं होती) ताकि आपका index-url, क्रेडेंशियल्स और अन्य विकल्प संरक्षित रहें। जब PIP_CONFIG_FILE सेट नहीं होता है, तो pip का उपयोगकर्ता-स्तरीय कॉन्फ़िग (जैसे ~/.config/pip/pip.conf) Safe Chain की अस्थायी फ़ाइल द्वारा ओवरराइड हो सकता है और आपकी सेटिंग्स को नहीं उठाया जाएगा।

मैलवेयर सूची बेस URL

Safe Chain को कस्टम मिरर URL से मैलवेयर डेटाबेस और नए पैकेज सूचियाँ प्राप्त करने के लिए कॉन्फ़िगर करें। यह आपको Aikido मैलवेयर डेटाबेस की अपनी प्रति होस्ट करने की अनुमति देता है।

कॉन्फ़िगरेशन विकल्प

आप मैलवेयर सूची बेस URL को कई स्रोतों के माध्यम से सेट कर सकते हैं (प्राथमिकता के क्रम में):

  1. CLI तर्क (उच्चतम प्राथमिकता): ```shell npm install express --safe-chain-malware-list-base-url=https://your-mirror.com
  2. पर्यावरण चर: ```shell export SAFE_CHAIN_MALWARE_LIST_BASE_URL=https://your-mirror.com npm install express
  3. कॉन्फ़िग फ़ाइल (~/.safe-chain/config.json): ```json { "malwareListBaseUrl": "https://your-mirror.com" }

आधार URL को ऐसे सर्वर की ओर इंगित करना चाहिए जो https://malware-list.aikido.dev/ की संरचना को प्रतिबिंबित करता हो, जिसमें निम्नलिखित पथ शामिल हों:

  • /malware_predictions.json (JavaScript इकोसिस्टम मैलवेयर डेटाबेस)
  • /malware_pypi.json (Python इकोसिस्टम मैलवेयर डेटाबेस)
  • /releases/npm.json (JavaScript नए पैकेजों की सूची)
  • /releases/pypi.json (Python नए पैकेजों की सूची)

प्रोजेक्ट कॉन्फ़िग फ़ाइल

होम-डायरेक्टरी कॉन्फ़िग फ़ाइल (~/.safe-chain/config.json) के अतिरिक्त, Safe Chain एक प्रोजेक्ट कॉन्फ़िग फ़ाइल का भी समर्थन करता है ताकि सेटिंग्स को रिपॉजिटरी में चेक इन किया जा सके और पूरी टीम में साझा किया जा सके, बजाय प्रति-मशीन कॉन्फ़िगर करने के।

अपने रिपॉजिटरी के रूट पर .aikido फ़ाइल में एक safe-chain: सेक्शन जोड़ें (वही फ़ाइल जो अन्य Aikido टूल्स द्वारा उपयोग की जाती है; Safe Chain केवल अपना स्वयं का safe-chain: सेक्शन पढ़ता है और बाकी को अनदेखा करता है)। जब यह पाया जाता है, तो इसकी सेटिंग्स आपकी होम-डायरेक्टरी कॉन्फ़िग फ़ाइल के ऊपर मर्ज हो जाती हैं: प्रोजेक्ट कॉन्फ़िग में निर्धारित मान प्राथमिकता लेते हैं, और ऐरे (जैसे customRegistries) दोनों फ़ाइलों से संयोजित होते हैं, न कि एक दूसरे की जगह लेता है।

प्रोजेक्ट कॉन्फ़िग फ़ाइल से केवल निम्नलिखित सेटिंग्स निर्धारित की जा सकती हैं:```yaml safe-chain: minimumPackageAgeHours: 48 npm: customRegistries: - npm.company.com minimumPackageAgeExclusions: - "@aikidosec/*" pip: customRegistries: - pip.company.com minimumPackageAgeExclusions: - requests

`scanTimeout`, `malwareListBaseUrl`, और `logFile*` जैसी सेटिंग्स को प्रोजेक्ट कॉन्फ़िग फ़ाइल से सेट नहीं किया जा सकता - वे केवल आपकी होम-डायरेक्टरी कॉन्फ़िग, CLI तर्कों, या पर्यावरण चरों से आ सकती हैं।

## कस्टम इंस्टॉल डायरेक्टरी

डिफ़ॉल्ट रूप से, Safe Chain स्वयं को `~/.safe-chain` में इंस्टॉल करता है। आप इंस्टॉलर को एक स्पष्ट इंस्टॉल डायरेक्टरी पास करके इसे बदल सकते हैं। यह सिस्टम-व्यापी इंस्टॉलेशन (जैसे Docker इमेज के अंदर) के लिए या जब आपको अन्य टूल्स के साथ टकराव से बचने की आवश्यकता हो, उपयोगी है।

जब सेट किया जाता है, तो सभी Safe Chain डेटा (बाइनरी, शिम्स, स्क्रिप्ट्स, कॉन्फ़िग) `~/.safe-chain` के बजाय कस्टम डायरेक्टरी के अंतर्गत रखा जाता है।

### Unix/Linux/macOS```shell
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.sh -o /tmp/install-safe-chain.sh \
  && echo "7a7b6e54c2e0adbcb53bc1bf7d258cc974f8f31e77ed048b88e4d2e4ac758839  /tmp/install-safe-chain.sh" | sha256sum -c - \
  && sh /tmp/install-safe-chain.sh --install-dir /usr/local/.safe-chain \
  && rm /tmp/install-safe-chain.sh

Windows```powershell

$installer = Join-Path $env:TEMP "install-safe-chain.ps1" Invoke-WebRequest "https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.ps1" -OutFile $installer -UseBasicParsing $expectedHash = "6F46B5CFA42DDF9545616E169A567E764CE179E6321E6555D2C3A81768E2635D" if ((Get-FileHash $installer -Algorithm SHA256).Hash -ne $expectedHash) { Remove-Item $installer -ErrorAction SilentlyContinue throw "Checksum verification failed for install-safe-chain.ps1" } & $installer -InstallDir 'C:\ProgramData\safe-chain' Remove-Item $installer

# CI/CD में उपयोग

आप अपनी CI/CD पाइपलाइनों को दुर्भावनापूर्ण पैकेजों से सुरक्षित कर सकते हैं, Aikido Safe Chain को अपनी बिल्ड प्रक्रिया में एकीकृत करके। यह सुनिश्चित करता है कि आपके स्वचालित बिल्ड के दौरान इंस्टॉल किए गए किसी भी पैकेज की इंस्टॉलेशन से पहले मैलवेयर के लिए जाँच की जाए।

## CI/CD के लिए इंस्टॉलेशन

CI/CD वातावरण के लिए Aikido Safe Chain को स्वचालित रूप से कॉन्फ़िगर करने हेतु `--ci` फ़्लैग का उपयोग करें। यह शेल एलियास के बजाय PATH में एक्ज़ीक्यूटेबल शिम्स सेट करता है।

### Unix/Linux/macOS (GitHub Actions, Azure Pipelines, आदि)```shell
curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.sh -o /tmp/install-safe-chain.sh \
  && echo "7a7b6e54c2e0adbcb53bc1bf7d258cc974f8f31e77ed048b88e4d2e4ac758839  /tmp/install-safe-chain.sh" | sha256sum -c - \
  && sh /tmp/install-safe-chain.sh --ci \
  && rm /tmp/install-safe-chain.sh

Windows (Azure Pipelines, आदि)```powershell

$installer = Join-Path $env:TEMP "install-safe-chain.ps1" Invoke-WebRequest "https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.ps1" -OutFile $installer -UseBasicParsing $expectedHash = "6F46B5CFA42DDF9545616E169A567E764CE179E6321E6555D2C3A81768E2635D" if ((Get-FileHash $installer -Algorithm SHA256).Hash -ne $expectedHash) { Remove-Item $installer -ErrorAction SilentlyContinue throw "Checksum verification failed for install-safe-chain.ps1" } & $installer -ci Remove-Item $installer

## समर्थित प्लेटफ़ॉर्म

- ✅ **GitHub Actions**
- ✅ **Azure Pipelines**
- ✅ **CircleCI**
- ✅ **Jenkins**
- ✅ **Bitbucket Pipelines**
- ✅ **GitLab Pipelines**

## GitHub Actions उदाहरण```yaml
- name: Setup Node.js
  uses: actions/setup-node@v4
  with:
    node-version: "22"
    cache: "npm"

- name: Install safe-chain
  run: |
    curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.sh -o /tmp/install-safe-chain.sh
    echo "7a7b6e54c2e0adbcb53bc1bf7d258cc974f8f31e77ed048b88e4d2e4ac758839  /tmp/install-safe-chain.sh" | sha256sum -c -
    sh /tmp/install-safe-chain.sh --ci
    rm /tmp/install-safe-chain.sh

- name: Install dependencies
  run: npm ci

Azure DevOps उदाहरण```yaml

  • task: NodeTool@0 inputs: versionSpec: "22.x" displayName: "Install Node.js"

  • script: | curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.sh -o /tmp/install-safe-chain.sh echo "7a7b6e54c2e0adbcb53bc1bf7d258cc974f8f31e77ed048b88e4d2e4ac758839 /tmp/install-safe-chain.sh" | sha256sum -c - sh /tmp/install-safe-chain.sh --ci rm /tmp/install-safe-chain.sh displayName: "Install safe-chain"

  • script: npm ci displayName: "Install dependencies"

## CircleCI उदाहरण```yaml
version: 2.1
jobs:
  build:
    docker:
      - image: cimg/node:lts
    steps:
      - checkout
      - run: |
          curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.sh -o /tmp/install-safe-chain.sh
          echo "7a7b6e54c2e0adbcb53bc1bf7d258cc974f8f31e77ed048b88e4d2e4ac758839  /tmp/install-safe-chain.sh" | sha256sum -c -
          sh /tmp/install-safe-chain.sh --ci
          rm /tmp/install-safe-chain.sh
      - run: npm ci
workflows:
  build_and_test:
    jobs:
      - build

Jenkins उदाहरण

नोट: यह मानता है कि Jenkins एजेंट पर Node.js और npm स्थापित हैं।```groovy pipeline { agent any

environment { // Jenkins does not automatically persist PATH updates from setup-ci, // so add the shims + binary directory explicitly for all stages. // If you installed into a custom directory, replace ~/.safe-chain with that path here. PATH = "${env.HOME}/.safe-chain/shims:${env.HOME}/.safe-chain/bin:${env.PATH}" }

stages { stage('Install safe-chain') { steps { sh ''' set -euo pipefail

      # Install Safe Chain for CI
      curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.sh -o /tmp/install-safe-chain.sh
      echo "7a7b6e54c2e0adbcb53bc1bf7d258cc974f8f31e77ed048b88e4d2e4ac758839  /tmp/install-safe-chain.sh" | sha256sum -c -
      sh /tmp/install-safe-chain.sh --ci
      rm /tmp/install-safe-chain.sh
    '''
  }
}

stage('Install project dependencies etc...') {
  steps {
    sh '''
      set -euo pipefail
      npm ci
    '''
  }
}

} }

## Bitbucket Pipelines उदाहरण```yaml
image: node:22

steps:
  - step:
      name: Install
      script:
        - |
          curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.sh -o /tmp/install-safe-chain.sh
          echo "7a7b6e54c2e0adbcb53bc1bf7d258cc974f8f31e77ed048b88e4d2e4ac758839  /tmp/install-safe-chain.sh" | sha256sum -c -
          sh /tmp/install-safe-chain.sh --ci
          rm /tmp/install-safe-chain.sh
        - export PATH=~/.safe-chain/shims:~/.safe-chain/bin:$PATH
        - npm ci

सेटअप के बाद, आपकी CI पाइपलाइन में सभी बाद के पैकेज मैनेजर कमांड स्वचालित रूप से Aikido Safe Chain के मैलवेयर डिटेक्शन द्वारा सुरक्षित रहेंगे।

GitLab पाइपलाइन उदाहरण

GitLab पाइपलाइनों में safe-chain जोड़ने के लिए, आपको इसे पाइपलाइन चलाने वाली इमेज में इंस्टॉल करना होगा। यह निम्न प्रकार से किया जा सकता है:

  1. अपना बिल्ड चलाने के लिए एक dockerfile परिभाषित करें ```dockerfile FROM node:lts

    Install safe-chain

    RUN curl -fsSL https://github.com/AikidoSec/safe-chain/releases/download/1.5.16/install-safe-chain.sh -o /tmp/install-safe-chain.sh
    && echo "7a7b6e54c2e0adbcb53bc1bf7d258cc974f8f31e77ed048b88e4d2e4ac758839 /tmp/install-safe-chain.sh" | sha256sum -c -
    && sh /tmp/install-safe-chain.sh --ci
    && rm /tmp/install-safe-chain.sh

    Add safe-chain to PATH (update paths if you used a custom install dir)

    ENV PATH="/root/.safe-chain/shims:/root/.safe-chain/bin:${PATH}"

  2. अपने CI पाइपलाइन में Docker इमेज बनाएं ```yaml build-image: stage: build-image image: docker:latest services: - docker:dind script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t $CI_REGISTRY_IMAGE:latest . - docker push $CI_REGISTRY_IMAGE:latest

  3. अपने पाइपलाइन में इमेज का उपयोग करें: ```yaml npm-ci: stage: install image: $CI_REGISTRY_IMAGE:latest script: - npm ci

पूर्ण पाइपलाइन इस उदाहरण के लिए इस प्रकार दिखती है:```yaml stages:

  • build-image
  • install

build-image: stage: build-image image: docker:latest services: - docker:dind script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t $CI_REGISTRY_IMAGE:latest . - docker push $CI_REGISTRY_IMAGE:latest

npm-ci: stage: install image: $CI_REGISTRY_IMAGE:latest script: - npm ci

# समस्या निवारण

समस्याएँ आ रही हैं? सामान्य समस्याओं में सहायता के लिए [समस्या निवारण मार्गदर्शिका](https://github.com/aikidosec/safe-chain/blob/main/docs/troubleshooting.md) देखें।

# समस्याएँ रिपोर्ट करें

यदि आपको समस्याएँ आती हैं:

1. [GitHub Issues](https://github.com/AikidoSec/safe-chain) पर जाएँ
2. शामिल करें:
   * ऑपरेटिंग सिस्टम और संस्करण
   * शेल प्रकार और संस्करण
   * `safe-chain --version` आउटपुट
   * सत्यापन कमांड का आउटपुट
   * विफल कमांड के विस्तृत लॉग (`--safe-chain-logging=verbose` तर्क जोड़ें)

श्रेणियाँ