Controllo differenze ENV
Confronta due file .env (staging e produzione, prima e dopo la distribuzione) e scopri esattamente quali chiavi sono state aggiunte, rimosse o modificate, con valori dall'aspetto segreto mascherati automaticamente.
Risultato
Confrontando a occhio un file .env di staging con la produzione, o la configurazione di distribuzione di oggi con quella della scorsa settimana, ecco come iniziano le interruzioni reali: un DATABASE_URL mancante, una PORT che è cambiata silenziosamente, una chiave API che è stata ruotata in un ambiente ma non nell'altro. Anche incollare entrambi i file in un diff di testo generico non aiuta molto: mostra quali linee differiscono, non quali variabili di ambiente sono effettivamente cambiate, e stampa felicemente ogni valore segreto in bella vista nel momento in cui condividi l'output con un compagno di squadra.
Questo strumento analizza entrambi i file nel modo in cui dotenv li legge effettivamente: una coppia KEY=valore per riga, # commenti e righe vuote ignorate, valori tra virgolette singole o doppie senza virgolette (con \n senza caratteri di escape solo all'interno di virgolette doppie, esattamente come specifica la convenzione dotenv) e un prefisso di esportazione opzionale KEY=value tollerato nel modo in cui lo utilizzano i file env provenienti dalla shell. Ogni file diventa una mappa chiave-valore pulita e le due mappe vengono quindi differenziate per chiave: presente solo nel file A viene "rimosso", presente solo nel file B viene "aggiunto", presente in entrambi con un valore diverso viene "modificato" e valori identici vengono "invariati" e nascosti per impostazione predefinita in modo che la tabella rimanga focalizzata su ciò che effettivamente differisce.
La caratteristica che rende sicuro l'utilizzo effettivo con veri segreti è il mascheramento automatico. Ogni valore mostrato nella tabella delle differenze viene controllato rispetto a due segnali indipendenti: il nome della chiave assomiglia a un segreto (una corrispondenza senza distinzione tra maiuscole e minuscole rispetto a KEY, SECRET, TOKEN, PASSWORD, PRIVATE o CREDENTIAL) o il valore stesso ha un'entropia di Shannon elevata - la stessa misura teorica dell'informazione (-Σ p(c)·log2(p(c)) sui caratteri del valore) che contrassegna chiavi API, token e password casuali come statisticamente diversi dalle normali? parole anche quando il nome della chiave non fornisce alcun suggerimento. Entrambi i segnali sono sufficienti per mascherare un valore fino al primo e agli ultimi due caratteri, calcolati indipendentemente per il lato vecchio e quello nuovo di ogni riga modificata.
Tutto (analisi, differenze, punteggio entropico e mascheramento) viene eseguito interamente nel tuo browser; né i file, né alcun valore da essi estratto, vengono mai inviati da nessuna parte. Questa è la giusta garanzia per uno strumento il cui intero compito è quello di esaminare due file che potrebbero contenere credenziali di database reali, chiavi API e password fianco a fianco.