Собственный поддомен
Собственный публичный поддомен назначается HTTP- или HTTPS-туннелю, если имя доступно и возможность включена для текущего тарифа.
Описание
Общее описание функционала
Функция «Свой поддомен» позволяет владельцу HTTP/HTTPS-туннеля задать стабильную метку в адресе вида https://{метка}.{домен_сервиса}/… вместо случайного поддомена, чтобы делиться одной и той же ссылкой с командой и интеграциями. Метка должна быть корректной DNS-меткой, не входить в зарезервированный список и быть уникальной в системе. На тарифах без этой возможности панель и API возвращают отказ с указанием функции; администраторы при управлении чужими туннелями ограничения тарифа обычно не испытывают.
Как пользователь может использовать
- Разработчик после создания туннеля в дашборде задаёт свой поддомен в карточке туннеля или через API PATCH с действием
set_public_subdomain. - Пользователь делится коротким брендированным URL с заказчиком на поддомене домена сервиса. Каноническая ссылка для HTTP/HTTPS — URL туннеля вида
https://{метка}.{домен_сервиса}/…. - Интегратор настраивает OAuth redirect URI на постоянный хост туннеля.
- Владелец переименовывает поддомен в пределах правил уникальности (старое имя освобождается для других после успешного перехода).
- Пользователь на бесплатном плане пытается включить метку и получает понятный отказ с предложением сменить тариф.
- Администратор правит поддомен для туннеля пользователя при операционной необходимости.
Как это реализовано в сервисе
Запрос на смену метки приходит на плоскость управления вместе с идентификатором туннеля. Сервер проверяет владельца (или администратора), правила тарифа для обычных пользователей, формат метки, уникальность и частоту смены (защита от злоупотреблений). После успеха обновляется запись туннеля с новым URL туннеля и обновляется соответствие имя хоста → туннель, чтобы входящие запросы по новому имени сразу попадали в тот же туннель. Дальнейшая обработка запроса совпадает с обычной HTTP-маршрутизацией: проверки доступа, лимиты и обратный прокси к локальному сервису.
Справочник API
Смена своего поддомена
PATCH /api/tunnels (тот же маршрут, что и для других действий над туннелем).
Тело JSON (поля уточняйте по актуальному контракту API создания/изменения туннеля):
id— идентификатор туннеля (должен совпадать с объектом изменения).action:set_public_subdomainpublic_subdomain: строка — метка поддомена (только допустимые символы DNS-метки, без точек).
Успех: туннель возвращается с обновлённым URL туннеля (в ответе API — поле public_url) и полями хоста (как в ответе вашего API PATCH).
Ошибки: 400 (неверная метка, зарезервировано, не HTTP(S) туннель), 403 (нет функции в тарифе для не-админа), 409 (метка занята), 429 (слишком частые переименования), 413 (слишком большое тело запроса).
Авторизация
Требуется вход в дашборд или Bearer-токен. Не-владелец (кроме администратора) не может менять чужой туннель.
Ошибки
400 Bad Request
Недопустимая метка (длина, символы, дефисы), метка в зарезервированном списке, или туннель не HTTP/HTTPS — в теле JSON указано сообщение об ошибке.
401 Unauthorized
Пользователь не аутентифицирован.
403 Forbidden
Нет прав на изменение туннеля или у пользователя нет функции custom-public-subdomain в тарифе (код вроде feature_disabled в JSON).
409 Conflict
Такой поддомен уже используется другим туннелем.
413 Payload Too Large
Тело PATCH превышает лимит сервера.
429 Too Many Requests
Превышен лимит частоты переименований поддомена для пользователя.
Ограничения
- Доступно только для туннелей с протоколом HTTP или HTTPS.
- Метка — одна DNS-метка без точек; полноценный произвольный домен — отдельная возможность продукта (кастомные домены).
- Смена поддомена ограничена по частоте на пользователя.
- Уникальность проверяется глобально в пределах окружения: занятая метка недоступна другому туннелю, пока не освобождена.