Aggiornare un permesso

PATCH /v1/permissions/{permission_id} · permesso apis:write

Aggiorna un permesso con un JSON merge patch (RFC 7396, application/merge-patch+json): i campi che invii cambiano, gli altri restano invariati. I permessi non hanno una versione, quindi non c'è If-Match.

Richiesta

Parametro In Descrizione
permission_id path ID del permesso (perm_…).

Body: uno qualsiasi dei campi seguenti (tutti facoltativi, almeno uno).

Campo Tipo Obbligatorio Descrizione
value stringa no Accettato solo se uguale al valore attuale; non cambia mai.
display_name stringa | null no Nome breve mostrato nella schermata di consenso al posto del valore dello scope. Al massimo 128 caratteri.
description stringa | null no Riga di dettaglio mostrata sotto il nome nella schermata di consenso. Al massimo 1024 caratteri.
consent_text_i18n oggetto | null no Tag di lingua → testo della schermata di consenso, per esempio {"en": "Read your orders"}. Al massimo 30 lingue, ogni testo di 1–1024 caratteri, 16 KiB in totale.
sensitivity stringa no normal (predefinito) o sensitive.

display_name, description e consent_text_i18n si azzerano con null; sensitivity non può essere azzerato. consent_text_i18n viene sostituito per intero: le lingue che ometti vengono rimosse, quindi invia tutte le lingue che vuoi conservare.

Testi della schermata di consenso

La schermata di consenso ospitata mostra ogni scope richiesto così: la voce di consent_text_i18n per la lingua della pagina (tag esatto, altrimenti il suo sottotag principale), altrimenti display_name, altrimenti il value dello scope; description viene mostrata come riga di dettaglio. Tutti e tre sono testo semplice. I caratteri di controllo (inclusi interruzioni di riga e tabulazioni), i separatori di riga e di paragrafo e i caratteri di incorporamento, sovrascrittura e isolamento bidirezionali (U+202A-U+202E, U+2066-U+2069) vengono rifiutati con 422. Gli spazi iniziali e finali vengono eliminati, e un testo vuoto dopo l'eliminazione degli spazi viene salvato come null. L'HTML non viene interpretato: la schermata di consenso lo esegue l'escape.

Risposta

200 OK

{
  "id": "perm_01h455vb4pex5vsknk084sn02s",
  "api_id": "api_01h455vb4pex5vsknk084sn02q",
  "value": "read:orders",
  "display_name": "Read orders",
  "description": "See your past orders and their status",
  "consent_text_i18n": {
    "en": "Read your orders",
    "tr": "Siparişlerinizi okuyun"
  },
  "sensitivity": "normal"
}

Errori

HTTP code Quando
400 unknown_field La patch contiene api_id o un campo sconosciuto.
404 not_found Non esiste tale permesso in questo ambiente.
409 conflict Il permesso appartiene all'API di sistema.
415 unsupported_media_type Il content type non è application/merge-patch+json.
422 validation_failed La patch è vuota, un valore non è valido o non è testo semplice, sensitivity è null, oppure value è diverso (immutable).

Esempio

curl -X PATCH https://api.eu.keenauth.com/v1/permissions/perm_01h455vb4pex5vsknk084sn02s \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/merge-patch+json" \
  -d '{"description":"See your past orders and their status","consent_text_i18n":{"en":"Read your orders","tr":"Siparişlerinizi okuyun"}}'