env-master

CLI envmaster

Тонкая обёртка над SDK: та же расшифровка на клиенте, те же гарантии.

envmaster login    --url <url> --client-id <id> --client-secret <secret>
envmaster export   --project <slug> --env <slug> [--file out.env]
envmaster run      --project <slug> --env <slug> [--mask] -- <cmd...>
envmaster validate --project <slug> --env <slug> [--schema env.schema.yml]
envmaster import   [file] --project <slug> --env <slug> [--dry-run]

Откуда берутся креды

По убыванию приоритета: флаги → переменные ENVMASTER_*~/.envmaster/config.json (его пишет envmaster login, права 0600). В конфиге лежат машинные креды, а не значения записей: секреты на диск не попадают ни на одном шаге.

run вместо export

export пишет файл, run передаёт значения дочернему процессу — и ничего не оставляет на диске:

envmaster run --project billing-api --env production --mask -- ./deploy.sh

С --mask вывод дочернего процесса фильтруется построчно, код возврата проксируется.

import для переезда

ENVMASTER_TOKEN=<токен из кабинета> \
  envmaster import .env --project billing-api --env production --dry-run

Ключи вида *PASSWORD*, *TOKEN*, *SECRET*, *KEY* становятся секретами, остальные — переменными; --all-secrets переключает всё в секреты. Существующие ключи пропускаются, пока не передан --overwrite.

Команда пишет, поэтому требует пользовательский токен, а не машинные креды — те read-only по дизайну.