Перейти к содержимому

Машинный перевод. Авторитетным источником является английская версия; проверка носителем языка ещё не выполнена.

Справочник

Конфигурация

Реальная поверхность конфигурации плоскости управления Olivares AI — бэкенд хранилища, TLS, источники, ключ подписи аудита и мультитенантность.

Обновлено:

Плоскость управления — один Go бинарный файл, olivares, настраиваемый небольшим набором флагов подкоманды serve и несколькими переменными окружения — не разрастающимся файлом конфигурации. Значения по умолчанию выбраны для отказа в закрытом режиме: петлевые привязки, TLS включён, без поставляемых учётных данных. Всё ниже взято из собственных определений команд и корня композиции бинарного файла; где настройку невозможно подтвердить в исходниках, она здесь не указана.

Секреты, которые подключают реальные источники и хранят реальные ключи, находятся в файлах оператора или смонтированных секретах, на которые ссылаются переменные окружения — никогда в хранилище. Для запускаемого сквозного пути см. руководство по самостоятельному размещению; для полного списка флагов см. справочник CLI.

Подкоманда serve

olivares serve запускает HTTP-сервер REST/web и gRPC-сервер в одном процессе, с веб-консолью, обслуживаемой с того же origin, что и API. Вот общие входные параметры конфигурации.

ФлагПо умолчаниюНазначение
--listen127.0.0.1:8443HTTP адрес прослушивания (REST API + встроенная веб-консоль).
--grpc-listen127.0.0.1:8444gRPC адрес прослушивания (плоскость управления / приём сборщика).
--data-dir$OLIVARES_DATA_DIR или ./olivares-dataКлюч подписи аудита, материал TLS, и — для SQLite — файл хранилища.
--enginesqliteДвижок хранилища: sqlite или postgres.
--dsnпусто (файл SQLite в каталоге данных)Строка подключения к хранилищу.
--checkpoint-interval1hКак часто записывается подписанная контрольная точка аудита по каждой цепочке тенанта. 0 отключает.
--insecureвыклОбслуживание HTTP/gRPC в открытом тексте. Только для локальной разработки.
--seed-demoвыклЗагрузка синтетического примера окружения. Отказывается запускаться на непетлевом адресе.

TLS включён по умолчанию. Без предоставленных --tls-cert/--tls-key движок создаёт самоподписанный сертификат в каталоге данных один раз, заранее, до того как любой слушатель начнёт принимать соединения — поэтому и HTTP, и gRPC-серверы используют один и тот же сертификат и ни один не откатывается к открытому тексту. При генерации сертификата он логирует SHA-256 отпечаток, чтобы клиенты могли доверять или привязать его.

--insecure — единственный способ обслуживать в открытом тексте, и gRPC-путь завершается отказом: вне --insecure сервер отказывается создавать слушатель открытого текста, а не деградирует молча. Используйте только с 127.0.0.1 во время локальной разработки.

--seed-demo создаёт демо-администратора с публичным паролем из дерева исходников и выдуманными данными окружения — только для демо и E2E. Движок отказывается запускать, если какой-либо слушатель непетлевой. Используйте одноразовый каталог данных.

Второй уровень флагов управляет распределёнными и взаимно-TLS топологиями — --admin-dsn и --allow-privileged-db-role (Postgres), --grpc-client-ca (взаимный TLS сборщика), и --region/--known-regions (резидентность данных). Они описаны ниже и полностью перечислены в справочнике CLI.

Переменные окружения

Движок читает небольшое количество переменных окружения при запуске. Перечисленные ниже подтверждены в корне композиции и проводке.

Каталог данных и источники

ПеременнаяЭффект
OLIVARES_DATA_DIRКаталог данных по умолчанию, когда --data-dir не задан (откат на ./olivares-data). Содержит ключ подписи аудита, материал TLS и файл хранилища SQLite. Сохраняйте между перезапусками.
OLIVARES_SOURCES_CONFIGПуть к JSON-файлу, который подключает реальные источники наблюдения, провайдеры реестра идентичностей и источники документов знаний перед запуском движка.

