Модель безопасности
Плагин никогда не получает прямой доступ к файлам, базе, секретам или сети. Всё проходит через шлюз, который проверяет цепочку условий на каждый вызов.
Цепочка проверок
Заголовок раздела «Цепочка проверок»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-агента по умолчанию требуют подтверждения пользователя на каждый вызов. Режим Выполнять без подтверждения — осознанный выбор для доверенного плагина и отдельный переключатель в его настройках.