ENV fájl összehasonlító
Hasonlítson össze két .env fájlt (pl. staging és production, vagy telepítés előtti és utáni) és pontosan lássa, mely kulcsok kerültek hozzáadásra, törlésre vagy módosításra, a titokgyanús értékek automatikus maszkolásával.
🔒 Teljesen a böngészőjében dolgozzák fel – soha semmi, amit itt beírt, nem kerül feltöltésre.
Eredmény
Egy staging .env fájl összehasonlítása a production-nel, vagy a mai telepítési konfig egy héttel ezelőttivel, szemmel való átnézés az, ahogy az igazi leállások kezdődnek: egy hiányzó DATABASE_URL, egy PORT ami csendben megváltozott, egy API kulcs, amit az egyik környezetben lecseréltek, a másikban nem. A két fájlt egy általános szövegdiff eszközbe bemásolni sem segít sokat — megmutatja, mely sorok különböznek, de nem azt, hogy mely környezeti változók változtak valójában, és ha a kimenetet megosztja egy kollégával, boldogan kiír minden titkos értéket nyíltan.
Ez az eszköz úgy dolgozza fel mindkét fájlt, ahogy a dotenv valójában olvassa őket — soronként egy KEY=value pár, a kommentek és üres sorok figyelmen kívül hagyásával, az aposztrófos vagy idézőjeles értékek idézőjel-mentesítésével (a \n feloldásával kizárólag idézőjelek között, pontosan a dotenv konvenciónak megfelelően), és az opcionális export KEY=value előtag tolerálásával, ahogy azt a shell-ben forrásként használt env fájloknál megszokhattuk. Mindkét fájl egy tiszta kulcs-érték leképezéssé alakul, majd a két leképezés kulcs alapján összehasonlításra kerül: ami csak az A fájlban van jelen, az a „törölt”, ami csak a B fájlban, az a „hozzáadott”, ami mindkettőben megvan, de eltérő értékkel, az a „módosított”, a megegyező értékek pedig „változatlanok” és alapértelmezetten rejtettek, hogy a táblázat a valódi eltérésekre fókuszáljon.
A funkció, ami biztonságossá teszi valódi titkokkal való használatra is, az automatikus maszkolás. A diff táblázatban megjelenő minden érték két független jelzés alapján kerül ellenőrzésre: a kulcsneve titokgyanús-e (nem kis-nagybetű érzékeny illesztés a következőkre: KEY, SECRET, TOKEN, PASSWORD, PRIVATE, CREDENTIAL), vagy az érték maga magas Shannon-entrópiájú-e (ugyanaz az információelméleti mérőszám, -Σ p(c)·log2(p(c)) az érték karaktereire, ami az API kulcsokat, tokeneket és véletlen jelszavakat statisztikailag megkülönbözteti a közönséges szavaktól, még ha a kulcsnév semmilyen utalást sem ad is rá). Bármelyik jelzés elegendő ahhoz, hogy az érték az első és az utolsó két karakterére maszkolva jelenjen meg, a módosított sorok régi és új oldalára egymástól függetlenül kiszámítva.
Minden — a feldolgozás, a differálás, az entrópia pontozás és a maszkolás — teljes egészében a böngészőjében fut; sem a fájlok, sem pedig a belőlük kinyert értékek nem kerülnek soha elküldésre sehová. Ez a megfelelő garancia egy olyan eszköz esetében, amelynek a teljes feladata az, hogy két olyan fájlt nézzen meg egymás mellett, amelyek valószínűleg valódi adatbázis-jogosultságokat, API kulcsokat és jelszavakat tartalmaznak.