veil

Chiedi la cancellazione della scheda

Una chiave attiva della persona o un proprietario dell’organizzazione firma la richiesta. Ci sono 24 ore per annullarla.

POST/v1/identities/{n}/erase
Accesso
Richiesta firmata
Client
Client locale o server

Parametri#

NomePosizioneSignificato
nObbligatorioPercorsoNumero permanente positivo della scheda.

Corpo JSON#

NomePosizioneSignificato
timeObbligatorioJSONSecondi Unix entro cinque minuti dall’orologio del server. Fa parte anche della dichiarazione di cancellazione.
signatureObbligatorioJSONLa firma della dichiarazione di cancellazione con la stessa chiave di X-Public-Key.
closingJSONFormato 2, e lì obbligatorio: la voce di chiusura {text, signature} firmata con la stessa chiave. text è la voce canonica senza la firma, con key, kind closed, latest (l’hash dell’intestazione corrente della scheda), signer, time, token e v. signature copre veil-rubrica:close-entry:v2 e un a capo seguiti da text.

Questa chiamata richiede anche le intestazioni comuni di firma, nonce e timestamp. Prepara e firma request.json prima di usare l’esempio. Firma delle richieste

Esempi di richiesta#

cURL
curl -fsS -X POST \
  -H "X-Public-Key: $PUBLIC_KEY" \
  -H "X-Signature: $REQUEST_SIGNATURE" --json @request.json \
  "https://veil.rip/v1/identities/1/erase"
text
veil-rubrica:erase:v1
<CARD_TOKEN>
<TIME_UNIX_SECONDS>
text
veil-rubrica:close-entry:v2
{"key":"<PUBLIC_KEY>","kind":"closed","latest":"<CURRENT_LABEL_HASH>","signer":{"identity":"<SIGNER_TOKEN>","n":<SIGNER_VERSION>},"time":<TIME_UNIX_SECONDS>,"token":"<CARD_TOKEN>","v":2}

Risposta#

HTTP 202application/json

202 con n, requestedAt, executesAt e key. Dopo il periodo di annullamento la cancellazione elimina le aperture dei record e lascia gli impegni nel registro pubblico.

CampoTipoSignificato
nintegerScheda di cui è prevista la cancellazione.
requestedAtstringData e ora della richiesta.
executesAtstringData e ora prevista di esecuzione dopo il periodo di attesa.
keystringChiave pubblica che ha firmato la richiesta di cancellazione.

Intestazioni della risposta#

IntestazioneValoreSignificato
Content-Typeapplication/jsonUsa il tipo dichiarato per scegliere come leggere il corpo.
DateHTTP dateOra del server. Confrontala con il tuo orologio per firmare le richieste.
Retry-Afterinteger seconds, on rate_limited or busyAttendi almeno questo intervallo prima di riprovare. Altri codici 429/503 non lo includono necessariamente.

Note d’uso#

  • Su un registro in formato 2 il signer della chiusura è la scheda stessa per una persona, e la scheda del proprietario che la chiede per un’organizzazione. Il server scrive la chiusura nel registro quando la cancellazione si esegue, e la scheda chiusa risponde poi 410 con closed.

Errori#

Gli errori API restituiscono un oggetto error. Usa error.code nella logica del programma; error.message è un testo inglese per le persone e può cambiare. Guida a risposte ed errori

HTTPCodiceSignificato e cosa fare
400invalid_json

Il corpo non è un oggetto JSON, contiene chiavi duplicate o dati finali.

Invia un solo oggetto JSON valido con Content-Type application/json.

400invalid_parameter

Un campo del percorso, della query o del corpo manca, è malformato o fuori intervallo.

Correggi il campo indicato in error.message prima di inviare di nuovo.

403key_mismatch

La chiave di firma non è autorizzata per questa scheda o operazione.

Usa una chiave di dispositivo attiva con il ruolo di titolare o membro richiesto.

