Секреты
Секреты никогда не пишутся в env.toml — рано или поздно кто-нибудь закоммитит токен. Вместо этого Outry
берёт их из хранилища паролей операционной системы.
Локально: хранилище паролей
Заголовок раздела «Локально: хранилище паролей»outry secret set token --env dev # значение читается из stdinoutry secret rm token --env devGET /me { headers { Authorization: "Bearer ${token}" }}Если token больше нигде не задан, Outry ищет его в:
- macOS — Keychain;
- Windows — Credential Manager;
- Linux — Secret Service (GNOME Keyring, KWallet, KeePassXC).
Секреты хранятся отдельно для каждого проекта и окружения: сервис outry, ключ <проект>/<окружение>/<имя>.
Имя проекта — project из env.toml или имя папки проекта (родительской, если папка называется api).
В приложении для этого есть кнопка Add secret внизу боковой панели — она сохраняет туда же.
Объявление секретов
Заголовок раздела «Объявление секретов»Перечислите имена секретов в env.toml — только имена, не значения:
secrets = ["token", "api_key"]Тогда outry vars и вкладка Variables в приложении покажут, каких секретов не хватает в текущем
окружении, а редактор их подскажет. Значения секретов в обоих местах замаскированы.
В CI: переменные окружения
Заголовок раздела «В CI: переменные окружения»На CI-раннерах хранилища паролей нет. Передавайте секреты переменными OUTRY_<ИМЯ> — они главнее
env.toml и хранилища:
- run: outry run api --env staging --no-keyring env: OUTRY_TOKEN: ${{ secrets.API_TOKEN }}--no-keyring полностью отключает обращение к хранилищу. Но и без него Outry работает на машинах без
графической сессии: если хранилища нет, секрет просто считается ненайденным.