Yapılandırma revizyonunu geri yükle

POST /v1/config-revisions/{revision_id}:restore · izinler config:write, config:read ve revizyonun türlerinin okuma izinleri

Revizyonu saklayan uygulamayı geri alan yeni bir plan oluşturur. Henüz hiçbir şey değişmez: planı inceleyin, sonra POST /v1/config-plans/{plan_id}:apply ile uygulayın. Geri alma her değişiklik gibi plan → uygula yolundan geçer; bayatlık denetimi, silme onayı, sır ve izin kuralları aynıdır.

Planın hedefi revizyondur:

Revizyonlar gizli değer içermez. Yeniden oluşturulan bir bağlantı plan uygulanırken istemci sırrını ister (requires_secret, secret_required uyarısı). Asıl uygulamanın değiştirdiği bir sır geri yüklenmez.

İstek

Parametre Açıklama
revision_id Revizyon kimliği, cfgr_…; revizyon listesinden.

İsteğin gövdesi yoktur. Boş gövde, {} ya da null kabul edilir; herhangi bir alan reddedilir. Yeniden denemeleri güvenli kılmak için Idempotency-Key başlığı gönderin.

Yanıt

201 Created, Location: /v1/config-plans/{plan_id} ve Cache-Control: no-store ile. Gövde, plan oluşturmanın yanıtıyla aynı biçimde bir plandır. Plan 1 saat geçerlidir ve ortamın plan hız sınırına ve kotasına sayılır. Ortamın yönetim günlüğündeki config_plan.created kaydı planın bu revizyondan geldiğini yazar.

Hatalar

HTTP code Ne zaman
400 malformed_request, unknown_field Gövde boş, {} ya da null değil.
401 unauthenticated Kimlik bilgisi eksik, geçersiz ya da iptal edilmiş.
403 insufficient_permissions Kimlik bilgisinde planın gerektirdiği bir izin yok; required_permissions hepsini listeler.
404 not_found Revizyon yok, başka bir ortama ait ya da 90 günden eski.
413 config_document_too_large Planın belgesi 5.000 kaynağı ya da 10 MiB'ı aşacak.
422 validation_failed Revizyon artık geri yüklenemiyor; aşağıya bakın. errors[].pointer revizyonun içini gösterir (/revision/<kind>/<key>/...).
429 rate_limited Plan hız sınırına ya da ortamın plan kotasına ulaşıldı; Retry-After süresinden sonra yeniden deneyin.
503 service_unavailable Plan kapasitesi dolu ya da bir bağımlılık geçici olarak kullanılamıyor; Retry-After süresinden sonra yeniden deneyin.
errors[].code Anlamı
not_restorable /revision_id: revizyon artık var olmayan bir türü kapsıyor.
invalid Saklanan bir spec güncel yapılandırma şemasına artık uymuyor.
unresolved_reference Geri yüklenen bir kaynak, var olmayacak bir key'e başvuruyor.
key_in_use key artık yapılandırmanın yönetmediği bir uygulamaya ya da API'ye ait.
still_referenced /revision/created: uygulamanın oluşturduğu bir kaynağa kalan bir kaynak hâlâ başvuruyor.

Örnek

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