Restaurar una revisión de configuración

POST /v1/config-revisions/{revision_id}:restore · permisos config:write, config:read y los permisos de lectura de los tipos de la revisión

Crea un nuevo plan que deshace la aplicación que guardó la revisión. Todavía no cambia nada: revisa el plan y luego aplícalo con POST /v1/config-plans/{plan_id}:apply. La restauración sigue el mismo camino plan → aplicación que cualquier otro cambio, así que se aplican las mismas reglas de comprobación de obsolescencia, confirmación de eliminaciones, secretos y permisos.

El destino del plan es la revisión:

Las revisiones no contienen valores secretos. Una conexión que se vuelve a crear necesita su secreto de cliente al aplicar el plan (requires_secret, una advertencia secret_required). Un secreto cambiado por la aplicación original no se restaura.

Solicitud

Parámetro Descripción
revision_id El id de la revisión, cfgr_…, de la lista de revisiones.

La solicitud no tiene cuerpo. Se acepta un cuerpo vacío, {} o null; cualquier campo se rechaza. Envía una cabecera Idempotency-Key para que los reintentos sean seguros.

Respuesta

201 Created con Location: /v1/config-plans/{plan_id} y Cache-Control: no-store. El cuerpo es un plan, con la misma forma que la respuesta de creación de plan. El plan es válido durante 1 hora y cuenta para el límite de frecuencia y la cuota de planes del entorno. La entrada config_plan.created del registro de gestión del entorno indica que el plan proviene de esta revisión.

Errores

HTTP code Cuándo
400 malformed_request, unknown_field El cuerpo no está vacío, no es {} ni null.
401 unauthenticated La credencial falta, no es válida o está revocada.
403 insufficient_permissions La credencial carece de un permiso que necesita el plan; required_permissions los lista todos.
404 not_found La revisión no existe, pertenece a otro entorno o tiene más de 90 días.
413 config_document_too_large El documento del plan superaría 5.000 recursos o 10 MiB.
422 validation_failed La revisión ya no se puede restaurar; véase abajo. errors[].pointer apunta dentro de la revisión (/revision/<kind>/<key>/...).
429 rate_limited Se alcanzó el límite de frecuencia de planes o la cuota de planes del entorno; reintenta después del periodo de Retry-After.
503 service_unavailable La capacidad de planificación está llena o una dependencia no está disponible temporalmente; reintenta después del periodo de Retry-After.
errors[].code Significado
not_restorable /revision_id: la revisión cubre un tipo que ya no existe.
invalid Una especificación guardada ya no coincide con el esquema de configuración actual.
unresolved_reference Un recurso restaurado hace referencia a una key que no existirá.
key_in_use La key ahora pertenece a una aplicación o API que la configuración no gestiona.
still_referenced /revision/created: un recurso que creó la aplicación sigue referenciado por un recurso que permanece.

Ejemplo

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