Porównywarka ENV Diff
Porównaj dwa pliki .env (staging vs. produkcja, przed vs. po wdrożeniu) i zobacz dokładnie, które klucze zostały dodane, usunięte lub zmienione, z automatycznym maskowaniem wartości wyglądających na sekrety.
🔒 Przetwarzane w całości w Twojej przeglądarce — nic, co tu wpiszesz, nie zostanie nigdy przesłane.
Wynik
Porównywanie na oko pliku .env stagingowego z produkcyjnym albo dzisiejszej konfiguracji wdrożenia z ubiegłotygodniową to przepis na prawdziwe awarie: brakujący DATABASE_URL, PORT, który po cichu się zmienił, klucz API zrotowany w jednym środowisku, ale nie w drugim. Wklejenie obu plików do zwykłego narzędzia do porównywania tekstu też niewiele pomaga – pokazuje, które linie się różnią, a nie które zmienne środowiskowe faktycznie się zmieniły, i przy każdej okazji wyświetla wszystkie sekrety jawnym tekstem, gdy tylko udostępnisz wynik koledze z zespołu.
To narzędzie parsuje oba pliki tak, jak faktycznie odczytuje je dotenv – jedna para KLUCZ=wartość w linii, komentarze # i puste linie ignorowane, wartości w pojedynczych lub podwójnych cudzysłowach pozbawiane cudzysłowów (z usuwaniem sekwencji \n tylko wewnątrz podwójnych cudzysłowów, dokładnie tak, jak określa konwencja dotenv), a opcjonalny prefiks export KLUCZ=wartość tolerowany tak, jak jest używany w plikach env ładowanych przez powłokę. Każdy plik zamienia się w czystą mapę klucz-wartość, a następnie obie mapy są porównywane według kluczy: obecny tylko w Pliku A to 'usunięty', obecny tylko w Pliku B to 'dodany', obecny w obu z inną wartością to 'zmieniony', a identyczne wartości są 'niezmienione' i domyślnie ukryte, aby tabela koncentrowała się na tym, co rzeczywiście się różni.
Funkcją, która sprawia, że można tego bezpiecznie używać z prawdziwymi sekretami, jest automatyczne maskowanie. Każda wartość pokazywana w tabeli porównawczej jest sprawdzana pod kątem dwóch niezależnych sygnałów: czy jej nazwa klucza wygląda na tajną (dopasowanie bez rozróżniania wielkości liter do KEY, SECRET, TOKEN, PASSWORD, PRIVATE lub CREDENTIAL), albo czy sama wartość ma wysoką entropię Shannona – tę samą miarę z teorii informacji (-Σ p(c)·log2(p(c)) na znakach wartości), która wyróżnia klucze API, tokeny i losowe hasła jako statystycznie różne od zwykłych słów, nawet gdy nazwa klucza niczego nie sugeruje. Każdy sygnał wystarczy, aby zamaskować wartość do jej dwóch pierwszych i dwóch ostatnich znaków, obliczanych niezależnie dla starej i nowej strony w każdym zmienionym wierszu.
Wszystko – parsowanie, porównywanie, ocena entropii i maskowanie – działa w całości w Twojej przeglądarce; ani plik, ani żadna wyodrębniona z niego wartość nigdy nie jest nigdzie wysyłana. To właściwa gwarancja dla narzędzia, którego całe zadanie polega na jednoczesnym przeglądaniu dwóch plików zawierających prawdopodobnie prawdziwe dane uwierzytelniające baz danych, klucze API i hasła.