dotMage 1.3.0 — любой файл, любой сервер
Это самый большой релиз с версии 1.0. dotMage перестаёт быть инструментом только для
.env: теперь синхронизируется любой конфиг, а его имя и формат шифруются вместе с
содержимым. Если у вас два сервера — рабочий и домашний — CLI сам выберет нужный по
директории, в которой вы стоите, как это делает git. А бинарник обновляет себя сам.
Главное
Любой файл
XML-датасорсы DataGrip, kubeconfig, JSON сервис-аккаунтов — что угодно. Имя и формат файла путешествуют внутри шифрованного payload, сервер их не видит:
$ dmage init dbconf --file dataSources.xml
✓ Created app 'dbconf'. Pushed revision 1 from dataSources.xml (4.2 KB, text).
# на другой машине
$ dmage pull dbconf # воссоздаёт dataSources.xml
$ dmage push dbconf # подхватывает его автоматически
diff подстраивается под формат, exec вежливо отказывает не-env приложениям.
Существующие .env-приложения не затронуты и совместимы со старыми CLI; для не-env
приложений нужна 1.3 на всех устройствах.
Несколько серверов с привязкой к директориям
Как includeIf в git: замаппьте ~/code/work на офисный сервер, а ~/code/personal —
на домашний, и каждая команда сама выберет нужный сервер по текущей директории. Без
переключения контекста и без файлов в ваших проектах:
$ dmage server add work https://secrets.corp.com --path ~/code/work
$ dmage server add personal https://home.example.com --path ~/code/personal
$ cd ~/code/work/billing-api
$ dmage push
✓ Pushed revision 5 (12 keys). → work (secrets.corp.com)
Имя приложения по умолчанию — имя директории, так что внутри проекта dmage push —
это вся команда. С одним сервером не меняется вообще ничего.
Самообновление
$ dmage upgrade
Скачивает бинарник релиза, сверяет его с SHA256SUMS релиза, проверяет работоспособность
и атомарно заменяет себя. Homebrew-установки распознаются и отправляются в brew upgrade.
Защита от пустого пуша
Пуш .env с нулём ключей — усечённый файл, не та директория — теперь ошибка, а не тихое
затирание секретов. --allow-empty, если вы правда этого хотите.
Чейнджлог
Добавлено
- Хранение любых файлов, не только
.env— имя/формат шифруются вместе с содержимым;pull/pushиспользуют сохранённое имя;diffподстраивается;execотказывает не-env приложениям. - Несколько серверов:
dmage server add/map/list/rm/use/rename, глобальный--server <имя>,DOTMAGE_SERVER. Маппинги директорий в глобальном конфиге; старые конфиги мигрируют автоматически. - Имя приложения по умолчанию — имя текущей директории (
dmage pushбез аргументов). dmage lock --all/dmage logout --all.dmage upgrade— верифицированное самообновление (--check,--version,--force,-y).
Изменено
- Пуш пустого
.envтеперь ошибка; обход —--allow-empty.
Безопасность
- Релизы включают
SHA256SUMS;dmage upgradeотказывается ставить релизы без него.
Скачать
Бинарники и SHA256SUMS: github.com/dotMage/dotmage/releases/tag/v1.3.0
brew upgrade dotmage # Homebrew
dmage upgrade # самообновление (начиная с 1.3.0)