Connector Бета

Исходящий коннектор, который работает внутри вашей сети

Коннектор — небольшой Go runtime, который вы запускаете рядом с внутренним веб-приложением. Он аутентифицируется workspace-scoped runtime-токеном, сам дозванивается до BusinessProxy по TLS, держит постоянный туннель и передаёт alias-запросы к реальному upstream. Входящие порты под него открывать не нужно.

Private App Access находится в Бета. Это ранний доступ с поддержкой продаж, пока мы завершаем production hardening и evidence на реальных upstream-приложениях. Мы не включаем пилот, пока connector, alias, diagnostics и revoke-проверки не пройдут для вашего целевого приложения.

Runbook

Runbook коннектора кратко

ТемаОписание
Что вы запускаетеОдин Go-процесс коннектора, как container или static binary, внутри вашей сети или VPC.
СетьИсходящий HTTPS/TLS к BusinessProxy API. Входящий listener для коннектора не нужен. Коннектору также нужен внутренний DNS/TCP/TLS-доступ к upstream-приложениям, которые он обслуживает.
Привязка приложений в V1Каждому private app назначается один primary connector. Переназначение явное и ограничено workspace.
Модель токенаRuntime token показывается один раз, хранится на сервере как hash и действителен только для точной пары workspace + connector.
ТуннельКоннектор открывает исходящий туннель через WebSocket или raw upgrade. HTTP streams и WebSocket-трафик используют этот туннель, когда он подключён.
FallbackЕсли tunnel не обязателен, обычный HTTP может использовать bounded relay fallback. Upgrade-трафик всё равно требует живой tunnel.
ЗдоровьеReady означает status online и свежий heartbeat. Draining/offline/stale/missing fail-closed.
DrainИспользуйте draining перед maintenance. Drain не отзывает активные сессии без явного session revoke.
DiagnosticsКнопка Check в кабинете ставит connector-side diagnostic для DNS, TCP, TLS и HTTP. Вывод санитизирован.

Окружение

Необходимое окружение

Не печатайте реальные токены в документации, скриншотах или тикетах. Используйте placeholder’ы.

BUSINESSPROXY_API_URL=https://<businessproxy-site>/api
CONNECTOR_WORKSPACE_ID=<workspace id>
CONNECTOR_ID=<connector id>
CONNECTOR_TOKEN=<one-time runtime token from cabinet>
CONNECTOR_VERSION=0.1.0
CONNECTOR_STATUS=online
CONNECTOR_HEARTBEAT_INTERVAL=30s
CONNECTOR_DRAIN_ON_EXIT=true
CONNECTOR_HTTP_TIMEOUT=5s
CONNECTOR_RELAY_POLL_TIMEOUT=25s
CONNECTOR_RELAY_MAX_BODY_BYTES=5242880
CONNECTOR_TUNNEL_ENABLED=true
CONNECTOR_TUNNEL_CONNECTIONS=1
CONNECTOR_TUNNEL_PING_INTERVAL=30s
CONNECTOR_TUNNEL_MAX_STREAMS=128
CONNECTOR_TUNNEL_MAX_CHUNK_BYTES=65536

Создайте или поверните token коннектора в кабинете workspace, сразу сохраните его в secret manager и перезапустите коннектор с новым значением. Кабинет больше не покажет этот token.

Сеть

Порты и сеть

  • Коннектор → BusinessProxy API: исходящий TCP 443 для HTTPS, WebSocket upgrade и raw tunnel upgrade. Публичная копия описывает production как HTTPS/TLS.
  • Коннектор → internal upstream: внутренний TCP к каждому upstream URL приложения, обычно 80/443, но зависит от upstream.
  • Внешний пользователь → alias: HTTPS 443 к alias host.
  • Нет inbound connector port: не открывайте публичный порт к коннектору.
  • DNS: хост коннектора должен резолвить и домен BusinessProxy API, и внутренние upstream hostnames.

Готовность

Состояния здоровья и drain

Ready
Коннектор online, heartbeat свежий. Launch, diagnostics и alias-запросы могут выполняться.
Draining
Коннектор намеренно draining. Новые launch, diagnostics и alias-доступ fail-closed до возврата online.
Stale
Статус коннектора online, но heartbeat старше окна свежести. Проверьте runtime logs и исходящую связность с API.
Offline
Коннектор offline или сообщил неизвестный runtime status. Доступ fail-closed.
Missing
У приложения нет connector assignment или запись connector недоступна. Назначьте workspace connector перед запуском.

Ротация

Ротация и обслуживание

  1. Поверните token в кабинете или API.

  2. Сохраните новый token в secret store хоста коннектора.

  3. Перезапустите коннектор с новым CONNECTOR_TOKEN.

  4. Убедитесь, что readiness = Ready и heartbeat свежий.

  5. Если maintenance требует обрыва доступа, включите revoke_active_sessions при смене статуса connector или update приложения. Drain сам по себе не отзывает активные alias sessions.

Отказ

Когда коннектор отказывает

Не обходите ошибки коннектора, открывая internal upstream напрямую. Private App Access должен оставаться fail-closed через alias и connector path. Если ошибка блокирует пилот, соберите санитизированный connector status, readiness, diagnostic result и timestamp. Не добавляйте runtime tokens, token hashes, internal upstream, private IP или custom CA material в тикеты.