Obsidian eklentilerinin geleceği
(obsidian.md)- Obsidian Community, eklenti ve tema için yeni bir dizin ile geliştirici panosunu kullanıma sunarak gönderim, yönetim, keşif ve kullanım akışını birleştiriyor
- 2020’de Obsidian API’nin yayımlanmasından bu yana topluluk tarafından 4.000’den fazla eklenti ve tema oluşturuldu; eklenti indirmeleri 120 milyonu aştı
- Yeni dizin; gezinme, arama, filtreleme ve sıralama sunuyor; proje sayfalarında ekran görüntüleri, ayrıntılar ve güvenlik puan kartı gösteriliyor
- Otomatik inceleme tüm sürümlere uygulanarak geliştirici politikalarına uyum, kod kalitesi, bilinen açıklar ve kötü amaçlı yazılım olasılığını denetliyor
- Mevcut projeler yeni sisteme taşınacak; güncel standartları karşılamayan eklenti ve temalar geçici istisnadan sonra resmi dizinden kademeli olarak çıkarılacak
Obsidian Community kullanıma sunuldu
- Obsidian Community, Obsidian eklentileri ve temaları için yeni bir dizin ve geliştirici panosu olarak kullanıma sunuldu
- 2020’de Obsidian API yayımlandığından beri topluluk eklentileri ve temaları 4.000’den fazla sayıya ulaştı ve Obsidian eklentileri toplamda 120 milyondan fazla indirme elde etti
- Amaç, herkesin eklenti ve temaları daha kolay ve güvenli biçimde oluşturmasını, dağıtmasını, keşfetmesini ve kullanmasını sağlamak
- Bu lansman; Community sitesi, geliştirici panosu, otomatik inceleme, eklenti güvenliği ve ekip araçlarını bir araya getiren daha büyük planın başlangıcı
Community sitesi ve geliştirici panosu
- Yeni Community sitesi, eklenti ve tema keşfi için gezinme, arama, filtreleme ve sıralama sunuyor
- Integrations, Bases, Charts gibi onlarca kategori ve daha fazla kategori ile eklenti bulunabiliyor
- Projeler ad, indirme sayısı, popülerlik, sürüm tarihi ve güncelleme tarihine göre sıralanabiliyor
- Her proje ayrıntı sayfasında ekran görüntüleri, ayrıntılar ve güvenlik puan kartı yer alıyor
- Ücretli eklentiler ve resmi entegrasyonlar için yeni etiketler gösteriliyor
- Yazarlar profil sayfalarına destek seçenekleri, web sitesi bağlantısı ve sosyal medya bağlantıları ekleyebiliyor
- Obsidian Community sitesi, yazarların projelerini göndermesini, yönetmesini ve durumunu takip etmesini sağlayan yeni bir geliştirici panosu sunuyor
- Daha önce GitHub üzerinden eklenen tüm eklentiler, temalar ve bekleyen gönderimler yeni siteye otomatik olarak taşındı
- Mevcut projeler üzerinde hak talep etmek için Community sitesinde oturum açıp GitHub hesabını bağlamak gerekiyor
- GitHub hesabı bağlandığında mevcut projeleri yönetmek, yeni proje göndermek ve profil sayfasını düzenlemek mümkün oluyor
Otomatik inceleme ve güvenlik
- Tüm topluluk projeleri için otomatik inceleme devreye alındı
- Yeni otomatik inceleme sistemi yalnızca ilk gönderimi değil, tüm sürümleri güvenlik ve kod kalitesi ölçütlerine göre tarıyor
- Daha önce küçük bir ekip ilk gönderimleri elle inceleyerek Developer Policies kurallarına uyumu kontrol ediyordu; ancak Obsidian’ın popülerliği arttıkça gönderim hızına yetişmek zorlaştı ve sonraki sürümler incelenmedi
- Kodlama ajanlarının eklenti üretimini hızlandırmasıyla inceleme kuyruğu daha da uzadı; Obsidian CLI gibi araçlar da eklenti oluşturmayı kolaylaştırıyor
- Bir eklenti veya tema gönderildiğinde otomatik inceleme sistemi geliştirici politikalarına uyumu, kaynak kodu en iyi uygulamalarını ve bilinen açıkların bulunmamasını denetliyor
- Otomatik testler sürekli geliştirilebildiği için bu yapı, Obsidian ekosisteminin kalite ve güvenliğini daha kapsamlı biçimde yükseltmenin temelini oluşturuyor
- Manuel inceleme devam ediyor. Yeni sistem sayesinde kapasite; popüler eklentiler, öne çıkan eklentiler ve topluluğun işaretlediği sorunlar gibi daha derin inceleme gerektiren alanlara yönlendirilebiliyor
- Mevcut eklenti ve temalar yeni sistemle yeniden incelendi ve güncel yönergeleri karşılamayan eski eklenti ile temalar tespit edildi
- Güncel standartları geçemeyen mevcut projelere geçici istisna tanınacak; ancak yeni inceleme sürecinden geçemeyen tüm eklenti ve temalar sonunda resmi dizinden kademeli olarak çıkarılacak
- Yeni sistem son birkaç gün içinde 2.300’den fazla bekleyen gönderimi işledi; eklenti incelemesi bekleyen geliştiriciler Community sitesinde oturum açarak güncel durumu görebilir
-
Otomatik tarama
- Tüm sürümler, kod kalitesi ve güvenlik açığı kontrollerinden otomatik olarak geçiriliyor
- Buna, eklentide potansiyel olarak kötü amaçlı eklemeler olup olmadığını saptayan kötü amaçlı yazılım taraması da dahil
- Geliştiriciler, geliştirici panosunda her proje için ayrıntılı önerileri, uyarıları ve başarısızlık işaretlerini görebiliyor
-
Puan kartı
- Kullanıcılar ve geliştiriciler, tüm projelerin puan kartında otomatik denetim durumunu görebiliyor
- Puan kartı; herkese açık bilgiler, gizlilik etiketleri, artifact doğrulaması, manuel inceleme sonuçları ve uygulama yeteneklerinin benimsenmesi gibi unsurları entegre ederek gelişmeye devam edecek
-
Erişim kapsamının açıklanması
- Önümüzdeki birkaç ay içinde eklentiler ve yazarlar hakkında daha fazla şeffaflık sağlanacak
- Eklentiler; ağ, dosya sistemi, pano ve diğer işlevler gibi hangi alanlara eriştiğini beyan edecek
- Kullanıcılar, eklentiyi kurmadan önce bu açıklanan bilgileri inceleyebilecek
-
Doğrulanmış yazarlar
- Ek doğrulama adımlarını geçen ve durumunu iyi seviyede tutan güvenilir geliştiricilere etiket eklenecek
- Kullanıcılar, güvenlik sorunlarını diledikleri zaman doğrudan Obsidian ekibine bildirebilir
Ekipler ve uygulama düzeyindeki değişiklikler
- Obsidian kullanan ekipler, kullanıcılar için güvenlik kontrollerini zaten dağıtabiliyor
- Önümüzdeki aylarda ekipler, izin verecekleri topluluk eklentilerini daha kolay yönetecek ve ekip üyelerine özel eklentiler dağıtabilecek
- Resmi Obsidian eklentileri dağıtan ekipler, Community dizinindeki Official rozetine başvurabilecek
- Eklenti uygunsa iletişime geçilebilir
- Community dizini ve otomatik inceleme sistemindeki iyileştirmelerle birlikte Obsidian uygulaması ve API’de de keşfedilebilirlik ve güvenliği artıracak değişiklikler yapılacak
- Topluluk ekosistemi, Obsidian’ın eğlenceli ve güçlü yönlerinden biri; hedef, onun büyümeyi sürdürmesi için gerekli temeli sağlamak
- Geri bildirimler yeni Obsidian Community üzerinden alınacak
Kullanıcılar ve geliştiriciler için başlıca değişiklikler
-
Kullanıcılara etkisi
- Yeni Community sitesinde eklenti ve temalar keşfedilebilir
- İnceleme süreleri büyük ölçüde azalacağı için erken erişim eklentilerini elle yükleme ihtiyacı da azalabilir
-
Yeni eklenti veya tema gönderimi
- Community sitesinde oturum açarak yeni geliştirici panosuna erişilir
- GitHub hesabı bağlanır, gönderilecek depo seçilir ve panodaki adımlar tamamlanır
- Gönderimin hemen ardından proje incelemesi başlar ve sonuçlar genellikle birkaç dakika içinde görülebilir
- Proje onaylanırsa 24 saat içinde uygulama içinden aranabilir ve indirilebilir hale gelir
-
Mevcut eklenti ve temalarda hak talep etme
- Community sitesinde oturum açarak yeni geliştirici panosuna erişilir
- GitHub hesabı bağlandığında eklenti sahipliği talep edilebilir ve başlık, açıklama, ekran görüntüleri güncellenebilir
-
Geliştirici panosu olmadan güncelleme yapılıp yapılamayacağı
- Yeni sürümler GitHub üzerinden yayımlanmaya devam edebilir
- Yeni sürümler otomatik olarak incelenir; incelemeyi geçemezse ayrıntılar geliştirici panosunda kontrol edilmelidir
-
Otomatik incelemeden kalan eklenti ve temalar
- Yeni eklenti ve temalar, dizine eklenip aranabilir olmadan önce otomatik incelemeyi geçmek zorunda
- Her yeni sürüm taranır ve incelemeyi geçemezse 24 saat içinde arama sonuçlarından kaldırılır
- Daha önce onaylanmış eklenti ve temalar, otomatik incelemeden geçemese bile bir süre daha kullanılmaya devam edebilir
- Eski eklentilerin de sonunda yeni standartları karşılaması istenecek; ancak henüz bir son tarih belirlenmedi ve geçiş süreci topluluk geliştiricileriyle birlikte şekillendirilecek
-
Sürüm göndermeden otomatik inceleme çalıştırma
- eslint plugin ile Obsidian eklentileri resmi geliştirici yönergelerine göre yerelde denetlenebilir
- Geliştirici panosunda herhangi bir branch, tag veya commit için önizleme taraması çalıştırılabilir
-
Ortak bakımcılar ve organizasyon depoları
- Şu anda Obsidian Community’de yalnızca GitHub depo sahibi ilgili projeyi düzenleyebilir
- Organizasyon depolarında, organizasyon üyeliği herkese açıksa sahiplik talep etme ve düzenleme yapılabilir
- Yakın gelecekte birden fazla iş birlikçi desteği eklenecek
-
Kapalı kaynak eklentiler
- Şu anda yeni kapalı kaynak eklentiler dizine kabul edilmiyor
- Mevcut kapalı kaynak eklentiler, ek bir duyuru gelene kadar kullanılmaya devam edebilir
- Gelecekte yeni inceleme sisteminin kapalı kaynak eklentilere nasıl uyarlanabileceği değerlendirilecek
-
Hesap ve GitHub gereksinimleri
- Yeni geliştirici panosuna erişmek için Obsidian hesabı gerekiyor
- Şimdilik GitHub kullanımı zorunlu; ileride başka yazılım barındırma platformlarının eklenmesi değerlendirilecek
- GitHub girişi; kullanıcı adı ve herkese açık depo listesini paylaşır, bu bilgiler yalnızca depo sahipliğini doğrulamak için kullanılır
-
Paid ve Optional payments etiketleri
- Obsidian Community bir mağaza değil ve yerleşik ödeme çözümü sunmuyor
- Geliştiriciler lisans anahtarı, API anahtarı veya giriş engeli gibi harici ödeme mekanizmalarını kullanmaya devam edebilir
- Geliştiriciler eklentilerini üç kategoriden biriyle doğru biçimde etiketlemelidir
- Free, hiçbir tür ödeme gerektirmeyen ve ücretli hizmetlerle hiçbir bağlantısı olmayan eklentileri ifade eder; bağış ve destek bağlantılarına izin verilir
- Optional payments, kullanıcının ek özelliklerin kilidini açmak için isteğe bağlı ödeme yapabildiği veya eklentinin ücretli bir hizmete bağlandığı durumları ifade eder
- Eklenti ücretli bir hizmete ya da API’ye bağlanıyorsa, o hizmetin ücretsiz katmanı bulunsa bile Optional payments olarak etiketlenmelidir
- Paid, ücretsiz deneme sunsa bile temel işlevleri kullanmak için kullanıcının mutlaka ödeme yapması gereken durumları ifade eder
- Bu etiketler, eklenti geliştiricisinin ödeme toplayıp toplamadığını değil, kullanıcının hangi ödemeleri beklemesi gerektiğini gösterir
-
Puan kartı hataları ve iletişim
- Puan kartı yeni bir özellik olduğu için hatalar içerebilir; yanlış pozitifler veya yanlış negatifler oluşabilir
- Yanlış bir bilgi fark edilirse Obsidian Discord sunucusundaki #plugin-dev kanalına başvurulmalıdır
- Sorular veya endişeler için Obsidian Discord sunucusundaki
#plugin-devkanalıyla iletişime geçilebilir
1 yorum
Hacker News görüşleri
Blog yazısında, SSS’de ve yol haritasındaki sonraki adımlarda olabildiğince eksiksiz olmaya çalıştım ama yine de atladığım şeyler olabilir; o yüzden soru sormaktan çekinmeyin
Sadece 7 kişilik bir ekibin binlerce eklenti geliştiricisi ve milyonlarca kullanıcıyla ilgilenmesi gerektiği için, birbiriyle çatışan öncelikleri dengeli biçimde yönetmek çok zordu
Yeni sistemin kolayca benimsenebilir olması, geriye dönük uyumluluğu koruması, mevcut iş akışlarını tamamen bozmadan eski yaklaşımdan belirgin biçimde daha iyi olması ve eklentilerin güvenliğini ile keşfedilebilirliğini kademeli olarak artırabilmesi gerekiyordu
Bunu hâlâ devam eden bir çalışma olarak görürseniz sevinirim; fikirlerinizi ve şikâyetlerinizi dinleyip yinelemeli olarak geliştirmeye devam edeceğiz
Tereddüt etmemin nedenlerinden biri bunun büyük bir zaman yatırımı gerektirmesi ama asıl mesele, insanlar bu inceleme sürecine güvenmeye başladıktan sonra obfuscate edilmiş kötü amaçlı kod gözden kaçarsa sonraki saldırının sorumluluğunun projeye yüklenmesinden çekinmemdi
Buna nasıl baktığınızı merak ediyorum
Bana bu, Debian/Ubuntu’nun depodaki her şeyi sıkı biçimde incelemesiyle, PyPI/npm’in hiçbir inceleme garantisi vermemesi arasındaki fark gibi geliyor
Örneği https://community.obsidian.md/plugins/zotlit adresinde görebilirsiniz
Örneğin bir AI özet eklentisi başlangıçta kullanıcının verdiği OpenAI anahtarıyla
url="api.openai.com"+pathadresine erişiyorsa bu oldukça yaygın bir örnek olur ve topluluğun burada neler üreteceğini görmek heyecan vericiAma bir güncellemeden sonra kullanıcıya OpenAI uyumlu API için rastgele bir endpoint seçme imkânı verilirse, bu esnekliğin taramayı atlatan bir ağ sızıntı yolu oluşturmak ve kötü niyetli bir endpoint’i sinsice önceden doldurmak için kullanılmadığını nasıl garanti edebilirsiniz?
Obsidian’ı denediğimde veri tablosu özelliğinin yerleşik olmadığını, tam erişim yetkisine sahip bir eklenti olduğunu öğrenince hemen silmiştim
Ama ekibin sadece 7 kişi olması gerçekten şaşırtıcı
Geliştirici topluluğundaki memnuniyetsizlik giderek büyüyordu ve ekip de yük altında tükenmeye başlıyordu
O yüzden ekibi tebrik ediyorum. Devasa bir ölçeklenebilirlik darboğazı aşılmış oldu ve bunların nasıl inşa edilip ölçeklendiğini izlemek oldukça etkileyici
Bir yazılım şirketi “XYZ’nin geleceği” gibi bir başlık attığında, genelde bunun XYZ’yi ciddi biçimde kısıtlayacağı ya da sonlandırmaya hazırlandığı anlamına geleceğini düşünürüm
Eklenti güvenliği sorununu çözmenin en iyi, hatta belki tek yolu açık API’ler ve izin sistemi olan bir sandbox gibi görünüyor
Yine de internetle iletişim kuramıyorsa büyük bir sorun olmayabilir gibi geliyor
Biraz daha bakınca JavaScript ve Electron yapısı gereği Obsidian eklentileri global kapsamda çalışan JavaScript paketleri gibi ve kullanıcının izinleri elverdiği ölçüde tüm dosya sistemini okuyup yazabiliyor, ayrıca HTTP istekleri de yapabiliyor gibi görünüyor; bunu doğrulayabilir misiniz?
Ama bunun bu ekosistemde pratikte ne kadar işe yarayacağını merak ediyorum. Deneyimime göre kapsamlı taramalar çok sık false positive üretiyor; yani CVE var ama gerçek kullanım bağlamında uygulanabilir değil
Bu yüzden tarama sonuçlarını doğru yorumlamak bilgi gerektiriyor ve bu da bakımcılar için ciddi bir yüke dönüşebiliyor
Yalnızca izinler belirli kötü niyetli davranışları engellemeye yetmediği için bunların hepsine ihtiyaç var
Community sitesindeki birkaç puan kartına bakınca bile bazı uyarıların izin sistemi veya sandboxing ile yakalanamayacağını hemen görebilirsiniz
Blog yazısında dağıtım biçiminin ayrıntıları var ve eklenti API’sinde değişiklik gerekeceği için bu süreç aşamalı ilerleyecek
Güvenlik ve yetkilendirme zaten başlı başına zor işler; platform tasarlarken bir noktada esneklik uğruna bu riski almaya değip değmeyeceğini kendinize sormanız gerekiyor
Kusursuz güvenli bir sistem tasarlamaya çalışmak umutsuz bir iş
Bir gün kendi projemde de benzer bir sistemi nasıl kuracağımı öğrenmem gerekecek gibi görünüyor
Veri sızıntısı sessizce gerçekleşir
Karşımda bir sürü hata ve linter uyarısı varsa benim ne yapmam gerekiyor?
Kullanıcı tarafındaki ideal akışın ne olduğunu merak ediyorum. Puan kartı geliştirici tarafında faydalı görünüyor
Bu tür topluluk katkılarını yönetmek zor, ama bu büyük bir ilerleme gibi görünüyor
Böyle otomatik incelemelerde AI’ın bir rolü olup olmayacağını da merak ediyorum. Oldukça umut verici bir kullanım senaryosu gibi duruyor
Obsidian kapalı kaynak yazılım olmasaydı bunu kendim değiştirirdim
Birinin artık uyumlu bir klon yapmasının zamanı geldi
.obsidian/pluginsklasörüne kopyalayabileceğiniz bir klasörden ibaret.obsidian/plugins/dizinine yapıştırmanız yeterli