Restaurer une révision de configuration

POST /v1/config-revisions/{revision_id}:restore · permissions config:write, config:read et les permissions de lecture des types de la révision

Crée un nouveau plan qui annule l'application ayant enregistré la révision. Rien ne change encore : examinez le plan, puis appliquez-le avec POST /v1/config-plans/{plan_id}:apply. Le retour en arrière passe par le même chemin plan → application que toute autre modification ; les mêmes règles de contrôle de fraîcheur, de confirmation de suppression, de secrets et de permissions s'appliquent donc.

La cible du plan est la révision :

Les révisions ne contiennent aucune valeur secrète. Une connexion à nouveau créée a besoin de son secret client au moment de l'application du plan (requires_secret, un avertissement secret_required). Un secret modifié par l'application d'origine n'est pas restauré.

Requête

Paramètre Description
revision_id L'identifiant de la révision, cfgr_…, issu de la liste des révisions.

La requête n'a pas de corps. Un corps vide, {} ou null est accepté ; tout champ est rejeté. Envoyez un en-tête Idempotency-Key pour que les nouvelles tentatives soient sûres.

Réponse

201 Created avec Location: /v1/config-plans/{plan_id} et Cache-Control: no-store. Le corps est un plan, dans la même forme que la réponse de création de plan. Le plan est valide 1 heure et compte dans la limite de débit et le quota de plans de l'environnement. L'entrée config_plan.created du journal de gestion de l'environnement indique que le plan provient de cette révision.

Erreurs

HTTP code Quand
400 malformed_request, unknown_field Le corps n'est pas vide, {} ou null.
401 unauthenticated L'identifiant est absent, invalide ou révoqué.
403 insufficient_permissions L'identifiant n'a pas une permission nécessaire au plan ; required_permissions les liste toutes.
404 not_found La révision n'existe pas, appartient à un autre environnement ou a plus de 90 jours.
413 config_document_too_large Le document du plan dépasserait 5 000 ressources ou 10 Mio.
422 validation_failed La révision ne peut plus être restaurée ; voir ci-dessous. errors[].pointer pointe dans la révision (/revision/<kind>/<key>/...).
429 rate_limited La limite de débit des plans ou le quota de plans de l'environnement a été atteint ; réessayez après la durée indiquée par Retry-After.
503 service_unavailable La capacité de planification est saturée ou une dépendance est temporairement indisponible ; réessayez après la durée indiquée par Retry-After.
errors[].code Signification
not_restorable /revision_id : la révision couvre un type qui n'existe plus.
invalid Une spécification enregistrée ne correspond plus au schéma de configuration actuel.
unresolved_reference Une ressource restaurée fait référence à une key qui n'existera pas.
key_in_use La key appartient désormais à une application ou à une API que la configuration ne gère pas.
still_referenced /revision/created : une ressource créée par l'application est encore référencée par une ressource conservée.

Exemple

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