Описание задачи
В рамках реализации Блока E (Sandbox Runtime) необходимо создать ядро сервиса SandboxProcessRunner (lib/core/extensions/sandbox/sandbox_process_runner.dart) для безопасного запуска изолированных процессов сторонних расширений (в первую очередь драйверов БД ExtensionType.databaseDriver).
Список задач
Техническая документация
📄 Подробная архитектура описана в заметке Obsidian: 04 — Расширения/Блок E — Sandbox Runtime.md.
Описание задачи
В рамках реализации Блока E (Sandbox Runtime) необходимо создать ядро сервиса
SandboxProcessRunner(lib/core/extensions/sandbox/sandbox_process_runner.dart) для безопасного запуска изолированных процессов сторонних расширений (в первую очередь драйверов БДExtensionType.databaseDriver).Список задач
bubblewrap(bwrap --unshare-all --share-net --ro-bind / /).sandbox-exec -p SeatbeltProfile.AppContainer(Low Integrity Level) + привязка кJob Objectдля ограничения памяти.scratch directory)/tmp/querya_sandbox/<plugin_id>_<pid>/с правами чтения и записи (квота 100 МБ).kill()иdispose()для гарантированного завершения дочернего процесса и полного автоудаления временной папки при остановке сессии или сбое.sandbox_process_runner_test.dart).Техническая документация
📄 Подробная архитектура описана в заметке Obsidian:
04 — Расширения/Блок E — Sandbox Runtime.md.