ENV skirtumų tikrintuvas
Palyginkite du .env failus (pvz., staging ir production, prieš ir po diegimo) ir matykite tiksliai, kurie raktai buvo pridėti, pašalinti ar pakeisti, o slaptai atrodančios reikšmės automatiškai maskuojamos.
🔒 Visiškai apdorojama jūsų naršyklėje – niekas, kurį čia įvedėte, niekada neįkeliama.
Rezultatas
Staging .env failo palyginimas su production arba šiandienos diegimo konfigūracijos su praėjusios savaitės, atliekamas akimis, yra tai, nuo ko prasideda tikrosios veiklos sutrikimai: trūkstamas DATABASE_URL, tyliai pasikeitęs PORT, API raktas, atnaujintas vienoje aplinkoje, bet ne kitoje. Įklijuoti abu failus į bendrą teksto palyginimo įrankį taip pat nelabai padeda – jis rodo, kurios eilutės skiriasi, o ne kurie aplinkos kintamieji iš tikrųjų pasikeitė, ir, be to, rodo visas slaptas reikšmes atvirai, kai tik pasidalinate rezultatu su komandos nariu.
Šis įrankis analizuoja abu failus taip, kaip dotenv iš tikrųjų juos skaito – viena KEY=value pora eilutėje, # komentarai ir tuščios eilutės ignoruojami, viengubose ar dvigubose kabutėse esančios reikšmės iškabinamos (su dekoduotu tik dvigubose kabutėse, tiksliai kaip nurodo dotenv susitarimas), o neprivalomas export KEY=value prefiksas toleruojamas taip, kaip jį naudoja shell tipo env failai. Kiekvienas failas tampa švariu rakto-reikšmės žemėlapiu, o tada du žemėlapiai palyginami pagal raktą: esantis tik Faile A yra „pašalintas“, esantis tik Faile B yra „pridėtas“, esantis abiejuose su skirtinga reikšme yra „pakeistas“, o tapačios reikšmės yra „nepakitusios“ ir pagal numatymą paslėptos, kad lentelė liktų sutelkta į tai, kas iš tikrųjų skiriasi.
Funkcija, dėl kurios šį įrankį saugu naudoti su tikromis paslaptimis, yra automatinis maskavimas. Kiekviena skirtumų lentelėje rodoma reikšmė yra tikrinama pagal du nepriklausomus signalus: ar jos rakto pavadinimas atrodo kaip paslaptis (didžiųjų-mažųjų raidžių nepaisantis atitikimas su KEY, SECRET, TOKEN, PASSWORD, PRIVATE ar CREDENTIAL), ar pati reikšmė pasižymi didele Shannon entropija – tuo pačiu informacijos teorijos matu (-Σ p(c)·log2(p(c)) reikšmės simboliams), kuris išskiria API raktus, prieigos raktus ir atsitiktinius slaptažodžius kaip statistiškai besiskiriančius nuo įprastų žodžių, net kai rakto pavadinimas neduoda užuominos. Bet kurio signalo pakanka, kad reikšmė būtų maskuota iki pirmų ir paskutinių dviejų simbolių, apskaičiuojant atskirai senai ir naujai kiekvienos pakeistos eilutės pusei.
Viskas – analizavimas, skirtumų skaičiavimas, entropijos įvertinimas ir maskavimas – vyksta tik jūsų naršyklėje; nei failai, nei iš jų gautos reikšmės niekur nesiunčiamos. Tai yra tinkama garantija įrankiui, kurio visa užduotis yra lyginti du failus, greičiausiai turinčius tikrus duomenų bazės prisijungimus, API raktus ir slaptažodžius.