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

Модель безопасности

Плагин никогда не получает прямой доступ к файлам, базе, секретам или сети. Всё проходит через шлюз, который проверяет цепочку условий на каждый вызов.

Gateway
installed → enabled → compatible → capability granted →
→ scope → side-effect → domain adapter

Любая неоднозначность на любом шаге означает запрет — система работает fail-closed. Заявленное в манифесте разрешение не равно выданному гранту: пользователь подтверждает права при установке, и они проверяются заново при каждом вызове.

  • Третьесторонний код исполняется в отдельном процессе (движок QuickJS-NG), которым управляет бэкенд Yttri: по одному процессу на активный плагин. В песочнице нет fetch, WebSocket, DOM, Node- и Tauri-API — не «не рекомендуются», а физически отсутствуют. Единственный выход наружу — типизированный YttriHost, а он идёт через шлюз.
  • Падение или зависание плагина не роняет Yttri и не задевает соседние плагины: процесс убивается, вызов завершается ошибкой, повторов нет.
  • Сеть доступна только к хостам из манифеста (allowlist), тело ответа ограничено по размеру.
  • Секреты изолированы пространством плагина и шифруются; чужие секреты недоступны.
  • Логи плагина очищаются от чувствительных данных.

Изменяющие инструменты плагина в руках AI-агента по умолчанию требуют подтверждения пользователя на каждый вызов. Режим Выполнять без подтверждения — осознанный выбор для доверенного плагина и отдельный переключатель в его настройках.