OLIVARES_SOURCES_CONFIG — единственный вход, через который разрешаются недемо-источники сигналов и провайдеры реестра. Это конфигурация оператора с секретами, намеренно вынесенная из хранилища. Движок читает её при запуске и регистрирует каждый источник до старта среды выполнения.

Обработка честная, а не аварийная. Отсутствующая переменная, нечитаемый или невалидный JSON-файл, или настроенный, но пустой список источников — всё предупреждает и выдаёт пустую конфигурацию — движок никогда не прерывает запуск. Ненастроенный источник генерирует предупреждение вместо краха плоскости или притворства, что работает: без ничего подключённого карта доступа просто остаётся пустой. Чтобы заполнить её, настройте хотя бы один источник — см. подключение источника и, для кооперативного пути Claude Code, подключение Claude Code.

Точка принятия решений авторизации

Нативный контроль доступа на основе атрибутов и ролей всегда управляет. Внешняя точка принятия решений (PDP), при выборе, является дополнительным слоем только-ограничения, который может только сузить решение, уже принятое встроенным RBAC — никогда расширить.

ПеременнаяЭффект
OLIVARES_PDP_ENGINEВыбирает внешний PDP: cedar, opa или none (пусто/none = только нативный ABAC).
OLIVARES_PDP_CEDAR_FILEДвижок Cedar: путь к файлу политики оператора.
OLIVARES_PDP_OPA_URL / _OPA_PATH / _OPA_TOKENДвижок OPA: базовый URL, путь решения и bearer-токен для эндпоинта Open Policy Agent.

Два адаптера стоят за одним интерфейсом — встроенный вычислитель Cedar (путь на чистом Go) и адаптер OPA по HTTP. Если OLIVARES_PDP_ENGINE выбирает движок, но его конфигурация невалидна (нечитаемый файл Cedar, некорректная цель OPA), движок отключает только внешний PDP, сохраняет нативный движок ABAC и RBAC работающими и логирует громко. Сломанный файл политики никогда не оставляет запросы без управления и не вызывает крах плоскости. Для модели запрета по умолчанию см. управление.

Ключ подписи аудита

Аудиторский журнал работает только для добавления, с хеш-цепочкой и якорем на подписанных Ed25519 контрольных точках. Ключ подписи для каждого события разрешается при запуске, с отказом в закрытом режиме для каждого хранимого источника.

ПеременнаяЭффект
OLIVARES_AUDIT_SIGNING_KEYКлюч подписи, предоставленный клиентом, base64, inline.
OLIVARES_AUDIT_SIGNING_KEY_FILEПуть к смонтированному секрету, содержащему ключ (предпочтительно — значение никогда не попадает в окружение процесса).
OLIVARES_KEY_CUSTODYОбъявленная позиция хранения (byok или cmek). Запуск, чьё фактическое хранение ключей не совпадает с объявленным, отклоняется.

Без установки любой из них ключ генерируется при первом запуске в каталоге данных — честный откат для одного узла / разработки. Общий ключ между репликами (через env-значение или смонтированный секрет) требуется для высокой доступности: иначе каждый узел генерирует свой собственный и журнал ответвляется при отказоустойчивом переключении. Подписание для каждого события всегда остаётся на узле. Хранение с обёрткой KMS (ключ, управляемый клиентом) — это дополнительная позиция, настраиваемая через OLIVARES_KEY_WRAP; см. справочник CLI.

Выбор хранилища

Движок выбирает хранилище из --engine.

ДвижокКогда использоватьПримечания
sqlite (по умолчанию)Единый бинарный файл, один узел, установки в изолированной сети.Встроенное хранилище на чистом Go, ноль внешних зависимостей. Без --dsn файл хранилища находится в каталоге данных.
postgresМультитенантные и масштабируемые развёртывания.Добавляет изоляцию тенантов через безопасность на уровне строк. Требует роль приложения с минимальными привилегиями.

