Pumpkin-Docs/docs/zh_cn/config/plugins.md
Alexander Medvedev 5c23b676ed feat: d binding
2026-09-17 09:23:24 +02:00

60 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 插件
Pumpkin 提供了基于权能量化安全模型的 WebAssembly (WASM) 插件运行时。插件行为、签名验证及权限均在 `pumpkin.toml` 中的 `[plugins]` 下进行配置。
## 配置
:::code-group
```toml [pumpkin.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 环境中的自定义环境变量表。