Справочник CLI
Все команды принимают --help. Глобальные флаги можно указывать
как до подкоманды, так и после неё.
Глобальные флаги
| Флаг | Описание |
|---|---|
-c, --config <path> | путь к .maxicfg.yaml |
-p, --profile <name> | профиль, с которым работать |
-f, --format <fmt> | text, json, github, junit |
-q, --quiet | не печатать вывод, полагаться на код возврата |
--no-color | отключить ANSI-цвета |
-v, --verbose | показывать, что и почему читается |
maxicfg lint
Проверить один или несколько источников по схеме.
maxicfg lint [paths...] [flags]
| Флаг | Описание |
|---|---|
--schema <path> | файл схемы (перекрывает файл проекта) |
--strict | считать неизвестные ключи ошибкой |
--warn-unused | сообщать о ключах схемы, которые нигде не заданы |
--max-problems <n> | остановиться после n проблем |
$ maxicfg lint ./config --strict --warn-unused
config/base.yaml ok
config/production.yaml 1 problem
production.yaml:22:5 cache.ttl: "90" is not a valid duration
(did you mean "90s"?)
warning: schema key "tracing.sample_rate" is never set
maxicfg diff
Сравнить два источника или два профиля ключ за ключом.
maxicfg diff <a> <b> [flags]
| Флаг | Описание |
|---|---|
--ignore-secrets | пропускать ключи с пометкой secret |
--only <prefix> | ограничить ключами с указанным префиксом |
--exit-code | вернуть 1, если найдены различия |
--missing-only | только ключи, присутствующие с одной стороны |
$ maxicfg diff --profile staging --profile production --only database
~ database.pool_size 10 -> 40
~ database.timeout 5s -> 30s
+ database.replica_host (only in production)
3 differences under "database"
maxicfg render
Отрендерить шаблон, подставив переменные окружения.
maxicfg render <template> [flags]
| Флаг | Описание |
|---|---|
-o, --out <path> | записать в файл вместо stdout |
--env-file <path> | загрузить переменные из dotenv-файла |
--allow-empty | разрешить пустой результат для незаданных переменных |
--check | завершиться с ошибкой, если результат отличается от существующего файла |
--check — тот самый флаг для CI: он проверяет, что закоммиченный
отрендеренный файл соответствует шаблону, ничего при этом не записывая.
maxicfg scan
Искать учётные данные и типичные ошибки в конфигурационных файлах.
maxicfg scan [paths...] [flags]
$ maxicfg scan ./config
config/local.yaml:8 aws access key id
config/local.yaml:9 aws secret access key
config/staging.yaml:31 private key block
config/staging.yaml:44 database url with inline password
4 findings in 2 files
scan работает на сопоставлении с шаблонами и будет давать
ложные срабатывания на примерах значений. Добавляйте пути в
scan.ignore в файле проекта, а не отключайте команду целиком.
maxicfg fmt
Привести форматирование к единому виду: отступы, сортировка ключей, отсутствие пробелов в конце строк.
maxicfg fmt [paths...] [--check] [--sort-keys]
maxicfg schema
Сгенерировать заготовку схемы из существующих конфигурационных файлов.
$ maxicfg schema infer ./config/production.yaml --out config/schema.yaml
inferred 34 keys, 6 required, 3 enums
review the result before committing
Коды возврата
| Код | Значение |
|---|---|
0 | успех, сообщать нечего |
1 | найдены проблемы (ошибки проверки, находки, расхождения с --exit-code) |
2 | ошибка использования — неверные флаги или пропущенные аргументы |
3 | файл не удалось прочитать или разобрать |
4 | сама схема невалидна |