.env पार्सर और सत्यापनकर्ता

एक .env फ़ाइल पेस्ट करें — या उसे बॉक्स पर छोड़ दें — और उसे पार्स, जांचा और समझाया हुआ वापस पाएं: हर कुंजी एक तालिका में, उसका मान मास्क किया हुआ, हर समस्या उसकी पंक्ति संख्या के साथ सूचीबद्ध। डुप्लिकेट कुंजियाँ, अमान्य नाम, ऐसी पंक्तियाँ जो असाइनमेंट ही नहीं हैं, खाली मान जो चुपचाप डिफ़ॉल्ट को ओवरराइड कर देते हैं। यह पूरी तरह आपके ब्राउज़र में चलता है और फ़ाइल कभी अपलोड नहीं होती, क्योंकि एक प्रोडक्शन .env रहस्यों का बंडल है और उसे वैसा ही माना जाना चाहिए।

क्या जांचा जाता है, और क्यों

.env प्रारूप एक परिपाटी है, मानक नहीं, और इसीलिए फ़ाइलें चुपचाप सड़ जाती हैं। हर लोडर KEY=VALUE पर सहमत है और बाकी हर बात पर असहमत: क्या export उपसर्ग हटाए जाते हैं, क्या उद्धरण चिह्नों का सम्मान होता है, क्या इनलाइन टिप्पणी किसी मान को समाप्त करती है, और — सबसे खतरनाक — एक ही कुंजी की दो परिभाषाओं में से कौन-सी जीतती है। यह सत्यापनकर्ता साझा-भाजक नियम लागू करता है और उन जगहों की रिपोर्ट करता है जहाँ लोडर अलग होते हैं: दोनों पंक्ति संख्याओं के साथ दो बार परिभाषित कुंजी, ऐसा नाम जिसे कोई शेल स्वीकार नहीं करेगा, ऐसा उद्धरण जो खुलता है और कभी बंद नहीं होता, ऐसी पंक्ति जिसमें बराबर का चिह्न ही नहीं है। खाली मानों को असफल नहीं बल्कि चिह्नित किया जाता है, क्योंकि KEY= वैध है — लेकिन वह किसी भी एप्लिकेशन डिफ़ॉल्ट को खाली स्ट्रिंग से ओवरराइड कर देता है, जो किसी सेवा के एक मशीन पर चलने और दूसरी पर न चलने का सबसे आम कारण है।

गोपनीयता डिज़ाइन ही सुविधा है। एक प्रोडक्शन .env डेटाबेस पासवर्ड, API कुंजियाँ और सत्र रहस्यों को एक छोटी फ़ाइल में केंद्रित कर देता है, और स्वाभाविक डीबगिंग कदम — इसे कहीं पेस्ट करके मदद माँगना — ही रिसाव भी है। AI चैट, इश्यू ट्रैकर और टीम चैनल सभी प्रतियाँ रखते हैं, अक्सर खोजने योग्य, अक्सर हमेशा के लिए। इसलिए यह टूल लॉग पार्सर और प्रमाणपत्र जेनरेटर जैसा ही नियम अपनाता है: संवेदनशील इनपुट कभी ब्राउज़र नहीं छोड़ता, मान स्क्रीन पर मास्क किए जाते हैं, और एकमात्र निर्यात वे फ़ाइलें हैं जिन्हें आप जानबूझकर डाउनलोड करते हैं। साथ का लेख, env फ़ाइलें वह जगह हैं जहाँ रहस्य लीक होने जाते हैं, फ़ाइल के आसपास की स्वच्छता को कवर करता है — इसमें क्या होना चाहिए, क्या नहीं, और जब कोई बाहर निकल जाए तो क्या करना चाहिए।

अक्सर पूछे जाने वाले प्रश्न

क्या यहाँ प्रोडक्शन .env पेस्ट करना सुरक्षित है?

