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_requireddö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ı | Dosya | Kullanıcı tarafında |
|---|---|---|
windows-msi | .msi | Windows Installer penceresi açılır |
windows-exe | .exe | kurulum programı başlatılır |
windows-msix | .msix | Uygulama Yükleyicisi açılır |
macos-dmg | .dmg | disk 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 | .deb | yetki penceresinden onayla apt ile kurulur |
android-apk | .apk | Android 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ışı
- 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ş. - 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ı. - Paketleri yükle (aşağıda parça parça yükleme).
- 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. - İncelemeye gönder:
POST …/versions/{v}/submit(en az bir paket). Onay ya da ret sonucu sana bildirim olarak gelir. - Yayından sonra sorunlu bir sürümü
POST …/versions/{v}/yankile ç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;
offsetbir öncekinin sonu olmalı. Sıra bozulursa409 { 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,versionveplatformalanları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