keenauth config promote ile yapılandırmayı taşıma

keenauth config promote, bir ortamın yapılandırmasını başka bir ortama kopyalar; örneğin staging ortamından production ortamına. Belgeyi bir dosyaya yazmadan, config export, config plan ve config apply ile elle çalıştıracağınız adımların aynısını çalıştırır:

  1. --from ortamının yapılandırma belgesini dışa aktarır.
  2. Bu belge için --to ortamında bir plan oluşturur.
  3. Farkı yazdırır: + oluşturma, ~ güncelleme, - silme; değişmeyen kaynaklar yalnızca sayılır.
  4. Onaylamanızdan sonra planı uygular.

İki ortam farklı bölgelerde olabilir. Bölgeler birbirini asla çağırmaz: belge yalnızca bellekte, makinenizden geçer.

Başlamadan önce

Komut, her iki ortama erişmesi gerektiğinden kontrol paneli oturum açmanızı kullanır. keenauth login ile giriş yapın (keenauth login ile giriş yapma bölümüne bakın); her iki ortamda, kaynağın yapılandırmasını okumaya ve hedefin yapılandırmasını yazmaya izin veren bir kontrol paneli rolüne sahip olmanız gerekir. Bir API anahtarı tek bir ortama aittir; bu nedenle KEENAUTH_API_KEY ayarlıyken komut çalışmayı reddeder ve 2 çıkış koduyla sonlanır.

Kullanım

keenauth config promote --from env_01j9z3k4m5n6p7q8r9s0t1stg0 --to env_01j9z3k4m5n6p7q8r9s0t1prd0
Bayrak Açıklama
--from Kaynak ortamın kimliği (env_…); yapılandırması dışa aktarılır (zorunlu).
--to Hedef ortamın kimliği (env_…); plan burada oluşturulur ve uygulanır (zorunlu).
--kinds Taşınacak türler, virgülle ayrılmış veya tekrarlanmış, config export için olduğu gibi. Varsayılan: tüm türler.
--prune Taşınan türlerin yalnızca hedefte bulunan kaynaklarını da siler. Bu bayrak olmadan bunlar korunur.
--secrets-from-env Planın ihtiyaç duyduğu istemci gizli anahtarlarını yerel ortam değişkenlerinden okur (aşağıya bakın).
--confirm-deletion Korumalı bir silmeyi <kind>/<key> olarak onaylar; config apply için olduğu gibi.
--sp-host Hedef ortamın hizmet sağlayıcı ana makinesi, örneğin login.example.com. Yalnızca plan hedefte bir kurumsal bağlantının OIDC materyalini oluşturuyorsa gerekir (aşağıya bakın); aksi halde bırakın.
--yes, -y Sormadan uygular. Standart girdi bir terminal değilse gereklidir.
--output, -o table, json veya yaml. Bayrak yoksa CLI bir terminalde tablo, aksi halde JSON yazdırır.

Bir terminalde (table), fark standart çıktıya, soru standart hataya yazdırılır; uygulamadan sonra plan kimliği, durumu ve değişiklik sayısını içeren tek bir satır yazdırılır. json veya yaml ile fark standart hataya gider ve standart çıktı yalnızca uygulanan planı içerir; böylece bir betik onu okuyabilir. Hedef zaten kaynakla eşleşiyorsa komut nothing to promote yazdırır ve hiçbir şey uygulamaz.

Standart girdi bir terminal değilse ve --yes eksikse, komut herhangi bir istek göndermeden önce 2 çıkış koduyla sonlanır.

Gizli anahtarlar asla taşınmaz

Dışa aktarılan belge asla gizli bir değer tutmaz: bir bağlantının istemci gizli anahtarı secret_ref yer tutucusu olarak görünür (örneğin KEENAUTH_CONNECTION_GOOGLE_CLIENT_SECRET). Hedefte gizli anahtar gerektiren bir değişiklik [needs a client secret] ile gösterilir.

Böyle bir plan, gizli anahtarı siz kendiniz vermedikçe uygulanmaz: hatanın adını verdiği ortam değişkenini ayarlayın ve komutu --secrets-from-env ile yeniden çalıştırın. Değer yerel ortamınızdan okunur ve yalnızca uygulama isteğinin gövdesinde gönderilir. Asla yazdırılmaz, asla bir dosyaya yazılmaz ve asla kaynak ortamdan okunmaz.

export KEENAUTH_CONNECTION_GOOGLE_CLIENT_SECRET=...   # the production client secret
keenauth config promote --from env_01j9z3k4m5n6p7q8r9s0t1stg0 --to env_01j9z3k4m5n6p7q8r9s0t1prd0 --secrets-from-env

Kurumsal OIDC ve sosyal bağlantılar

Bir kurumsal bağlantının OIDC ayarları (spec.oidc: veren, istemci kimliği, istemci kimlik doğrulama yöntemi ve sağlayıcı profili) bağlantıyla birlikte taşınır. Hedefte bu ayarlar henüz yoksa, uygulama bunları oluşturur ve geri çağırma URL'sini hedefin ana makinesinden sabitler; bu nedenle kullanıcılarınızın hedef ortamda giriş yaptığı ana makineyle birlikte --sp-host değerini verin. Ana makine belgenin parçası değildir, çünkü ortamlar arasında farklılık gösterir.

Bir sosyal bağlantının istemci gizli anahtarı henüz bir plandan uygulanamaz: plan bir tane gerektirdiğinde, --secrets-from-env ile bile uygulama 501 not_implemented hatasıyla reddedilir ve hiçbir şey değiştirilmez. Diğer türleri --kinds ile taşıyın veya destek verilene kadar sosyal bağlantıyı kaynaktan çıkarın.

Hatalar

Plan bir saat geçerlidir. Plan ile uygulama arasında hedefteki bir kaynak değişirse, uygulama 409 config_conflict ile reddedilir ve hiçbir şey değiştirilmez; komutu yeniden çalıştırın. Diğer uygulama hataları config apply için olanlarla aynıdır.

Çıkış kodları

Kod Anlam
0 Plan uygulandı ya da taşınacak bir şey yoktu.
1 Sunucu hatası ya da onayı reddettiniz (aborted).
2 Kullanım hatası: geçersiz veya aynı ortam kimliği, etkileşimli olmayan bir terminalde --yes eksik, KEENAUTH_API_KEY ayarlı ya da plan için gereken bir gizli anahtar eksik. Hiçbir şey uygulanmadı.
3 Oturum açmadınız ya da sunucu 401 veya 403 yanıtı verdi.
4 Plan bu özelliği içermiyor (403 ile plan_feature_unavailable).