0

Порівняння ENV-файлів

Порівняйте два файли .env (staging із production, до та після деплою) і побачте, які саме ключі додано, видалено чи змінено, із автоматичним маскуванням значень, схожих на секрети.

🔒 Обробляється повністю у вашому браузері — те, що ви тут вводите, ніколи не вивантажується.

Обробка... 0%
Парсимо обидва файли
Обчислюємо диф
Маскуємо секрети
Готово

Результат

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

Цей інструмент парсить обидва файли так, як це робить dotenv насправді: одна пара КЛЮЧ=значення на рядок, коментарі # та порожні рядки ігноруються, значення в одинарних або подвійних лапках розлапковуються (з розгортанням \n тільки всередині подвійних лапок, саме як визначає конвенція dotenv), а необов’язковий префікс export КЛЮЧ=значення допускається так, як його використовують у env-файлах, що завантажуються з shell. Кожен файл перетворюється на чисте відображення ключ-значення, а потім два відображення порівнюються за ключами: присутній тільки у Файлі A — «видалено», присутній тільки у Файлі B — «додано», присутній в обох із різним значенням — «змінено», а однакові значення — «не змінено» і приховані за замовчуванням, щоб таблиця лишалася зосередженою на тому, що справді відрізняється.

Особливістю, яка робить цей інструмент безпечним для роботи зі справжніми секретами, є автоматичне маскування. Кожне значення, що показується в таблиці змін, перевіряється за двома незалежними сигналами: чи виглядає назва його ключа як секретна (регістронезалежний збіг із KEY, SECRET, TOKEN, PASSWORD, PRIVATE або CREDENTIAL), або чи має саме значення високу ентропію за Шенноном — той самий теоретико-інформаційний показник (-Σ p(c)·log₂(p(c)) по символах значення), який вирізняє API-ключі, токени та випадкові паролі як статистично відмінні від звичайних слів, навіть якщо назва ключа не дає жодної підказки. Будь-якого сигналу достатньо, щоб замаскувати значення до перших і останніх двох символів, і це обчислюється незалежно для старого й нового боку кожного зміненого рядка.

Усе — парсинг, порівняння, обчислення ентропії та маскування — виконується цілком у вашому браузері; жоден файл і жодне витягнуте з них значення нікуди не надсилається. Це єдина правильна гарантія для інструменту, чия робота полягає в тому, щоб дивитися на два файли, які, ймовірно, містять справжні облікові дані баз даних, API-ключі та паролі.