Secrets sekmesi, bir Node.js uygulamasının ihtiyaç duyduğu hassas yapılandırma değerleri (API anahtarları, imzalama sırları ve üçüncü taraf token'ları gibi) için şifrelenmiş bir depodur; bu değerler ortam başına saklanır, böylece üretim kimlik bilgileriniz ile önizleme kimlik bilgileriniz asla birbirine karışmaz.
Sırlar Nerede Tutulur
Web Siteleri bölümünü açın, siteye tıklayın, sitenin sol menüsünde Environment grubunu açın ve Sırlar seçeneğini seçin. Sekmenin başlığı Sırlar'tır.
Bu sekme yalnızca Node.js sitelerinde görünür. WordPress, PHP ve statik sitelerde görünmez, çünkü bunların yapılandırması veritabanı yerine disk üzerindeki dosyalarda tutulur: WordPress için wp-config.php, sade bir PHP uygulaması için ise framework'ünüzün okuduğu her ne ise o.

Değerler Nasıl Korunur
Her değer, veritabanına ulaşmadan önce şifrelenir. Hiçbir şey okunabilir metin olarak saklanmaz ve liste görünümü hiçbir zaman tam bir değeri göstermez: yalnızca son dört karakterin görünür olduğu bir maske gösterir, böylece birbirine benzeyen iki anahtarı, hiçbirini açığa çıkarmadan ayırt edebilirsiniz.
Her satırda bunu hatırlatan bir Encrypted etiketi bulunur. Bir değeri geri okumak, sayfayı açmakla kendiliğinden gerçekleşen bir şey değil, ayrı ve bilinçli bir eylemdir.
Bir sır ayarlamak, ortaya çıkarmak ve silmek için sites:write izni gerekir. Salt okunur bir ekip üyesi hangi anahtarların var olduğunu ve maskelerini görebilir, ancak değerlerini göremez.
İki Ortam
Sayfanın üstündeki bölümlü bir kontrol, production ile preview arasında geçiş yapar. Bunlar tamamen ayrı anahtar kümeleridir. Production ortamında STRIPE_SECRET_KEY ayarlamak, onu preview ortamında oluşturmaz; preview ortamından silmek de production'a dokunmaz.
Bu ayrım, özelliğin asıl amacıdır. Önizleme derlemeleri, depo erişimi olan herkesin tetikleyebileceği tek kullanımlık ortamlardır, bu yüzden gerçek kimlik bilgileri yerine test kimlik bilgileri taşımalıdırlar. Önizleme ortamlarının nasıl oluşturulduğunu görmek için Çekme İstekleri İçin Önizleme Dağıtımları başlıklı yazıya bakın.
Bir Sırrı Ekleme veya Güncelleme
- Bölümlü kontrol ile ortamı seçin.
- Adı KEY_NAME alanına yazın. Alan, siz yazarken büyük harfe zorlar.
- Değeri ikinci alana girin. Siz yazarken maskelenir.
- Set düğmesine tıklayın.
Zaten var olan bir anahtarı ayarlamak onun üzerine yazar. Ayrı bir düzenleme işlemi ve üzerine yazma için bir onay adımı yoktur, bu yüzden Set düğmesine tıklamadan önce ortam sekmesini kontrol edin.
Anahtar Adı Kuralları
Bir anahtar büyük harfle başlamalı ve ardından büyük harfler, rakamlar ve alt çizgiler içerebilir, en fazla 128 karakter. DATABASE_URL, API_KEY_V2 ve SENTRY_DSN geçerlidir. Bunların dışındaki her şey Key UPPER_SNAKE_CASE harfler/sayılar/alt çizgi olmalıdır mesajıyla reddedilir.
Bilinmesi gereken iki sınır daha vardır:
- Bir değer boş olamaz. Boş bir değer göndermek value gereklidir döndürür.
- Bir değer 16 KB'ı aşamaz. Bu bir token için gayet yeterlidir ama örneğin tam bir sertifika zinciri için yeterli değildir; bu tür şeyler bir sır yerine bir dosyada bulunmalıdır.
Bir Değeri Geri Okuma
Satırdaki Copy düğmesine tıklayın. KPanel değeri sunucu tarafında çözer ve Değer panoya kopyalandı onayıyla doğrudan panonuza koyar. Değer ekranda yazdırılmaz, bu yüzden bir ekran paylaşımı ya da omuz üzerinden bakan biri onu göremez.
Her ortaya çıkarma işlemi, kimin yaptığı ve hangi anahtarla yaptığıyla birlikte sitenin denetim izine yazılır ve Site Etkinlik Günlüğü içinde görünür.
Bir değerin doğru olduğunu, onu açığa çıkarmadan kontrol etmeniz gerekiyorsa, bunun yerine maskeyi karşılaştırın. Son dört karakter, doğru token'a sahip olduğunuzu doğrulamak için yeterlidir ve zaten ekranda görünürler.
Uygulamanızda Bir Sır Kullanma
Değeri, uygulamanızın sunucuda yapılandırmasını okuduğu yere kopyalayın. Bir Node.js uygulaması için bu genellikle süreç yöneticiniz tarafından ayarlanan bir ortam değişkenidir ya da kodunuzun başlangıçta yüklediği, uygulama kökündeki bir .env dosyasıdır.
Bu dosyayı deponuza işlemeyin (commit). Onu oluşturmadan önce .env ifadesini .gitignore içine ekleyin. Bir git uzak deposuna gönderilmiş bir sır, sızdırılmış kabul edilmeli ve sağlayıcıda döndürülmelidir, çünkü dosyayı silseniz bile geçmişte kalmaya devam eder.
Secrets sekmesi, bir parola yöneticisindeki bir not ya da bir mesaj dizisi yerine, değerin ne olduğuna dair şifrelenmiş ve denetlenen asıl kaydınızdır. Onu tek doğru kaynak olarak koruyun: sağlayıcıda bir anahtarı döndürdüğünüzde, burada da aynı anda güncelleyin, böylece bir sonraki dağıtımı yapan kişi güncel değeri kullanır.
Bir Sırrı Silme
Satırdaki Delete düğmesine tıklayın. KPanel, Delete API_TOKEN? ile onay ister ve uygulamanın bir sonraki yeniden başlatmasında bu değere erişimini kaybedeceği konusunda uyarır. Geri alma yoktur ve bir kopya tutulmaz, bu yüzden değere tekrar ihtiyacınız olabileceğini düşünüyorsanız önce onu kopyalayın.
Altında yatan kimlik bilgisi sağlayıcıda iptal edildiğinde ya da onu kullanan kod kaldırıldığında bir sırrı silin. Eski anahtarları ortalıkta bırakmak, daha sonra hangilerinin gerçekten önemli olduğunu anlamayı zorlaştırır.
Bir Kimlik Bilgisini Güvenli Şekilde Döndürme
Güvenli sıra her zaman şudur: yeni kimlik bilgisini sağlayıcıda oluşturun, burada güncelleyin, dağıtın, uygulamanın çalıştığını doğrulayın, sonra eski kimlik bilgisini sağlayıcıda iptal edin.
Bunu tersten yapmak, yani önce iptal etmek, çalışan uygulamanın ölü bir kimlik bilgisi tuttuğu ve buna ihtiyaç duyan her isteğin başarısız olduğu bir pencere açar. Değişiklik riskliyse, bilinen iyi bir duruma geri dönebilmek için önce bir yedek alın: bkz. Yedek Alma.
Sorun Giderme
Secrets sekmesi menüde yok. Site bir Node.js sitesi değildir. Sayfanın üstünde site adının yanındaki yığın (stack) etiketini kontrol edin.
Set düğmesi hiçbir şey yapmıyor. Her iki alan da gereklidir. Düğme, ikisinden biri boşsa Anahtar + değer gerekli mesajını bildirir.
Anahtar reddedildi. Küçük harfler, tireler, noktalar ve boşluklara izin verilmez. api-key ve Api_Key ikisi de başarısız olur; API_KEY ise geçerlidir.
Kopyalama panoya hiçbir şey koymadı. Bazı tarayıcılar, etkin olmayan bir sekmede pano yazmalarını engeller. Önce sayfaya tıklayın, sonra tekrar Copy düğmesine tıklayın.
Sırada Ne Var
- Çekme İstekleri İçin Önizleme Dağıtımları, production ve preview ayrımının diğer yarısı.
- Bir Site İçin Git Dağıtımı, bu değerleri okuyan kodu göndermek için.
- Site Etkinlik Günlüğü, bir sırrı kimin ayarladığını, ortaya çıkardığını ya da sildiğini görmek için.