dmosk / envdiff

مقایسهٔ .env، JSON، TOML و ini بر پایهٔ کلیدها

یک قالب انتخاب کنید، دو پیکربندی را بچسبانید یا بارگذاری کنید و کلیدهای فقط چپ، فقط راست یا با مقدار متفاوت را ببینید. همه‌چیز در مرورگر انجام می‌شود.

یک قالب برای هر دو طرف اعمال می‌شود. پیوند اشتراک‌گذاری هر دو متن را در بخش # نشانی می‌گذارد — به سرور ارسال نمی‌شود، اما اگر رمز و رازِ واقعی دارد پیوند را به اشتراک نگذارید.

چپ

راست

چرا envdiff

  • مقایسهٔ منطقی. کلیدها و مقدارها مقایسه می‌شوند نه خطوط متن — ترتیب، توضیحات و خطوط خالی اثری ندارند.
  • چهار قالب. .env، JSON، TOML و ini؛ کلیدهای تودرتوی JSON/TOML به مسیرهایی مانند db.host تبدیل می‌شوند.
  • پنهان‌سازی رمز و راز. در صورت تمایل، مقدار کلیدهایی مانند password، token، secret و key به‌صورت [REDACTED] نمایش داده می‌شود.
  • فقط در مرورگر. بدون API: فایل‌ها از دستگاه شما خارج نمی‌شوند. وضعیت از طریق بخش fragment نشانی به اشتراک گذاشته می‌شود.

چگونه پیکربندی‌ها را مقایسه کنیم

  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 بدون شلوغی diff متنی؛
  • اشتراک‌گذاری مقایسه با پیوند (بدون رمز و راز واقعی).

پرسش‌های متداول

آیا می‌شود قالب‌های متفاوت را مقایسه کرد؟

خیر. یک قالب برای هر دو طرف انتخاب می‌شود و ترکیب قالب‌ها پشتیبانی نمی‌شود.

آیا توضیحات و ترتیب مهم‌اند؟

خیر. فقط کلیدها و مقدارها مقایسه می‌شوند.

آیا داده‌های من بارگذاری می‌شود؟

خیر. تجزیه و مقایسه در مرورگر انجام می‌شود و API وجود ندارد.

پنهان‌سازی چه می‌کند؟

مقدار کلیدهایی مانند password، secret، token و key به‌صورت [REDACTED] نمایش داده می‌شود؛ خود مقایسه با مقدارهای واقعی انجام می‌شود.

کلیدهای تودرتو چگونه نمایش داده می‌شوند؟

با نقطه برای اشیاء و جدول‌ها و با اندیس برای آرایه‌ها، مثلاً db.host یا servers[0].