@burgan-tech/vnext-core-runtime
Version:
vNext Core Domain - Runtime Package for engine deployment
1,362 lines • 83 kB
JSON
{
"key": "workflow",
"version": "1.0.0",
"domain": "core",
"flow": "sys-schemas",
"flowVersion": "1.0.0",
"tags": [
"core",
"workflow",
"stateMachine",
"schema"
],
"attributes": {
"type": "workflow",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://schemas.vnext.com/core/workflow.json",
"title": "Workflow Definition",
"description": "vNext platformunda iş akışı tanımlarını yapılandıran şema. Sadece workflow attributes yapısını tanımlar.",
"type": "object",
"properties": {
"timeout": {
"anyOf": [
{
"type": "object",
"description": "Workflow timeout yapılandırması",
"required": [
"key",
"target",
"versionStrategy",
"timer"
],
"properties": {
"key": {
"type": "string",
"description": "Timeout anahtar değeri",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"target": {
"type": "string",
"description": "Timeout durumunda hedef state",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"versionStrategy": {
"type": "string",
"enum": [
"Minor",
"Major"
],
"description": "Timeout sonrası versiyon stratejisi",
"maxLength": 50
},
"timer": {
"type": "object",
"required": [
"reset",
"duration"
],
"properties": {
"reset": {
"type": "string",
"description": "Timer reset stratejisi"
},
"duration": {
"type": "string",
"pattern": "^P(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$",
"description": "Süre bilgisi (ISO 8601 formatında)",
"maxLength": 100
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Workflow genel timeout tanımı"
},
"type": {
"oneOf": [
{
"const": "C",
"description": "Core workflow türü"
},
{
"const": "F",
"description": "Flow workflow türü"
},
{
"const": "S",
"description": "SubFlow workflow türü"
},
{
"const": "P",
"description": "Sub Process workflow türü"
}
],
"description": "Workflow'un türü"
},
"labels": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"language"
],
"properties": {
"label": {
"type": "string",
"description": "Kullanıcıya gösterilecek metin içeriği",
"maxLength": 500
},
"language": {
"type": "string",
"description": "ISO 639 formatında dil kodu",
"pattern": "^[a-z]{2}(-[A-Z]{2})?$",
"maxLength": 10
}
},
"additionalProperties": false
},
"minItems": 1,
"examples": [
[
{
"label": "User Login",
"language": "en-US"
},
{
"label": "Kullanıcı Girişi",
"language": "tr-TR"
}
],
[
{
"label": "Data Processing",
"language": "en-US"
},
{
"label": "Veri İşleme",
"language": "tr-TR"
}
]
],
"description": "Workflow'un çoklu dil etiketleri"
},
"functions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"domain": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu domain (cross-domain referanslar için zorunlu)",
"pattern": "^[a-zA-Z\\-]+$",
"maxLength": 100,
"examples": [
"core",
"idm",
"banking",
"payment"
]
},
"flow": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu flow adı",
"pattern": "^[a-z\\-]+$",
"maxLength": 100
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Referans edilen kaydın sürüm bilgisi (semantic versioning MAJOR.MINOR.PATCH formatında)",
"maxLength": 50
}
},
"required": [
"key",
"domain",
"flow",
"version"
],
"additionalProperties": false,
"examples": [
{
"key": "user-authentication-workflow",
"domain": "idm",
"flow": "user-authentication",
"version": "1.0.0"
},
{
"key": "user-login-state",
"domain": "core",
"flow": "authentication",
"version": "2.1.0"
},
{
"key": "payment-validation-task",
"domain": "banking",
"flow": "payment-process",
"version": "1.2.3"
}
]
},
"description": "Workflow ile ilişkili function referansları"
},
"sharedTransitions": {
"type": "array",
"items": {
"allOf": [
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Geçişin anahtar değeri. Geçiş talebinde kullanılır ve akış özelinde tekildir.",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"target": {
"type": "string",
"description": "Geçiş başarılı tamamlandığında erişeceği state key'i",
"pattern": "^[a-zA-Z0-9\\-]+$",
"maxLength": 255
},
"from": {
"type": "string",
"description": "Kaynak state key'i",
"pattern": "^[a-zA-Z0-9\\-]+$",
"maxLength": 255
},
"versionStrategy": {
"type": "string",
"enum": [
"Minor",
"Major"
],
"description": "Başarılı geçiş sonrasında versiyon artış stratejisi",
"maxLength": 50
},
"triggerType": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"description": "Trigger türü. 0=Manual, 1=Automatic, 2=Timeout, 3=Event"
},
"availableIn": {
"type": "array",
"items": {
"type": "string"
},
"description": "Bu transition'ın kullanılabileceği state'lerin listesi"
},
"schema": {
"anyOf": [
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"domain": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu domain (cross-domain referanslar için zorunlu)",
"pattern": "^[a-zA-Z\\-]+$",
"maxLength": 100,
"examples": [
"core",
"idm",
"banking",
"payment"
]
},
"flow": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu flow adı",
"pattern": "^[a-zA-Z\\-]+$",
"maxLength": 100
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Referans edilen kaydın sürüm bilgisi (semantic versioning MAJOR.MINOR.PATCH formatında)",
"maxLength": 50
}
},
"required": [
"key",
"domain",
"flow",
"version"
],
"additionalProperties": false,
"examples": [
{
"key": "user-authentication-workflow",
"domain": "idm",
"flow": "user-authentication",
"version": "1.0.0"
},
{
"key": "user-login-state",
"domain": "core",
"flow": "authentication",
"version": "2.1.0"
},
{
"key": "payment-validation-task",
"domain": "banking",
"flow": "payment-process",
"version": "1.2.3"
}
]
},
{
"type": "null"
}
],
"description": "Geçişi çalıştırmak için gönderilmesi gereken veri şeması referansı"
},
"rule": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"location"
],
"properties": {
"code": {
"type": "string",
"description": "Rule kodu"
},
"location": {
"type": "string",
"description": "Kod dosyasının konumu"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Kural tabanlı ilerleme olacak ise kuralın tanımlandığı kod"
},
"timer": {
"anyOf": [
{
"type": "object",
"required": [
"reset",
"duration"
],
"properties": {
"reset": {
"type": "string",
"description": "Zamanlayıcı reset stratejisi"
},
"duration": {
"type": "string",
"pattern": "^P(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$",
"description": "Süre bilgisi (ISO 8601 formatında)",
"maxLength": 100
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Otomatik olarak geçiş çalışacak ise zamanlama bilgisi"
},
"labels": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"language"
],
"properties": {
"label": {
"type": "string",
"description": "Kullanıcıya gösterilecek metin içeriği",
"maxLength": 500
},
"language": {
"type": "string",
"description": "ISO 639 formatında dil kodu",
"pattern": "^[a-z]{2}(-[A-Z]{2})?$",
"maxLength": 10
}
},
"additionalProperties": false
},
"minItems": 1,
"examples": [
[
{
"label": "User Login",
"language": "en"
},
{
"label": "Kullanıcı Girişi",
"language": "tr"
}
],
[
{
"label": "Data Processing",
"language": "en-US"
},
{
"label": "Veri İşleme",
"language": "tr-TR"
}
]
],
"description": "Çok dilli geçiş ismi"
},
"view": {
"anyOf": [
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"domain": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu domain (cross-domain referanslar için zorunlu)",
"pattern": "^[a-zA-Z\\-]+$",
"maxLength": 100,
"examples": [
"core",
"idm",
"banking",
"payment"
]
},
"flow": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu flow adı",
"pattern": "^[a-z\\-]+$",
"maxLength": 100
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Referans edilen kaydın sürüm bilgisi (semantic versioning MAJOR.MINOR.PATCH formatında)",
"maxLength": 50
}
},
"required": [
"key",
"domain",
"flow",
"version"
],
"additionalProperties": false,
"examples": [
{
"key": "user-authentication-workflow",
"domain": "idm",
"flow": "user-authentication",
"version": "1.0.0"
},
{
"key": "user-login-state",
"domain": "core",
"flow": "authentication",
"version": "2.1.0"
},
{
"key": "payment-validation-task",
"domain": "banking",
"flow": "payment-process",
"version": "1.2.3"
}
]
},
{
"type": "null"
}
],
"description": "Geçişte kullanılacak view referansı"
},
"onExecutionTasks": {
"type": "array",
"items": {
"type": "object",
"required": [
"order",
"task",
"mapping"
],
"properties": {
"order": {
"type": "integer",
"minimum": 1,
"description": "Görevin çalışma sırası"
},
"task": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-zA-Z0-9\\-]+$",
"maxLength": 255
},
"domain": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu domain (cross-domain referanslar için zorunlu)",
"pattern": "^[a-zA-Z\\-]+$",
"maxLength": 100,
"examples": [
"core",
"idm",
"banking",
"payment"
]
},
"flow": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu flow adı",
"pattern": "^[a-z\\-]+$",
"maxLength": 100
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Referans edilen kaydın sürüm bilgisi (semantic versioning MAJOR.MINOR.PATCH formatında)",
"maxLength": 50
}
},
"required": [
"key",
"domain",
"flow",
"version"
],
"additionalProperties": false,
"examples": [
{
"key": "user-authentication-workflow",
"domain": "idm",
"flow": "user-authentication",
"version": "1.0.0"
},
{
"key": "user-login-state",
"domain": "core",
"flow": "authentication",
"version": "2.1.0"
},
{
"key": "payment-validation-task",
"domain": "banking",
"flow": "payment-process",
"version": "1.2.3"
}
],
"description": "Çalıştırılacak task referansı"
},
"mapping": {
"type": "object",
"required": [
"code",
"location"
],
"properties": {
"code": {
"type": "string",
"description": "Mapping kodu"
},
"location": {
"type": "string",
"description": "Kod dosyasının konumu"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"description": "Geçiş tetiklendiğinde çalıştırılacak görevler"
}
},
"required": [
"key",
"target",
"versionStrategy",
"triggerType",
"labels"
],
"additionalProperties": false
},
{
"type": "object",
"required": [
"availableIn"
],
"properties": {
"availableIn": {
"type": "array",
"items": {
"type": "string"
},
"description": "Bu transition'ın kullanılabileceği state'lerin listesi"
}
}
}
]
},
"description": "Birden fazla state'de kullanılabilecek ortak transition'lar"
},
"extensions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"domain": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu domain (cross-domain referanslar için zorunlu)",
"pattern": "^[a-zA-Z\\-]+$",
"maxLength": 100,
"examples": [
"core",
"idm",
"banking",
"payment"
]
},
"flow": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu flow adı",
"pattern": "^[a-z\\-]+$",
"maxLength": 100
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Referans edilen kaydın sürüm bilgisi (semantic versioning MAJOR.MINOR.PATCH formatında)",
"maxLength": 50
}
},
"required": [
"key",
"domain",
"flow",
"version"
],
"additionalProperties": false,
"examples": [
{
"key": "user-authentication-workflow",
"domain": "idm",
"flow": "user-authentication",
"version": "1.0.0"
},
{
"key": "user-login-state",
"domain": "core",
"flow": "authentication",
"version": "2.1.0"
},
{
"key": "payment-validation-task",
"domain": "banking",
"flow": "payment-process",
"version": "1.2.3"
}
]
},
"description": "Workflow ile ilişkili extension referansları"
},
"features": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"domain": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu domain (cross-domain referanslar için zorunlu)",
"pattern": "^[a-zA-Z\\-]+$",
"maxLength": 100,
"examples": [
"core",
"idm",
"banking",
"payment"
]
},
"flow": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu flow adı",
"pattern": "^[a-z0-9-]+$",
"maxLength": 100
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Referans edilen kaydın sürüm bilgisi (semantic versioning MAJOR.MINOR.PATCH formatında)",
"maxLength": 50
}
},
"required": [
"key",
"domain",
"flow",
"version"
],
"additionalProperties": false,
"examples": [
{
"key": "user-authentication-workflow",
"domain": "idm",
"flow": "user-authentication",
"version": "1.0.0"
},
{
"key": "user-login-state",
"domain": "core",
"flow": "authentication",
"version": "2.1.0"
},
{
"key": "payment-validation-task",
"domain": "banking",
"flow": "payment-process",
"version": "1.2.3"
}
]
},
"description": "Workflow ile ilişkili feature referansları"
},
"startTransition": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Geçişin anahtar değeri. Geçiş talebinde kullanılır ve akış özelinde tekildir.",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"target": {
"type": "string",
"description": "Geçiş başarılı tamamlandığında erişeceği state key'i",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"from": {
"type": "string",
"description": "Kaynak state key'i",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"versionStrategy": {
"type": "string",
"enum": [
"Minor",
"Major"
],
"description": "Başarılı geçiş sonrasında versiyon artış stratejisi",
"maxLength": 50
},
"triggerType": {
"type": "integer",
"enum": [
0,
1,
2,
3
],
"description": "Trigger türü. 0=Manual, 1=Automatic, 2=Timeout, 3=Event"
},
"availableIn": {
"type": "array",
"items": {
"type": "string"
},
"description": "Bu transition'ın kullanılabileceği state'lerin listesi"
},
"schema": {
"anyOf": [
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"domain": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu domain (cross-domain referanslar için zorunlu)",
"pattern": "^[a-z]+$",
"maxLength": 100,
"examples": [
"core",
"idm",
"banking",
"payment"
]
},
"flow": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu flow adı",
"pattern": "^[a-z0-9-]+$",
"maxLength": 100
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Referans edilen kaydın sürüm bilgisi (semantic versioning MAJOR.MINOR.PATCH formatında)",
"maxLength": 50
}
},
"required": [
"key",
"domain",
"flow",
"version"
],
"additionalProperties": false,
"examples": [
{
"key": "user-authentication-workflow",
"domain": "idm",
"flow": "user-authentication",
"version": "1.0.0"
},
{
"key": "user-login-state",
"domain": "core",
"flow": "authentication",
"version": "2.1.0"
},
{
"key": "payment-validation-task",
"domain": "banking",
"flow": "payment-process",
"version": "1.2.3"
}
]
},
{
"type": "null"
}
],
"description": "Geçişi çalıştırmak için gönderilmesi gereken veri şeması referansı"
},
"rule": {
"anyOf": [
{
"type": "object",
"required": [
"code",
"location"
],
"properties": {
"code": {
"type": "string",
"description": "Rule kodu"
},
"location": {
"type": "string",
"description": "Kod dosyasının konumu"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Kural tabanlı ilerleme olacak ise kuralın tanımlandığı kod"
},
"timer": {
"anyOf": [
{
"type": "object",
"required": [
"reset",
"duration"
],
"properties": {
"reset": {
"type": "string",
"description": "Zamanlayıcı reset stratejisi"
},
"duration": {
"type": "string",
"pattern": "^P(?=\\d|T\\d)(\\d+Y)?(\\d+M)?(\\d+D)?(T(\\d+H)?(\\d+M)?(\\d+S)?)?$",
"description": "Süre bilgisi (ISO 8601 formatında)",
"maxLength": 100
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Otomatik olarak geçiş çalışacak ise zamanlama bilgisi"
},
"labels": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"language"
],
"properties": {
"label": {
"type": "string",
"description": "Kullanıcıya gösterilecek metin içeriği",
"maxLength": 500
},
"language": {
"type": "string",
"description": "ISO 639 formatında dil kodu",
"pattern": "^[a-z]{2}(-[A-Z]{2})?$",
"maxLength": 10
}
},
"additionalProperties": false
},
"minItems": 1,
"examples": [
[
{
"label": "User Login",
"language": "en"
},
{
"label": "Kullanıcı Girişi",
"language": "tr"
}
],
[
{
"label": "Data Processing",
"language": "en-US"
},
{
"label": "Veri İşleme",
"language": "tr-TR"
}
]
],
"description": "Çok dilli geçiş ismi"
},
"view": {
"anyOf": [
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"domain": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu domain (cross-domain referanslar için zorunlu)",
"pattern": "^[a-zA-Z\\-]+$",
"maxLength": 100,
"examples": [
"core",
"idm",
"banking",
"payment"
]
},
"flow": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu flow adı",
"pattern": "^[a-z\\-]+$",
"maxLength": 100
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Referans edilen kaydın sürüm bilgisi (semantic versioning MAJOR.MINOR.PATCH formatında)",
"maxLength": 50
}
},
"required": [
"key",
"domain",
"flow",
"version"
],
"additionalProperties": false,
"examples": [
{
"key": "user-authentication-workflow",
"domain": "idm",
"flow": "user-authentication",
"version": "1.0.0"
},
{
"key": "user-login-state",
"domain": "core",
"flow": "authentication",
"version": "2.1.0"
},
{
"key": "payment-validation-task",
"domain": "banking",
"flow": "payment-process",
"version": "1.2.3"
}
]
},
{
"type": "null"
}
],
"description": "Geçişte kullanılacak view referansı"
},
"onExecutionTasks": {
"type": "array",
"items": {
"type": "object",
"required": [
"order",
"task",
"mapping"
],
"properties": {
"order": {
"type": "integer",
"minimum": 1,
"description": "Görevin çalışma sırası"
},
"task": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"domain": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu domain (cross-domain referanslar için zorunlu)",
"pattern": "^[a-zA-Z\\-]+$",
"maxLength": 100,
"examples": [
"core",
"idm",
"banking",
"payment"
]
},
"flow": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu flow adı",
"pattern": "^[a-z\\-]+$",
"maxLength": 100
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Referans edilen kaydın sürüm bilgisi (semantic versioning MAJOR.MINOR.PATCH formatında)",
"maxLength": 50
}
},
"required": [
"key",
"domain",
"flow",
"version"
],
"additionalProperties": false,
"examples": [
{
"key": "user-authentication-workflow",
"domain": "idm",
"flow": "user-authentication",
"version": "1.0.0"
},
{
"key": "user-login-state",
"domain": "core",
"flow": "authentication",
"version": "2.1.0"
},
{
"key": "payment-validation-task",
"domain": "banking",
"flow": "payment-process",
"version": "1.2.3"
}
],
"description": "Çalıştırılacak task referansı"
},
"mapping": {
"type": "object",
"required": [
"code",
"location"
],
"properties": {
"code": {
"type": "string",
"description": "Mapping kodu"
},
"location": {
"type": "string",
"description": "Kod dosyasının konumu"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"description": "Geçiş tetiklendiğinde çalıştırılacak görevler"
}
},
"required": [
"key",
"target",
"versionStrategy",
"triggerType",
"labels"
],
"additionalProperties": false,
"description": "Workflow'u başlatan initial transition"
},
"states": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "State'in anahtar değeri. Workflow içinde benzersiz olmalıdır.",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"stateType": {
"type": "integer",
"enum": [
1,
2,
3,
4
],
"description": "State'in türü. 1=Initial, 2=Intermediate, 3=Final, 4=SubFlow"
},
"stateSubType": {
"type": "integer",
"enum": [
1,
2,
3
],
"description": "Final state'ler için alt tür. 1=Success, 2=Failed, 3=Cancelled"
},
"versionStrategy": {
"type": "string",
"enum": [
"Minor",
"Major"
],
"description": "State'in versiyon yönetim stratejisi",
"maxLength": 50
},
"labels": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"language"
],
"properties": {
"label": {
"type": "string",
"description": "Kullanıcıya gösterilecek metin içeriği",
"maxLength": 500
},
"language": {
"type": "string",
"description": "ISO 639 formatında dil kodu",
"pattern": "^[a-z]{2}(-[A-Z]{2})?$",
"maxLength": 10
}
},
"additionalProperties": false
},
"minItems": 1,
"examples": [
[
{
"label": "User Login",
"language": "en"
},
{
"label": "Kullanıcı Girişi",
"language": "tr"
}
],
[
{
"label": "Data Processing",
"language": "en-US"
},
{
"label": "Veri İşleme",
"language": "tr-TR"
}
]
],
"description": "State'in çoklu dil etiketleri"
},
"view": {
"anyOf": [
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-z0-9-]+$",
"maxLength": 255
},
"domain": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu domain (cross-domain referanslar için zorunlu)",
"pattern": "^[a-zA-Z\\-]+$",
"maxLength": 100,
"examples": [
"core",
"idm",
"banking",
"payment"
]
},
"flow": {
"type": "string",
"description": "Referans edilen kaydın bulunduğu flow adı",
"pattern": "^[a-z\\-]+$",
"maxLength": 100
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$",
"description": "Referans edilen kaydın sürüm bilgisi (semantic versioning MAJOR.MINOR.PATCH formatında)",
"maxLength": 50
}
},
"required": [
"key",
"domain",
"flow",
"version"
],
"additionalProperties": false,
"examples": [
{
"key": "user-authentication-workflow",
"domain": "idm",
"flow": "user-authentication",
"version": "1.0.0"
},
{
"key": "user-login-state",
"domain": "core",
"flow": "authentication",
"version": "2.1.0"
},
{
"key": "payment-validation-task",
"domain": "banking",
"flow": "payment-process",
"version": "1.2.3"
}
]
},
{
"type": "null"
}
],
"description": "State ile ilişkili view referansı"
},
"subFlow": {
"anyOf": [
{
"type": "object",
"required": [
"type",
"process"
],
"properties": {
"type": {
"type": "string",
"enum": [
"C",
"F",
"S",
"P"
],
"description": "SubFlow türü. C=Core, F=Flow, S=SubFlow, P=SubProcess",
"maxLength": 10
},
"process": {
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Referans edilen kaydın anahtar değeri (okunabilir identifier)",
"pattern": "^[a-zA-Z0-9\\-]+$",
"maxLength": 255
},
"domain": {
"type": "str