Что это
Бесплатное и приватное сравнение переменных окружения. Понимает dotenv, строки с export, кавычки, многострочные значения, JSON и простой YAML.
Сравнение переменных окружения
Вставьте два env файла и, если есть, ваш .env.example. Env Diff сопоставит их ключ за ключом, скроет значения и покажет недостающие ключи, изменённые значения, тестовые ключи в production, секреты, открытые браузеру, и заглушки, которые никто не заменил.
- FEATURE_NEW_CHECKOUT=true + OPENAI_API_KEY=chan••••заглушка вместо значения ~ APP_URL=http••••••••адрес без https ~ NEXT_PUBLIC_STRIPE_KEY=pk_l•••••••• STRIPE_SECRET_KEY=sk_t••••••••тестовый ключ или ключ песочницы JWT_SECRET=shar••••••••одинаковый секрет в обоих
Бесплатное и приватное сравнение переменных окружения. Понимает dotenv, строки с export, кавычки, многострочные значения, JSON и простой YAML.
Для разработчиков, которые выпускают продукт в одиночку, ответственных за релизы, DevOps инженеров и всех, кто однажды потратил вечер на поиски одного недостающего ключа в production.
Расхождение конфигураций. Код проходит ревью и тесты, а env файлы обычно нет, поэтому забытый ключ или тестовый ключ в production проскакивает незамеченным.
Разбор и сравнение происходят в этой вкладке. Ничего не загружается, не записывается в логи и не сохраняется.
Значения скрыты, пока вы сами их не откроете. В отчёте значений нет никогда.
$ env diff ▌
Вставьте два env файла или загрузите демо файлы, чтобы увидеть все виды находок.
Значения не покидают страницу. В отчёте и CSV только ключи и находки.
Находки в окружении B считаются находками в production. Секреты, открытые браузеру, учитываются с обеих сторон.
Префиксы вроде NEXT_PUBLIC или VITE кладут значение прямо в JavaScript бандл. Прочитать его может любой.
Ключи вроде sk_test не принимают настоящие платежи и не отправляют настоящие письма. На staging это нормально, в production это тихий сбой.
Адрес базы данных, кеша или API, который работает только на машине разработчика. В production он упадёт или попадёт не в тот сервис.
changeme, xxx, TODO или угловые скобки. Пример скопировали и так и не заполнили.
Staging и production используют один секрет, поэтому утечка на staging открывает и production.
Публичный адрес без шифрования. Куки, токены и редиректы могут сломаться или утечь.
Флаги отладки показывают посетителям трассировки стека и внутренности системы и замедляют всё.
Секрет, токен или пароль короче 12 символов легко подобрать.
Значение ссылается на переменную, которой нет в этом же файле, и превращается в пустую строку.
Ключ есть, а значения нет. Многие библиотеки считают его заданным и потом ломаются странным образом.
Обычно это staging или локальный файл. Переименуйте метку под свою схему.
Обычно это production. Экспортируйте его с хостинга или скопируйте из хранилища секретов.
Необязательно. Вставьте .env.example, чтобы увидеть, каких обязательных ключей не хватает и какие ключи нигде не описаны.
Сначала идут недостающие ключи, затем различающиеся значения, затем одинаковые. Рискованные значения отмечены в каждой строке.
Скачайте новый .env.example со всеми ключами и скопируйте отчёт в чеклист релиза.
Страница никуда не отправляет вставленное, а в отчёте нет значений. И всё же самая надёжная привычка: менять любой секрет, который хоть раз показывали на общем экране.
Чаще всего сравнивают staging с production. Поместите в B окружение, которое собираетесь выпускать, и проверки рисков применятся к нему.
Короткий SHA 256 каждого значения. Он показывает, что два значения различаются, не раскрывая ни одного из них.
Сравнивайте их попарно с одним и тем же шаблоном. Шаблон привязывает каждое сравнение к единому списку ключей.