Зачем нужен envdiff
- Логическое сравнение. Сравниваются ключи и значения, а не строки: порядок, комментарии и пустые строки не мешают.
- Четыре формата.
.env, JSON, TOML и ini; вложенные ключи JSON/TOML превращаются в пути вродеdb.host. - Маскирование секретов. По желанию значения ключей password, token, secret, key показываются как
[REDACTED]. - Только в браузере. Без API: файлы не покидают устройство. Состояние можно передать через фрагмент URL.
Как сравнить конфиги
- Выберите формат — он общий для обеих сторон.
- Вставьте текст или загрузите файл в каждую панель; обе обязательны.
- Нажмите «Сравнить» — появятся ключи только слева, только справа и с разными значениями.
- При необходимости включите маскирование и нажмите «Поделиться», чтобы скопировать ссылку с состоянием.
Ключи, форматы и секреты
envdiff сравнивает ключи, а не строки. Форматы не смешиваются: вложенный JSON и TOML разворачиваются в пути через точку, секции ini превращаются в section.key, а .env читается как KEY=VALUE.
Рекомендации:
- Комментарии, пустые строки и порядок ключей игнорируются.
- Массивы разворачиваются с индексами, например
servers[0].host. - Значения сравниваются как текст: число
5432в JSON и строка5432в .env совпадают. - Маскирование меняет только отображение: ключи вроде password, token, secret, key показываются как [REDACTED].
- Для YAML есть
yamaster, для поиска утечек —secret-scanner.
Для чего нужен сервис
- сравнить .env между dev, staging и production;
- проверить конфиг до и после деплоя;
- найти ключи, которых нет в одном из окружений;
- посмотреть правки JSON, TOML или ini без шумного текстового diff;
- поделиться сравнением по ссылке (без настоящих секретов).
Частые вопросы
Можно сравнить разные форматы?
Нет. Формат выбирается один для обеих сторон — смешивать форматы нельзя.
Важны ли комментарии и порядок?
Нет. Сравниваются только ключи и значения.
Мои данные загружаются на сервер?
Нет. Разбор и сравнение работают в браузере, API нет.
Что делает маскирование?
Значения ключей вроде password, secret, token, key показываются как [REDACTED]; само сравнение идёт по настоящим значениям.
Как показываются вложенные ключи?
Через точку для объектов и таблиц и с индексами для массивов, например db.host или servers[0].