Все разделы

Основные возможности

Окружения и переменные

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

Переменная в Tetiva берётся из активного окружения текущего рабочего пространства; единственный другой источник — pm.variables в скрипте, и живёт такое значение один запрос. Вы пишете {{base_url}} в URL, заголовке, теле или поле авторизации, и перед отправкой запроса подстановка заменяет запись на значение. Если переменной в активном окружении нет, текст уходит на сервер как есть — {{base_url}} внутри URL.

Окружения#

Окружение — это именованный набор пар «ключ — значение», привязанный к рабочему пространству. Типичный набор — Dev, Staging, Prod: одинаковые ключи, разные значения.

Селектор окружения стоит справа в строке URL. Активное окружение помечено зелёной точкой, пункт «Без окружения» отключает подстановку целиком, «Настроить окружения…» открывает окно «Окружения». Его же открывает иконка «Окружения» в левой панели.

В окне слева список окружений, справа — таблица переменных. Кружок слева от имени делает окружение активным. Контекстное меню на окружении даёт «Переименовать», «Дублировать», «Экспорт в Postman» и «Удалить»; кнопка загрузки внизу импортирует окружение Postman или Hoppscotch. Активным может быть только одно окружение сразу.

Окружения появляются и при импорте коллекций: из переменных коллекции Postman, из подокружений Insomnia, из переменных Hoppscotch и из спецификации OpenAPI, см. Импорт и экспорт.

Tetiva
v1.3.1
Окно управления окружениями в Tetiva: окружения local, develop, stage и prod, переменные develop, секретное значение замаскированоОкно управления окружениями в Tetiva: окружения local, develop, stage и prod, переменные develop, секретное значение замаскировано
Значение с флагом «секрет» показано точками — раскрывает глаз в той же строке

Каждая строка переменной — это флажок «включена», ключ, значение, замок «секрет» и крестик удаления. Выключенная переменная остаётся в списке, но в подстановке не участвует. Новая строка сохраняется по Enter, по Tab или просто когда фокус уходит из строки.

Пять привычек, которые помогают не перепутать окружения и не отправить запрос в прод, собраны в статье «Пятница, 18:40: запрос ушёл не в то окружение».

Синтаксис и область подстановки#

Подстановка ищет по шаблону {{имя}} и работает в URL, ключах и значениях заголовков, теле запроса, полях авторизации, метаданных gRPC, запросе и переменных GraphQL, в адресе WebSocket-подключения и в текстовых сообщениях, которые вы через него отправляете. В сообщения подстановка идёт заново на каждую отправку, поэтому токен, обновлённый в другом месте, подхватывается без переподключения — см. WebSocket.

Три правила стоит запомнить сразу:

  • Пробелы внутри скобок значимы. Пишите {{token}}, а не {{ token }}: подставляется ровно тот ключ, который стоит между скобками.
  • Подстановка одноуровневая. Если значение переменной само содержит {{other}}, вторым проходом это не раскроется — текст уйдёт как есть.
  • Неизвестная переменная не ошибка. Запрос всё равно отправится, просто с {{...}} в теле или URL. Оранжевая подсветка — единственное предупреждение, которое вы получите.

В полях авторизации подстановка идёт по разобранным полям, а не по их тексту, так что кавычки и обратные слэши в пароле или ключе запрос не портят.

Приоритет разрешения#

Порядок короткий, потому что уровень всего один: значения берутся из включённых переменных активного окружения. Уровней «коллекция» и «глобальные переменные» в Tetiva нет — общие значения кладут в окружение, а специфичные для запроса вычисляют в pre-скрипте. pm.collectionVariables в скриптах работает с тем же активным окружением.

Единственное, что перекрывает окружение, — сам pre-скрипт. Вызов pm.environment.set("token", value) меняет значение для текущего прогона: URL, заголовки и тело пересобираются уже с новым значением, а авторизация подставляется после скрипта и тоже его видит. Заголовки, которые ставит сам скрипт, тоже проходят подстановку — {{...}} в них раскрывается перед отправкой, а не уезжает на сервер текстом. pm.variables.set("token", value) идёт дальше, но только в пределах запроса: значение перекрывает token из окружения, доходит до post-скрипта и нигде не сохраняется. Подробности — в разделе Скрипты.

Подсветка, подсказка и переход к переменной#

В редакторах CodeMirror и в полях авторизации {{...}} подсвечивается: акцентным цветом, если переменная найдена в активном окружении, и оранжевым, если нет.

Наведите курсор и задержитесь на четверть секунды — появится подсказка: имя переменной, бейдж Environment или Undefined, текущее значение и ссылка действия. «Open in Environment →» открывает модалку, прокручивает к нужной строке, подсвечивает её вспышкой и ставит курсор в поле значения. «+ Create in Environment» открывает ту же модалку с уже заполненным именем в строке добавления.

То же самое делает Cmd/Ctrl+Click прямо по {{...}} в редакторе — без ожидания подсказки. А если начать печатать {{, автодополнение предложит ключи активного окружения вместе с их значениями.

Секретные переменные#

Замок в строке переменной ставит флаг «секрет». Значение такой переменной показывается как •••••••• в модалке (глаз рядом раскрывает его временно), маскируется в подсказке при наведении и в автодополнении, а MCP-инструменты не возвращают его вообще.

Флаг влияет на отображение, а не на хранение. Значение лежит в локальной базе SQLite открытым текстом, попадает в синхронизацию вместе с остальными переменными и уезжает в файл при экспорте окружения в формате Postman (там оно помечается типом secret). На сервере данные воркспейса шифруются при хранении (AES-256-GCM, мастер-ключ лежит отдельно от базы), но сам сервис их читает: расшифровывает, чтобы отдавать вашим устройствам. Для боевых ключей это значит: секретность нужна против случайного скриншота и демонстрации экрана, а не против доступа к вашему диску.

Как ключи утекают через скриншоты, созвоны и чаты и что делать, если это уже случилось, разобрано в статье «Токен на скриншоте».

Переменные из скриптов#

После выполнения запроса всё, что скрипты записали через pm.environment.set, сохраняется в активное окружение: существующие ключи обновляются, новые создаются включёнными и без флага «секрет». Если активного окружения нет, сохранять некуда — изменения останутся только в этом прогоне. Ничего не сохраняется, если запрос отменили или pre-скрипт упал с ошибкой, а post-скрипт с ошибкой теряет свои изменения.

pm.environment.unset действует только на время выполнения: из окружения переменная не удаляется, убрать её насовсем можно крестиком в модалке.

Что синхронизируется между устройствами и в каком объёме — на странице Синхронизация. Как переменные попадают в заголовок Authorization — в разделе Авторизация.

обновлено