npm क्लासिक टोकन रद्द — पूर्ण‑स्टैक टीमों के लिए तात्कालिक माइग्रेशन चेकलिस्ट

ReactNode.jsDevOps

क्या हुआ (संक्षेप में): GitHub का npm रजिस्ट्रि ने 9 दिसंबर, 2025 को एक योजनाबद्ध सुरक्षा सख्ती पूरी की — सभी विरासती “क्लासिक” npm टोकन स्थायी रूप से रद्द कर दिए गए, स्थानीय लॉगिन के लिए सत्र-आधारित प्रमाणीकरण पेश किया गया, और ग्रेन्युलर एक्सेस टोकन बनाने/प्रबंधित करने के लिए CLI समर्थन उपलब्ध हुआ। यह किसी भी कार्यप्रवाह को तोड़ देता है जो अभी भी लंबे समय तक चलने वाले क्लासिक टोकन (CI रहस्य, बेक्ड इमेज, डिप्लॉय स्क्रिप्ट, आंतरिक उपकरण) पर निर्भर है। (github.blog)

पूर्ण‑स्टैक टीमों के लिए यह क्यों महत्वपूर्ण है

  • प्रकाशन/पाइपलाइन आउटेज: CI नौकरियां जो एक क्लासिक NPM_TOKEN को इंजेक्ट करती हैं, अब प्रमाणीकरण त्रुटियों के साथ विफल होंगी, अक्सर रिलीज प्रवाह में चुपचाप। (github.blog)
  • बढ़ी हुई घुमाव और 2FA अनुशासन: ग्रेन्युलर लिखने वाले टोकन डिफ़ॉल्ट रूप से अल्पकालिक होते हैं और स्वचालन के लिए मजबूत 2FA/बायपास नियम लागू करते हैं — आपको टोकन घुमाव/प्रमाणन या OIDC-आधारित प्रकाशन की आवश्यकता है। (github.blog)
  • छिपे हुए क्रेडेंशियल: कंटेनर छवियों, निर्माण कैश, या डेवलपर मशीनों में बेक्ड टोकन काम करना बंद कर देते हैं और कई स्थानों (छवियाँ, क्लाउड रहस्य, ~/.npmrc) में सुधार की आवश्यकता हो सकती है। (github.blog)

अब क्या करें — प्राथमिकता वाली चेकलिस्ट (आज ही इसे चलाएँ)

  1. प्राथमिकता तय करें: क्लासिक npm टोकनों का सभी उपयोग खोजें
  • GitHub/GitLab/CI रहस्यों में NPM_TOKEN, npmrc फ़ाइलें, Dockerfiles, और निर्माण स्क्रिप्ट के लिए खोजें। स्व-होस्ट किए गए रनर्स और क्लाउड इमेज को न भूलें। यह सबसे उच्च-प्रभाव वाला कदम है। (github.blog)
  1. CI प्रकाशन को पुनर्स्थापित करें (त्वरित पुनर्प्राप्ति)
  • यदि आप GitHub Actions या GitLab से प्रकाशन करते हैं, तो जहां समर्थित हो “विश्वसनीय प्रकाशन” / OIDC अपनाएँ — यह प्रत्येक कार्यप्रवाह रन के लिए छोटे क्रेडेंशियल जारी करके संग्रहीत लंबे समय तक चलने वाले टोकनों को समाप्त करता है। यदि OIDC संभव नहीं है, तो न्यूनतम आवश्यक स्कोप के साथ एक ग्रेन्युलर एक्सेस टोकन बनाएं और उस टोकन के लिए CI “2FA बायपास” विकल्प सक्षम करें। एक रिहर्सल प्रकाशन का परीक्षण करें। (github.blog)
  1. रहस्यों और छवियों को घुमाएँ
  • किसी भी NPM_TOKEN रहस्यों को नए ग्रेन्युलर टोकनों के साथ बदलें या OIDC पर शिफ्ट करें। किसी भी कंटेनर छवियों या VM छवियों को फिर से बनाएं और पुनः तैनात करें जिनमें क्लासिक टोकन थे। घुमाव के बाद 401/403 विफलताओं के लिए CI लॉग का ऑडिट करें। (github.blog)
  1. स्थानीय डेवलपर कार्यप्रवाह अपडेट
  • इंजीनियरों को शिक्षित करें: npm login अब इंटरैक्टिव प्रकाशन के लिए छोटे (2-घंटे) सत्र उत्पन्न करता है; लंबे समय तक चलने वाले स्थानीय कार्यों के लिए ग्रेन्युलर टोकनों का उपयोग करें या जहां उपलब्ध हो, डेवलपमेंट समय OIDC अपनाएँ। ~/.npmrc से लंबे समय तक चलने वाले टोकनों को हटा दें। (github.blog)
  1. उपकरण और रजिस्ट्रियों को अपडेट करें
  • निजी रजिस्ट्रि/प्रॉक्सी उपकरण: सुनिश्चित करें कि वे ग्रेन्युलर टोकनों और सत्र प्रमाणीकरण का समर्थन करते हैं। यदि आप पुराने पैकेज प्रबंधकों (Yarn v1/v2) पर निर्भर हैं, तो ध्यान दें कि एक विरासती एंडपॉइंट को रोलआउट के दौरान अस्थायी रूप से पुनर्स्थापित किया गया था — एक अपग्रेड की योजना बनाएं क्योंकि वह संगतता परत अल्पकालिक है। (github.blog)
  1. घुमाव और न्यूनतम विशेषाधिकार को स्वचालित करें
  • टोकन घुमाव नीतियों को लागू करें (स्वचालित नवीनीकरण या छोटे TTL), जहां संभव हो “केवल प्रकाशन” या केवल-पढ़ने वाले टोकनों के लिए टोकन स्कोप को सीमित करें, और पैकेज और संगठन स्तर पर न्यूनतम विशेषाधिकार लागू करें। अपने रहस्य प्रबंधक (Secrets Manager, Vault, GitHub Secrets + OIDC) में घुमाव को एकीकृत करें। (github.blog)
  1. माइग्रेशन के बाद की पुष्टि
  • CI और स्थानीय विकास मशीनों से पूर्ण प्रकाशन ड्राई-रन चलाएँ। पुष्टि करें कि npm publish, npm pack, और npm dist-tag अपेक्षित रूप से काम करते हैं और कि पैकेज की उत्पत्ति (जब उपलब्ध हो) विश्वसनीय प्रकाशन/OIDC द्वारा रिकॉर्ड की जाती है।

