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

60 lines
2.9 KiB
Markdown

# Plugins
O Pumpkin fornece um runtime de plugins em WebAssembly (WASM) com segurança baseada em recursos (capabilities). O comportamento dos plugins, verificação de assinaturas e permissões são configurados em `[plugins]` no `pumpkin.toml`.
## Configuração
:::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
# Sobrescritas opcionais por plugin
[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"
```
:::
### Configurações Globais de Plugins
- **`enabled`**: Chave mestre para habilitar ou desabilitar o runtime de plugins (padrão: `true`).
- **`hot_reload`**: Monitora o diretório `plugins/` e recarrega automaticamente plugins modificados em tempo de execução (padrão: `false`).
- **`ask_permission_confirmation`**: Pergunta no console do servidor quando um plugin solicitar recursos/permissões não aprovadas (padrão: `true`).
- **`allow_unsigned`**: Permite carregar plugins WASM não assinados (padrão: `true`).
- **`allowed_permissions`**: Lista de permissões pré-aprovadas globalmente para todos os plugins, ignorando solicitações interativas no console (padrão: `[]`).
- **`blocked_permissions`**: Lista de permissões negadas globalmente para todos os plugins (padrão: `[]`).
- **`inherit_env`**: Se as variáveis de ambiente do host são herdadas nas sandboxes WASI dos plugins por padrão (padrão: `false`).
- **`loopback_only`**: Se as conexões de rede de saída dos plugins são restritas a `127.0.0.1` / localhost (padrão: `false`).
- **`max_memory_mb`**: (Opcional) Limite global máximo de memória em megabytes (MB) por instância de plugin.
- **`verify_signatures`**: Se o Pumpkin verifica assinaturas criptográficas em plugins WASM antes de carregá-los (padrão: `true`).
### Sobrescritas por Plugin
Ajuste permissões e variáveis de ambiente para plugins específicos sob `[plugins.overrides.<plugin_name>]`:
- **`enabled`**: Habilita ou desabilita este plugin específico (padrão: `true`).
- **`allow_unsigned`**: Sobrescreve se este plugin específico pode executar sem assinatura (`true`/`false`).
- **`max_memory_mb`**: Limite máximo de memória em MB alocado especificamente para este plugin.
- **`allowed_permissions`**: Permissões pré-aprovadas para este plugin.
- **`blocked_permissions`**: Permissões explicitamente bloqueadas para este plugin.
- **`loopback_only`**: Sobrescreve a restrição de rede de loopback para este plugin.
- **`environment`**: Tabela de variáveis de ambiente personalizadas repassadas diretamente para o ambiente WASI do plugin.