Echolot
Рабочие пространства

Секреты

Храните пароли, токены и ключи в связке ключей, а не в файлах рабочего пространства, и передавайте их инструменту командной строки и CI.

Секрет — это переменная, значение которой остаётся в связке ключей на вашем Mac. В файле рабочего пространства лежит только её имя, так что рабочее пространство можно коммитить и передавать, не раскрывая свои учётные данные. Используйте секреты для паролей, токенов, API-ключей и всего, что вы не стали бы вставлять в чат.

Как сделать переменную секретом

  1. Откройте таблицу переменной: страницу «Окружения», Настройки папки… › Переменные или вкладку Переменные запроса.
  2. Добавьте переменную или найдите её и отметьте Секрет.
  3. Введите значение в поле (в нём написано Не задано на этом Mac) и нажмите ↩ или Сохранить.

Поле больше никогда не показывает значение. Когда значение задано, в нём написано Хранится в Связке ключей и нарисован ключ. Чтобы изменить значение, введите новое и сохраните.

Секрет используется как любая переменная: {{token}}.

Переменные рабочего пространства на странице «Окружения»: token отмечена как секрет, в поле её значения написано «Хранится в Связке ключей»

В файле секрет — это имя и флаг, без значения:

[[variables]]
name = "token"
secret = true

У каждого уровня своё значение. Секрет password в окружении Staging и секрет в Production — это два элемента связки ключей, так что у каждого окружения может быть свой пароль.

Где лежат значения

Значения хранятся в вашей связке ключей входа, по одному элементу на секрет, с меткой Echolot secret <name>. Они принадлежат рабочему пространству (по его ID, который записан в workspace.toml) и уровню, на котором определена переменная. Инструмент командной строки на том же Mac читает те же элементы.

Секрет без значения на этом Mac не подменяется значением другого уровня. Запрос сообщает the secret {{password}} has no value on this Mac, пока вы не зададите значение.

Версия из Mac App Store

Редакция для App Store использует ту же связку ключей. Элементы, созданные загрузкой с сайта или инструментом командной строки, могут один раз запросить доступ; выберите Всегда разрешать.

Сравнить версии

Что никогда не попадает в файлы

Echolot не пишет в файлы рабочего пространства:

  • Значения секретных переменных.
  • Секреты, которые сохраняют захваты из ответов: захват, помеченный как секретный, пишет только в связку ключей. В Alpenglow Auth › Sign in захватывает access_token в секрет {{token}}.
  • Токены OAuth 2.0 и входы в MCP.
  • Значения, которые вы переносите командой Переместить в Связку ключей (см. ниже).

То, что вы вводите открытым текстом, остаётся открытым текстом. Если поле пароля авторизации или прокси содержит буквальное значение вместо переменной, Echolot предупреждает под ним: Сохраняется открытым текстом в файле рабочего пространства. Нажмите Переместить в Связку ключей: значение станет секретной переменной рабочего пространства, а в поле вместо него появится {{name}}.

Секреты скрываются и везде, где Echolot показывает или передаёт дальше разрешённый запрос: в предпросмотрах, Быстром просмотре, панели «Переменные», поиске по истории и во всём, что получают агенты. Сгенерировать код… и Скопировать как cURL — исключение: они записывают запрос в том виде, в каком он будет отправлен, вместе с секретами.

Импорт переносит учётные данные в секреты

Когда вы импортируете коллекцию Postman, экспорт Insomnia или другой файл, пароли, токены и API-ключи, найденные в настройках авторизации и заголовках с учётными данными, становятся секретными переменными. Их значения уходят в связку ключей, а в запросе вместо них появляется {{name}}: имя запроса и поле, например {{me_password}}. Отчёт об импорте перечисляет имена сохранённых секретов, но не значения.

Учётные данные, записанные в адресах (https://user:pass@…), строках запроса и телах, пока не переносятся. После импорта проверьте их.

Экспорт оставляет значения за скобками

Экспорт записывает секретные переменные только по имени, без значения, в любом формате. Тот, кто открывает экспорт, задаёт значения у себя.

Секреты в командной строке и в CI

Инструмент командной строки ищет значение секрета в таком порядке:

  1. Файл --secrets, переданный echolot run: строки вида NAME=value.
  2. Переменная окружения ECHOLOT_SECRET_<NAME>: имя заглавными буквами, где каждый символ, кроме буквы и цифры, заменён на _. {{token}} читает ECHOLOT_SECRET_TOKEN; {{api-key}} читает ECHOLOT_SECRET_API_KEY.
  3. На Mac — элементы связки ключей, которые ведёт приложение.
ECHOLOT_SECRET_TOKEN=… echolot run Alpenglow.echolot --folder orders
echolot run Alpenglow.echolot --env staging --secrets staging.secrets

Связка ключей пропускается, если задана CI и если ECHOLOT_KEYCHAIN=0. В CI задавайте переменные ECHOLOT_SECRET_… из хранилища секретов вашей CI. См. CI.

Секрет, найденный в окружении, действует для всех уровней: ECHOLOT_SECRET_PASSWORD отвечает на {{password}} в любом окружении.

Импорт в командной строке переносит учётные данные в секреты так же, как приложение. Без связки ключей инструмент сообщает, какие переменные ECHOLOT_SECRET_… нужно задать.

Первое открытие у коллеги

Коллега, который клонирует рабочее пространство, получает имена всех секретов и ни одного значения. В его таблицах написано Не задано на этом Mac. Он один раз задаёт свои значения, и дальше все работают с одними и теми же файлами, каждый со своими учётными данными. См. Git и команды.

На этой странице