JSONata nedir; TR7'de nerelerde kullanılır?
Kısa cevap
JSONata, JSON verisini sorgulamak ve dönüştürmek için kullanılan kısa bir ifade dilidir (JSONata); ör. status = 200 and body.status = "UP" ifadesi yanıtın durum kodu 200 ve gövdedeki status alanı UP olduğunda doğru döner. TR7'de JSONata şu yerlerde kullanılır. Health check'te HTTP/HTTPS profilinin Content Check Mode alanında JSONata expression seçilerek Kurum Servisinin yanıtı JSONata Query ile alan bazında doğrulanır; Expression (JSONata) health check türü ise ağ isteği göndermeden cihaz ve saat bilgisi üzerinde bir ifade değerlendirir. GTM Trigger Actions HTTP/HTTPS tetiklerinde de aynı içerik denetimi bulunur. AGS'de kimlik doğrulama sağlayıcılarının ve MFA'nın JSONata Success Expression alanları ile Custom User Attribute Mapping satırları JSONata ifadesi alır. WAF Event Logs ekranındaki Log Filter ile Bot/DDoS Event Logs ekranındaki Log Filter alan listesinde de ⚡ Expression (JSONata) seçeneği bulunur.
TR7'de Nerede Kullanılır
| Nerede | Alan / etiket | Ne için |
|---|---|---|
| Load Balancer → Profiles → Health Checks (HTTP / HTTPS); GTM → Health Checks | Content Check Mode = JSONata expression → JSONata Query | Yanıtın status, headers, body ve bodyRaw değerleri üzerinde alan bazında doğrulama |
| Aynı ekran | Check Type = Expression (JSONata) → JSONata Expression | Ağ isteği göndermeden cihaz bilgisi ve saat üzerinde karar (ör. device.clusterId = 1) |
| GTM → Trigger Actions (HTTP / HTTPS) | Content Check Mode = JSONata expression | Tetiğin yanıtını aynı ifadeyle denetleme |
| AGS → Authentication → Authentication Providers (HTTP, Web Form); Multi-Factor Authentication (MFA) | JSONata Success Expression (Web Form, MFA) | Kimlik doğrulama ya da OTP gönderim yanıtının başarılı sayılma koşulu |
| AGS → Authentication → Authentication Providers | Custom User Attribute Mapping | Sağlayıcı yanıtındaki değerleri oturum özniteliklerine eşleme |
| Left Monitor Panel → WAF-Protected vServices → vService → Event Logs | Log Filter → ⚡ Expression (JSONata) | WAF olay kayıtlarında ifadeyle filtre (Event Logs'ta AND/OR, NOT, regex ve JSONata ifadeleriyle gelişmiş filtre yazabilir miyim?) |
| Left Monitor Panel → Bot/DDoS Protected vServices → vService → Event Logs | Log Filter → ⚡ Expression (JSONata) | Bot/DDoS olay kayıtlarında ifadeyle filtre |
- Health check ve AGS formlarındaki JSONata alanlarının yanındaki JSONATA butonu JSONata Workshop penceresini açar; ifade burada alan listesi, hazır fonksiyonlar ve örnek senaryolarla denenir.
- Health check ve AGS formlarında yazım hatası olan ifade formun kaydedilmesini engeller; alanın altında JSONata syntax error uyarısı görünür.
Sık Karıştırılan Noktalar
- "Durum kodu 200 ise Kurum Servisi sağlıklıdır." Uygulama durum kodu 200 dönerken gövdede hata bildirebilir; JSONata expression modu gövdeyi de denetler (Health Check'te JSON yanıtını alan bazında doğrulayabilir miyim (Content Check Mode: JSONata Expression)?).
- "Expression (JSONata) türü Kurum Servisine istek gönderir." Bu tür ağ isteği göndermez; yalnızca cihaz ve saat bilgisini değerlendirir. Cluster'da her cihaz ifadeyi kendi bilgileriyle değerlendirdiği için sonuç cihazlar arasında farklı olabilir.
- "JSONata yalnızca JSON gövdelerde çalışır." Health check'te XML gövde de ayrıştırılarak
bodyiçinde sunulur; ayrıştırılamayan gövdebodyRawile ham metin olarak okunur.
Dokümantasyonda nasıl yapılır
