Postgres туннель
Доступно только по подписке.
Обзор
Postgres туннель позволяет предоставить доступ к базе данных PostgreSQL и отслеживать выполняемые SQL запросы в инспекторе.
Postgres туннели рассчитаны на отладку и работу локально или в тестовых окружениях, не поддерживают подключение через SSL, поэтому нужно использовать sslmode=disable. Мы не рекомендуем использовать этот тип туннелей в производственных средах.
Если пользователь или пароль неверны, клиент получит ошибку базы как есть, с кодом SQLSTATE, — например, FATAL: password authentication failed for user "app", а не обрыв соединения.
Начиная с версии 0.36.0 tuna показывает в терминале полноэкранный интерфейс с сессиями и SQL-запросами.
Примеры
Все актуальные флаги, подсказки и примеры можно посмотреть вызвав справку:
tuna postgres --help
Почти для всех флагов есть аналогичные переменные окружения.
Базовый пример
tuna postgres 5432
С передачей IP-адреса
tuna postgres 10.0.0.1:5432
С указанием API-ключа
Можно указать другой API-ключ через флаг --api-key или переменную окружения TUNA_API_KEY, у ключа должно быть право tunnels:connect. Переопределение происходит в соответствии с политикой очерёдности конфигурации.
tuna postgres 5432 --api-key=tak_***
С указанием региона для подключения
Можно указать специфичный регион через флаг --location/-l или переменную окружения TUNA_LOCATION. Переопределение происходит в соответствии с политикой очерёдности конфигурации.
tuna postgres 5432 --location=nl
Статичный порт
В качестве значения флага --port/-p может выступать алиас или назначенный порт.
Порты можно резервировать в личном кабинете и после перезапуска туннеля адрес останется прежним.
Подробнее о портах читайте в отдельной инструкции.
tuna postgres 5432 --port=postgres
tuna postgres 5432 --port=35000
Ограничение доступа по подсетям IP
Вы можете определить белый список подсетей в CIDR-формате:
tuna postgres 5432 --cidr-allow="10.0.0.1/32"
Либо запретить доступ из определенных подсетей:
tuna postgres 5432 --cidr-deny="10.0.0.1/32"
Можно комбинировать, например указать широкую сеть и вычесть частные IP:
tuna postgres 5432 --cidr-allow="10.0.0.1/24" --cidr-deny="10.0.0.33/32"
Также можно передавать списки через запятую:
tuna postgres 5432 --cidr-allow="10.0.0.1/24,192.168.0.1/24" --cidr-deny="10.0.0.33/32,192.168.0.33/32"
Инспектор запросов
Инспектор включён всегда и доступен по адресу http://127.0.0.1:4040: слева список сессий, справа запросы выбранной сессии с длительностью, результатом и ошибками. Следующий туннель займёт порт 4041, фиксированный порт задаётся флагом --inspect-port или переменной TUNA_INSPECT_PORT. Если инспектор не нужен, используйте TCP туннель.
CLI пишет адрес инспектора в лог и показывает в шапке интерфейса в терминале. Подробнее — на странице инспектора.
