dmosk / envdiff

مقارنة .env وJSON وTOML وini حسب المفاتيح

اختر الصيغة، والصق أو ارفع ملفَّي إعداد، وشاهد المفاتيح الموجودة في اليسار فقط أو اليمين فقط أو ذات القيم المختلفة. كل شيء يعمل في المتصفح.

صيغة واحدة للطرفين. رابط المشاركة يضع النصين في جزء # من العنوان — لا يُرسل إلى الخادم، لكن لا تشارك الرابط إذا كان يحتوي أسرارًا حقيقية.

اليسار

اليمين

لماذا envdiff

  • مقارنة منطقية. تُقارن المفاتيح والقيم لا أسطر النص — الترتيب والتعليقات والأسطر الفارغة لا تؤثر.
  • أربع صيغ. .env وJSON وTOML وini؛ وتتحول المفاتيح المتداخلة في JSON/TOML إلى مسارات مثل db.host.
  • إخفاء الأسرار. اختياريًا تظهر قيم مفاتيح مثل password وtoken وsecret وkey على شكل [REDACTED].
  • في المتصفح فقط. بلا API: لا تغادر الملفات جهازك. تُشارَك الحالة عبر جزء URL.

كيف تقارن الإعدادات

  1. اختر الصيغة — وهي نفسها للطرفين.
  2. الصق نصًا أو ارفع ملفًا في كل لوحة؛ كلتاهما مطلوبة.
  3. اضغط «قارن» لترى المفاتيح في اليسار فقط وفي اليمين فقط وذات القيم المتغيرة.
  4. فعّل الإخفاء عند الحاجة، واضغط «مشاركة» لنسخ رابط يحمل الحالة.

المفاتيح والصيغ والأسرار

يقارن envdiff المفاتيح لا الأسطر. لا تُخلط الصيغ: يُسطَّح JSON وTOML المتداخلان إلى مسارات بنقاط، وتصبح أقسام ini على شكل section.key، ويُقرأ .env بصيغة KEY=VALUE.

نصائح:

  • تُتجاهل التعليقات والأسطر الفارغة وترتيب المفاتيح.
  • تُسطَّح المصفوفات بفهارس، مثل servers[0].host.
  • تُقارن القيم كنص: الرقم 5432 في JSON يساوي 5432 في .env.
  • الإخفاء يغيّر العرض فقط: مفاتيح مثل password وtoken وsecret وkey تظهر [REDACTED].
  • لـ YAML استخدم yamaster، وللبحث عن أسرار مسرّبة استخدم secret-scanner.

فيمَ يفيد

  • مقارنة .env بين dev وstaging وproduction؛
  • فحص الإعدادات قبل النشر وبعده؛
  • إيجاد المفاتيح الناقصة في إحدى البيئات؛
  • مراجعة تغييرات JSON أو TOML أو ini دون ضجيج فرق النصوص؛
  • مشاركة المقارنة برابط (دون أسرار حقيقية).

الأسئلة الشائعة

هل يمكن مقارنة صيغ مختلفة؟

لا. تُختار صيغة واحدة للطرفين ولا يُدعم خلط الصيغ.

هل تهم التعليقات والترتيب؟

لا. تُقارن المفاتيح والقيم فقط.

هل تُرفع بياناتي؟

لا. التحليل والمقارنة يتمان في المتصفح ولا يوجد API.

ماذا يفعل الإخفاء؟

تظهر قيم مفاتيح مثل password وsecret وtoken وkey على شكل [REDACTED]؛ أما المقارنة فتستخدم القيم الحقيقية.

كيف تُعرض المفاتيح المتداخلة؟

بنقاط للكائنات والجداول وبفهارس للمصفوفات، مثل db.host أو servers[0].