Nuvaka › Geliştirici belgeleri › Programlar

Programlar: mağazada kurulabilir uygulamalar

Uzantılar Nuvaka General App'in içinde çalışır. Programlar ise kullanıcının cihazına kurulan ayrı uygulamalardır: Windows, macOS, Linux ve Android paketleri. Mağazada "Programlar" rafında görünür, uygulama içinden indirilip doğrulanır ve işletim sisteminin kendi kurulumuyla kurulur.

Kimler yayınlayabilir

  • Program yayını şimdilik yalnız onaylı program yayıncılarına açık: resmî Nuvaka hesabı ve Nuvaka ekibinin onayladığı geliştiriciler. Başvuru için destek üzerinden yaz.
  • Yayıncı Sözleşmesi'nin güncel sürümünü kabul etmiş olmalısın; etmediysen yayın istekleri 428 agreement_required döner (bkz. Yayınlama).
  • Program kimliği <kullanıcı-adın>.<ad> biçimindedir (ör. nuvaka.monitor-switcher) ve değişmez.
  • Her sürüm Nuvaka incelemesinden geçer. Otomatik yayın yoktur.

Paket türleri

Platform anahtarıDosyaKullanıcı tarafında
windows-msi.msiWindows Installer penceresi açılır
windows-exe.exekurulum programı başlatılır
windows-msix.msixUygulama Yükleyicisi açılır
macos-dmg.dmgdisk görüntüsü açılır, kullanıcı Uygulamalar'a sürükler
linux-appimage.AppImage~/Applications'a kopyalanır, çalıştırılabilir yapılıp başlatılır
linux-deb.debyetki penceresinden onayla apt ile kurulur
android-apk.apkAndroid paket kurulumu (uygulama içi kurulum yakında)

Bir sürümde birden çok platform paketi olabilir; aynı işletim sisteminde hem msi hem exe sunarsan uygulama güncellemede kullanıcının kurduğu türü seçer. Paket en çok 2 GB olabilir. Sunucu dosya türünü hafifçe denetler (MZ, OLE, PK, ELF, deb arşivi, dmg).

Yayın akışı

  1. Program oluştur: POST /api/programs/dev { id, name, summary:{tr,en}, description:{tr,en}, category, loginMode, oauthClientId?, homepage? }. loginMode: required (Nuvaka ile girişsiz çalışmaz; mağazada rozet çıkar), optional, none. Giriş için bkz. Nuvaka ile giriş.
  2. Taslak sürüm: POST /api/programs/dev/{id}/versions { version, notesTr, notesEn }. Sürüm notları iki dillidir (her biri ≤ 2000). Yeni sürüm yayındakilerden büyük olmalı.
  3. Paketleri yükle (aşağıda parça parça yükleme).
  4. Görseller: POST /api/programs/dev/{id}/media?kind=icon|screenshot|video (ham gövde). Simge kare, 64–1024 px; en çok 8 ekran görüntüsü; video en çok 20 MB.
  5. İncelemeye gönder: POST …/versions/{v}/submit (en az bir paket). Onay ya da ret sonucu sana bildirim olarak gelir.
  6. Yayından sonra sorunlu bir sürümü POST …/versions/{v}/yank ile çekebilirsin: kuranlar kullanmaya devam eder, yeni kurulum ve güncelleme almaz.

Tüm yayıncı uçları oturum token'ınla ya da geliştirici token'ınla (nvd_…) çağrılır.

Parça parça yükleme

PUT /api/programs/dev/{id}/versions/{v}/packages/{platform}?fileName=Uygulama-1.2.0.msi&offset=0&total=73400320&minOsVersion=10.0
Content-Type: application/octet-stream
<en çok 48 MB ham bayt>
  • Parçaları sırayla gönder; offset bir öncekinin sonu olmalı. Sıra bozulursa 409 { expected } döner, oradan devam et.
  • Ara yanıt { done:false, received }; son parçada { done:true, sha256, size }. Özeti sunucu kendisi hesaplar.
  • Dosya adı platformun uzantısıyla bitmeli. Aynı platforma yeniden yükleme eskisinin yerine geçer; taslak ya da reddedilmiş sürümde DELETE …/packages/{platform} ile silebilirsin.

İmza ve doğrulama

Onaylanan her paket için sunucu bir paket kaydı üretir ve imzalar:

{"fileName":"Uygulama-1.2.0.msi","id":"ornek.uygulama","issuedAt":"…","kind":"program-package",
 "minOsVersion":"10.0","platform":"windows-msi","sha256":"…","size":73400320,"version":"1.2.0"}
  • İmza, bu metnin UTF-8 baytları üzerinde Ed25519'dur; anahtar uzantı paketleriyle aynıdır ve uygulamada gömülüdür (GET /api/ext/v1/signing-key).
  • Nuvaka General App kurmadan önce sırayla: imzayı doğrular; kayıttaki kind, id, version ve platform alanlarının istenen programla aynı olduğunu denetler; indirilen dosyanın boyutunu ve SHA-256'sını kayıtla karşılaştırır. Biri tutmazsa dosya silinir ve kurulum başlamaz. Kurulum başlamadan hemen önce özet bir kez daha hesaplanır.
  • İşletim sisteminin kendi imzası (Windows Authenticode, macOS notarization, APK imzası) senin sorumluluğundadır. İmzasız paketler kullanıcıya işletim sistemi uyarısı gösterir; incelemede de dikkate alınır.

Kullanıcı tarafında

  • Mağazada Programlar rafı ve arama, kategori, sıralama (en çok kurulan, en yeni, en beğenilen, son güncellenen). Varsayılan olarak yalnız kullanıcının cihazına uygun programlar listelenir; paket yoksa "şu platformlarda var" yazar.
  • Kurulum kullanıcının cihaz ayarındaki indirme klasörüne yapılır. Kurulumu bildiren kullanıcılar "kurulum" sayısına girer.
  • Güncellemeler: uygulama kurulu programları denetler; kurulu sürümden sonraki tüm sürümlerin notları kullanıcının dilinde gösterilir. Engellenen bir sürüm kuruluysa kullanıcı uyarılır.
  • "Bu cihazına da kur": kullanıcının başka cihazında kurulu olup bu cihazında olmayan programlar önerilir.
  • Yorum yazmak için programı en az bir cihaza kurmuş olmak gerekir. Yorumlara yayıncı olarak yanıt verebilirsin (POST /api/programs/{id}/reviews/{reviewId}/reply).
  • Kullanıcılar sorun bildirebilir (zararlı yazılım, gizlilik, çalışmıyor, spam, öneri); bildirimler Nuvaka ekibine gider.

Sürüm durumları

draft → review → published ya da rejected. Yayından sonra yanked (yayıncı çekti) ya da blocked (Nuvaka engelledi). Taslak ve reddedilmiş sürümler düzenlenebilir ve paket alabilir.

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