{"revision":"0ed62d2c742f8e20","language":"it","entry":{"id":"card-alerts","kind":"endpoint","group":"cards","title":"Leggi gli avvisi sugli account di una scheda","method":"GET","path":"/v1/identities/{n}/alerts","paths":[],"summary":"Gli avvisi in vigore sugli account della scheda, uno per account, e tutti gli avvisi nel registro, ognuno con quello che serve a un client per controllarlo.","response":"card, inForce (gli avvisi in vigore, dal più recente) e alerts (tutti).","parameters":[{"name":"n","description":"Numero permanente positivo della scheda.","in":"path","required":true}],"sample":"/v1/identities/1/alerts","access":"public","base":"directory","notes":[],"errors":["400 invalid_parameter","400 wrong_format","401 invalid_api_key","403 api_key_scope","403 api_key_suspended","403 developer_suspended","404 not_found","410 erased","429 rate_limited","500 internal_error","503 busy"],"related":["publish-alert","lookup","person-card"],"sections":[{"kind":"code","language":"shell","code":"curl -fsS 'https://veil.rip/v1/identities/1/alerts'"}],"verify":"Controlla ogni elemento prima di mostrarlo come della scheda: dichiarazione canonica, c = SHA-256(salt ‖ statement), la firma della voce su \"veil-rubrica:card-entry:v2\\n\" e la voce senza firma, con una chiave attiva per chi firma alla posizione i (dalle sue versioni di autorità), e l’inclusione in un checkpoint firmato dal registro e controfirmato da un quorum. L’elenco in sé è la parola del server: può tralasciare una voce.","live":false,"responses":[{"status":200,"contentType":"application/json","description":"Gli avvisi della scheda.","fields":[{"name":"card","type":"object","description":"n, type, name, token e url della scheda."},{"name":"inForce","type":"array<object>","description":"Gli avvisi in vigore, uno per account (l’ultimo, se non è regained)."},{"name":"alerts","type":"array<object>","description":"Tutti gli avvisi della scheda nel registro, dal più recente, al più 200."}]}],"responseObjects":[{"id":"card-alert","title":"Avviso","fields":[{"name":"id","type":"integer","description":"La posizione della voce nel registro: l’id permanente della dichiarazione."},{"name":"kind","type":"string","description":"statement oppure alert."},{"name":"n","type":"integer","description":"La scheda che fa la dichiarazione."},{"name":"signer","type":"object","description":"n e token della scheda di persona la cui chiave ha firmato: la scheda stessa, o un proprietario o amministratore di un’organizzazione."},{"name":"statement","type":"string","description":"La dichiarazione come è stata firmata, in JSON canonico. I suoi campi sono ripetuti sotto per mostrarli."},{"name":"salt","type":"string","description":"32 byte in hex: c della voce è SHA-256(salt ‖ statement)."},{"name":"entry","type":"string","description":"La voce del registro con la firma, come il registro la tiene."},{"name":"i","type":"integer","description":"La posizione della voce nel registro (la stessa di id)."},{"name":"publishedAt","type":"string | null","description":"La prima controfirma sul primo checkpoint che contiene la voce."},{"name":"checkpoint","type":"object | null","description":"size e note del checkpoint controfirmato che data la voce. Null quando il registro non si legge."},{"name":"inclusion","type":"array<string> | null","description":"La prova di inclusione RFC 6962 della voce in quel checkpoint, in hex, dal più profondo."},{"name":"platform","type":"string","description":"La piattaforma dell’account."},{"name":"subject","type":"string","description":"L’id stabile dell’account, come lo prende GET /v1/lookup."},{"name":"display","type":"string","description":"Il nome che la scheda mostra per l’account."},{"name":"state","type":"string","description":"stolen, abandoned, moved oppure regained."},{"name":"since","type":"string | null","description":"Per stolen: la data del furto, AAAA-MM-GG."},{"name":"to","type":"object | null","description":"Per moved: handle, e subject quando il nuovo account è collegato alla scheda."},{"name":"logIndex","type":"integer","description":"La posizione della voce nel registro."}]}],"errorFormat":"json","responseHeaders":[{"name":"Content-Type","value":"application/json","description":"Usa il tipo dichiarato per scegliere come leggere il corpo."},{"name":"Date","value":"HTTP date","description":"Ora del server. Confrontala con il tuo orologio per firmare le richieste."},{"name":"Cache-Control","value":"no-cache","description":"Richiedila ogni volta: una dichiarazione o un avviso nuovi si vedono subito."}],"errorDetails":[{"status":400,"code":"invalid_parameter","description":"Un campo del percorso, della query o del corpo manca, è malformato o fuori intervallo.","action":"Correggi il campo indicato in `error.message` prima di inviare di nuovo.","scope":"endpoint"},{"status":400,"code":"wrong_format","description":"La richiesta o la lettura appartiene all’altro formato del registro di questo server: un record v1 su un registro in formato 2, o una lettura del formato 2 su un registro in formato 1.","action":"Leggi `format` in GET /v1/log (assente vuol dire 1) e manda la forma di quel formato.","scope":"endpoint"},{"status":401,"code":"invalid_api_key","description":"La credenziale Bearer è malformata, sconosciuta, scaduta o revocata.","action":"Usa una chiave attiva. Per l’accesso pubblico anonimo, rimuovi del tutto `Authorization`. Credenziali non valide non attivano automaticamente l’accesso anonimo.","scope":"apiKey"},{"status":403,"code":"api_key_scope","description":"La chiave API non ha il permesso read o verify, oppure l’endpoint non accetta chiavi Bearer.","action":"Usa il permesso corretto. Le modifiche alle schede e la gestione delle chiavi richiedono una firma del dispositivo.","scope":"apiKey"},{"status":403,"code":"api_key_suspended","description":"Questa chiave API è sospesa.","action":"Chiedi allo staff di ripristinarla; un’altra chiave non rimuove la sospensione dell’account.","scope":"apiKey"},{"status":403,"code":"developer_suspended","description":"L’account API del titolare è sospeso oppure la scheda titolare non è disponibile.","action":"Controlla l’account titolare e le restrizioni dello staff. Creare un’altra chiave non aggira la sospensione.","scope":"apiKey"},{"status":404,"code":"not_found","description":"La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati.","action":"Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati.","scope":"endpoint"},{"status":410,"code":"erased","description":"La scheda esisteva ed è stata cancellata o rimossa. La risposta contiene anche la ricevuta pubblica di cancellazione.","action":"Smetti di usare questa scheda come autorità corrente. Conserva soltanto la ricevuta pubblica se serve.","scope":"endpoint"},{"status":429,"code":"rate_limited","description":"È stato superato un limite anonimo, delle richieste firmate o della chiave API.","action":"Attendi almeno i secondi indicati da `Retry-After`. Condividi coda e budget dei tentativi tra i tuoi processi.","scope":"common"},{"status":500,"code":"internal_error","description":"Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti.","action":"Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata.","scope":"common"},{"status":503,"code":"busy","description":"L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.","action":"Attendi i secondi indicati da `Retry-After` e riprova con attese crescenti e un limite.","scope":"common"}],"documentationUrl":"https://veil.rip/docs/card-alerts?lang=it","supportsBrowserFetch":true,"browserMode":"fetch"}}