betool спроектирован для регулируемых сред. Безопасность не является слоем, добавленным задним числом: это инвариант, определяющий каждую строку кода, каждую миграцию, каждый модуль.
1. Строгая мультитенантность
Каждая организация владеет своими собственными данными, pipeline, секретами, файлами и ключами LLM. Изоляция обеспечивается:
- На уровне базы данных — каждая бизнес-таблица содержит индексированный столбец
org_id, а серверные запросы всегда фильтруются по организации сессии. - На уровне файловой системы — у каждой организации есть собственный корень в
<data_root>/orgs/<org_id>/. Никаких общих путей. - На уровне кэша — кэши раздельны по организациям; ни одной общей записи без явного флага
is_shared = TRUE. - На уровне секретов — у каждой организации собственное хранилище, собственные ключи API, собственные токены. Никакого глобального запасного варианта. Секреты, введённые в конфигурации узла (HMAC-секрет, токен, пароль), также маскируются везде, где конфигурация читается повторно, — редактор, API, инструменты MCP, читаемые ИИ, предложения.
2. Обязательный аудит межтенантного доступа
Некоторым ролям (как правило, учётным записям операторов платформы на стороне поставщика) может потребоваться доступ к контенту другой организации в целях поддержки. Такой доступ:
- Обусловлен согласием (opt-in) целевой организации — отзываемым в любой момент из панели администратора.
- Регистрируется при каждом обращении — выделенная таблица аудита с областью действия по целевой организации, доступная клиентам через маршрут
GET /api/admin/me/*-reads. - Отклоняется в случае сбоя записи аудита — никакого чтения без следа.
См. Аудит и GDPR.
3. Мотивированный отказ при деструктивных операциях
Любая операция, которая уничтожает или заменяет контент другой организации (REPLACE-IN-PLACE дочерних элементов, DELETE), отклоняется, если целевая организация не активировала согласие на чтение. Обоснование: без видимости оператор предложил бы полезную нагрузку, которая могла бы вслепую перезаписать существующий контент.
4. Суверенность модели LLM
- Нативная поддержка BYOK — ваши ключи OpenAI, Anthropic, Google управляются вашей организацией. Никакой межорганизационной утечки. BYOK необязателен (существуют управляемые модели с оплатой в кредитах), но рекомендуется в регулируемой среде.
- Приватные модели — Ollama, LM Studio или любой endpoint, совместимый с OpenAI (vLLM…), размещённые у вас или в вашем частном облаке. Промпты и ответы никогда не покидают ваш периметр.
- Никакого скрытого общего пула — если организация использует общую модель, это явное решение с контролем доступа.
Инженерная позиция
Наш стандарт — точность: максимальная устойчивость, полная наблюдаемость, детерминизм, защита от галлюцинаций, защита от регрессий, тесты на каждом шагу.
Конкретно, при любом компромиссе на уровне архитектуры / кода / промпта:
| Выбор | Ожидаемый выбор | Почему |
|---|---|---|
| Задержка × 2 против сокращённого рассуждения | × 2 | Потерянная точность возвращается доверием пользователей |
| Детальная наблюдаемость против только основных логов | Детальная | Без видимости отладка слепа |
| Ускорение, ухудшающее поведение | Отказ | Поведенческий риск измеряется инцидентами у клиентов |
Мантра: «Если кто-то находит баг, это значит, что мы поставили недостаточно предохранителей, а не слишком много».