בודק ENV Diff
השווה שני קבצי .env (שלב מול ייצור, לפני לעומת לאחר פריסה) וראה בדיוק אילו מפתחות נוספו, הוסרו או שונו, כאשר ערכים בעלי מראה סודי מוסווים באופן אוטומטי.
תוצאה
השוואה בין קובץ .env לביצוע מול ייצור, או תצורת הפריסה של היום מול תצורת השבוע שעבר, לפי העין היא הדרך שבה מתחילות הפסקות אמיתיות: DATABASE_URL חסר, PORT שהשתנה בשקט, מפתח API שהסתובב בסביבה אחת אבל לא בסביבה השנייה. גם הדבקת שני הקבצים לתוך הבדל טקסט גנרי לא עוזרת הרבה - היא מראה לך אילו שורות שונות, לא אילו משתני סביבה השתנו בפועל, והיא מדפיסה בשמחה כל ערך סודי לעין ברגע שאתה חולק את הפלט עם חבר לצוות.
הכלי הזה מנתח את שני הקבצים באופן שבו dotenv קורא אותם בפועל - זוג KEY=value אחד לשורה, # הערות ושורות ריקות התעלמו, ערכי מרכאות בודדות או כפולות ללא מרכאות (כאשר \n unescaped רק בתוך מרכאות כפולות, בדיוק כפי שהמוסכמה של dotenv מציינת), וקידומת ייצוא אופציונלית KEY=value סבלה את האופן שבו קבצי env משתמשים בו. כל קובץ הופך למפת מפתח לערך נקייה, ושתי המפות נבדלות לאחר מכן לפי מפתח: קיים רק בקובץ A 'מוסר', קיים רק בקובץ B 'נוסף', קיים בשניהם עם ערך שונה 'משתנה', וערכים זהים 'לא משתנים' ומוסתרים כברירת מחדל כך שהטבלה תישאר ממוקדת במה ששונה בפועל.
התכונה שהופכת את זה בטוח לשימוש עם סודות אמיתיים היא מיסוך אוטומטי. כל ערך המוצג בטבלת ההבדלים נבדק מול שני אותות בלתי תלויים: האם שם המפתח שלו נראה כמו סוד (התאמה חסרת רגישות לאותיות רישיות מול KEY, SECRET, TOKEN, PASSWORD, PRIVATE או CREDENTIAL), או האם לערך עצמו יש אנטרופיה של שאנון גבוהה - אותה מידה תאורטית של מידע (-Σ p(c)·log2) הערך, ה-API והדגלים האלה. סיסמאות אקראיות שונות מבחינה סטטיסטית ממילים רגילות גם כאשר שם המפתח אינו נותן רמז. כל אחד מהאותות מספיק כדי להסוות ערך עד לשני התווים הראשונים והאחרונים שלו, המחושבים באופן עצמאי עבור הצד הישן והחדש של כל שורה שהשתנתה.
הכל - ניתוח, הבדל, ניקוד אנטרופיה ומיסוך - פועל כולו בדפדפן שלך; אף קובץ, או ערך שחולץ מהם, לא נשלחים לעולם לשום מקום. זו הערובה הנכונה לכלי שכל תפקידו הוא להסתכל על שני קבצים שסביר להניח שיכילו אישורי מסד נתונים אמיתיים, מפתחות API וסיסמאות זה לצד זה.