verstak/internal/core/plugins
mirivlad 4df83cd361 security: стабилизационный аудит Lua plugin system
Исправления:
- Install: идемпотентность (no duplicates in InstalledPlugins)
- ReloadPlugins: StopSchedulers + CallShutdownHooks перед CloseRuntimes
- StopSchedulers: обнуление scheduler=nil после остановки
- Scheduler.Stop: обнуление tasks после wg.Wait
- Lua sandbox: блокировка package.loadlib/seeall/preload/loaders/loaded/path/cpath/config/searchpath
- Lua sandbox: блокировка load (глобальная функция)
- CallPluginFunction: валидация funcName (regex [a-zA-Z_][a-zA-Z0-9_]*, max 3 segments)
- CallPluginFunction: убрана строковая сборка Lua-кодa, вызов через PCall напрямую
- PluginPage.svelte: проверка e.source === iframeEl.contentWindow
- PluginPage.svelte: type checking для msg.source, msg.action

Тесты:
- security_test.go: 18 новых тестов (sandbox, lifecycle, validation)
- Все существующие тесты проходят

Документация:
- docs/plugins-security.md: модель безопасности, sandbox, протокол, lifecycle
2026-06-07 19:19:44 +08:00
..
builtin/templates step 10: plugins system (Lua + templates) + DokuWiki as optional plugin 2026-05-31 11:20:45 +08:00
api.go feat: плагин-система Lua + Calendar reference plugin 2026-06-07 14:59:46 +08:00
api_ext.go feat: плагин-система Lua + Calendar reference plugin 2026-06-07 14:59:46 +08:00
api_node.go feat: плагин-система Lua + Calendar reference plugin 2026-06-07 14:59:46 +08:00
api_utils.go feat: плагин-система Lua + Calendar reference plugin 2026-06-07 14:59:46 +08:00
lua.go step 10: plugins system (Lua + templates) + DokuWiki as optional plugin 2026-05-31 11:20:45 +08:00
manager.go security: стабилизационный аудит Lua plugin system 2026-06-07 19:19:44 +08:00
manager_lifecycle.go feat: plugin install/uninstall lifecycle + UI buttons 2026-06-07 15:28:37 +08:00
manager_test.go fix: only plugins with on_install are managed - skip others entirely 2026-06-07 15:55:04 +08:00
runtime.go security: стабилизационный аудит Lua plugin system 2026-06-07 19:19:44 +08:00
runtime_test.go test: add TestCallPluginFunction + final run - all 13 tests pass 2026-06-07 16:41:47 +08:00
scheduler.go security: стабилизационный аудит Lua plugin system 2026-06-07 19:19:44 +08:00
security_test.go security: стабилизационный аудит Lua plugin system 2026-06-07 19:19:44 +08:00