Confermare un’azione distruttiva
Gestisci 412 confirmation_required: ottieni un token di conferma e ripeti la chiamata con X-Trustvice-Confirmation.
Il compito
Il tuo chiamante ha bisogno di un’azione con confirmationPolicy "always", cioè ogni azione destructive e billing_impacting. Trustvice non le esegue finché la richiesta non porta un token di conferma recente: una persona, o una concessione di autonomia esplicita, deve aver detto sì, da poco, per questa azione.
Prima di iniziare
- Account
- Un workspace Trustvice
- Credenziale
- Ti serve anche
- Un token di accesso OAuth, come nella prima ricetta
curl
Il codice legge i segreti da variabili d’ambiente. Tienili nella shell o nel gestore di segreti, mai in un file che finisce in un commit. Le chiamate alle azioni inviano anche X-Workspace-Id.
Passi
Chiama l’azione
Chiama l’azione protetta come al solito. Senza token risponde
412con il codiceconfirmation_required. Le docs usanoprivacy.dsr.submitcome esempio.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." } }Ottieni un token di conferma
Chiedi a
POST /api/v1/confirmations/mintun token per quell’id di azione. Il token è legato all’attore chiamante e al pubblico dell’azione, dura pochi secondi e si consuma al primo 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" }'Ripeti l’azione
Invia di nuovo la stessa chiamata con il
jtidel token inX-Trustvice-Confirmation. Ora l’azione viene eseguita e restituisce il suo risultato reale.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 '{ … }'Lascia agire un agente entro dei limiti
Un agente che deve chiamare azioni protette senza un clic umano a ogni chiamata ha una concessione di autonomia: a tempo, con un tetto di sicurezza, registrata nel workspace. Concederla richiede un token di conferma umano per il pubblico
agents.autonomy.grant. Finché una concessione che la copre è attiva, mint restituisce tokenautonomous: trueper le azioni nel suo ambito.HTTPPOST /api/v1/autonomy/grant { "maxSafetyLevel": …, "ttlSeconds": … } POST /api/v1/autonomy/revoke GET /api/v1/autonomy/status
Copiato da: /docs/confirmations
Cosa ritorna
La chiamata a mint restituisce il token in jti, l’azione a cui è legato in audience e la scadenza.
{ "ok": true,
"jti": "cnf_…",
"audience": "privacy.dsr.submit",
"autonomous": false,
"expiresAt": "2026-09-14T13:20:37.675Z" }Su cosa puoi contare
Puoi contare su
- Un token di conferma non si può riutilizzare né usare per un’altra azione.
- Un’azione protetta non parte mai in silenzio: ogni chiamata richiede un token nuovo o una concessione di autonomia che la copra.
- L’autonomia non può mai essere creata in modo autonomo.
Non dare per scontato
- Che una seconda chiamata confermata sia innocua: le azioni non sicure non sono idempotenti, quindi una seconda chiamata è un secondo effetto.
- Che un token resti valido: dura pochi secondi.
Ogni affermazione qui sopra viene dalle docs di Trustvice collegate in questa pagina. Dove una pagina delle docs dice di più, fa testo quella.
Prosegui
Ricette correlate
Chiamare un’azione dell’Agentic API
Ottieni un token di accesso OAuth, trova un’azione nel catalogo pubblico e chiamala su POST /api/v1/actions/<id>.
Collegare un client MCP
Aggiungi il server MCP di Trustvice su https://mcp.trustvice.com/mcp a Claude Code, Cursor o VS Code.
Verificare una ricevuta nel browser
Incolla una ricevuta firmata Trustvice in /verify e controlla la sua firma Ed25519 nel tuo browser.
Nuove ricette via email
Una breve email quando aggiungiamo ricette. Nessun’altra posta, e ti disiscrivi da ogni messaggio.
Inizia dall’Agentic API.
Un endpoint POST per ogni azione registrata, con lo stesso comportamento via REST e MCP. Le docs elencano ogni azione con input e permessi.
