npm Stage-Only Token ile Yayını Onaya Bağlayın
npm’de granular access token oluştururken artık Read and write (stage only) iznini seçebiliyorsunuz. Bu izinle üretilen token, otomasyon iş akışlarının paket sürümlerini inceleme için sahneye almasına (staging) izin veriyor, ama aynı token registry’ye doğrudan yeni sürüm yayınlayamıyor. CI/CD hattı sürümü hazırlıyor, yayın kararını ise iki faktörlü kimlik doğrulamayla (2FA) bir paket bakımcısı veriyor.
Stage-only token tam olarak neyi değiştiriyor?
Klasik yayın akışında otomasyona verdiğiniz token, npm publish komutuyla doğrudan registry’ye sürüm gönderebiliyordu. Token sızdığında ya da iş akışı ele geçirildiğinde saldırgan anında zararlı bir sürüm yayınlayabiliyordu.
Stage-only token bu zinciri ikiye bölüyor:
- İş akışınız sürümü
npm stage publishile gönderiyor. - Bir paket bakımcısı bu sürümü inceliyor ve yayınını 2FA ile onaylıyor.
- Aynı token ile denenen doğrudan
npm publishçağrılarını npm reddediyor.
Reddetme koşulsuz çalışıyor. Token’ı otomasyon için 2FA’yı atlayacak (bypass-2FA) şekilde yapılandırmış olsanız bile stage-only izniyle doğrudan yayın yapılamıyor. Güvenlik kontrolü böylece token yapılandırmasında açılıp kapanan bir tercih olmaktan çıkıyor, izin seviyesinin kendisine gömülü bir kısıt olarak duruyor.
“Stage-only” izninin sınırları
Bu yeni izin türünün adı yanıltıcı olabilir. npm’in açıkça belirttiği üzere stage-only token’lar diğer paket yazma izinlerini korumayı sürdürüyor. Bunların arasında şunlar sayılıyor:
- dist-tag taşıma işlemleri (örneğin
latestetiketinin gösterdiği sürümü değiştirmek), - sürüm deprecate etme.
Bir dist-tag’in işaret ettiği sürümü değiştirebilmek, tek başına kullanıcıların hangi sürümü çektiğini etkileyebilecek güçlü bir yetki. O yüzden stage-only token’ları “düşük riskli” saymak yanlış olur; npm de bu token’ları diğer yazma yetkili token’larla aynı özenle korumayı tavsiye ediyor. Sır yönetimi, kapsam daraltma ve erişim kayıtlarını izleme alışkanlıklarınız bu token’lar için de geçerli.
Opt-in geliyor, mevcut token’lar etkilenmiyor
Duyuruya göre değişiklik isteğe bağlı (opt-in) sunuluyor, mevcut token’larınız ve bunların doğrudan yayın yetenekleri olduğu gibi kalıyor. Bugün çalışan bir yayın hattınız varsa, siz bilinçli olarak yeni izin tipine geçmedikçe bir şey bozulmuyor.
Buna karşılık npm, daha önce duyurduğu gibi bypass-2FA token’lar üzerinden doğrudan yayınlamayı kaldırmayı Ocak 2027 olarak hedefliyor. Tarih bir hedef olarak ifade ediliyor ama otomasyonunu token temelli yürüten ekipler için yön belli. npm’in önerdiği istikamet trusted publishing; oraya henüz geçemeyen ekipler için stage-only token’lar bir geçiş yolu olarak konumlandırılıyor.
Geçiş için izlenecek adımlar
Duyuruda tarif edilen başlangıç akışı üç adımdan oluşuyor:
- İş akışınızın ihtiyaç duyduğu paketler için Read and write (stage only) izinlerine sahip bir granular access token oluşturun.
- İş akışınızdaki mevcut yayın token’ını bu token ile değiştirin ve
npm publishyerinenpm stage publishkomutunu kullanın. - Sahneye alınan sürümleri bir bakımcının 2FA ile inceleyip onaylamasını sağlayın.
Bu üç adım, sürüm üretimini otomasyonda bırakırken yayın kararını insan onayına taşıyor. Akışın pratikte işe yaraması ise ekip içinde kimin onay verebileceğinin ve onay öncesi hangi kontrollerin yapılacağının netleştirilmesine bağlı.
Ön koşullar
Staged publishing mevcut npm paketleriyle çalışıyor. Kullanabilmek için duyuruda belirtilen gereksinimler şunlar:
- İlgili pakette publish erişiminiz olması,
- npm hesabınızda 2FA’nın etkin olması,
- npm CLI 11.15.0 veya daha yeni bir sürüm,
- Node.js 22.14.0 veya daha yeni bir sürüm.
CI çalıştırıcılarınızda sabitlenmiş eski bir Node.js ya da npm sürümü varsa geçişin ilk engeli büyük olasılıkla burada çıkar. Token izinlerine dokunmadan önce çalıştırıcı imajlarındaki sürümleri doğrulamak gereksiz hata ayıklama turlarını önler.
Kimler için anlamlı?
Stage-only token’lar, yayın otomasyonunu tamamen elden bırakamayan ama doğrudan yayın yetkisini bir robot kimliğinde tutmak istemeyen ekipler için tasarlanmış görünüyor. Yayın hattı paylaşımlı bir sırla çalışan, çok sayıda katkıcının dokunduğu depolarda yayının 2FA’lı bir insan onayına bağlanması saldırı yüzeyini daraltıyor.
npm’in uzun vadeli tercihi ise trusted publishing yönünde. Altyapınız buna uygunsa, geçiş yolu olarak tanımlanan stage-only token’lar yerine doğrudan trusted publishing’i değerlendirmek daha kalıcı bir çözüm olur. Sorularınızı ve geçişte karşılaştığınız engelleri npm topluluk tartışma kategorisinde paylaşmak da mümkün.
Kaynaklar ve İleri Okuma
- Stage-only npm tokens for safer automation — GitHub Changelog
- npm Docs: Staged publishing
- npm Docs: Trusted publishers
- npm community discussion — geçiş soruları ve engeller
- npm’de İmzayı Sıkılaştıran Yeni Dönem: Stage Queue ve Allow Flag’ler
- Disrupting supply chain attacks on npm and GitHub Actions







Yorum gönder