ईएनवी डिफ चेकर
दो .env फ़ाइलों की तुलना करें (स्टेजिंग बनाम उत्पादन, तैनाती से पहले बनाम बाद में) और देखें कि कौन सी कुंजियाँ जोड़ी गईं, हटाई गईं या बदली गईं, गुप्त दिखने वाले मान स्वचालित रूप से छिपे हुए थे।
नतीजा
उत्पादन के विरुद्ध स्टेजिंग .env फ़ाइल की तुलना करना, या पिछले सप्ताह के विरुद्ध आज के परिनियोजन कॉन्फ़िगरेशन की तुलना करना, आंखों से देखना है कि वास्तविक आउटेज कैसे शुरू होते हैं: एक लापता DATABASE_URL, एक पोर्ट जो चुपचाप बदल गया, एक एपीआई कुंजी जो एक वातावरण में घूम गई लेकिन दूसरे में नहीं। दोनों फ़ाइलों को एक सामान्य टेक्स्ट अंतर में चिपकाने से भी बहुत मदद नहीं मिलती है - यह आपको दिखाता है कि कौन सी लाइनें अलग हैं, न कि कौन से पर्यावरण चर वास्तव में बदल गए हैं, और जब आप किसी टीम के साथी के साथ आउटपुट साझा करते हैं तो यह हर गुप्त मान को स्पष्ट रूप से प्रिंट कर देता है।
यह उपकरण दोनों फ़ाइलों को उसी तरह से पार्स करता है जिस तरह से dotenv वास्तव में उन्हें पढ़ता है - प्रति पंक्ति एक कुंजी = मूल्य जोड़ी, # टिप्पणियों और रिक्त पंक्तियों को अनदेखा किया जाता है, एकल- या दोहरे-उद्धृत मानों को गैर-उद्धृत किया जाता है (\n केवल दोहरे उद्धरण चिह्नों के अंदर अनएस्केप्ड होता है, बिल्कुल जैसा कि dotenv सम्मेलन निर्दिष्ट करता है), और एक वैकल्पिक निर्यात कुंजी = मूल्य उपसर्ग शेल-स्रोत वाली एनवी फ़ाइलों के उपयोग के तरीके को सहन करता है। प्रत्येक फ़ाइल एक साफ़ कुंजी-से-मूल्य मानचित्र बन जाती है, और दो मानचित्र फिर कुंजी द्वारा भिन्न होते हैं: केवल फ़ाइल ए में मौजूद को 'हटाया' जाता है, केवल फ़ाइल बी में मौजूद को 'जोड़ा' जाता है, दोनों में एक अलग मूल्य के साथ मौजूद होता है 'परिवर्तित' होता है, और समान मान 'अपरिवर्तित' होते हैं और डिफ़ॉल्ट रूप से छिपे होते हैं इसलिए तालिका वास्तव में जो भिन्न होती है उस पर केंद्रित रहती है।
वह विशेषता जो इसे वास्तविक रहस्यों के साथ वास्तव में उपयोग करने के लिए सुरक्षित बनाती है, वह है स्वचालित मास्किंग। अंतर तालिका में दिखाए गए प्रत्येक मान को दो स्वतंत्र संकेतों के विरुद्ध जांचा जाता है: क्या इसका कुंजी नाम एक रहस्य की तरह दिखता है (कुंजी, गुप्त, टोकन, पासवर्ड, निजी या क्रेडेंशियल के खिलाफ एक केस-असंवेदनशील मिलान), या क्या मूल्य में स्वयं उच्च शैनन एन्ट्रॉपी है - वही सूचना-सैद्धांतिक माप (-Σ p(c)·log2(p(c)) मूल्य के वर्णों पर) जो एपीआई कुंजी, टोकन और यादृच्छिक पासवर्ड को सांख्यिकीय रूप से चिह्नित करता है सामान्य शब्दों से भिन्न तब भी जब कुंजी नाम कोई संकेत नहीं देता। प्रत्येक परिवर्तित पंक्ति के पुराने और नए पक्ष के लिए स्वतंत्र रूप से गणना की गई, कोई भी संकेत उसके पहले और अंतिम दो वर्णों के मान को छुपाने के लिए पर्याप्त है।
सब कुछ - पार्सिंग, डिफिंग, एन्ट्रापी स्कोरिंग और मास्किंग - पूरी तरह से आपके ब्राउज़र में चलता है; न तो फ़ाइल, न ही उनसे निकाला गया कोई मूल्य, कभी भी कहीं भेजा जाता है। यह एक टूल के लिए सही गारंटी है जिसका पूरा काम दो फाइलों को देखना है जिनमें वास्तविक डेटाबेस क्रेडेंशियल, एपीआई कुंजी और पासवर्ड एक साथ होने की संभावना है।