Inquir Compute
Мультитенантный вход

Мультитенантная маршрутизация для SaaS API

Тенанты по хосту, по пути и white-label ingress для B2B API — контекст клиента на шлюзе, без гигантских условных роутеров в каждой функции.

Почему смешение клиентов обходится дорого

Если «кто клиент» проверяется наспех в одном стеке, выше риск перепутать ID и отдать чужие данные.

Без явного контекста клиента в запросе разбор инцидентов и логов затягивается.

Что обычно идёт не так

Один огромный роутер с вложенными if скрывает ошибки auth и усложняет ревью.

Копировать одни и те же шаги деплоя под каждого клиента — плохо масштабируется.

Как устроен приём трафика

На API-Gateway задаёте, как из запроса получить tenant; в функцию уходит уже нормализованный контекст.

Общие логи и секреты — без смешивания процессов разных клиентов в одном рантайме.

Паттерны мультитенантной маршрутизации

По домену

Поддомены клиентов ведут на нужный набор функций.

По префиксу пути

Один сертификат и отдельный неймспейс URL.

Разный auth

Разные политики API keys на разные поверхности при необходимости.

Как внедрить мультитенантную маршрутизацию

1

Выбрать стратегию

Отдельный домен — нагляднее для white-label; путь — когда DNS ограничен.

2

Прокинуть контекст

Явно передавайте идентификатор клиента в обработчики через событие шлюза.

3

Тестировать изоляцию

Автоматизируйте негативные сценарии: доступ клиента A к маршрутам B запрещён.

Что видит функция

Событие API-Gateway несёт заголовки и тело в привычном HTTP-виде — проще отлаживать и логировать.

handler.mjs
export async function handler(event) {
  const tenantId =
    event.headers['x-tenant-id'] ?? event.headers['X-Tenant-Id'];
  const payload = JSON.parse(event.body || '{}');
  const data = await loadForTenant(tenantId, payload);
  return { statusCode: 200, body: JSON.stringify(data) };
}

Когда это нужно

Когда это уместно

  • B2B SaaS API
  • Отдельные URL вебхуков на клиента

Когда лучше не трогать

  • Один тенант и один продукт — достаточно простого роутинга

Вопросы и ответы

Это заменяет политики в базе данных?

Нет. Шлюз помогает не путать клиентов на входе; в БД всё равно нужны row-level правила и тесты.

Домен или префикс пути?

Домен проще для white-label API. Префикс — когда с DNS туго. В обоих случаях важно явно передавать tenant.

Как проверять изоляцию?

Негативные тесты: токен клиента A не должен работать на маршрутах B; в логах — стабильный тег клиента.

Inquir Compute

Самый простой способ запускать AI-агентов и backend-джобы без инфраструктуры.

Связаться info@inquir.org

© 2025 Inquir Compute. Все права защищены.