Skip to content

插件

Pumpkin 提供了基于权能量化安全模型的 WebAssembly (WASM) 插件运行时。插件行为、签名验证及权限均在 pumpkin.toml 中的 [plugins] 下进行配置。

配置

toml
[plugins]
enabled = true
hot_reload = false
ask_permission_confirmation = true
allow_unsigned = true
allowed_permissions = []
blocked_permissions = []
inherit_env = false
loopback_only = false
verify_signatures = true

# Optional per-plugin overrides
[plugins.overrides.my_plugin]
enabled = true
allow_unsigned = true
max_memory_mb = 128
allowed_permissions = ["fs:read:data"]
blocked_permissions = ["network:outbound"]
loopback_only = true

[plugins.overrides.my_plugin.environment]
API_KEY = "example_secret"

全局插件设置

  • enabled:启用或禁用插件运行时的总开关(默认:true)。
  • hot_reload:监视 plugins/ 目录并在运行时自动重新加载修改后的插件(默认:false)。
  • ask_permission_confirmation:当插件请求未经批准的功能/权限时,在服务器控制台中提示确认(默认:true)。
  • allow_unsigned:是否允许加载未签名的 WASM 插件(默认:true)。
  • allowed_permissions:为所有插件全局预先批准的权限列表,绕过控制台交互式提示(默认:[])。
  • blocked_permissions:对所有插件全局拒绝的权限列表(默认:[])。
  • inherit_env:宿主环境变量默认是否继承到插件的 WASI 沙箱中(默认:false)。
  • loopback_only:插件的出站网络连接是否限制为仅允许 127.0.0.1 / 本地回环(localhost)(默认:false)。
  • max_memory_mb:(可选)每个插件实例的全局最大内存限制,单位为兆字节(MB)。
  • verify_signatures:Pumpkin 在加载 WASM 插件前是否验证其加密签名(默认:true)。

单个插件覆盖设置

[plugins.overrides.<plugin_name>] 下针对特定插件微调权限与环境变量:

  • enabled:启用或禁用该特定插件(默认:true)。
  • allow_unsigned:覆盖该特定插件是否可以无签名运行(true/false)。
  • max_memory_mb:专为此插件分配的最大内存限制(单位:MB)。
  • allowed_permissions:为此插件预先批准的权限。
  • blocked_permissions:为此插件显式阻止的权限。
  • loopback_only:覆盖此插件的本地回环网络限制。
  • environment:直接传递到插件 WASI 环境中的自定义环境变量表。

基于 MIT 许可发布。