Eklenti Kataloğu Ürün Mimarisi
Bu belge, uygulama başlamadan önce önerilen plugins.webblocksui.com yüzeyi için ürün mimarisini ve MVP planlamasını kayıt altına alır. Yalnızca dokümantasyondur. Çalışma zamanı kodu, rota, migration, controller, API istemcisi, veritabanı tablosu, arayüz ekranı, dağıtım betiği, arka plan işi, sürüm etiketi veya sürüm artışı eklemez.
Amaç
plugins.webblocksui.com, WebBlocks ekosistemi için önerilen genel (public) Eklenti Kataloğu yüzeyidir. Kullanıcıların eklentileri keşfetmesine, eklenti meta verilerini anlamasına, ana ürün uyumluluğunu görmesine, sürüm geçmişini incelemesine ve güvenli elle kurulum rehberliğini izlemesine yardımcı olmalıdır.
İlk hedef; keşif, meta veriler, uyumluluk görünürlüğü ve güvenli elle ZIP kurulum rehberliğidir. Ticari bir pazar yeri olarak başlamamalı ve WebBlocks CMS, QuizTem, Herne Panel, WebBlocks Publisher veya başka herhangi bir ana üründe otomatik uzaktan eklenti kurulumu izlenimi vermemelidir.
Ürün Konumlandırması
Ürün dili üç aşamayı birbirinden ayırmalıdır:
- Eklenti Kataloğu: eklentilere göz atma, arama ve keşif; meta verileri, uyumluluğu, sürüm notlarını, ekran görüntülerini, dokümantasyonu ve indirme bağlantılarını okuma.
- Eklenti Mağazası: daha sonra, katalog meta verilerinden ana ürünlere güvenilir kurulum/güncelleme entegrasyonu.
- Pazar Yeri: satıcılar, hesaplar, lisanslama, ödemeler, onaylar, puanlamalar ve ücretli eklenti dağıtımı içeren gelecekteki ticari katman.
Yakın vadeli ürün Pazar Yeri değil, Eklenti Kataloğu olarak adlandırılmalıdır. Pazar yeri dili, ertelenmiş ticari özellikler için ayrılmış kalmalıdır.
Aday Uygulama Seçenekleri
Ayrı Bir Laravel Uygulaması
Artıları:
- temiz ürün sınırı
- bağımsız yol haritası
- uzun vadede en kolay API ve katalog sahipliği
Eksileri:
- daha fazla kurulum ve operasyon işi
- ayrı içerik yönetimi, yönetim paneli, dağıtım ve bakım gereksinimleri
WebBlocks Publisher Yeteneği
Artıları:
- güncelleme yayımlama kavramlarını yeniden kullanır
- artefakt, sağlama toplamı (checksum), sürüm meta verisi ve manifest desenlerini yeniden kullanabilir
Eksileri:
- WebBlocks Publisher'ı fazla genişletme riski taşır
- eklenti kataloğu gereksinimleri, ürün güncellemesi yayımlamadan farklıdır
- katalog keşfi, uyumluluk matrisleri ve genel eklenti sayfaları Publisher'ı temel ürün rolünden uzaklaştırabilir
WebBlocks CMS Tabanlı Site ve Katalog Eklentisi
Artıları:
- WebBlocks CMS yeteneklerini sergiler
- içerik sayfalarının yönetimi kolaydır
- Eklenti Kataloğu, eklenti sistemini bizzat kullanarak sınayabilir (dogfooding)
Eksileri:
- bir katalog eklentisi gerektirir
- genel içerik yönetimi ile artefakt/katalog otoritesi arasında dikkatli bir ayrım gerekir
- CMS içerik düzenlemesinin, çalıştırılabilir artefakt güvenliğinin otoritesi haline gelmesinden kaçınılmalıdır
Hibrit Model
Hibrit model; genel pazarlama ve içerik sayfalarını WebBlocks CMS'ten sunarken, katalog API'sini ve artefakt meta verilerini ayrı bir katalog servisinden veya Publisher türevi bir arka uçtan sunar.
Bu, uzun vadede en pratik yön olabilir; ancak bir uygulama taahhüdü değil, bir yön olarak kalır.
Önerilen Yön
plugins.webblocksui.com yüzeyini temiz bir sınıra sahip bir ekosistem ürün yüzeyi olarak belgeleyin. Keşif, meta veriler, uyumluluk görünürlüğü, sürüm notları, sağlama toplamları, dokümantasyon ve elle indirme rehberliğine odaklanan katalog öncelikli bir MVP ile başlayın.
Uygulama, ayrı bir Laravel uygulaması veya WebBlocks CMS tabanlı bir katalog eklentisi olarak başlayabilir; ancak veri sözleşmesi tek bir arayüz uygulamasına bağımlı olmamalıdır. WebBlocks Publisher kavramları — özellikle sürüm meta verisi ve artefakt doğrulama fikirleri — Eklenti Kataloğu'nun Publisher içinde yaşaması gerektiği varsayılmadan yeniden kullanılabilir kalmalıdır.
Çekirdek Alan Modeli
Aşağıdaki kavramlar yalnızca planlama düzeyindedir. Geçerli depoda veritabanı tablosu, API, model, migration veya yönetim ekranı anlamına gelmez.
Eklenti
- tanıtıcı (handle)
- etiket (label)
- özet
- açıklama
- satıcı/yazar
- web sitesi URL'si
- dokümantasyon URL'si
- destek URL'si
- lisans türü
- kategoriler
- etiketler (tag)
- durum: taslak, listede, listelenmemiş, kullanımdan kaldırılmış, askıya alınmış
- ilk yayımlanma tarihi
- en son sürüm tarihi
Satıcı / Yazar
- ad
- slug
- web sitesi
- destek iletişimi
- doğrulanmışlık durumu
- genel profil sayfası
- gelecekteki ticari uygunluk, ertelendi
Ana Ürün
- ürün anahtarı, örneğin
webblocks-cms,quiztem,herne-panelveyawebblocks-publisher - ürün etiketi
- desteklenen sürüm aralıkları
- katalog görünürlük kuralları
Eklenti Sürümü
- eklenti tanıtıcısı
- sürüm
- kanal: stable, beta, alpha, dev
- sürüm tarihi
- sürüm notları
- uyumluluk matrisi
- geçerli olduğunda gerekli PHP/Laravel sürümü
- artefakt URL'si
- sağlama toplamı
- gelecekteki imza meta verileri
- migration notları
- uyumluluğu bozan değişiklik notları
- güvenlik notları
- kullanımdan kaldırma notları
Artefakt
- depolama yolu veya URL
- sağlama toplamı
- boyut
- MIME/tür
- paket biçimi
- manifest meta verileri
- doğrulama durumu
- tarama durumu
- yayımlanma durumu
Uyumluluk Matrisi
- desteklenen ana ürünler
- gerekli ana ürün sürümleri
- uyumsuz ana ürün sürümleri
- ilgili olduğunda PHP/Laravel kısıtları
- gerekli uzantılar (extension)
- çakışan eklenti tanıtıcıları
- ileride destek onaylanırsa gerekli eklenti bağımlılıkları
Güvenlik Duyurusu
- eklenti tanıtıcısı
- etkilenen sürümler
- önem derecesi
- durum
- düzeltilmiş sürüm
- genel özet
- önerilen operatör eylemi
Genel Web Sitesi Yüzeyi
Önerilen plugins.webblocksui.com yüzeyi için gelecekteki genel sayfalar şunları içerebilir:
- Ana sayfa
- Eklenti listesi
- Kategori sayfaları
- Arama sonuçları
- Eklenti detay sayfası
- Sürüm geçmişi sayfası
- Satıcı profil sayfası
- Ana ürün uyumluluk sayfaları
- Dokümantasyon / kurulum kılavuzu sayfaları
- Güvenlik duyuruları sayfası
- Kullanımdan kaldırılan / kaldırılmış eklenti rehberliği
- Gelecekteki pazar yeri sayfaları, açıkça ertelendi
Eklenti detay sayfaları şunları içermelidir:
- eklenti adı
- özet
- ekran görüntüleri
- desteklenen ana ürünler
- en son uyumlu sürüm
- gerekli ana ürün sürümleri
- sürüm notları
- istenen izinler
- bildirilen migration'lar
- bildirilen rotalar, ayarlar, komutlar ve varlıklar (asset)
- kurulum yöntemi
- indirme ve sağlama toplamı bilgileri
- güvenlik/kullanımdan kaldırma durumu
- destek ve dokümantasyon bağlantıları
Operatör/Yönetici Yüzeyi
Gelecekteki katalog operatör ekranları şunları içerebilir:
- Eklentiler
- Satıcılar
- Sürümler
- Artefaktlar
- Uyumluluk
- Güvenlik Duyuruları
- Kategoriler/Etiketler
- İnceleme Kuyruğu, ertelendi
- Ticari/Lisanslama, ertelendi
Bunlar katalog/yönetim planlama kavramlarıdır, CMS yönetim paneli uygulama görevleri değildir.
API Yönü
Gelecekteki salt okunur API uç noktaları şunları içerebilir:
GET /api/pluginsGET /api/plugins/{handle}GET /api/plugins/{handle}/releasesGET /api/plugins/{handle}/latest?host_product=webblocks-cms&version=...GET /api/host-productsGET /api/security-advisoriesGET /api/catalog/index
V1 API'si ana ürünler için salt okunur olmalıdır. API yanıtları kendi başına asla uzaktan kurulum, eklenti etkinleştirme, migration çalıştırma, güncelleme uygulama, keyfî Composer kurulumu veya çalıştırılabilir davranış tetiklememelidir.
Gelecekteki yayımcı/operatör uç noktaları ayrıdır ve ertelenmiştir:
- eklenti sürümü yayımlama
- artefakt yükleme
- listelemeyi onaylama
- listelemeyi askıya alma
- duyuru yayımlama
CMS / Ana Ürün Entegrasyon Yönü
WebBlocks CMS ve diğer ana ürünler, Eklenti Kataloğu'nu şu amaçlarla kullanabilir:
- ana ürün yönetim panelinden kataloğa göz atma
- indirme/kurulum öncesinde eklenti uyumluluğunu gösterme
- elle ZIP indirmeye bağlantı verme
- kurulu eklenti sürümlerini katalog sürümleriyle karşılaştırma
- kurulu eklentiler için güvenlik/kullanımdan kaldırma uyarılarını gösterme
- yalnızca ana ürünler güvenilir artefakt meta verilerini yeniden denetlediğinde, sağlama toplamlarını doğruladığında, paketleri doğruladığında ve açık operatör eylemleri gerektirdiğinde kontrollü kurulum/güncelleme akışlarını destekleme
Katalogda gezinme, kurulu eklenti yönetiminin çevrimiçi olmasını gerektirmemelidir. Kurulu eklenti yönetimi, katalog erişilebilir olmadan da çalışmalıdır. Ana ürünler katalog meta verilerini savunmacı biçimde önbelleğe almalı ve uzak meta veriler çalıştırılabilir davranış olarak güvenilir sayılmamalıdır.
Yayımlama Akışı Yönü
Gelecekteki bakımcı/operatör akışı şunları içerebilir:
- eklenti artefaktını yerel olarak hazırlama
- eklenti manifestini doğrulama
- paket yapısını doğrulama
- sağlama toplamını hesaplama
- artefaktı ve meta verileri yükleme
- kataloğun uyumluluğu ve artefakt güvenliğini doğrulaması
- sürümün yalnızca açık operatör onayından veya güvenilir birinci taraf yayımlama akışından sonra listelenmesi
Bu, WebBlocks Publisher/güncelleme meta verisi fikirlerine benzer; ancak eklenti kataloğu yayımlama, ileride bir karar bunları birleştirmediği sürece ayrı bir yetenek olarak kalmalıdır.
MVP Kapsamı
Pratik bir ilk MVP şunları içermelidir:
- statik veya katalog tarafından yönetilen eklenti kayıtları
- genel eklenti listesi ve detay sayfaları
- eklenti sürüm meta verileri
- uyumluluk matrisi
- elle indirme bağlantıları
- görüntülenen sağlama toplamları
- dokümantasyon bağlantıları
- CMS tarafında otomatik uzaktan kurulum yok
- ücretli pazar yeri yok
- lisanslama yok
- üçüncü taraf self servis yayımlama yok
- otomatik güncelleme uygulama yok
Hedef Dışı Konular
Bu planlama aşaması şunları içermez:
- bu görevde uygulama
- canlı üretim dağıtımı
- otomatik uzaktan eklenti kurulumu
- otomatik eklenti etkinleştirme
- otomatik eklenti migration çalıştırma
- otomatik eklenti güncellemesi uygulama
- keyfî Composer kurulumu
- ücretli pazar yeri
- lisans sunucusu
- satıcı self servis portalı
- puanlamalar/yorumlar
- üretim artefaktı yayımlama otomasyonu
- canlı site doğrulaması
Açık Sorular
plugins.webblocksui.comayrı bir Laravel uygulaması olarak mı yoksa CMS tabanlı bir katalog eklentisi olarak mı başlamalı?- Eklenti artefaktı yayımlamanın sahibi WebBlocks Publisher mı olmalı, yoksa Eklenti Kataloğu'nun kendi yayımlama akışı mı olmalı?
- Birinci taraf ve üçüncü taraf eklentilerin onay akışları farklı mı olmalı?
- Eklenti imzaları nasıl ele alınmalı?
- Ticari lisanslama, katalog sözleşmesini değiştirmeden daha sonra nasıl devreye alınmalı?
- Özel/dahili eklentiler nasıl temsil edilmeli?
- Birden çok ana ürünü destekleyen eklentiler, ana ürün başına sağlayıcıları ve uyumluluğu nasıl bildirmeli?