SQLite — по умолчанию и не требует внешних сервисов — это готовое к изоляции от сети, без зависимостей хранилище для топологии с одним узлом, и то, на котором работает развёртывание Docker Compose одной командой. Переходите на Postgres, когда нужна мультитенантная изоляция или горизонтальное масштабирование, не раньше.

Выбор postgres включает бэкстоп безопасности на уровне строк, изолирующий тенантов. Движок отказывается запускаться с суперпользователем Postgres или ролью BYPASSRLS — что отключило бы этот бэкстоп — если --allow-privileged-db-role явно не переопределяет защиту (только для однотенантных / одноразовых окружений). Для полных кросс-тенантных системных чтений (список организаций, покрытие мультитенантных контрольных точек) предоставьте выделенную роль NOSUPERUSER BYPASSRLS admin через --admin-dsn; без неё эти чтения выполняются с ограничением RLS и могут возвращать пустые результаты. OLIVARES_DB_MAX_CONNS ограничивает пул приложений на узел.

Мультитенантность и резидентность

Один экземпляр является мультитенантным по конструкции на Postgres, с безопасностью на уровне строк, изолирующей данные каждого тенанта. Резидентность данных наложена сверху через --region.

  • Один регион (по умолчанию, без --region): нет принудительной резидентности.
  • Привязка к региону (--region eu, --region us, …): экземпляр обслуживает только тенантов, привязанных к своему домашнему региону, и отклоняет кросс-региональный доступ в закрытом режиме. --known-regions перечисляет коды регионов, валидные для всего развёртывания; привязка тенанта должна быть одним из них, и некорректная конфигурация региона завершает запуск до открытия хранилища.

Контрольные точки аудита

--checkpoint-interval управляет тем, как часто подписанная контрольная точка записывается по каждой цепочке тенанта (по умолчанию 1h; 0 отключает). Финальная контрольная точка записывается при чистом завершении работы перед закрытием хранилища, поэтому цепочка якорится и при завершении, и по интервалу. См. верификация релиза для того, как подписанная цепочка верифицируется далее.

Безопасные значения по умолчанию

Эти позиции действуют без конфигурации помимо serve. Это стандартная позиция продукта, а не опциональное усиление.

ОбластьПо умолчаниюЧто это значит
Учётные данныеНе поставляютсяНет имени пользователя или пароля по умолчанию. При первом запуске без пользователей движок генерирует одноразовый токен настройки и выводит его только в стандартный вывод — никогда в логи.
ТранспортTLS включёнHTTP и gRPC обслуживаются через TLS; самоподписанный сертификат генерируется в каталоге данных, если не предоставлен, и его отпечаток логируется.
Адрес привязкиLoopback--listen и --grpc-listen по умолчанию 127.0.0.1. Доступность вне хоста — намеренное решение оператора.
Открытый текстВыкл--insecure — единственный способ обслуживать в открытом тексте, и gRPC-путь завершается отказом. Только для локальной разработки.
Демо-сидВыкл--seed-demo выключён и отказывает любому непетлевому адресу, потому что генерирует демо-администратора с публичным паролем.
Телеметрия домойВыклДвижок не отправляет данные домой. Исходящие соединения существуют только к источникам, которые вы настроили — что делает изолированную плоскость управления без исходящего трафика возможной.

Петлевые привязки означают, что движок недоступен вне хоста, пока вы не измените их. Когда вы публикуете его — скажем, маппируя порт хоста в Docker Compose — TLS уже включён для защиты; не сочетайте опубликованную привязку с --insecure. На свежей установке движок выводит блок FIRST-BOOT SETUP в стандартный вывод с одноразовым токеном настройки (читайте из логов контейнера в Compose); администратор использует его для создания первого пользователя, затем аутентифицируется.

Для того, что продукт наблюдает, где управляет, и где покрытие многоуровневое, читайте честность и ограничения.

Поиск в документации