Confirmar uma ação destrutiva
Trate 412 confirmation_required: emita um token de confirmação e repita a chamada com X-Trustvice-Confirmation.
A tarefa
Seu chamador precisa de uma ação cuja confirmationPolicy é "always", o que inclui toda ação destructive e billing_impacting. A Trustvice não as executa até que a requisição traga um token de confirmação recente: uma pessoa, ou uma concessão de autonomia explícita, precisa ter dito sim, há pouco, para esta ação.
Antes de começar
- Credencial
- Também precisa
- Um token de acesso OAuth, como na primeira receita
curl
O código lê os segredos de variáveis de ambiente. Guarde-os no shell ou no cofre de segredos, nunca num arquivo que vai para commit. As chamadas de ação também enviam X-Workspace-Id.
Passos
Chame a ação
Chame a ação protegida como sempre. Sem token, ela responde
412com o códigoconfirmation_required. As docs usamprivacy.dsr.submitcomo exemplo.curl -sS -X POST https://api.trustvice.com/api/v1/actions/privacy.dsr.submit \ -H "Authorization: Bearer $TRUSTVICE_TOKEN" \ -H "X-Workspace-Id: ws_…" \ -H "Content-Type: application/json" \ -d '{ … }'{ "ok": false, "error": { "code": "confirmation_required", "message": "This action requires an explicit confirmation." } }Emita um token de confirmação
Peça a
POST /api/v1/confirmations/mintum token para esse id de ação. O token fica ligado ao ator que chama e à audiência da ação, dura segundos e é consumido no primeiro uso.curlcurl -sS -X POST https://api.trustvice.com/api/v1/confirmations/mint \ -H "Authorization: Bearer $TRUSTVICE_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "actionId": "privacy.dsr.submit" }'Repita a ação
Envie a mesma chamada de novo com o
jtido token emX-Trustvice-Confirmation. Agora a ação roda e retorna o resultado real.curlcurl -sS -X POST https://api.trustvice.com/api/v1/actions/privacy.dsr.submit \ -H "Authorization: Bearer $TRUSTVICE_TOKEN" \ -H "X-Workspace-Id: ws_…" \ -H "X-Trustvice-Confirmation: cnf_…" \ -H "Content-Type: application/json" \ -d '{ … }'Deixe um agente agir com limites
Um agente que precisa chamar ações protegidas sem um clique humano a cada chamada tem uma concessão de autonomia: com prazo, com teto de segurança e registrada no workspace. Concedê-la exige um token de confirmação humano para a audiência
agents.autonomy.grant. Enquanto houver uma concessão ativa que cubra a ação, mint retorna tokensautonomous: truepara as ações no seu escopo.HTTPPOST /api/v1/autonomy/grant { "maxSafetyLevel": …, "ttlSeconds": … } POST /api/v1/autonomy/revoke GET /api/v1/autonomy/status
Copiado de: /docs/confirmations
O que é devolvido
A chamada a mint retorna o token em jti, a ação a que ele está ligado em audience e quando expira.
{ "ok": true,
"jti": "cnf_…",
"audience": "privacy.dsr.submit",
"autonomous": false,
"expiresAt": "2026-09-14T13:20:37.675Z" }Em que você pode confiar
Você pode confiar em
- Um token de confirmação não pode ser reutilizado nem usado para outra ação.
- Uma ação protegida nunca roda em silêncio: cada chamada precisa de um token novo ou de uma concessão de autonomia que a cubra.
- A autonomia nunca pode ser criada de forma autônoma.
Não presuma
- Que uma segunda chamada confirmada seja inofensiva: ações não seguras não são idempotentes, então uma segunda chamada é um segundo efeito.
- Que um token continue valendo: ele dura segundos.
Cada afirmação acima vem das docs da Trustvice linkadas nesta página. Onde uma página das docs diz mais, ela é a referência.
A seguir
Receitas ligadas
Chamar uma ação da Agentic API
Emita um token de acesso OAuth, encontre uma ação no catálogo público e chame-a em POST /api/v1/actions/<id>.
Conectar um cliente MCP
Adicione o servidor MCP da Trustvice em https://mcp.trustvice.com/mcp ao Claude Code, Cursor ou VS Code.
Verificar um recibo no navegador
Cole um recibo assinado da Trustvice em /verify e confira a assinatura Ed25519 no seu próprio navegador.
Receitas por e-mail
Um e-mail curto quando somamos receitas. Nenhum outro e-mail, e você cancela por qualquer mensagem.
Comece pela Agentic API.
Um endpoint POST por ação registrada, com o mesmo comportamento via REST e MCP. As docs listam cada ação com sua entrada e permissões.
