UNPKG

@burgan-tech/vnext-core-runtime

Version:

vNext Core Domain - Runtime Package for engine deployment

1,347 lines 124 kB
{ "key": "sys-schemas", "version": "1.0.0", "domain": "core", "flow": "sys-flows", "flowVersion": "1.0.0", "tags": [ "core", "schema", "lifecycle", "repository" ], "attributes": { "timeout": null, "type": "F", "labels": [ { "language": "en-US", "label": "Schema Lifecycle Management" }, { "language": "tr-TR", "label": "Şema Yaşam Döngüsü Yönetimi" } ], "functions": [], "sharedTransitions": [], "extensions": [], "features": [], "startTransition": { "key": "create", "target": "draft", "triggerType": 0, "labels": [ { "language": "en-US", "label": "Create Schema" }, { "language": "tr-TR", "label": "Şema Oluştur" } ], "versionStrategy": "Minor", "schema": { "key": "schema", "version": "1.0.0", "domain": "core", "flow": "sys-schemas" }, "onExecutionTasks": [], "view": null }, "states": [ { "key": "draft", "stateType": 1, "labels": [ { "language": "en-US", "label": "Draft State" }, { "language": "tr-TR", "label": "Taslak Durumu" } ], "transitions": [ { "key": "activate", "from": "draft", "target": "active", "triggerType": 0, "labels": [ { "language": "en-US", "label": "Activate Schema" }, { "language": "tr-TR", "label": "Şemayı Aktifleştir" } ], "versionStrategy": "Minor", "onExecutionTasks": [ { "order": 1, "task": { "key": "invalidate-cache", "version": "1.0.0", "domain": "core", "flow": "sys-tasks" }, "mapping": { "location": "./src/InvalideCacheMapping.csx", "code": "dXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKcHVibGljIGNsYXNzIEludmFsaWRhdGVDYWNoZU1hcHBpbmcgOiBJTWFwcGluZwp7CiAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogIHsKICAgIHZhciBkYXByVGFzayA9IHRhc2sgYXMgRGFwclNlcnZpY2VUYXNrOwogICAgZGFwclRhc2suU2V0TWV0aG9kTmFtZSgiL2FwaS92MS9hZG1pbi9pbnZhbGlkYXRlIik7CiAgICB2YXIgZW52aXJvbm1lbnQgPSBFbnZpcm9ubWVudC5HZXRFbnZpcm9ubWVudFZhcmlhYmxlKCJBU1BORVRDT1JFX0VOVklST05NRU5UIik7CgogICAgaWYgKGVudmlyb25tZW50ID09ICJEZXZlbG9wbWVudCIpCiAgICB7CiAgICAgIC8vIExvY2FsIGRldmVsb3BtZW50CiAgICAgIGRhcHJUYXNrLlNldEFwcElkKCJ2bmV4dC1hcHAiKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgZGFwclRhc2suU2V0QXBwSWQoJCJhbW9ycGhpZS12bmV4dC57ZW52aXJvbm1lbnQuVG9Mb3dlcigpfS1hbW9ycGhpZS12bmV4dCIpOwogICAgfQoKICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICB7CiAgICAgIERhdGEgPSBuZXcKICAgICAgewogICAgICAgIGtleSA9IGNvbnRleHQuSW5zdGFuY2UuS2V5LAogICAgICAgIGZsb3cgPSBjb250ZXh0LldvcmtmbG93LktleSwKICAgICAgICBkb21haW4gPSBjb250ZXh0LlJ1bnRpbWUuRG9tYWluLAogICAgICAgIHZlcnNpb24gPSBjb250ZXh0Lkluc3RhbmNlLkxhdGVzdERhdGE/LlZlcnNpb24gPz8gIjEuMC4wIgogICAgICB9LAogICAgICBIZWFkZXJzID0gbnVsbAogICAgfSk7CiAgfQoKICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgewogICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgfQp9Cg==" } }, { "order": 1, "task": { "key": "invalidate-cache", "version": "1.0.0", "domain": "core", "flow": "sys-tasks" }, "mapping": { "location": "./src/InvalideCacheExecutionMapping.csx", "code": "dXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKcHVibGljIGNsYXNzIEludmFsaWRlQ2FjaGVFeGVjdXRpb25NYXBwaW5nIDogSU1hcHBpbmcKewogIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICB7CiAgICB2YXIgZGFwclRhc2sgPSB0YXNrIGFzIERhcHJTZXJ2aWNlVGFzazsKICAgIGRhcHJUYXNrLlNldE1ldGhvZE5hbWUoIi9hcGkvdjEvdXRpbGl0aWVzL2ludmFsaWRhdGUiKTsKICAgIHZhciBlbnZpcm9ubWVudCA9IEVudmlyb25tZW50LkdldEVudmlyb25tZW50VmFyaWFibGUoIkFTUE5FVENPUkVfRU5WSVJPTk1FTlQiKTsKCiAgICBpZiAoZW52aXJvbm1lbnQgPT0gIkRldmVsb3BtZW50IikKICAgIHsKICAgICAgLy8gTG9jYWwgZGV2ZWxvcG1lbnQKICAgICAgZGFwclRhc2suU2V0QXBwSWQoInZuZXh0LWV4ZWN1dGlvbi1hcHAiKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgZGFwclRhc2suU2V0QXBwSWQoJCJhbW9ycGhpZS12bmV4dC1leGVjdXRpb24ue2Vudmlyb25tZW50LlRvTG93ZXIoKX0tYW1vcnBoaWUtdm5leHQtZXhlY3V0aW9uIik7CiAgICB9CgogICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgIHsKICAgICAgRGF0YSA9IG5ldwogICAgICB7CiAgICAgICAga2V5ID0gY29udGV4dC5JbnN0YW5jZS5LZXksCiAgICAgICAgZmxvdyA9IGNvbnRleHQuV29ya2Zsb3cuS2V5LAogICAgICAgIGRvbWFpbiA9IGNvbnRleHQuUnVudGltZS5Eb21haW4sCiAgICAgICAgdmVyc2lvbiA9IGNvbnRleHQuSW5zdGFuY2UuTGF0ZXN0RGF0YT8uVmVyc2lvbiA/PyAiMS4wLjAiCiAgICAgIH0sCiAgICAgIEhlYWRlcnMgPSBudWxsCiAgICB9KTsKICB9CgogIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICB7CiAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICB9Cn0K" } } ], "view": null }, { "key": "delete", "from": "draft", "target": "draft", "triggerType": 0, "labels": [ { "language": "en-US", "label": "Delete Draft" }, { "language": "tr-TR", "label": "Taslağı Sil" } ], "versionStrategy": "Minor", "onExecutionTasks": [], "view": null } ], "view": null, "onEntries": [], "onExits": [], "versionStrategy": "Minor" }, { "key": "active", "stateType": 2, "labels": [ { "language": "en-US", "label": "Active State" }, { "language": "tr-TR", "label": "Aktif Durumu" } ], "transitions": [ { "key": "deactivate", "from": "active", "target": "passive", "triggerType": 0, "labels": [ { "language": "en-US", "label": "Deactivate Schema" }, { "language": "tr-TR", "label": "Şemayı Pasifleştir" } ], "versionStrategy": "Minor", "onExecutionTasks": [], "view": null }, { "key": "update", "from": "active", "target": "active", "triggerType": 0, "labels": [ { "language": "en-US", "label": "Update Schema" }, { "language": "tr-TR", "label": "Şemayı Güncelle" } ], "versionStrategy": "Minor", "onExecutionTasks": [ { "order": 1, "task": { "key": "invalidate-cache", "version": "1.0.0", "domain": "core", "flow": "sys-tasks" }, "mapping": { "location": "./src/InvalideCacheMapping.csx", "code": "dXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKcHVibGljIGNsYXNzIEludmFsaWRhdGVDYWNoZU1hcHBpbmcgOiBJTWFwcGluZwp7CiAgcHVibGljIFRhc2s8U2NyaXB0UmVzcG9uc2U+IElucHV0SGFuZGxlcihXb3JrZmxvd1Rhc2sgdGFzaywgU2NyaXB0Q29udGV4dCBjb250ZXh0KQogIHsKICAgIHZhciBkYXByVGFzayA9IHRhc2sgYXMgRGFwclNlcnZpY2VUYXNrOwogICAgZGFwclRhc2suU2V0TWV0aG9kTmFtZSgiL2FwaS92MS9hZG1pbi9pbnZhbGlkYXRlIik7CiAgICB2YXIgZW52aXJvbm1lbnQgPSBFbnZpcm9ubWVudC5HZXRFbnZpcm9ubWVudFZhcmlhYmxlKCJBU1BORVRDT1JFX0VOVklST05NRU5UIik7CgogICAgaWYgKGVudmlyb25tZW50ID09ICJEZXZlbG9wbWVudCIpCiAgICB7CiAgICAgIC8vIExvY2FsIGRldmVsb3BtZW50CiAgICAgIGRhcHJUYXNrLlNldEFwcElkKCJ2bmV4dC1hcHAiKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgZGFwclRhc2suU2V0QXBwSWQoJCJhbW9ycGhpZS12bmV4dC57ZW52aXJvbm1lbnQuVG9Mb3dlcigpfS1hbW9ycGhpZS12bmV4dCIpOwogICAgfQoKICAgIHJldHVybiBUYXNrLkZyb21SZXN1bHQobmV3IFNjcmlwdFJlc3BvbnNlCiAgICB7CiAgICAgIERhdGEgPSBuZXcKICAgICAgewogICAgICAgIGtleSA9IGNvbnRleHQuSW5zdGFuY2UuS2V5LAogICAgICAgIGZsb3cgPSBjb250ZXh0LldvcmtmbG93LktleSwKICAgICAgICBkb21haW4gPSBjb250ZXh0LlJ1bnRpbWUuRG9tYWluLAogICAgICAgIHZlcnNpb24gPSBjb250ZXh0Lkluc3RhbmNlLkxhdGVzdERhdGE/LlZlcnNpb24gPz8gIjEuMC4wIgogICAgICB9LAogICAgICBIZWFkZXJzID0gbnVsbAogICAgfSk7CiAgfQoKICBwdWJsaWMgVGFzazxTY3JpcHRSZXNwb25zZT4gT3V0cHV0SGFuZGxlcihTY3JpcHRDb250ZXh0IGNvbnRleHQpCiAgewogICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UoKSk7CiAgfQp9Cg==" } }, { "order": 1, "task": { "key": "invalidate-cache", "version": "1.0.0", "domain": "core", "flow": "sys-tasks" }, "mapping": { "location": "./src/InvalideCacheExecutionMapping.csx", "code": "dXNpbmcgU3lzdGVtLlRocmVhZGluZy5UYXNrczsKdXNpbmcgQkJULldvcmtmbG93LlNjcmlwdGluZzsKdXNpbmcgQkJULldvcmtmbG93LkRlZmluaXRpb25zOwoKcHVibGljIGNsYXNzIEludmFsaWRlQ2FjaGVFeGVjdXRpb25NYXBwaW5nIDogSU1hcHBpbmcKewogIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBJbnB1dEhhbmRsZXIoV29ya2Zsb3dUYXNrIHRhc2ssIFNjcmlwdENvbnRleHQgY29udGV4dCkKICB7CiAgICB2YXIgZGFwclRhc2sgPSB0YXNrIGFzIERhcHJTZXJ2aWNlVGFzazsKICAgIGRhcHJUYXNrLlNldE1ldGhvZE5hbWUoIi9hcGkvdjEvdXRpbGl0aWVzL2ludmFsaWRhdGUiKTsKICAgIHZhciBlbnZpcm9ubWVudCA9IEVudmlyb25tZW50LkdldEVudmlyb25tZW50VmFyaWFibGUoIkFTUE5FVENPUkVfRU5WSVJPTk1FTlQiKTsKCiAgICBpZiAoZW52aXJvbm1lbnQgPT0gIkRldmVsb3BtZW50IikKICAgIHsKICAgICAgLy8gTG9jYWwgZGV2ZWxvcG1lbnQKICAgICAgZGFwclRhc2suU2V0QXBwSWQoInZuZXh0LWV4ZWN1dGlvbi1hcHAiKTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgZGFwclRhc2suU2V0QXBwSWQoJCJhbW9ycGhpZS12bmV4dC1leGVjdXRpb24ue2Vudmlyb25tZW50LlRvTG93ZXIoKX0tYW1vcnBoaWUtdm5leHQtZXhlY3V0aW9uIik7CiAgICB9CgogICAgcmV0dXJuIFRhc2suRnJvbVJlc3VsdChuZXcgU2NyaXB0UmVzcG9uc2UKICAgIHsKICAgICAgRGF0YSA9IG5ldwogICAgICB7CiAgICAgICAga2V5ID0gY29udGV4dC5JbnN0YW5jZS5LZXksCiAgICAgICAgZmxvdyA9IGNvbnRleHQuV29ya2Zsb3cuS2V5LAogICAgICAgIGRvbWFpbiA9IGNvbnRleHQuUnVudGltZS5Eb21haW4sCiAgICAgICAgdmVyc2lvbiA9IGNvbnRleHQuSW5zdGFuY2UuTGF0ZXN0RGF0YT8uVmVyc2lvbiA/PyAiMS4wLjAiCiAgICAgIH0sCiAgICAgIEhlYWRlcnMgPSBudWxsCiAgICB9KTsKICB9CgogIHB1YmxpYyBUYXNrPFNjcmlwdFJlc3BvbnNlPiBPdXRwdXRIYW5kbGVyKFNjcmlwdENvbnRleHQgY29udGV4dCkKICB7CiAgICByZXR1cm4gVGFzay5Gcm9tUmVzdWx0KG5ldyBTY3JpcHRSZXNwb25zZSgpKTsKICB9Cn0K" } } ], "schema": { "key": "schema", "version": "1.0.0", "domain": "core", "flow": "sys-schemas" }, "view": null } ], "view": null, "onEntries": [], "onExits": [], "versionStrategy": "Minor" }, { "key": "passive", "stateType": 2, "labels": [ { "language": "en-US", "label": "Passive State" }, { "language": "tr-TR", "label": "Pasif Durumu" } ], "transitions": [ { "key": "reactivate", "from": "passive", "target": "active", "triggerType": 0, "labels": [ { "language": "en-US", "label": "Reactivate Schema" }, { "language": "tr-TR", "label": "Şemayı Yeniden Aktifleştir" } ], "versionStrategy": "Minor", "onExecutionTasks": [], "view": null }, { "key": "archive", "from": "passive", "target": "passive", "triggerType": 0, "labels": [ { "language": "en-US", "label": "Archive Schema" }, { "language": "tr-TR", "label": "Şemayı Arşivle" } ], "versionStrategy": "Minor", "onExecutionTasks": [], "view": null } ], "view": null, "onEntries": [], "onExits": [], "versionStrategy": "Minor" }, { "key": "deleted", "stateType": 2, "labels": [ { "language": "en-US", "label": "Deleted State" }, { "language": "tr-TR", "label": "Silinmiş Durum" } ], "transitions": [ { "key": "recover", "from": "deleted", "target": "active", "triggerType": 0, "labels": [ { "language": "en-US", "label": "Recover" }, { "language": "tr-TR", "label": "Geri Al" } ], "versionStrategy": "Minor", "onExecutionTasks": [], "view": null } ], "view": null, "onEntries": [], "onExits": [], "versionStrategy": "Minor" } ] }, "data": [ { "key": "schema", "version": "1.0.0", "tags": [ "core", "schema", "metaSchema", "base" ], "attributes": { "type": "schema", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://schemas.vnext.com/core/schema.json", "title": "Schema Definition", "description": "Gerçek JSON Schema tanımının bulunduğu alan. Bu alan valid bir JSON Schema olmalıdır.", "type": "object", "properties": { "$schema": { "type": "string", "format": "uri", "description": "JSON Schema versiyonu" }, "$id": { "type": "string", "format": "uri", "description": "Şemanın benzersiz URI'si" }, "title": { "type": "string", "description": "Şemanın başlığı" }, "description": { "type": "string", "description": "Şemanın açıklaması" }, "type": { "type": [ "string", "array" ], "description": "JSON Schema type tanımı" } }, "required": [ "$schema", "$id", "title", "description", "type" ], "additionalProperties": true } } }, { "key": "task", "version": "1.0.0", "tags": [ "core", "schema", "task", "polymorphic" ], "attributes": { "type": "task", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://schemas.vnext.com/core/task.json", "title": "Task Definition", "description": "Polimorfik task tanımları. Task tipine göre farklı konfigürasyon şemaları kullanır.", "type": "object", "properties": { "type": { "type": "string", "description": "Task tipi (TaskType enum değeri string olarak)", "enum": [ "1", "2", "3", "4", "5", "6", "7" ] }, "config": { "type": "object", "description": "Task konfigürasyon objesi" } }, "required": [ "type", "config" ], "allOf": [ { "if": { "properties": { "type": { "const": "1" } } }, "then": { "title": "DaprHttpEndpoint Task", "properties": { "type": { "const": "1" }, "config": { "type": "object", "description": "Dapr HTTP Endpoint konfigürasyonu", "properties": { "endpointName": { "type": "string", "description": "Dapr HTTP endpoint adı", "minLength": 1 }, "path": { "type": "string", "description": "HTTP endpoint path", "minLength": 1 }, "method": { "type": "string", "description": "HTTP metodu", "enum": [ "GET", "POST", "PUT", "DELETE", "PATCH" ], "default": "GET" }, "headers": { "type": "object", "description": "HTTP header bilgileri" } }, "required": [ "endpointName", "path", "method" ], "additionalProperties": false } }, "required": [ "type", "config" ], "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "2" } } }, "then": { "title": "DaprBinding Task", "properties": { "type": { "const": "2" }, "config": { "type": "object", "description": "Dapr Binding konfigürasyonu", "properties": { "bindingName": { "type": "string", "description": "Dapr binding adı", "minLength": 1 }, "operation": { "type": "string", "description": "Binding operasyonu", "minLength": 1 }, "metadata": { "type": "object", "description": "Binding metadata bilgileri" }, "data": { "type": "object", "description": "Binding data bilgileri" } }, "required": [ "bindingName", "operation" ], "additionalProperties": false } }, "required": [ "type", "config" ], "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "3" } } }, "then": { "title": "DaprService Task", "properties": { "type": { "const": "3" }, "config": { "type": "object", "description": "Dapr Service konfigürasyonu", "properties": { "appId": { "type": "string", "description": "Dapr app ID", "minLength": 1 }, "methodName": { "type": "string", "description": "Servis method adı", "minLength": 1 }, "httpVerb": { "type": "string", "description": "HTTP verb", "enum": [ "GET", "POST", "PUT", "DELETE", "PATCH" ] }, "data": { "type": "object", "description": "Servis çağrısı data" }, "queryString": { "type": "string", "description": "Query string parametreleri" }, "timeoutSeconds": { "type": "integer", "description": "Timeout süresi (saniye)", "minimum": 1, "default": 30 } }, "required": [ "appId", "methodName" ], "additionalProperties": false } }, "required": [ "type", "config" ], "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "4" } } }, "then": { "title": "DaprPubSub Task", "properties": { "type": { "const": "4" }, "config": { "type": "object", "description": "Dapr PubSub konfigürasyonu", "properties": { "pubSubName": { "type": "string", "description": "PubSub component adı", "minLength": 1 }, "topic": { "type": "string", "description": "Topic adı", "minLength": 1 }, "data": { "type": "object", "description": "Message data" }, "metadata": { "type": "object", "description": "Message metadata" } }, "required": [ "pubSubName", "topic" ], "additionalProperties": false } }, "required": [ "type", "config" ], "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "5" } } }, "then": { "title": "Human Task", "properties": { "type": { "const": "5" }, "config": { "type": "object", "description": "Human Task konfigürasyonu", "properties": { "title": { "type": "string", "description": "Task başlığı", "minLength": 1 }, "instructions": { "type": "string", "description": "Task talimatları", "minLength": 1 }, "assignedTo": { "type": "string", "description": "Atanan kişi/grup", "minLength": 1 }, "dueDate": { "type": [ "string", "null" ], "description": "Bitiş tarihi (ISO 8601 format)", "format": "date-time" }, "form": { "description": "Form tanımı JSON formatında" }, "reminderIntervalMinutes": { "type": "integer", "description": "Hatırlatma aralığı (dakika)", "minimum": 0 }, "escalationTimeoutMinutes": { "type": "integer", "description": "Escalation timeout (dakika)", "minimum": 0 }, "escalationAssignee": { "type": "string", "description": "Escalation atanacak kişi/grup" } }, "required": [ "title", "instructions", "assignedTo" ], "additionalProperties": false } }, "required": [ "type", "config" ], "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "6" } } }, "then": { "title": "Http Task", "properties": { "type": { "const": "6" }, "config": { "type": "object", "description": "HTTP Task konfigürasyonu", "properties": { "url": { "type": "string", "description": "HTTP URL" }, "method": { "type": "string", "description": "HTTP metodu", "enum": [ "GET", "POST", "PUT", "DELETE", "PATCH" ], "default": "GET" }, "headers": { "type": "object", "description": "HTTP header bilgileri" }, "body": { "type": "object", "description": "HTTP request body" }, "timeoutSeconds": { "type": "integer", "description": "Timeout süresi (saniye)", "minimum": 1, "default": 30 }, "validateSsl": { "type": "boolean", "description": "SSL doğrulaması yapılsın mı", "default": true } }, "required": [ "url", "method" ], "additionalProperties": false } }, "required": [ "type", "config" ], "additionalProperties": false } }, { "if": { "properties": { "type": { "const": "7" } } }, "then": { "title": "Script Task", "properties": { "type": { "const": "7" }, "config": { "type": "object", "description": "Script Task konfigürasyonu", "properties": {}, "additionalProperties": false } }, "required": [ "type", "config" ], "additionalProperties": false } } ], "additionalProperties": false } } }, { "key": "view", "version": "1.0.0", "tags": [ "core", "schema", "view", "ui" ], "attributes": { "type": "view", "schema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://schemas.vnext.com/core/view.json", "title": "View Definition", "description": "vNext platformunda view tanımları için şema. View içerik türü, hedef ve içerik bilgilerini içerir.", "type": "object", "properties": { "type": { "type": "integer", "description": "View içerik türü", "oneOf": [ { "const": 1, "description": "Json içerik türü" }, { "const": 2, "description": "Html içerik türü" }, { "const": 3, "description": "Markdown içerik türü" } ] }, "target": { "type": "integer", "description": "View'in hedef aldığı workflow component türü", "oneOf": [ { "const": 1, "description": "State hedefli view" }, { "const": 2, "description": "Transition hedefli view" }, { "const": 3, "description": "Task hedefli view" } ] }, "content": { "type": "string", "description": "View'in içeriği. Json, Html veya Markdown formatında olabilir.", "minLength": 1 } }, "required": [ "type", "target", "content" ], "additionalProperties": false } } }, { "key": "workflow", "version": "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":