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
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órioplugins/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 a127.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.