ENV مدقق الفرق
قارن بين ملفين بتنسيق .env (التدريج مقابل الإنتاج، قبل النشر مقابل بعد النشر) وتعرف بالضبط على المفاتيح التي تمت إضافتها أو إزالتها أو تغييرها، مع إخفاء القيم ذات المظهر السري تلقائيًا.
النتيجة
مقارنة ملف التدريج .env مع الإنتاج، أو تكوين النشر اليوم مقابل الأسبوع الماضي، بالعين المجردة هو كيف تبدأ الانقطاعات الحقيقية: DATABASE_URL مفقود، ومنفذ تم تغييره بهدوء، ومفتاح واجهة برمجة التطبيقات (API) الذي تم تدويره في بيئة واحدة دون الأخرى. إن لصق كلا الملفين في نص عام مختلف لا يساعد كثيرًا أيضًا - فهو يوضح لك الخطوط المختلفة، وليس متغيرات البيئة التي تغيرت بالفعل، ويطبع بكل سرور كل قيمة سرية على مرأى من الجميع في اللحظة التي تشارك فيها المخرجات مع زميل في الفريق.
تقوم هذه الأداة بتوزيع كلا الملفين بالطريقة التي يقرأها بها dotenv فعليًا - زوج KEY=value واحد في كل سطر، و# من التعليقات والأسطر الفارغة التي تم تجاهلها، والقيم ذات علامات الاقتباس المفردة أو المزدوجة غير المقتبسة (مع \n غير قابلة للإلغاء إلا داخل علامات الاقتباس المزدوجة، تمامًا كما يحدد اصطلاح dotenv)، وتصدير اختياري KEY=value يتسامح مع بادئة القيمة بالطريقة التي تستخدمها بها ملفات env ذات مصادر الصدفة. يصبح كل ملف خريطة نظيفة للمفتاح إلى القيمة، ويتم بعد ذلك تمييز الخريطتين حسب المفتاح: تتم "إزالة" الموجود فقط في الملف A، ويتم "إضافة" الموجود فقط في الملف B، ويتم "تغيير" الموجود في كليهما بقيمة مختلفة، وتكون القيم المتطابقة "غير متغيرة" ومخفية افتراضيًا بحيث يظل الجدول مركّزًا على ما هو مختلف بالفعل.
الميزة التي تجعل هذا آمنًا للاستخدام الفعلي مع الأسرار الحقيقية هي الإخفاء التلقائي. يتم التحقق من كل قيمة تظهر في جدول الفرق مقابل إشارتين مستقلتين: هل يبدو اسم المفتاح الخاص بها سرًا (تطابق غير حساس لحالة الأحرف مقابل KEY أو SECRET أو TOKEN أو PASSWORD أو PRIVATE أو CREDENTIAL)، أم أن القيمة نفسها تحتوي على إنتروبيا شانون عالية - نفس المقياس النظري للمعلومات (-Σ p(c)·log2(p(c)) على أحرف القيمة) التي تحدد مفاتيح API والرموز المميزة وكلمات المرور العشوائية كـ تختلف إحصائيًا عن الكلمات العادية حتى عندما لا يعطي اسم المفتاح أي تلميح. تكون أي من الإشارة كافية لإخفاء القيمة وصولاً إلى الحرفين الأول والأخير، والتي يتم حسابها بشكل مستقل للجانب القديم والجديد من كل صف تم تغييره.
كل شيء - التحليل والتمييز وتسجيل الإنتروبيا والإخفاء - يعمل بالكامل في متصفحك؛ لا يتم إرسال أي ملف أو أي قيمة مستخرجة منها إلى أي مكان. هذا هو الضمان الصحيح للأداة التي تتمثل مهمتها بأكملها في النظر في ملفين من المحتمل أن يحتويا على بيانات اعتماد قاعدة بيانات حقيقية ومفاتيح API وكلمات مرور جنبًا إلى جنب.