0

Проверка на разлики в .env файлове

Сравнете два .env файла (staging спрямо production, преди и след разгръщане) и вижте точно кои ключове са добавени, премахнати или променени, като стойностите, които приличат на тайни, се маскират автоматично.

🔒 Обработва се изцяло във вашия браузър - нищо, което въвеждате тук, никога не се качва.

Обработка... 0%
Анализиране на двата файла
Изчисляване на разликата
Маскиране на тайните
Готово

Резултат

Сравняването на staging .env файл с production, или на днешната конфигурация за разгръщане с тази от миналата седмица, на ръка е начинът, по който започват истински прекъсвания: липсващ DATABASE_URL, PORT, който тихо се е променил, API ключ, който е бил сменен в едната среда, но не и в другата. Поставянето на двата файла в обикновен текстов диф също не помага особено — показва ви кои редове се различават, а не кои променливи на средата реално са се променили, и с удоволствие отпечатва всяка тайна стойност на видно място в момента, в който споделите резултата с колега.

Този инструмент анализира и двата файла така, както dotenv реално ги чете — по една двойка KEY=value на ред, # коментарите и празните редове се игнорират, стойностите в единични или двойни кавички се декотират (като \n се unescape-ва само в двойни кавички, точно както указва конвенцията на dotenv), а незадължителният префикс export KEY=value се толерира по начина, по който shell-sourced env файловете го използват. Всеки файл се превръща в чист ключ-стойност словар, а след това двата словара се сравняват по ключ: наличен само във Файл A е „премахнат“, наличен само във Файл B е „добавен“, наличен и в двата с различна стойност е „променен“, а идентичните стойности са „непроменени“ и скрити по подразбиране, за да остане таблицата фокусирана върху това, което реално се различава.

Функцията, която прави това безопасно за реална употреба с истински тайни, е автоматичното маскиране. Всяка стойност, показана в таблицата с разликите, се проверява по два независими сигнала: дали името на ключа ѝ прилича на тайна (съвпадение без значение на регистъра срещу KEY, SECRET, TOKEN, PASSWORD, PRIVATE или CREDENTIAL), или дали самата стойност има висока ентропия на Шанън — същата мярка от теорията на информацията (-Σ p(c)·log2(p(c)) върху знаците на стойността), която отличава API ключове, токени и случайни пароли като статистически различни от обикновени думи, дори когато името на ключа не подсказва нищо. Всеки от двата сигнала е достатъчен, за да се маскира стойността до първите и последните два знака, като изчислението е независимо за старата и новата страна на всеки променен ред.

Всичко — анализът, сравняването, изчисляването на ентропията и маскирането — се изпълнява изцяло във вашия браузър; нито файловете, нито която и да е стойност, извлечена от тях, не се изпращат никъде. Това е правилната гаранция за инструмент, чиято цялата работа е да гледа два файла, които вероятно съдържат реални база-данни идентификационни данни, API ключове и пароли един до друг.