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 -)