Portal Uygulamaları
Portal Uygulaması, API Portal'dan bir hesap/geliştirici tarafından oluşturulan ve API ürünlerine abone olmak, API anahtarı almak için kullanılan kayıttır. Bu sayfa, Portal Uygulamalarının yönetilmesini anlatır.
Portal uygulamaları Portal > Uygulamalar menüsünden yönetilir. API ürünü abonelikleri de burada yer alır.
Dahili uygulamalar, Kimlik menüsündeki Tüketiciler ekranında tüketicilerle birlikte yönetilir; bkz. Tüketiciler Ekranında Dahili Uygulamalar. Kimlik menüsünde ayrı bir Uygulamalar girişi yoktur.
Uygulama Türleri
Her uygulama, sahipliğini ve nerede görüneceğini belirleyen bir Tür bilgisi taşır:
| Tür | Açıklama |
|---|---|
| Portal | Olağan tüketici uygulamasıdır. Bir portala aittir, Portal hesabı/geliştiricisi tarafından ya da yönetici tarafından onun adına oluşturulur ve portalda görünür. |
| Dahili (Internal) | Kuruluşun kendi kullanımı için yönetici tarafından oluşturulan uygulamadır. Bir portala ait değildir ve hiçbir portal ekranında listelenmez: Portal kullanıcısı bu uygulamayı göremez, oluşturamaz ve düzenleyemez; uygulama üretime de yükseltilemez. |
Tür, uygulama oluşturulurken seçilir ve sonradan değiştirilemez. Türü görünmeyen bir uygulama, bu ayrım tanımlanmadan önce oluşturulmuş bir Portal uygulamasıdır.
Bir kuruluş için tanımlanan uygulama kotası yalnızca Portal uygulamaları için geçerlidir; Dahili uygulamalar bu kotadan düşülmez. Halihazırda dahili uygulaması olan bir kuruluşun yeni portal uygulaması açma hakkı bu sürümden itibaren artmış olur.
Uygulama Listesi
Listede uygulama adı, türü, bağlı olduğu hesap/geliştirici, kuruluş, oluşturulma tarihi ve referans numarası (Reference Id) görüntülenir. Listenin üstündeki Tür: Tümü filtresi listeyi tek bir türe indirger; hiçbir seçim yapılmadığında iki tür de listelenir. Listedeki bir uygulamaya tıklandığında uygulamanın detay sayfası açılır.
Uygulama Oluşturma / Düzenleme
Yeni bir uygulama oluşturmak için listenin üstündeki Oluştur düğmesi kullanılır. Var olan bir uygulamayı düzenlemek için işlemler menüsündeki Düzenle seçeneği kullanılır.
| Alan | Açıklama |
|---|---|
| App Adı (Name) | Uygulamanın adıdır. Zorunlu alandır. |
| Tür (Type) | Portal ya da Dahili. Uygulama oluşturulurken belirlenir: Portal > Uygulamalar menüsünden oluşturulan uygulama Portal uygulamasıdır, Dahili uygulama ise Tüketiciler ekranından oluşturulur. Var olan bir uygulamada salt okunur olarak gösterilir. Bkz. Uygulama Türleri. |
| Uygulama Anahtarı (Application Key) | Uygulama oluşturulurken sunucu tarafından üretilen kalıcı ve okunabilir kimliktir. Değiştirilemez; düzenleme ve detay ekranlarında kopyalama düğmesiyle birlikte gösterilir. |
| Reference Id | Uygulamayı dış sistemlerde tekil olarak tanımlamak için kullanılan referans değeridir. Uygulama oluşturulurken otomatik olarak üretilir, gerekirse elle değiştirilebilir. Zorunlu alandır. |
| Açıklama (Description) | Uygulama ile ilgili açıklama bilgisidir. |
| Hesap/Geliştirici (Account) | Uygulamanın bağlı olduğu Portal hesabı/geliştiricisidir. Zorunlu alandır. |
| Trafiği loglama (Do not log traffic) | Bu uygulamaya bağlı tüm tüketicilerin API trafiğinin trafik log konnektörlerine yazılmasını durdurur. Varsayılanı kapalıdır. Yalnızca oluşturma anında değil, Düzenle ekranından sonradan da değiştirilebilir; değişikliği kaydetmek uygulamanın tüketicilerini otomatik olarak yeniden dağıtır (elle redeploy gerekmez). Güncel değer detay ekranında rozet olarak görünür. Bkz. Bir Uygulamanın Trafik Logunu Kapatma. |
Düzenle ekranı, uygulamanın detay/Görüntüle sayfasındaki aynı salt-okunur Detaylar ve Bağlı Kaynaklar panellerini de gösterir — kuruluş, proje, oluşturulma tarihi, tür, trafik log durumu, uygulama anahtarı, referans id ve Consumer'lar/API Ürünleri sayıları — böylece Görüntüle'den Düzenle'ye geçildiğinde bu bağlam kaybolmaz. Burada düzenlediğiniz üç alan (ad, açıklama, trafiği loglama) yalnızca aşağıda canlı kontrol olarak gösterilir, salt-okunur panelde tekrarlanmaz.
Uygulama anahtarı uygulamayı kalıcı olarak tanımladığı için başka bir kayda taşınmaz: kopyalanarak ya da bir paket içe aktarılarak oluşturulan uygulama kendine ait yeni bir anahtar alır. Aynı kural tüketici anahtarı için de geçerlidir.
Uygulama Detayı
Uygulama detay sayfasında Genel Bakış, API İstemcileri ve Ek Bilgiler olmak üzere üç sekme yer alır.
Genel Bakış
Bu sekmede uygulamanın adı, türü, uygulama anahtarı, referans numarası, bağlı olduğu hesap/geliştirici, kuruluş ve oluşturulma tarihi görüntülenir. Ayrıca uygulamaya tanımlı API anahtarları listelenir: anahtarın kendisi, aktif/pasif durumu, oluşturulma ve (varsa) geçerlilik bitiş tarihi. Düzenleme ekranından uygulama için yeni bir API anahtarı üretilebilir veya var olan bir anahtar iptal edilebilir.
Düzenleme ekranındaki Üret düğmesi, yeni anahtarı üretmeden önce anahtarın ne kadar süre yaşayacağını soran küçük bir pencere açar. Varsayılan seçenek Süresiz'dir; bu seçenek açıkken üretilen anahtarın son kullanma tarihi olmaz. Kapatılırsa bir tarih/saat seçilir ve anahtar o tarihte kendiliğinden sona erer — geçmiş bir tarih seçilemez. Pencere İptal ile kapatılırsa hiçbir anahtar üretilmez.
Bir Portal uygulamasının görünümünde ayrıca uygulamanın abone olduğu API Ürünleri ve bunlara ait plan/onay durumu listelenir. Dahili bir uygulama hiçbir portala ait değildir ve API ürünü aboneliği yoktur.
API İstemcileri
Bir uygulama kendi API istemcilerini taşıyabilir: kendi client kimliği ve kendi sürümlü client secret'ları olan, altındaki tek bir tüketici adına değil uygulamanın kendisi adına token alan makine kimlikleri. Sekme, tüketici ekranındakiyle birebir aynı çalışır: Yeni istemciyi ilk secret'ıyla birlikte oluşturur ve istemci hemen etkin olur. Client secret seremonisi, secret'ı yeniden gösterme kuralları ve istemcinin nasıl yetkilendirildiği için Tüketiciler sayfasına bakın.
Bir API istemcisi token alabilir ve bunu kullanarak doğrudan bir API Proxy'yi çağırabilir; bu, API İstemcisinin Yetkilendirilmesi ve Sahip ve İstemci Yaşam Döngüsü tarafından yönetilir. Bunlardan ikincisi uygulamanın kendisi için de geçerlidir: uygulamayı askıya almak, sahip olduğu her API istemcisi için hem canlı trafiği hem yeni token verilmesini — kendi kimlik bilgileriyle birlikte — anında keser; sahibi askıdayken istemcinin kendi durumu ve ACL satırları önemsizdir. Aynı kesinti, uygulamanın bağlı olduğu kurum askıya alındığında da uygulanır.
Uygulamaya ya da tüketiciye ait bir API istemcisinde Tarayıcı girişi (authorization code + PKCE) anahtarını açabilirsiniz. Anahtar açıkken şu alanlar görünür:
| Alan | Açıklama |
|---|---|
| İstemci türü | Public (secret yok): secret saklayamayan tarayıcı, masaüstü ve CLI uygulamaları içindir ve client_credentials kullanamaz. Confidential (secret ile): client secret saklayan sunucu uygulamaları içindir. Secret'ı olan bir istemciyi Public yapabilir ve geri alabilirsiniz. Secret'lar korunur; istemci Public iken hiçbir secret onu doğrulamaz. Public istemciye secret de verebilirsiniz; istemci Public iken kullanılmaz. |
| Redirect URI'ler | Her satıra bir adres. Adres sayısında sınır yoktur. Her adres farklı ve mutlak olmalı, parça (fragment) içermemeli ve en çok 2048 karakter olmalıdır. http her ana makinede kullanılabilir. Adresler tam eşleşir. http://127.0.0.1, http://[::1] ve http://localhost adreslerinde yalnız port farklı olabilir. |
| Access token süresi | Bu istemcinin bütün token'ları için geçerlidir. Sonlu olmalıdır. |
| Refresh token'a izin ver ve süresi | Refresh açıksa sonlu bir süre girin. |
Bütün worker'lar tarayıcı girişini destekleyen sürüme yükseltilmeden bu anahtarı açmayın. İstemci için ACL Kontrol Et açıksa API istemcisinin sahibinin, ilgili API Proxy için erişim satırı da olmalıdır. Kullanıcı girişi ve uç noktalar için MCP Gateway'e Keycloak Olmadan Tarayıcı ile Giriş senaryosuna bakın.
Uygulamanın Erişimi
Bir uygulamanın kendine ait bir erişim sekmesi yoktur. Erişimi, Erişim Kontrolü ekranında uygulamanın kimliği altında erişim satırları olarak tutulur. Bunlar bir tüketicinin satırlarıyla aynıdır ve erişimin tanımlandığı tek yerdir.
- Bir portal aboneliği onaylandığında, aboneliğin API Proxy'leri için satırlar uygulamanın kimliği altına yazılır. Bu, tüketicisi olmayan bir uygulama için de geçerlidir.
- Abonelik iptal edildiğinde, hesap iptal edildiğinde ya da uygulama veya API ürünü silindiğinde bu satırlar kaldırılır ve gateway'lerden undeploy edilir.
- Uygulamaya ait bir API istemcisi, eski bir kimlik bilgisinden türetilmemişse bu satırlarla yetkilendirilir — bkz. API İstemcisinin Yetkilendirilmesi.
Ek Bilgiler (Metadata)
Bu sekmede uygulamaya özel anahtar/değer (key-value) çiftleri tanımlanabilir. Karmaşık veri tipleri desteklenmez; yalnızca düz metin değerler girilebilir.
| Alan | Açıklama |
|---|---|
| Anahtar (Key) | Ek bilgi kaydının anahtarıdır. Zorunlu ve uygulama içinde tekildir; aynı anahtar birden fazla kez kullanılamaz. |
| Değer (Value) | Anahtara karşılık gelen değerdir. |
| Gizli (Secret) | Etkinleştirildiğinde değer şifreli olarak saklanır ve listelerde maskelenerek gösterilir. |
Yeni bir kayıt eklemek için satır başındaki + düğmesi, bir kaydı kaldırmak için satır sonundaki silme düğmesi kullanılır. Değişiklikler Kaydet düğmesiyle uygulanır.
Tüketiciler Ekranında Dahili Uygulamalar
Sistem yöneticileri, Portal yöneticileri ve Portal geliştiricileri, Tüketiciler ekranının listesinde Dahili uygulamaları Uygulama rozetiyle işaretli olarak görür; Tümü / Tüketici / Uygulama filtresi listeyi daraltır. Bkz. Tüketici Listesi. Portal uygulamaları bu listede yer almaz.
- Oluşturma. Oluştur'a tıklayın ve Ne oluşturmak istiyorsunuz? sorusuna Uygulama yanıtını verin. Ad ve reference id girin; kurum, açıklama ve Trafiği loglama anahtarı isteğe bağlıdır. Oluşturduktan sonra uygulamanın sayfası açılır.
- Uygulama sayfası. Uygulama, bir tüketiciyle aynı sayfada açılır; Genel Bakış, API İstemcileri, Erişim Kontrolü, Limitler, Token Ayarları, Secrets ve Metadata sekmeleri bulunur. Tüketicideki gibi kaydedilir: bir çekmecedeki Kaydet değişikliği hemen uygular; Etkinleştir ve Devre Dışı Bırak ⋯ menüsünde, Durum altındadır; bkz. Değişiklikleri Kaydetme.
- Satır işlemleri. Uygulama satırının işlemler menüsü Görüntüle ve Düzenle seçeneklerini sunar. Diğer işlemler uygulama sayfasındadır.
- Silme. Uygulamayı sayfasından silerken uygulama adını yazmanız istenir. İlişkili kayıtlar sürdüğü sürece sunucu silme işlemini reddeder.
Bir Uygulamanın Trafik Logunu Kapatma
Bazı müşteriler, gizlilik veya kişisel verilerin korunması gerekçesiyle API trafiklerinin saklanmamasını ister. Trafiği loglama seçeneği bu talebi uygulama seviyesinde karşılar: açıkken, uygulamaya bağlı her tüketicinin — hem klasik tüketicilerin hem API İstemcilerinin — trafiği hiçbir trafik log konnektörüne (Elasticsearch, Kafka, Syslog, Veritabanı ve diğerleri) gönderilmez.
Seçeneği açık olan uygulamalar, uygulama listesinde Trafik logu kapalı rozetiyle görünür; böylece susturulmuş bir müşteri her kaydı tek tek açmadan fark edilir.
Kapsam bilinçli olarak dardır. Bu seçeneği açmak şunları durdurmaz:
- İz kayıtları ve OpenTelemetry span'ları — bir olayı teşhis etmek için kullanılan operasyonel iz
- Prometheus metrikleri — mesaj içeriği taşımayan istek sayıları ve süreler
- Güvenlik ve erişim olayları — kota, anomali ve güvenlik incelemelerinin dayandığı denetim izi
- Kimlik doğrulaması başarısız olan istekler — bir istek, ancak gateway sunulan kimliği gerçekten doğruladıktan sonra susturulur. Susturulmuş bir tüketicinin kullanıcı adını yanlış parolayla, geçersiz bir API anahtarıyla ya da reddedilen bir token'la gönderen çağrıcı, bu anahtar açısından o tüketici değildir; engellenen istek trafik log konnektörlerine her zamanki gibi yazılır. Başarısız kimlik doğrulama trafiği, sonraki bir incelemenin tam olarak ihtiyaç duyduğu şeydir; bu yüzden doğrulanmamış bir çağrıcının onu bastırabilmesi mümkün değildir.
Bir gizlilik tercihinin güvenlik veya denetim izini silebiliyor olması doğru değildir; bu yüzden o hatlar açık kalır. Kurulum gerçekten sıfır saklama istiyorsa doğru araç bu anahtar değil, No Persist veri saklama profilidir.
Bu anahtar, yönetici yetkisi olan biri tarafından Manager ekranlarından (ya da APIops üzerinden) ayarlanır. API Portal'da bilinçli olarak sunulmaz: kendi kaydını ya da kendi uygulamasını düzenleyen bir portal müşterisi bunu açıp kapatamaz; portalden gelen bir istek gövdesinde bu alan gönderilse bile uygulanmaz, yok sayılır. Gerekçesi şudur: anahtarın açılması, bir müşterinin trafiğini güvenlik ve dolandırıcılık izlemesinin dayandığı SIEM/Elasticsearch/Kafka beslemelerinden çıkarır — bunun bir operatör kararı olarak kalması gerekir.
Aynı anahtar tek tek tüketicilerde de bulunur (Tüketiciler). İkisi birbirinden bağımsızdır ve herhangi biri yeterlidir şeklinde birleşir: bir tüketici, ya kendisi kapatılmışsa ya da uygulaması kapatılmışsa susturulmuş olur.
Kaydetmek yeterlidir. Uygulamanın tüketicileri ve API İstemcileri çalışan ortamlara otomatik olarak yeniden dağıtılır; elle yeniden dağıtım (redeploy) GEREKMEZ ve değişiklik bir sonraki istekte geçerlidir.
Uygulama Silme
Yalnızca hiç üretime çıkmamış bir uygulama kalıcı olarak silinebilir: silme işlemi, uygulama Test yükseltme durumundayken kullanılabilir. Silme işlemi onay penceresi ile teyit edilir.
Yükseltmesi Beklemede olan, yükseltme talebi Reddedilmiş olan ya da halihazırda Üretim durumundaki bir uygulama üretim erişimi veya açık bir yükseltme kararı taşıdığından silinemez. Bu uygulamalarda listedeki Sil işlemi gösterilmez; trafiği durdurmak için tüm kayıtları koruyan Askıya Al işlemi kullanılır.
Test durumundaki bir uygulama, kendisine bağlı en az bir API anahtarı, erişim yetkisi (ACL), API ürünü aboneliği veya iptal edilmemiş bir API istemcisi olduğu sürece artık silinemez — silme isteği, bağlı kayıtları Silme Engelleri olarak bildirerek reddedilir ve uygulamaya dokunulmaz. Önceki sürümlerde böyle bir uygulama silindiğinde bağlı API anahtarları ve abonelik kayıtları da birlikte kaldırılıyordu; bu davranış kaldırılmıştır. Uygulama silinmeden önce bağlı kayıtların iptal edilmesi/kaldırılması, ya da uygulamanın aşağıda anlatılan Arşivle seçeneğiyle emekliye ayrılması gerekir. Portal üzerinden kendi uygulamasını kaldırmak isteyen bir geliştirici de aynı kısıtla karşılaşır.
Aynı kural portal tarafından iletilen silme talebinin kararı için de geçerlidir; buradaki onay akışı ayrıca varsayılan olarak arşivlemeyi öne çıkarır:
- Arşivle — listedeki onay menüsünün ilk ve ek onay istemeyen seçeneğidir. Uygulama tüketim ve denetim geçmişini koruyarak emekliye ayrılır: API anahtarları zaten devre dışı kalır, abonelikleri iptal edilir (silinmez), uygulama portalda görünmez olur.
- Sil — kalıcı ve geri alınamaz olduğu için ayrı bir onay penceresi ister. Talep onaylandığında normal silme kuralı aynen uygulanır: uygulamanın hâlâ bağlı bir API anahtarı, erişim yetkisi, aboneliği veya iptal edilmemiş bir API istemcisi varsa istek 409 ile reddedilir — silme talebini onaylamak bu ilişkileri otomatik olarak temizlemez. Pratikte bu durumdaki neredeyse her talep Arşivle ile kapatılır.
- Reddet — talebi reddeder, uygulama önceki durumuna döner.
Yükseltme talebi reddedilmiş bir uygulama da silinemez. Reddedilen talep tüketici tarafından tamamlanıp yeniden gönderilebildiği için uygulama ve geçmişi korunur. Uygulama artık kullanılmayacaksa arşivlenmeli ya da askıya alınmalıdır.
Kural yalnızca arayüzde değil sunucu tarafında da uygulanır ve tüm yüzeylerde (ekran, Management API, portal) aynıdır: üretime yükseltilmiş ya da hâlâ bağlı kaydı olan bir Test uygulaması için gönderilen silme isteği HTTP 409 yanıtıyla reddedilir ve uygulamaya dokunulmaz.
Aynı kural taşınmış olduğu için bir portalın toplu silinmesi de artık her uygulamayı kaldırmaz: hâlâ üretimde olan ya da bağlı kaydı bulunan uygulamalar bu işlem sırasında atlanır ve portal silindikten sonra da listede kalmaya devam eder. Bkz. Portal Silme.
Aynı kayıt için hâlihazırda başka bir silme işlemi sürüyorsa istek 409 ile reddedilir; bkz. Eş Zamanlı Silme.
Uygulama oluşturma, düzenleme ve silme işlemleri sistem yöneticisi ile portal yönetimi/geliştirici yetkisine sahip roller tarafından yapılabilir.
Uygulamayı Başka Bir Kuruma Taşıma
Bir uygulama, detay görüntüleme ekranının başlık eylemleri arasındaki Taşı düğmesiyle aynı projedeki başka bir kuruma taşınabilir; düğme hedef kurumun seçildiği bir pencere açar. Taşıma, uygulamanın sahip olduğu her şeyi birlikte götürür: uygulamanın sahip olduğu tüketiciler — kendi API istemcileri, erişim yetkileri ve token'larıyla birlikte — ile uygulamanın kendi API istemcileri ve ürün abonelikleri aynı işlemde yeni kuruma bağlanır, uygulamanın API istemcileri de değişikliğin hemen etkili olması için yeniden gönderilir. Kota kullanım rakamları taşıma sırasında yeniden yazılmaz — bir sonraki düzenli senkronizasyonda kendiliğinden düzelir.
Hedef kurum askıya alınmışsa, taşımadan hemen sonra uygulamanın ve sahip olduğu tüketicilerin trafiği durur. Trafiğin yeniden akması için hedef kurumu devam ettirin.
Aşağıdaki durumlarda taşıma reddedilir ve hiçbir şey değişmez:
- uygulama silinmekteyse ya da zaten arşivlenmişse;
- uygulama için, ya da ayrılınan veya katılınan kurum için hâlihazırda bir silme işlemi sürüyorsa;
- hedef kurum çözümlenemiyorsa, uygulamayla aynı projeye ait değilse ya da başka bir kurumla birleştirilmişse;
- hedef kurum, uygulamanın zaten bağlı olduğu kurumsa.
Kural yalnızca ekranda değil sunucu tarafında da uygulanır. Management API'ye doğrudan gönderilen bir taşıma isteği; silinmekte ya da arşivlenmiş bir uygulama için, çözümlenemeyen ya da başka bir projeye ait bir hedef için, ya da uygulama veya kurumlardan biri için bir silme işlemi sürerken aynı şekilde reddedilir.
Denetim Kayıtları
Bir uygulamada yapılan her değişiklik denetim kaydına yazılır. Bir projeye bağlı olan uygulama artık o projenin kapsamında denetlenir; denetim ekranı ait olduğu projeye göre filtrelendiğinde kayıtları listelenir. Portaldan oluşturulan uygulamaya, portal tek bir projeye bağlıysa o proje atanır; portal birden fazla projeyi kapsıyorsa — ya da hiçbirini — proje tahmin edilmez ve uygulama eskiden olduğu gibi ortak (admin) kapsamda denetlenmeye devam eder.
Bu sürümden önce yazılmış denetim kayıtları geriye dönük olarak düzeltilmez. Kayıtları bugüne kadar ortak (admin) kapsamda listelenen bir uygulamanın önceki geçmişi orada kalır; bu sürümden sonra yazılan kayıtlar ise uygulamanın kendi projesinde görünür. Veri kaybı yoktur — böyle bir uygulamanın geçmişi yalnızca iki kapsamdan okunur.
İlgili Sayfalar
Uygulamaya eri şim izni verilen tüketiciler ve bunların API Proxy bazlı erişim ayarları için Erişim Kontrolü sayfasını, uygulamanın bağlı olduğu hesabın tüketici kayıtları için Tüketiciler sayfasını inceleyebilirsiniz.