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. 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_PUBLISHER_APPROVAL_REQUIRED ve PLUGIN_ID_ALREADY_CLAIMED yükleme veya gönderim hatası değildir; executable plugin kimliğini sahiplenme isteğinden döner. Executable yükleme kapalı olduğu için bu adım bugün bir yayın yolu 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.