Ripristinare una revisione della configurazione

POST /v1/config-revisions/{revision_id}:restore · permessi config:write, config:read e i permessi di lettura dei tipi della revisione

Crea un nuovo piano che annulla l'applicazione che ha salvato la revisione. Non cambia ancora nulla: esamina il piano, poi applicalo con POST /v1/config-plans/{plan_id}:apply. Il ripristino segue lo stesso percorso piano → applicazione di ogni altra modifica, quindi si applicano le stesse regole su obsolescenza, conferma delle eliminazioni, segreti e permessi.

L'obiettivo del piano è la revisione:

Le revisioni non contengono valori segreti. Una connessione creata di nuovo richiede il suo client secret quando il piano viene applicato (requires_secret, un avviso secret_required). Un segreto modificato dall'applicazione originale non viene ripristinato.

Richiesta

Parametro Descrizione
revision_id L'id della revisione, cfgr_…, dall'elenco delle revisioni.

La richiesta non ha corpo. Sono accettati un corpo vuoto, {} o null; ogni campo viene rifiutato. Invia un header Idempotency-Key per rendere sicuri i tentativi ripetuti.

Risposta

201 Created con Location: /v1/config-plans/{plan_id} e Cache-Control: no-store. Il corpo è un piano, nella stessa forma della risposta alla creazione del piano. Il piano è valido per 1 ora e conta nel limite di frequenza e nella quota di piani dell'ambiente. La voce config_plan.created nel log di gestione dell'ambiente registra che il piano proviene da questa revisione.

Errori

HTTP code Quando
400 malformed_request, unknown_field Il corpo non è vuoto, {} o null.
401 unauthenticated La credenziale è mancante, non valida o revocata.
403 insufficient_permissions La credenziale non ha un permesso richiesto dal piano; required_permissions le elenca tutte.
404 not_found La revisione non esiste, appartiene a un altro ambiente o ha più di 90 giorni.
413 config_document_too_large Il documento del piano supererebbe 5.000 risorse o 10 MiB.
422 validation_failed La revisione non può più essere ripristinata; vedi sotto. errors[].pointer punta alla revisione (/revision/<kind>/<key>/...).
429 rate_limited È stato raggiunto il limite di frequenza dei piani o la quota di piani dell'ambiente; riprova dopo il periodo indicato in Retry-After.
503 service_unavailable La capacità di pianificazione è esaurita o una dipendenza non è temporaneamente disponibile; riprova dopo il periodo indicato in Retry-After.
errors[].code Significato
not_restorable /revision_id: la revisione copre un tipo che non esiste più.
invalid Una specifica memorizzata non corrisponde più allo schema di configurazione attuale.
unresolved_reference Una risorsa ripristinata fa riferimento a una key che non esisterà.
key_in_use La key ora appartiene a un'applicazione o a un'API che la configurazione non gestisce.
still_referenced /revision/created: una risorsa creata dall'applicazione è ancora referenziata da una risorsa che resta.

Esempio

curl -X POST "https://api.eu.keenauth.com/v1/config-revisions/cfgr_01m4qpqtywfs7930tb6kqn5rc5:restore" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)"

keenauth config revisions restore cfgr_01m4qpqtywfs7930tb6kqn5rc5
keenauth config apply cfgp_01m4qpqtywfs7930tb6kqn5rc5