
Backstage uygulamanız, özelliklerini pluginlerle tanımladığınız tek sayfalık bir uygulamadır. Backstage pluginleri, Backstage uygulamasına takılabilen React frontend’leri olarak uygulanır. Backstage’deki plugin sistemi, genişletilebilirlik ve bileşenleştirilebilirlik etrafında inşa edilmiştir. Bu nedenle, Backstage, pluginlerin veri paylaşmasına ve genişletme noktaları sağlamasına olanak tanıyan özel primitifler ve API’ler sunar. Bu sayede karmaşık implementasyonlar veya bağımlılıklar oluşmaz.
Backstage pluginleri, plugin frontend’inin tükettiği API’yi uygulayan bir backend karşılığı da sunabilir. Bazı durumlarda, ekipler plugin frontend’ini kullanmayıp yalnızca plugin backend’ini tüketmeyi tercih eder. Bu, kendi frontend pluginlerini inşa edip bakımını yapmak zorunda kalmalarına neden olur ancak kullanıcı arayüzlerinin nasıl çalışacağını tam anlamıyla kontrol etme imkanı sağlar.
Topluluk tarafından geliştirilen onlarca plugin mevcuttur ve kendinize ait pluginler yazmanız da mümkündür.
Backstage’de Plugin Türleri
Backstage pluginleri, işlevlerine göre dört ana kategoriye ayrılır:
- Özellik Pluginleri (Feature Plugins): Backstage’e temel işlevsellik sağlayan pluginlerdir. Örneğin, Katalog, İskele, TechDocs, Organizasyon, Rozetler ve Teknik İçgörüler gibi pluginler bu kategoriye girer.

- Genişletme Pluginleri (Extension Plugins): Özellik pluginlerini ek işlevlerle genişleten pluginlerdir. Örneğin, API Belgeleri için gRPC modülü veya Analitik plugin için Google Analytics modülü bu kategoriye girer.
- Entegrasyon Pluginleri (Integration Plugins): Satıcılardan veya harici servislerden bilgileri Backstage’e getiren pluginlerdir. Genellikle varlık sayfasına bir widget veya bağımsız bir sayfa olarak eklenirler. Örneğin, Argo CD plugin, GitHub Çekme İsteği Panosu veya CircleCI plugin bu kategoriye girer.
- Varlık Sağlayıcıları (Entity Providers): Varlıkları ilgili kaynaklarından Backstage’e getiren pluginlerdir. Örneğin, Azure Varlık Sağlayıcısı ve LDAP entegrasyonu bu kategoriye girer.

Backstage’de Plugin Yüklemek
Yüklemek istediğiniz pluginin kategorisine bağlı olarak, belirli adımları farklı yerlerde gerçekleştirmeniz gerekebilir. Bir plugin yüklemek için, önce plugin paketlerini örneğin Backstage instance’ınıza eklemeniz gerekecektir ve pluginin türüne bağlı olarak, metadata dosyalarınıza anotasyon eklemeniz, instance’ınızı üçüncü taraf bir servise erişim izni vermeniz veya pluginin UI’sını instance’ınıza dahil etmeniz gerekebilir.
Genel olarak, plugin paketini instance’ınıza eklemeniz gerekecektir. Pluginler, backend, frontend ve paylaşılan mantığı ayrı paketler olarak uygulayabilir. Başlangıçta fazla gibi görünse de bu sorumluluk ayrımı, sadece ihtiyacınız olanı yüklemenizi sağlar ve ekosisteme daha fazla esneklik sunar. Eğer pluginin sunduğu UI’yı kullanmak isterseniz, tüm paketleri yüklemeniz gerekecektir. Ancak kendi UI’nizi sağlamak isterseniz, yalnızca pluginin backend’ini kullanabilirsiniz.
Plugin paketlerini instance’ınıza eklemenin dışında, özellik pluginleri genellikle entitelerin YAML dosyalarında bazı bilgilerin ayarlanmasını gerektirir. Örneğin, her YAML dosyasına TechDocs için belge anotasyonları eklemek gibi.
Entegrasyon pluginlerinde, paketleri instance’ınıza ekledikten sonra, Backstage’in üçüncü taraf servise erişmesini yetkilendirmeniz gerekir. Bunun en yaygın yolu, instance’ınızın üçüncü taraf API’ye erişmesini sağlamak için bir yetkilendirme token’ı kullanmaktır.
Son olarak, çoğu plugin, UI’larını instance’ınızın frontend’ine React ile eklemenizi gerektirir. Örneğin, bir navigasyon menüsüne link eklemek veya bir widget’i entiti sayfasına yerleştirmek gibi. Bazı pluginler, bu widget’ları özelleştirmek için props geçirmenize imkan tanır.
Sonuç
Backstage’in plugin sistemi, uygulamanın esnekliğini ve genişletilebilirliğini artıran temel bir özelliktir. Farklı türdeki pluginler, Backstage’e çeşitli işlevler ekleyerek geliştirme ekiplerinin ihtiyaçlarına göre özelleştirilmiş bir platform oluşturulmasına olanak tanır. Bu sayede, yazılım geliştirme süreçleri daha verimli ve düzenli hale gelir.