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:
- Uygulamanın güncellediği ya da sildiği kaynaklar uygulamadan önceki spec'lerine döner. Silinen kaynaklar yeniden oluşturulur.
- Uygulamanın oluşturduğu kaynaklar silinir. Bu durumda plan
prune: truetaşır ve revizyonun türlerinin bugünkü bütün kaynaklarını kapsar; uygulamanın dokunmadığı kaynaklarno_opolarak planlanır, yani yalnız oluşturulanlar silinir. Uygulamak, silme içeren her plan gibiconfirm_deletionsister. - Revizyonun kapsamadığı türlere dokunulmaz.
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