SAP Enforcer
Impõe autorização SAP/1.0 em todas as chamadas de ferramentas MCP. Sem manifesto SAFE = sem execução.
Como Funciona
Antes de despachar qualquer chamada de ferramenta MCP, execute:
sap-gate verify <app_id>
Onde app_id é o identificador do aplicativo chamador. Se o retorno for diferente de zero, negue a chamada da ferramenta.
Em Caso de Autorização
Prossiga normalmente com a chamada da ferramenta. A concessão é registrada automaticamente em ~/.sap/log/grants.jsonl.
Em Caso de Negação de Autorização
- NÃO execute a chamada da ferramenta
- Apresente a falha ao usuário:
"Chamada de ferramenta negada:
<app_id>não está autorizado. Verifique se sua pasta SAFE existe e se o manifesto está assinado." - A negação é registrada automaticamente em
~/.sap/log/gaps.jsonl - Não tente novamente sem instrução explícita do usuário
Registrando um Novo Aplicativo
Para autorizar um novo app_id:
# 1. Crie a pasta SAFE e o modelo de manifesto
sap-gate init <app_id>
# 2. Edite o manifesto em ~/.sap/Applications/<app_id>/safe-app-manifest.json
# 3. Assine-o com sua chave GPG
gpg --detach-sign --armor ~/.sap/Applications/<app_id>/safe-app-manifest.json
mv ~/.sap/Applications/<app_id>/safe-app-manifest.json.asc \
~/.sap/Applications/<app_id>/safe-app-manifest.json.sig
# 4. Verifique
sap-gate verify <app_id>
Revogando Autorização
Exclua a pasta SAFE ou o arquivo .sig:
# Revogar removendo a assinatura (preserva o manifesto para re-autorização)
rm ~/.sap/Applications/<app_id>/safe-app-manifest.json.sig
# Revogar completamente
rm -rf ~/.sap/Applications/<app_id>/
Pré-requisitos
openclaw-sap-gateinstalado:pip install openclaw-sap-gate- Chave GPG configurada:
gpg --list-keys - Variável de ambiente
SAP_SAFE_ROOTdefinida (padrão:~/.sap/Applications)
Referência do Protocolo
SAP/1.0 RFC: https://github.com/rudi193-cmd/sap-rfc