ENV डिफ़ चेकर
दो .env फ़ाइलों (स्टेजिंग बनाम प्रोडक्शन, डिप्लॉय से पहले बनाम बाद) की तुलना करें और ठीक-ठीक देखें कि कौन-सी की जोड़ी गईं, हटाई गईं या बदली गईं, साथ ही सीक्रेट-नुमा वैल्यू स्वचालित रूप से छिपा दी जाती हैं।
🔒 पूरी तरह से आपके ब्राउज़र में संसाधित - आपके द्वारा यहां दर्ज की गई कोई भी चीज़ कभी भी अपलोड नहीं की जाती है।
परिणाम
स्टेजिंग .env फ़ाइल की प्रोडक्शन से, या आज के डिप्लॉय कॉन्फ़िग की पिछले हफ़्ते वाली से, आँखों से तुलना करना अक्सर असली आउटेज की शुरुआत होती है: एक गुम DATABASE_URL, एक PORT जो चुपचाप बदल गया, एक API की जो एक एन्वायरनमेंट में बदल दी गई लेकिन दूसरे में नहीं। दोनों फ़ाइलों को किसी सामान्य टेक्स्ट डिफ़ में पेस्ट करना भी कोई ख़ास मदद नहीं करता — वह आपको दिखाता है कि कौन-सी लाइनें अलग हैं, न कि वास्तव में कौन-से एन्वायरनमेंट वेरिएबल बदले, और जैसे ही आप आउटपुट किसी सहकर्मी से शेयर करते हैं, वह हर सीक्रेट वैल्यू खुलेआम छाप देता है।
यह टूल दोनों फ़ाइलों को ठीक वैसे ही पार्स करता है जैसे dotenv उन्हें पढ़ता है — प्रति पंक्ति एक KEY=value पेयर, # कमेंट और खाली लाइनें नज़रअंदाज़, सिंगल- या डबल-कोटेड वैल्यू अनकोट की गईं (डबल कोट्स के अंदर \n अनएस्केपिंग के साथ, ठीक वैसे ही जैसा dotenv कन्वेंशन बताता है), और वैकल्पिक export KEY=value प्रीफ़िक्स को उसी तरह सहन किया जाता है जैसे शेल-सोर्स्ड env फ़ाइलें इस्तेमाल करती हैं। हर फ़ाइल एक साफ़ की-टू-वैल्यू मैप बन जाती है, और फिर दोनों मैप की के आधार पर डिफ़ किए जाते हैं: केवल फ़ाइल A में मौजूद 'हटाई गई', केवल फ़ाइल B में मौजूद 'जोड़ी गई', दोनों में मौजूद लेकिन भिन्न वैल्यू के साथ 'बदली गई', और समान वैल्यू 'अपरिवर्तित' और डिफ़ॉल्ट रूप से छिपी रहती हैं ताकि तालिका केवल असली बदलावों पर केंद्रित रहे।
वह सुविधा जो इसे असली सीक्रेट के साथ उपयोग करने के लिए सुरक्षित बनाती है, वह है स्वचालित मास्किंग। डिफ़ तालिका में दिखाई जाने वाली हर वैल्यू को दो स्वतंत्र संकेतों पर जाँचा जाता है: क्या उसकी की का नाम सीक्रेट-नुमा लगता है (KEY, SECRET, TOKEN, PASSWORD, PRIVATE या CREDENTIAL के लिए केस-इनसेंसिटिव मिलान), या क्या वैल्यू में स्वयं उच्च शैनन एंट्रॉपी है — वही सूचना-सैद्धांतिक माप (-Σ p(c)·log₂(p(c)) वैल्यू के अक्षरों पर) जो API कीज़, टोकन और रैंडम पासवर्ड को सांख्यिकीय रूप से सामान्य शब्दों से अलग पहचानता है, भले ही की का नाम कोई संकेत न दे। कोई भी एक संकेत किसी वैल्यू को उसके पहले और आखिरी दो अक्षरों तक छिपाने के लिए पर्याप्त है, हर बदली गई पंक्ति के पुराने और नए पक्ष के लिए स्वतंत्र रूप से गणना की जाती है।
सब कुछ — पार्सिंग, डिफ़िंग, एंट्रॉपी स्कोरिंग और मास्किंग — पूरी तरह आपके ब्राउज़र में चलता है; न तो फ़ाइल, न ही उनसे निकाला गया कोई भी मान, कभी कहीं भेजा जाता है। यह एक ऐसे टूल के लिए सही गारंटी है जिसका पूरा काम दो ऐसी फ़ाइलों को देखना है जिनमें संभवतः वास्तविक डेटाबेस क्रेडेंशियल, API कीज़ और पासवर्ड साथ-साथ मौजूद हों।