ENV Diff Checker
Sammenlign to .env-filer (iscenesættelse vs. produktion, før vs. efter en implementering), og se præcis, hvilke nøgler der blev tilføjet, fjernet eller ændret, med hemmelige værdier maskeret automatisk.
Resultat
Ved at sammenligne en iscenesættelse .env-fil med produktion, eller dagens implementeringskonfiguration med sidste uges, er det, hvordan reelle udfald starter: en manglende DATABASE_URL, en PORT, der stille og roligt ændrede sig, en API-nøgle, der blev roteret i det ene miljø, men ikke det andet. Det hjælper heller ikke meget at indsætte begge filer i en generisk tekstdiff - det viser dig, hvilke linjer der adskiller sig, ikke hvilke miljøvariabler, der rent faktisk ændrede sig, og det udskriver gladeligt hver hemmelig værdi i det øjeblik, du deler outputtet med en holdkammerat.
Dette værktøj analyserer begge filer på den måde, hvorpå dotenv rent faktisk læser dem - et KEY=værdipar pr. linje, # kommentarer og tomme linjer ignoreret, enkelt- eller dobbeltciterede værdier uden anførselstegn (med \n kun unescaped inden for dobbelte anførselstegn, nøjagtigt som dotenv-konventionen specificerer), og et valgfrit eksport KEY=værdipræfiks tolererede den måde, shell-source brugte det på. Hver fil bliver et rent nøgle-til-værdi-kort, og de to kort er så forskellige efter nøgle: kun til stede i fil A er 'fjernet', kun til stede i fil B er 'tilføjet', til stede i begge med en anden værdi er 'ændret', og identiske værdier er 'uændret' og skjult som standard, så tabellen forbliver fokuseret på, hvad der faktisk adskiller sig.
Den funktion, der gør dette sikkert at bruge med rigtige hemmeligheder, er automatisk maskering. Hver værdi, der vises i diff-tabellen, kontrolleres mod to uafhængige signaler: ser dens nøglenavn ud som en hemmelighed (et uafhængigt af store og små bogstaver match mod KEY, SECRET, TOKEN, PASSWORD, PRIVATE eller CREDENTIAL), eller har værdien i sig selv høj Shannon-entropi - den samme informationsteoretiske målestok (-Σ p(c)·log2) den værdi, der markerer nøglerne og de markerer API'er og symboler. tilfældige adgangskoder er statistisk forskellige fra almindelige ord, selv når nøglenavnet ikke giver noget hint. Begge signaler er nok til at maskere en værdi ned til dens første og sidste to tegn, beregnet uafhængigt for den gamle og nye side af hver ændret række.
Alt - parsing, diffing, entropi-scoring og maskering - kører udelukkende i din browser; hverken fil eller værdi udtrukket fra dem sendes nogensinde nogen steder. Det er den rigtige garanti for et værktøj, hvis hele opgave er at se på to filer, der sandsynligvis indeholder ægte database-legitimationsoplysninger, API-nøgler og adgangskoder side om side.