Skip to main content
Bu sayfa paketinizi evoX Market’e yayınlamanın uçtan uca akışını anlatır: hangi paket türleri bugün yayınlanabilir, CLI ile nasıl hazırlanır ve sunucu paketinizi hangi güvenlik kapılarından geçirir.

Bugün ne yayınlanabilir

Veri-only paketler — açık

Hazır profil, aksiyon paketi, ikon paketi ve ses paketi gerçek moderasyon akışını kullanır ve yayınlanabilir.

Executable plugin — kapalı

Public executable plugin yükleme şu anda 503 PLUGIN_UPLOAD_NOT_READY durumundadır. Ayrıntı için Dağıtım durumu.
Ayrı bir yayıncı (Publisher) başvurusu yoktur. Oturum açan herkes yükleyip moderasyona gönderebilir; tek kapı moderasyondur. Paketi yalnız paket sahibi moderasyona gönderebilir. “Verified” rozeti yalnız resmi wraithesports içeriğindedir.

Ön koşullar

Adım 1 — Paketi CLI ile hazırlayın

@evoxapp/plugin-cli (evox-plugin) projeyi doğrular, bundle üretir ve evox-archive-v1 politikasıyla .evoxpack paketler.
publish-check bir local parity kontrolüdür; moderation, production scanner, signing veya revocation yerine geçmez. Geçmesi paketin public-ready olduğunu kanıtlamaz.
Ayrıntılı komut tablosu için Developer CLI sayfasına bakın.
CLI’nın pack çıktısı packageType: plugin taşıyan executable bir pakettir. Executable yükleme kapalı olduğu için bu paket bugün Adım 2’de 503 PLUGIN_UPLOAD_NOT_READY alır. Bugün yayınlanabilen veri-only paketleri masaüstü uygulaması üretir: Kendi paketini yayınla.

Adım 2 — Yükleyin

Doğrulanmış .evoxpack dosyası POST /packages/upload uç noktasına multipart olarak yüklenir. Yükleme kimlik doğrulanmış (giriş yapmış) her oturumla kabul edilir; ayrı yayıncı onayı gerekmez. Sunucu dosyayı önce güvenli karantinaya yazar, ardından aynı istek içinde tarar. Tarama geçerse yükleme cevabı taslak (draft) sürümü döner; geçmezse hata kodu döner ve taslak oluşmaz. Taslak henüz yayında değildir: aşağıdaki Moderasyon gönderimi adımıyla ayrıca gönderilir.

Adım 3 — Sunucu güvenlik pipeline’ı

Yüklenen her paket aşağıdaki kapılardan geçer. Bu akış server-authoritative’dir; hiçbir client alanı sonucu değiştiremez.
1

Karantina

Dosya SHA-256’lanır ve immutable private karantina alanına yazılır. Storage yazımı başarısızsa taslak oluşmaz (fail-closed).
2

Statik tarama

Arşiv politikası (zip bomb / path traversal / boyut), magic-byte uyumu, SVG aktif içerik, secret sızıntısı, yasak uzantı ve legacy identifier kontrolü yapılır.
3

Taslak kaydı

Tarama geçerse paket, tarama kanıtına (policyVersion, scanDigest, findings) atomik olarak bağlı bir taslak sürüm olarak kaydedilir.
4

Moderasyon gönderimi

Paket sahibi POST /submissions ile sürümü moderasyona gönderir. Gövde termsAccepted: true ve güncel gönderim koşulları sürümünü (termsVersion, GET /packages/upload-policy döner) taşır. İstemci, kullanıcının koşullarını kabul ettiği taslağı zorunlu expectedVersionId alanıyla (yükleme yanıtındaki version.id) bildirir; aynı ürüne bu arada daha yeni bir taslak yüklendiyse gönderim 409 SUBMISSION_TARGET_CHANGED ile reddedilir. Sunucu tekrar scanStatus: passed ve scanDigest === fileHash doğrular.
5

Onay

Moderatör tarama kanıtını inceler ve onaylar/reddeder. Onay, paketi Market’te yayınlar.

Taramanın reddettiği başlıca içerikler

  • Secret sızıntısı: private key, API token, JWT veya config içindeki gerçek kimlik değerleri.
  • Magic-byte uyumsuzluğu: uzantısı gerçek içerik türüyle eşleşmeyen dosyalar.
  • Aktif SVG: script, event handler veya harici referans içeren SVG.
  • Yasak uzantı (veri-only): .exe, .dll, .js, .bat ve benzeri çalıştırılabilir/aktif dosyalar.
  • Legacy identifier: eski StreamDock UUID kullanımı.
  • Yerel yol sızıntısı: manifest veya profil içinde mutlak dosya yolu.

Yükleme hata kodları

Mevcut bir ürüne yeni sürüm yüklerken şu kodlar da dönebilir:

Moderasyona gönderim hata kodları

Executable eklentinin kimliği (pluginId), o kimlikle onaylanan ilk gönderimle gönderen kullanıcıya bağlanır; ayrı bir sahiplenme adımı ya da yayıncı onayı yoktur. Başka kullanıcıya bağlı bir kimlikle yükleme ve gönderim PLUGIN_ID_ALREADY_CLAIMED döner. Executable yükleme kapalı olduğu için bu yol bugün bir yayın açmaz.
Static scan, local sandbox smoke veya çalışan bir T1 örneği tek başına public-ready değildir. 503 kapısı client fallbackı, metadata-only upload veya generic “passed” sonucuyla aşılamaz.