Две плоскости из единой кодовой базы, физическая изоляция заказчиков и встроенная защита данных.
Карта компонентов
Платформенный слой в Kubernetes, персональный агент на рабочей станции и слой хранения данных, который заказчик подключает самостоятельно.
Движок пайплайнов, серверная панель управления, прокси к языковым моделям, MCP-сервисы, поиск по базе знаний и наполнение индексов, разбор документов, исполнение Python-шагов, рендер, распознавание речи.
Автономный desktop-клиент Ailock.app: локальная работа, файлы, инструменты на машине пользователя.
PostgreSQL, Redis, Kafka, OpenSearch, MinIO, Keycloak — отдельно от чарта. Собственный OpenSearch подключается минимальной настройкой окружения.
Две плоскости
Это не два продукта и не две кодовые базы. Где запускать — решает деплой.
| Серверная платформа | Персональный агент | |
|---|---|---|
| Окружение | Kubernetes, изоляция по заказчикам | рабочая станция, офлайн |
| Память / конфиг | PostgreSQL | локальная SQLite |
| Инструменты | по сети в кластере | локально на машине |
| Авторизация | Keycloak, разные способы авторизации | локальный токен |
Безопасность
Идентификатор организации берётся из подписанного токена и входит в имена индексов и таблиц; разграничение доступа к данным на уровне записей в PostgreSQL. Языковая модель никогда не получает идентификатор как аргумент — не обратится к чужим данным ни по ошибке, ни через подсказку.
Python-шаги исполняются в изолированном процессе (ограничения по ресурсам, без сети, без чужих учётных данных). Секреты в репозитории зашифрованы, ключ хранится вне его. Авторизация через Keycloak, с поддержкой разных способов авторизации.