Коротко о главном

В многопортальной CRM недостаточно разделить строки базы по tenantId. Изоляция должна проходить через все слои: пользователей, API, файлы, кэш, фоновые задачи, AI-контекст, инструменты и технические credentials. Иначе ИИ может стать новым маршрутом утечки между клиентами.

Что такое tenant isolation

Tenant — отдельная организация или портал в общей платформе. Программное ядро может быть одно, но данные и полномочия должны вести себя так, будто у каждой компании собственная система.

Это позволяет обновлять SaaS централизованно, не создавая отдельную кодовую базу на клиента.

База данных — только первый слой

Запрос к записи должен быть связан с workspace/tenant. Но дальше появляются документы, thumbnails, generated files, поисковые индексы, Redis, очереди, audit events и API-токены.

Если хоть один слой использует глобальный cache key или доверяет client-supplied tenantId, изоляция становится неполной.

ИИ добавляет новые границы

Agent получает контекст и tools. Поэтому перед каждым retrieval/tool-call система должна понимать, от чьего имени он работает. Нельзя передавать модели «все данные, а потом попросить не показывать чужие». Ограничение должно происходить до модели.

Секрет провайдера, наоборот, может быть общим платформенным ресурсом, но его usage и полномочия должны учитываться по tenant.

Файлы

Файл должен иметь серверно проверяемую связь с workspace и бизнес-объектом. Одной непредсказуемой ссылки недостаточно. Особенно опасны универсальные download-endpoints, которые не перепроверяют owner/workspace.

Для object storage нужен тот же принцип: namespace и подписанные URL выдаются после authorization.

Масштабирование без диска на каждого клиента

Изоляция логическая, а не обязательно физическая. Тысяча порталов не требует тысячу дисков. Гораздо эффективнее общий storage с tenant namespaces, квотами и возможностью распределять tenants между data clusters.

Физическое разделение можно применять к крупным или регулируемым клиентам как отдельный tier, не меняя модель продукта.

Частые вопросы

Не всегда. Это один из вариантов изоляции, но он значительно усложняет эксплуатацию. Выбор зависит от требований.
Да, если ключ остаётся серверным, а контекст, usage и tools изолированы на уровне платформы.
Нужны негативные E2E-тесты через UI/API/AI/files/jobs, а не только unit-test фильтра в БД.

Источники

  1. IBM Research — Governance by Construction for Generalist Agents
  2. OpenAI — Frontier: enterprise platform for AI agents
  3. OpenAI — API Platform
  4. Deloitte — The State of AI in the Enterprise 2026

Adaptum проектируется как multi-tenant платформа: один Core, отдельные workspace, шаблоны и tenant-scoped AI. Это важнее, чем создавать отдельную копию CRM каждому клиенту.