त्वरित सुधार प्लेबुक (न्यूनतम कमांड/कदम)

  • ऑडिट: रिपोजिटरी और छवियों में NPM_TOKEN के लिए grep/secret-scan करें।
  • CI: प्रकाशन नौकरियों को OIDC का उपयोग करने के लिए स्विच करें (GitHub Actions: id-token अनुमतियों को कॉन्फ़िगर करें + npm सेटिंग्स में विश्वसनीय प्रकाशक) या CI के लिए केवल सही स्कोप + 2FA बायपास के साथ एक ग्रेन्युलर टोकन बनाएं। (github.blog)
  • स्थानीय: डेवलपर्स को npm login चलाने और ~/.npmrc से विरासती टोकन हटाने के लिए निर्देश दें; अस्थायी सत्रों या प्रति-कार्य ग्रेन्युलर टोकनों को प्राथमिकता दें। (github.blog)

संचालन संबंधी समस्याएँ और जाल

  • मोनोरेपो और कार्यक्षेत्र स्क्रिप्ट सामान्यतः एक ही टोकन का पुन: उपयोग करती हैं — उस एक रहस्य को घुमाना एक साथ दर्जनों पैकेजों को बर्बाद कर सकता है। एक रिहर्सल प्रकाशन के साथ रोलआउट को स्टैगर करें। (github.blog)
  • CI छवियाँ या निर्माण कैश जो टोकन को एम्बेड करते हैं, को फिर से बनाना होगा; अन्यथा पाइपलाइनों में रहस्य घुमाव के बाद भी विफलता होगी। (github.blog)
  • कुछ तृतीय-पक्ष सेवाएँ या पुराने उपकरण अभी भी क्लासिक टोकनों की अपेक्षा कर सकते हैं; विक्रेता-द्वारा-विक्रेता जांच आवश्यक हैं। (github.blog)

यह प्रयास करने लायक क्यों है यह परिवर्तन लीक हुए लंबे समय तक चलने वाले क्रेडेंशियल्स से विस्फोटक क्षेत्र को महत्वपूर्ण रूप से कम करता है, बेहतर स्वचालन स्वच्छता (OIDC/विश्वसनीय प्रकाशन) को मजबूर करता है, और npm रजिस्ट्रि को मजबूत, आधुनिक प्रमाणीकरण पैटर्न के साथ संरेखित करता है — लेकिन यह उन टीमों के लिए तात्कालिक संचालन कार्य की आवश्यकता करता है जो अभी भी विरासती टोकनों पर निर्भर हैं। (github.blog)

अधिक पढ़ाई (आधिकारिक चेंजलॉग)

स्रोत

आगे पढ़ें