Sostituire le connessioni di un'applicazione

PUT /v1/applications/{application_id}/connections · permessi applications:write e connections:write

Sostituisce in un solo passaggio l'intera lista delle connessioni abilitate sull'applicazione. L'ordine di connection_ids è l'ordine dei pulsanti nella pagina di accesso ospitata; una lista vuota disabilita tutte le connessioni. Ogni connessione deve esistere nello stesso ambiente: una connessione di un altro ambiente viene trattata come una che non esiste (422 su /connection_ids) e non viene scritto nulla. Inviare la lista che l'applicazione ha già non cambia nulla e mantiene la versione. La modifica viene scritta nel log di audit di gestione come application.updated e pubblicata come evento application_changed; la rimozione di una connessione ha effetto al successivo accesso.

Richiesta

Intestazioni: If-Match: "<version>" (facoltativa). Con If-Match la lista viene scritta solo se l'applicazione è ancora a quella versione (altrimenti 412); senza, la lista viene scritta qualunque sia la versione. Invii un'intestazione Idempotency-Key per rendere sicuri i tentativi ripetuti.

Parametro In Obbligatorio Descrizione
application_id path sì ID dell'applicazione, con prefisso app_.

Corpo

Campo Tipo Obbligatorio Descrizione
connection_ids array di stringhe sì ID delle connessioni (conn_…), univoci, al massimo 100, nell'ordine dei pulsanti.

Risposta

200 OK con l'applicazione e il nuovo ETag.

Errori

Ogni errore è un corpo application/problem+json con un code stabile.

HTTP code Quando
400 malformed_request, unknown_field Il corpo non è JSON valido o contiene un campo sconosciuto.
401 unauthenticated La chiave API manca, non è valida o è stata revocata.
403 insufficient_permissions La chiave non ha applications:write o connections:write.
404 not_found L'applicazione non esiste in questo ambiente (o l'ID è malformato).
412 precondition_failed La versione in If-Match non è più aggiornata.
422 validation_failed connection_ids manca, ha più di 100 elementi, un ID malformato o ripetuto, oppure una connessione che non è in questo ambiente.
429 rate_limited È stato superato il limite di richieste; rispetti Retry-After.
503 service_unavailable Una dipendenza è temporaneamente non disponibile; riprovi più tardi.

Esempio

curl -X PUT https://api.eu.keenauth.com/v1/applications/app_6f8d0cjgbmf0gtn2rg6pscp3cg/connections \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"connection_ids":["conn_01h455vb4pex5vsknk084sn02q"]}'

CLI: keenauth applications put-connections app_6f8d0cjgbmf0gtn2rg6pscp3cg --connection-ids conn_01h455vb4pex5vsknk084sn02q (per disabilitare tutte le connessioni, invii {"connection_ids":[]} con --data -)