404not_found

La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati.

Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati.

409erase_already_requested

Una cancellazione è già in attesa.

Leggi sulla scheda la data e ora di esecuzione prevista.

409signer_stale

Su un registro in formato 2 signer.n di una voce firmata è indietro rispetto alla versione corrente della scheda che firma.

Rileggi la scheda che firma e firma di nuovo la voce con la sua versione corrente in signer.n.

409version_conflict

Su un registro in formato 2 una versione di questa scheda è ancora in viaggio verso il registro. La chiusura deve nominare la versione corrente della scheda.

Aspetta che la versione sia nel registro, rileggi la scheda e firma una nuova chiusura.

410erased

La scheda esisteva ed è stata cancellata o rimossa. La risposta contiene anche la ricevuta pubblica di cancellazione.

Smetti di usare questa scheda come autorità corrente. Conserva soltanto la ricevuta pubblica se serve.

413payload_too_large

Il corpo della richiesta supera il limite in byte dell’endpoint.

Riduci il corpo codificato. La gestione delle chiavi API ammette al massimo 8 KiB.

422bad_entry

Su un registro in formato 2 salt, entry o closing di una richiesta non vanno bene. error.message nomina il campo.

Correggi il campo indicato, firma di nuovo la voce con la chiave della richiesta e manda una nuova richiesta firmata.

422closing_required

Su un registro in formato 2 una cancellazione è arrivata senza la sua voce di chiusura firmata in closing.

Firma la voce di chiusura con la stessa chiave e mandala come closing, con text e signature.

422invalid_statement_signature

La firma della dichiarazione di cancellazione non è valida.

Firma i byte esatti della dichiarazione con prefisso e chiave richiesti.

422last_owner

La modifica lascerebbe un’organizzazione senza un proprietario accettato.

Aggiungi o accetta un altro proprietario prima di rimuovere l’ultimo.

422staff_org_target

Questa operazione non può riguardare l’organizzazione dello staff di Veil.

Scegli un destinatario idoneo.

Errori comuni delle richieste
HTTPCodiceSignificato e cosa fare
400invalid_nonce

Il nonce della richiesta firmata ha un formato errato.

Genera un nuovo nonce da 16 a 128 caratteri usando lettere, cifre, _ o -.

400invalid_signature_alg

X-Signature-Alg non è supportato.

Usa un algoritmo di firma supportato e la codifica corretta per chiave e firma.

400invalid_timestamp

Il timestamp della richiesta firmata non è espresso in millisecondi Unix.

Usa un timestamp Unix intero in millisecondi e firma la richiesta corretta.

401invalid_signature

La firma della richiesta HTTP non è valida.

Firma metodo, percorso e byte del corpo esatti, senza modificarli dopo.

401missing_signature

La richiesta richiede una firma del dispositivo e le intestazioni mancano o non sono leggibili.

Invia X-Public-Key, X-Signature e i metadati della richiesta firmata. Una chiave API non sostituisce la firma del dispositivo.

401stale_timestamp

Il timestamp firmato è fuori dalla finestra temporale ammessa.

Confronta l’intestazione Date del server con il tuo orologio, poi genera nuovi nonce, timestamp e firma.

403key_banned

La chiave del dispositivo che firma è sospesa dallo staff di Veil.

Usa una chiave attiva autorizzata o chiedi allo staff di riesaminare la restrizione.

409replayed_nonce

La chiave di firma ha già usato questo nonce.

Controlla se la richiesta precedente è riuscita prima di crearne una nuova firmata.

429rate_limited

È stato superato un limite anonimo, delle richieste firmate o della chiave API.

Attendi almeno i secondi indicati da Retry-After. Condividi coda e budget dei tentativi tra i tuoi processi.

500internal_error

Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti.

Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata.

503busy

L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.

Attendi i secondi indicati da Retry-After e riprova con attese crescenti e un limite.