Ana içeriğe geç

vNext v0.0.55: SOAP Entegrasyonu, Function Verb Desteği ve Job Timeout Modeli

· 4 dakikalık okuma
vNext Team
Burgan Tech Engineering

vNext platformunun v0.0.55 sürümü yayınlandı. Bu sürümde SOAP web servisleriyle doğrudan entegrasyon, function endpoint'lerine tam HTTP verb desteği ve iş akışı job'larının sonsuz Busy durumunda takılmasını önleyen bir timeout katmanı öne çıkıyor. Bunların yanı sıra deployment rehberi, annotation convention key'leri ve View Concept modeli de dokümantasyona eklendi.


SOAP Task: Doğrudan SOAP Entegrasyonu

Bu sürümün en büyük eklentilerinden biri, SOAP 1.1 ve 1.2 protokolüyle web servislere doğrudan bağlanabilen SoapTask (Tip: 16).

Özellikle eski core banking ve middleware servislerle çalışırken ayrı bir adapter veya dönüştürme katmanına gerek kalmadan, SOAP endpoint'leri doğrudan task olarak tanımlayabilirsiniz:

{
"attributes": {
"type": "16",
"config": {
"url": "https://api.example.com/services/CustomerService",
"soapAction": "http://example.com/GetCustomer",
"soapVersion": "1.1",
"acceptedStatusCodes": ["500"]
}
}
}

acceptedStatusCodes: ["500"] tanımlamak önemli: SOAP servisler hata durumunda genellikle HTTP 500 üzerinden SOAP Fault döner. Bu ayar olmadan task başarısız sayılır; bu ayarla birlikte OutputHandler'ınıza ulaşır ve fault'u orada handle edebilirsiniz.

Mapping içinde SoapTask sınıfından SetUrl, SetBody, SetSoapAction, AddHeader ve benzeri setter metodlara erişebilirsiniz.

Tam referans için SOAP Task dökümanına bakabilirsiniz.


ScriptBase XML Yardımcıları

SOAP Task ile birlikte, mapping script'lerinde XML işlemeyi kolaylaştıran iki yeni ScriptBase metodu eklendi:

MetodAçıklama
ParseXml(string?)XML stringini XmlDocument'a parse eder. Hatalı XML'de fırlatmaz, null döner
XmlToString(XmlDocument?)XmlDocument'ı tekrar stringe çevirir

ParseXml hiçbir zaman exception fırlatmaz; geçersiz veya boş input için null döner. Bu sayede OutputHandler içinde savunmacı XML işleme güvenli bir şekilde yapılabilir.


Functions: POST, PATCH ve DELETE Desteği

Function endpoint'leri artık GET'in yanı sıra POST, PATCH ve DELETE verb'lerini de destekliyor. Hem domain-level hem de instance-level fonksiyonlarda geçerli:

GET /api/v1/{domain}/functions/{function}
POST /api/v1/{domain}/functions/{function}
PATCH /api/v1/{domain}/functions/{function}
DELETE /api/v1/{domain}/functions/{function}

Bu değişiklik, function endpoint'lerinin tam CRUD senaryolarını karşılamasını sağlıyor. Ayrı BFF katmanı geliştirme ihtiyacı minimize ediliyor.

Aynı sürümde rawResponse alanı da eklendi. rawResponse: true ayarlandığında, mapped rawData platformun standart response modeline sarılmadan doğrudan döndürülür. Legacy API'lerden geçiş senaryolarında işe yarar.


İş Akışı Job Timeout Modeli

Bir transition job'ı çalışırken platform çöker veya beklenmedik bir hata oluşursa, instance Busy durumunda kalıyordu. Bu sürümde üç katmanlı bir timeout modeli devreye girdi:

KatmanSüreAçıklama
Job execution budget300 sTransitionJobHandler'ın kendi bütçesi
Lock lease330 sDistributed lock süresi
Per-invocation Dapr ceiling60 sRemoteInvokerService başına

300 saniye dolduğunda:

  1. Instance BusyFaulted olarak güncellenir
  2. JOB_EXECUTION_TIMEOUT kodu ile bir incident oluşturulur
  3. Açık InstanceTransition kaydı kapatılır

Recovery işlemi, tetikleyici token iptal edilmiş olsa bile her zaman tamamlanır (CancellationToken.None kullanılır). Host kapanırken (SIGTERM) recovery atlanır, sadece MarkAsProcessed çalışır.


Deployment Dokümantasyonu

Yeni bir Deployment bölümü eklendi. Bu bölüm iki rehber içeriyor:

  • Helm Chart — vNext'i Kubernetes cluster'ınıza veya local Minikube ortamınıza OCI chart (ghcr.io/burgan-tech/vnext) ile kurma adımları.
  • Release Viewer — Tenant'ınızdaki domain'leri, çalışan Helm chart versiyonlarını ve uygulama versiyonlarını görsel olarak izleyen araç.

Transition Annotations: Standart Key'ler

v0.0.54'te eklenen annotations alanı için artık platform tarafından tanınan standart key'ler belgelendi. Bu key'leri kullanan UI SDK'ları tutarlı davranış sergileyebilir:

KeyAçıklama
ui/visibility-channelPipe ile ayrılmış kanal listesi (IbWeb, backoffice, IbIvnApp)
ui/prioritySıralama önceliği (düşük = önce)
ui/intentGörsel ipucu: cancel, destructive, close, confirm
"annotations": {
"ui/visibility-channel": "IbIvnApp|backoffice",
"ui/priority": "1",
"ui/intent": "cancel"
}

View Konsepti: State View ve Transition View

View Concept rehberi platform tarafından önerilen etkileşim modelini artık açıkça belgeliyor:

  • State View — state'e bağlı, read-only ekran. Instance'ın mevcut durumunu gösterir.
  • Transition View — transition'a bağlı form ekranı. Kullanıcıdan girdi alır ve transition'ı tetikler.

State Function yanıtındaki hasView alanı, istemcinin doğrudan transition mı göndereceğine yoksa önce View Function'ı mı çağıracağına karar vermesini sağlar.


Özet

AlanDeğişiklik
EntegrasyonSoapTask (Tip 16): SOAP 1.1/1.2 web servis çağrısı
ScriptingParseXml / XmlToString ScriptBase yardımcıları
FunctionsPOST, PATCH, DELETE verb desteği + rawResponse alanı
GüvenilirlikJob execution timeout modeli (300s bütçe + Busy→Faulted recovery)
DeploymentHelm Chart ve Release Viewer dokümantasyonu
Annotationsui/visibility-channel, ui/priority, ui/intent standart key'leri
ViewState View / Transition View etkileşim modeli belgelendi

Teknik detaylar, konfigürasyon örnekleri ve issue referansları için v0.0.55 Release Notes sayfasına bakabilirsiniz.


vNext Runtime Platform Team
Mayıs 2026