{"id":342,"date":"2024-11-10T20:22:00","date_gmt":"2024-11-10T20:22:00","guid":{"rendered":"http:\/\/blog.firatyasar.com\/?p=342"},"modified":"2025-03-23T20:25:37","modified_gmt":"2025-03-23T20:25:37","slug":"backstagede-pluginleri","status":"publish","type":"post","link":"https:\/\/blog.firatyasar.com\/?p=342","title":{"rendered":"Backstage&#8217;de Plugin&#8217;leri"},"content":{"rendered":"\n<p>Backstage uygulaman\u0131z, \u00f6zelliklerini pluginlerle tan\u0131mlad\u0131\u011f\u0131n\u0131z tek sayfal\u0131k bir uygulamad\u0131r. Backstage pluginleri, Backstage uygulamas\u0131na tak\u0131labilen React frontend&#8217;leri olarak uygulan\u0131r. Backstage&#8217;deki plugin sistemi, geni\u015fletilebilirlik ve bile\u015fenle\u015ftirilebilirlik etraf\u0131nda in\u015fa edilmi\u015ftir. Bu nedenle, Backstage, pluginlerin veri payla\u015fmas\u0131na ve geni\u015fletme noktalar\u0131 sa\u011flamas\u0131na olanak tan\u0131yan \u00f6zel primitifler ve API&#8217;ler sunar. Bu sayede karma\u015f\u0131k implementasyonlar veya ba\u011f\u0131ml\u0131l\u0131klar olu\u015fmaz.<\/p>\n\n\n\n<p>Backstage pluginleri, plugin frontend&#8217;inin t\u00fcketti\u011fi API&#8217;yi uygulayan bir backend kar\u015f\u0131l\u0131\u011f\u0131 da sunabilir. Baz\u0131 durumlarda, ekipler plugin frontend&#8217;ini kullanmay\u0131p yaln\u0131zca plugin backend&#8217;ini t\u00fcketmeyi tercih eder. Bu, kendi frontend pluginlerini in\u015fa edip bak\u0131m\u0131n\u0131 yapmak zorunda kalmalar\u0131na neden olur ancak kullan\u0131c\u0131 aray\u00fczlerinin nas\u0131l \u00e7al\u0131\u015faca\u011f\u0131n\u0131 tam anlam\u0131yla kontrol etme imkan\u0131 sa\u011flar.<\/p>\n\n\n\n<p>Topluluk taraf\u0131ndan geli\u015ftirilen onlarca plugin mevcuttur ve kendinize ait pluginler yazman\u0131z da m\u00fcmk\u00fcnd\u00fcr.<\/p>\n\n\n\n<p><strong>Backstage&#8217;de Plugin T\u00fcrleri<\/strong><\/p>\n\n\n\n<p>Backstage pluginleri, i\u015flevlerine g\u00f6re d\u00f6rt ana kategoriye ayr\u0131l\u0131r:<\/p>\n\n\n\n<ul><li><strong>\u00d6zellik Pluginleri (Feature Plugins):<\/strong> Backstage&#8217;e temel i\u015flevsellik sa\u011flayan pluginlerdir. \u00d6rne\u011fin, Katalog, \u0130skele, TechDocs, Organizasyon, Rozetler ve Teknik \u0130\u00e7g\u00f6r\u00fcler gibi pluginler bu kategoriye girer.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"572\" src=\"\/wp-content\/uploads\/2025\/03\/image-8-1024x572.png\" alt=\"\" class=\"wp-image-343\" srcset=\"\/wp-content\/uploads\/2025\/03\/image-8-1024x572.png 1024w, \/wp-content\/uploads\/2025\/03\/image-8-300x168.png 300w, \/wp-content\/uploads\/2025\/03\/image-8-768x429.png 768w, \/wp-content\/uploads\/2025\/03\/image-8-1536x859.png 1536w, \/wp-content\/uploads\/2025\/03\/image-8-2048x1145.png 2048w, \/wp-content\/uploads\/2025\/03\/image-8-660x369.png 660w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul><li><strong>Geni\u015fletme Pluginleri (Extension Plugins):<\/strong> \u00d6zellik pluginlerini ek i\u015flevlerle geni\u015fleten pluginlerdir. \u00d6rne\u011fin, API Belgeleri i\u00e7in gRPC mod\u00fcl\u00fc veya Analitik plugin i\u00e7in Google Analytics mod\u00fcl\u00fc bu kategoriye girer.<\/li><li><strong>Entegrasyon Pluginleri (Integration Plugins):<\/strong> Sat\u0131c\u0131lardan veya harici servislerden bilgileri Backstage&#8217;e getiren pluginlerdir. Genellikle varl\u0131k sayfas\u0131na bir widget veya ba\u011f\u0131ms\u0131z bir sayfa olarak eklenirler. \u00d6rne\u011fin, Argo CD plugin, GitHub \u00c7ekme \u0130ste\u011fi Panosu veya CircleCI plugin bu kategoriye girer.<\/li><li><strong>Varl\u0131k Sa\u011flay\u0131c\u0131lar\u0131 (Entity Providers):<\/strong> Varl\u0131klar\u0131 ilgili kaynaklar\u0131ndan Backstage&#8217;e getiren pluginlerdir. \u00d6rne\u011fin, Azure Varl\u0131k Sa\u011flay\u0131c\u0131s\u0131 ve LDAP entegrasyonu bu kategoriye girer.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" width=\"1024\" height=\"807\" src=\"\/wp-content\/uploads\/2025\/03\/image-9-1024x807.png\" alt=\"\" class=\"wp-image-344\" srcset=\"\/wp-content\/uploads\/2025\/03\/image-9-1024x807.png 1024w, \/wp-content\/uploads\/2025\/03\/image-9-300x236.png 300w, \/wp-content\/uploads\/2025\/03\/image-9-768x605.png 768w, \/wp-content\/uploads\/2025\/03\/image-9-1536x1210.png 1536w, \/wp-content\/uploads\/2025\/03\/image-9-2048x1614.png 2048w, \/wp-content\/uploads\/2025\/03\/image-9-660x520.png 660w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Backstage&#8217;de Plugin Y\u00fcklemek<\/strong><\/p>\n\n\n\n<p>Y\u00fcklemek istedi\u011finiz pluginin kategorisine ba\u011fl\u0131 olarak, belirli ad\u0131mlar\u0131 farkl\u0131 yerlerde ger\u00e7ekle\u015ftirmeniz gerekebilir. Bir plugin y\u00fcklemek i\u00e7in, \u00f6nce plugin paketlerini \u00f6rne\u011fin Backstage instance&#8217;\u0131n\u0131za eklemeniz gerekecektir ve pluginin t\u00fcr\u00fcne ba\u011fl\u0131 olarak, metadata dosyalar\u0131n\u0131za anotasyon eklemeniz, instance&#8217;\u0131n\u0131z\u0131 \u00fc\u00e7\u00fcnc\u00fc taraf bir servise eri\u015fim izni vermeniz veya pluginin UI&#8217;s\u0131n\u0131 instance&#8217;\u0131n\u0131za dahil etmeniz gerekebilir.<\/p>\n\n\n\n<p>Genel olarak, plugin paketini instance&#8217;\u0131n\u0131za eklemeniz gerekecektir. Pluginler, backend, frontend ve payla\u015f\u0131lan mant\u0131\u011f\u0131 ayr\u0131 paketler olarak uygulayabilir. Ba\u015flang\u0131\u00e7ta fazla gibi g\u00f6r\u00fcnse de bu sorumluluk ayr\u0131m\u0131, sadece ihtiyac\u0131n\u0131z olan\u0131 y\u00fcklemenizi sa\u011flar ve ekosisteme daha fazla esneklik sunar. E\u011fer pluginin sundu\u011fu UI&#8217;y\u0131 kullanmak isterseniz, t\u00fcm paketleri y\u00fcklemeniz gerekecektir. Ancak kendi UI&#8217;nizi sa\u011flamak isterseniz, yaln\u0131zca pluginin backend&#8217;ini kullanabilirsiniz.<\/p>\n\n\n\n<p>Plugin paketlerini instance&#8217;\u0131n\u0131za eklemenin d\u0131\u015f\u0131nda, \u00f6zellik pluginleri genellikle entitelerin YAML dosyalar\u0131nda baz\u0131 bilgilerin ayarlanmas\u0131n\u0131 gerektirir. \u00d6rne\u011fin, her YAML dosyas\u0131na TechDocs i\u00e7in belge anotasyonlar\u0131 eklemek gibi.<\/p>\n\n\n\n<p>Entegrasyon pluginlerinde, paketleri instance&#8217;\u0131n\u0131za ekledikten sonra, Backstage&#8217;in \u00fc\u00e7\u00fcnc\u00fc taraf servise eri\u015fmesini yetkilendirmeniz gerekir. Bunun en yayg\u0131n yolu, instance&#8217;\u0131n\u0131z\u0131n \u00fc\u00e7\u00fcnc\u00fc taraf API&#8217;ye eri\u015fmesini sa\u011flamak i\u00e7in bir yetkilendirme token&#8217;\u0131 kullanmakt\u0131r.<\/p>\n\n\n\n<p>Son olarak, \u00e7o\u011fu plugin, UI&#8217;lar\u0131n\u0131 instance&#8217;\u0131n\u0131z\u0131n frontend&#8217;ine React ile eklemenizi gerektirir. \u00d6rne\u011fin, bir navigasyon men\u00fcs\u00fcne link eklemek veya bir widget&#8217;i entiti sayfas\u0131na yerle\u015ftirmek gibi. Baz\u0131 pluginler, bu widget&#8217;lar\u0131 \u00f6zelle\u015ftirmek i\u00e7in props ge\u00e7irmenize imkan tan\u0131r.<\/p>\n\n\n\n<p><strong>Sonu\u00e7<\/strong><\/p>\n\n\n\n<p>Backstage&#8217;in plugin sistemi, uygulaman\u0131n esnekli\u011fini ve geni\u015fletilebilirli\u011fini art\u0131ran temel bir \u00f6zelliktir. Farkl\u0131 t\u00fcrdeki pluginler, Backstage&#8217;e \u00e7e\u015fitli i\u015flevler ekleyerek geli\u015ftirme ekiplerinin ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirilmi\u015f bir platform olu\u015fturulmas\u0131na olanak tan\u0131r. Bu sayede, yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7leri daha verimli ve d\u00fczenli hale gelir.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Backstage uygulaman\u0131z, \u00f6zelliklerini pluginlerle tan\u0131mlad\u0131\u011f\u0131n\u0131z tek sayfal\u0131k bir uygulamad\u0131r. Backstage pluginleri, Backstage uygulamas\u0131na tak\u0131labilen React frontend&#8217;leri olarak uygulan\u0131r. Backstage&#8217;deki plugin sistemi, geni\u015fletilebilirlik ve bile\u015fenle\u015ftirilebilirlik etraf\u0131nda in\u015fa edilmi\u015ftir. Bu nedenle, Backstage, pluginlerin veri payla\u015fmas\u0131na ve geni\u015fletme noktalar\u0131 sa\u011flamas\u0131na olanak tan\u0131yan \u00f6zel primitifler ve API&#8217;ler sunar. Bu sayede karma\u015f\u0131k implementasyonlar veya ba\u011f\u0131ml\u0131l\u0131klar olu\u015fmaz. Backstage pluginleri, plugin frontend&#8217;inin\u2026 <span class=\"read-more\"><a href=\"https:\/\/blog.firatyasar.com\/?p=342\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":320,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[85,148,136,133,130],"_links":{"self":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/342"}],"collection":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=342"}],"version-history":[{"count":1,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/342\/revisions"}],"predecessor-version":[{"id":345,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/posts\/342\/revisions\/345"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=\/wp\/v2\/media\/320"}],"wp:attachment":[{"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.firatyasar.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}