Nuvaka › Geliştirici belgeleri › Yayınlama ve inceleme

Yayınlama ve inceleme

E-postası doğrulanmış her Nuvaka kullanıcısı uzantı yayınlayabilir. Yükleme otomatik taranır; bazı sürümler bir yöneticinin onayını bekler.

Hazırlık

  1. Hesap: e-postan doğrulanmış olmalı; hesap dondurulmuş ya da engellenmiş olmamalı.
  2. Geliştirici token'ı: uygulamada Profil › Geliştirici › Geliştirici token'ları › ad ver › Token üret. Token nvd_ ile başlar, bir kez gösterilir, 1 yıl geçerlidir ve yalnız yayıncı uçlarında (yükleme, listeleme, denetleme) geçer. Aynı yerden iptal edilir. CI için NUVAKA_TOKEN ortam değişkenini kullan.
  3. Yayıncı imza anahtarı (önerilir): nuvaka-ext keys create ile üret, çıktıdaki genel anahtarı (base64, 44 karakter) Profil › Geliştirici › Yayıncı imza anahtarları'na ekle.
npx nuvaka-ext login --token nvd_xxxxxxxx
npx nuvaka-ext keys create
npx nuvaka-ext publish --changelog "Yeni: depo listesi ayarı"

Yayıncı anahtarları

Hesabına bir genel anahtar eklediğin andan itibaren her yükleme bu anahtarlardan biriyle imzalı olmak zorundadır. İmzalanan veri paketin ham 32 baytlık SHA-256 özetidir (Ed25519). Böylece hesabın ya da token'ın ele geçse bile anahtar olmadan sürüm yayınlanamaz.

  • Anahtar ekleme ve kaldırma yalnız uygulama oturumuyla yapılır; geliştirici token'ıyla yapılamaz.
  • Özel anahtarı yedekle. Kaybedersen uygulamadan eski anahtarı kaldırıp yenisini ekle.
  • Birden çok anahtar eklenebilir (ör. dizüstü ve CI için ayrı).

Yükleme akışı

  1. Paket ve manifest kuralları

    Boyut, dosya türleri, yollar, manifest şeması, kimlik öneki, sürümün bir öncekinden büyük olması. Hata → rejected.

  2. Otomatik tarama

    Yasak kod kalıpları ve izin/kullanım uyumu (liste). Tarama en iyi çabadır; asıl sınır çalışma zamanındaki izin denetimidir.

  3. İnceleme ya da yayın

    Şu durumlarda sürüm review durumunda yönetici onayını bekler:

    • yayıncının ilk uzantısı;
    • kritik izin (nuvaka.mail, nuvaka.cloud: write, nuvaka.connections: secrets) isteyen her yeni sürüm;
    • "Nuvaka onaylı" uzantıların her yeni sürümü.

    Diğerleri doğrudan published olur ve güven düzeyi community (Topluluk) olarak yayınlanır.

Yanıt: { id, version, status: "published" | "review" | "rejected", scan: { errors: [], warnings: [] } }. nuvaka-ext publish bunu okunur biçimde yazar; --json ile ham çıktı alınır. Yayınlamadan aynı denetimi görmek için nuvaka-ext lint --remote.

İmza ve bütünlük

Sunucu yayınlanan her sürüm için bir yayın kaydı imzalar (kimlik, sürüm, paket SHA-256'sı, boyut, güven düzeyi, izinler, net alan adları, minAppVersion). Uygulama yalnız bu imzayı taşıyan paketi kurar ve sunucunun anahtarını uygulamaya gömülü anahtarla karşılaştırır.

Nuvaka onaylı rozeti

Bir yönetici uzantıyı inceleyip "Nuvaka onaylı" (verified) yapabilir. Mağaza'da ve uzantının bilgi çubuğunda rozet görünür; kullanıcılar Mağaza'da yalnız onaylıları süzebilir. Onaylı uzantının sonraki her sürümü de inceleme kuyruğuna düşer; onaylanana kadar kullanıcılar bir önceki onaylı sürümde kalır.

Güncellemeler

  • Her yükleme bir öncekinden büyük sürüm olmalı.
  • Kullanıcı uzantı başına güncellemeyi Otomatik, Sor ya da Kapalı seçer. Otomatikte izni değişmeyen sürümler kendiliğinden kurulur.
  • Yeni sürüm izin kümesini ya da net alan adlarını genişletirse otomatik güncelleme durur; kullanıcı yeni izinleri onaylayana kadar eski sürüm çalışır. İzin istemeyi ayrı, açıklamalı bir sürümde yapmak kullanıcıyı daha az ürkütür.
  • Önceki sürüm paketi cihazda saklanır; kullanıcı geri dönebilir.

Sürümü geri çekme ve mağazadan gizleme

  • Geri çekme (yank): sorunlu bir sürümü geri çekersen yeni kurulum almaz; o sürümü kuranlar bir öncekine döner.
  • Listeden gizleme: uzantını Mağaza'dan gizleyip yeniden gösterebilirsin; kurulu kullanıcılar etkilenmez.

Bu işlemler yayıncı uçlarıyla (/api/ext/v1/dev/…) yapılır.

Engelleme

Kötü amaçlı ya da kurallara aykırı bir uzantı ya da tek bir sürümü yönetici tarafından engellenebilir. Uygulama engel listesini açılışta ve değişiklik bildiriminde uygular: engelli uzantıyı hemen durdurur ve kullanıcıya nedeni gösterir. Engelli sürüm indirilemez; uzantı token'ı alamaz. Kullanıcılar Mağaza'da bir uzantıyı kötü amaçlı yazılım, gizlilik, çalışmıyor, spam ya da diğer nedeniyle şikâyet edebilir.

Mağaza sayfası

Mağaza kartı manifestteki name, description, icon, storeCategory ve izinlerden oluşur; ayrıntı sayfasında sürüm geçmişi ve değişiklik notları (--changelog), izinler ve gerekçeleri, tehlikeli ikili uyarıları, puanlar ve yayıncı bilgisi (kullanıcı adı, uzantı sayısı, üyelik tarihi) görünür. Kullanıcılar uzantıyı kurduktan sonra 1–5 puan ve yorum verebilir; yayıncı yorumlara yanıt yazabilir.

Nuvaka Apps API v1 · son güncelleme 2026-09-27