हाँ — यही इस टूल का उद्देश्य है। पार्सिंग पूरी तरह आपके ब्राउज़र में चलती है: कोई अपलोड नहीं, कोई सर्वर राउंड-ट्रिप नहीं, और आप जो कुछ भी पेस्ट करते हैं वह कहीं प्रसारित या संग्रहीत नहीं होता। मान डिफ़ॉल्ट रूप से स्क्रीन पर मास्क किए जाते हैं, इसलिए स्क्रीन-शेयर या स्क्रीनशॉट भी उन्हें लीक नहीं करता। .env को AI चैट, टिकट या टीम संदेश में पेस्ट करने के बारे में ऐसा नहीं कहा जा सकता, वे सभी प्रतियाँ रखते हैं — env फ़ाइलों और लीक होते रहस्यों पर लेख सुरक्षित आदतों की व्याख्या करता है।

अगर आखिरी परिभाषा जीतती है तो डुप्लिकेट कुंजी क्यों मायने रखती है?

क्योंकि फ़ाइल संपादित करने वाले इंसान को नहीं पता कि कौन-सी जीतती है। वे पंक्ति 4 पर मान बदलते हैं, फिर से डिप्लॉय करते हैं, और देखते हैं कि कुछ नहीं हुआ — लोडर ने चुपचाप पंक्ति 41 का उपयोग किया था। इससे भी बुरा, कुछ फ़्रेमवर्क पहली परिभाषा लेते हैं और कुछ आखिरी, इसलिए एक ही फ़ाइल पूरे स्टैक में अलग-अलग व्यवहार करती है। एक कुंजी, एक पंक्ति, एक मान: सत्यापनकर्ता हर डुप्लिकेट को दोनों पंक्ति संख्याओं के साथ सूचीबद्ध करता है ताकि मृत पंक्ति को हटाया जा सके।

मेरा ऐप एक ऐसा चर पढ़ता है जो .env में नहीं है। मैं उन्हें कैसे खोजूँ?

अपना कोड या कॉन्फ़िग उपयोग बॉक्स में पेस्ट करें। पार्सर हर संदर्भित नाम निकालता है — process.env.X, process.env[’X’], import.meta.env.X, ${X} और $X — और दोनों दिशाओं में रिपोर्ट करता है: वे नाम जिन्हें कोड संदर्भित करता है लेकिन फ़ाइल कभी परिभाषित नहीं करती (ये रनटाइम पर undefined बन जाते हैं, आमतौर पर सबसे बुरे समय पर), और वे कुंजियाँ जिन्हें फ़ाइल परिभाषित करती है लेकिन कुछ भी संदर्भित नहीं करता (मृत कॉन्फ़िग जो आश्चर्यजनक रूप से अक्सर जीवित रहस्य सहेजे रहता है)।

अमान्य कुंजी किसे माना जाता है?

वह सब कुछ जो अक्षर या अंडरस्कोर के बाद अक्षर, अंक और अंडरस्कोर न हो। अंक से शुरू होने वाली, डैश या बिंदु रखने वाली, या अनचाही रिक्तियाँ रखने वाली कुंजियाँ कई लोडरों और शेलों द्वारा छोड़ दी जाती हैं या बिगाड़ दी जाती हैं — bash में साफ़ लोड होने वाली फ़ाइल ठीक इसी कारण Node लोडर में विफल हो सकती है। सत्यापनकर्ता उन्हें पंक्ति संख्या के साथ चिह्नित करता है; प्रविष्टि तालिका फिर भी वह पंक्ति दिखाती है ताकि आप देख सकें कि क्या खो जाएगा।

क्या निर्यात में वास्तविक मान होते हैं?

हाँ। JSON और YAML डाउनलोड और कॉपी किया गया JSON वास्तविक कॉन्फ़िगरेशन है — मास्किंग एक प्रदर्शन-सुरक्षा है, आपके अपने डेटा का संपादन नहीं। निर्यात की गई फ़ाइलों को बिल्कुल .env की तरह मानें: उन्हें कभी सार्वजनिक रिपॉज़िटरी में कमिट न करें, कभी टिकट में संलग्न न करें। अगर आपको साझा करने योग्य सुरक्षित संस्करण चाहिए, तो मास्क किया गया स्क्रीनशॉट या कुंजी सूची साझा करें।