@appaflytech/zeyrek-ai-mcp 0.0.33 → 0.0.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/.env.example +0 -15
  2. package/dist/config.js +0 -11
  3. package/dist/index.js +0 -2
  4. package/dist/knowledge/boxSections.js +184 -0
  5. package/dist/knowledge/componentCatalog.js +634 -255
  6. package/dist/knowledge/componentEvents.js +38 -32
  7. package/dist/knowledge/layoutSummary.js +2 -140
  8. package/dist/knowledge/normalize.js +144 -117
  9. package/dist/knowledge/rules.js +42 -291
  10. package/dist/knowledge/styleResolve.js +53 -58
  11. package/dist/knowledge/themeResolve.js +4 -4
  12. package/dist/knowledge/themeSchema.js +2 -1
  13. package/dist/observability/trace.js +1 -1
  14. package/dist/platform/diagnostics.js +4 -10
  15. package/dist/platform/domSummary.js +1 -1
  16. package/dist/platform/http.js +7 -23
  17. package/dist/platform/responses.js +2 -6
  18. package/dist/platform/screenshot.js +1162 -0
  19. package/dist/platform/secrets.js +0 -9
  20. package/dist/platform/strictArguments.js +12 -68
  21. package/dist/platform/tokenVault.js +4 -187
  22. package/dist/resources/examples/layout-app-shell.json +707 -229
  23. package/dist/resources/examples/page-flex-sections.json +1 -1
  24. package/dist/resources/guides/component.md +6 -14
  25. package/dist/resources/guides/entity.md +5 -3
  26. package/dist/resources/guides/expressions.md +5 -14
  27. package/dist/resources/guides/functions.md +1 -1
  28. package/dist/resources/guides/layout.md +58 -55
  29. package/dist/resources/guides/microservice.md +2 -9
  30. package/dist/resources/guides/middleware.md +2 -34
  31. package/dist/resources/guides/page.md +179 -256
  32. package/dist/resources/guides/theme.md +3 -8
  33. package/dist/resources/guides/translation.md +1 -1
  34. package/dist/resources/guides/workflow.md +1 -7
  35. package/dist/resources/schema-fingerprint.json +4 -4
  36. package/dist/resources/schemas/GlobalFunctionUpdateResultDto.json +1 -3
  37. package/dist/resources/schemas/MicroserviceDto.json +2 -2
  38. package/dist/server.js +1 -7
  39. package/dist/tools/applications.js +3 -60
  40. package/dist/tools/components.js +16 -103
  41. package/dist/tools/datasources.js +1 -1
  42. package/dist/tools/designSchemaPatch.js +19 -23
  43. package/dist/tools/externalComponents.js +4 -25
  44. package/dist/tools/flows.js +13 -80
  45. package/dist/tools/layouts.js +20 -48
  46. package/dist/tools/microservices.js +10 -32
  47. package/dist/tools/pages.js +115 -396
  48. package/dist/tools/platformInfo.js +2 -7
  49. package/dist/tools/rows.js +1 -7
  50. package/dist/tools/schemaOps.js +4 -35
  51. package/dist/tools/screenWrite.js +37 -25
  52. package/dist/tools/screens.js +4 -91
  53. package/dist/tools/variables.js +5 -11
  54. package/package.json +2 -2
  55. package/dist/knowledge/access.js +0 -802
  56. package/dist/knowledge/case.js +0 -41
  57. package/dist/knowledge/connectDataBind.js +0 -819
  58. package/dist/knowledge/connectDataDefinition.js +0 -341
  59. package/dist/knowledge/connectDataExecute.js +0 -93
  60. package/dist/knowledge/connectDataRules.js +0 -128
  61. package/dist/knowledge/decision.js +0 -121
  62. package/dist/knowledge/expressionPrelude.js +0 -59
  63. package/dist/knowledge/microserviceParameters.js +0 -58
  64. package/dist/knowledge/mining.js +0 -94
  65. package/dist/knowledge/mobileComponentCatalog.js +0 -864
  66. package/dist/knowledge/mobileComponentEvents.js +0 -239
  67. package/dist/knowledge/mobileStore.js +0 -227
  68. package/dist/knowledge/platform/lint.js +0 -385
  69. package/dist/knowledge/platform/mobile.js +0 -142
  70. package/dist/knowledge/platform/mobileLayoutLint.js +0 -324
  71. package/dist/knowledge/platform/mobileRules.js +0 -231
  72. package/dist/knowledge/platform/mobileSpacing.js +0 -82
  73. package/dist/knowledge/platform/mobileTabs.js +0 -108
  74. package/dist/knowledge/platform/nativeBoxModel.js +0 -44
  75. package/dist/knowledge/platform/profile.js +0 -25
  76. package/dist/knowledge/platform/resolve.js +0 -122
  77. package/dist/knowledge/platform/web.js +0 -39
  78. package/dist/knowledge/process.js +0 -510
  79. package/dist/knowledge/rowFilter.js +0 -43
  80. package/dist/knowledge/styleResolveNative.js +0 -527
  81. package/dist/platform/argumentAliases.js +0 -128
  82. package/dist/platform/bodyFile.js +0 -103
  83. package/dist/platform/capture/actions.js +0 -333
  84. package/dist/platform/capture/browser.js +0 -1
  85. package/dist/platform/capture/capture.js +0 -659
  86. package/dist/platform/capture/console-log.js +0 -122
  87. package/dist/platform/capture/index.js +0 -11
  88. package/dist/platform/capture/readiness.js +0 -103
  89. package/dist/platform/capture/summary.js +0 -77
  90. package/dist/platform/capture/target.js +0 -5
  91. package/dist/platform/capture/targets/studio-mobile.js +0 -15
  92. package/dist/platform/capture/targets/studio-web.js +0 -5
  93. package/dist/platform/impersonation.js +0 -45
  94. package/dist/platform/jsonArray.js +0 -24
  95. package/dist/platform/schemaReadMemory.js +0 -60
  96. package/dist/resources/examples/bpm-gorev-kontrol.json +0 -294
  97. package/dist/resources/examples/bpm-iso-dokuman.json +0 -228
  98. package/dist/resources/examples/bpm-satinalma.json +0 -376
  99. package/dist/resources/examples/connect-data-convert-verify.json +0 -107
  100. package/dist/resources/examples/connect-data-dropdown-roles.json +0 -66
  101. package/dist/resources/examples/connect-data-edit-m2m.json +0 -73
  102. package/dist/resources/examples/connect-data-query-params.json +0 -50
  103. package/dist/resources/examples/connect-data-table-entity.json +0 -147
  104. package/dist/resources/examples/connect-data-workflow-microservice.json +0 -65
  105. package/dist/resources/examples/mobile-app-shell-drawer.json +0 -244
  106. package/dist/resources/examples/mobile-app-shell-stack.json +0 -157
  107. package/dist/resources/examples/mobile-app-shell-tab.json +0 -208
  108. package/dist/resources/examples/mobile-form-screen.json +0 -365
  109. package/dist/resources/examples/mobile-list-detail-form.json +0 -703
  110. package/dist/resources/guides/access.md +0 -796
  111. package/dist/resources/guides/bpm.md +0 -686
  112. package/dist/resources/guides/case.md +0 -153
  113. package/dist/resources/guides/decision.md +0 -185
  114. package/dist/resources/guides/mobile-layout.md +0 -193
  115. package/dist/resources/guides/mobile.md +0 -578
  116. package/dist/resources/read.js +0 -41
  117. package/dist/resources/schemas/AccessExplanationDto.json +0 -144
  118. package/dist/resources/schemas/AccessMatrixDto.json +0 -170
  119. package/dist/resources/schemas/AccessPermissionDto.json +0 -57
  120. package/dist/resources/schemas/AccessPolicyDto.json +0 -223
  121. package/dist/resources/schemas/AccessResourceDto.json +0 -86
  122. package/dist/resources/schemas/AppSessionDto.json +0 -53
  123. package/dist/resources/schemas/ConnectDataDescribeDto.json +0 -344
  124. package/dist/resources/schemas/ConnectDataRequestModel.json +0 -202
  125. package/dist/resources/schemas/ConnectDataResultDto.json +0 -421
  126. package/dist/resources/schemas/ConnectorCredentialDto.json +0 -70
  127. package/dist/resources/schemas/ConvertConnectDataToMicroserviceCommand.json +0 -37
  128. package/dist/resources/schemas/CreateAccessPolicyCommand.json +0 -209
  129. package/dist/resources/schemas/CreateDecisionCommand.json +0 -221
  130. package/dist/resources/schemas/CreateProcessDefinitionCommand.json +0 -1337
  131. package/dist/resources/schemas/DecisionDto.json +0 -302
  132. package/dist/resources/schemas/DetachConnectDataMicroserviceCommand.json +0 -28
  133. package/dist/resources/schemas/ExplainAccessQuery.json +0 -33
  134. package/dist/resources/schemas/GenerateProcessDocumentCommand.json +0 -116
  135. package/dist/resources/schemas/OrganizationProjectDto.json +0 -335
  136. package/dist/resources/schemas/OrganizationSchemaDto.json +0 -196
  137. package/dist/resources/schemas/OrganizationSchemaVersionDto.json +0 -207
  138. package/dist/resources/schemas/PatchProcessDefinitionCommand.json +0 -76
  139. package/dist/resources/schemas/ProcessDefinitionDto.json +0 -1480
  140. package/dist/resources/schemas/ProcessSimulationDto.json +0 -96
  141. package/dist/resources/schemas/SaveConnectorCredentialCommand.json +0 -90
  142. package/dist/resources/schemas/SaveProcessEventSourceCommand.json +0 -61
  143. package/dist/resources/schemas/SaveProcessMailSourceCommand.json +0 -89
  144. package/dist/resources/schemas/SignProcessTaskCommand.json +0 -73
  145. package/dist/resources/schemas/SimulateProcessDefinitionQuery.json +0 -92
  146. package/dist/resources/schemas/StartMobileBuildCommand.json +0 -54
  147. package/dist/resources/schemas/UpdateAccessPolicyCommand.json +0 -209
  148. package/dist/resources/schemas/UpdateDecisionCommand.json +0 -216
  149. package/dist/resources/schemas/UpdateProcessDefinitionCommand.json +0 -1357
  150. package/dist/resources/schemas/UpsertMobileStoreSettingsCommand.json +0 -259
  151. package/dist/resources/schemas/ValidateProcessDefinitionQuery.json +0 -1339
  152. package/dist/tools/accessOperations.js +0 -135
  153. package/dist/tools/accessPolicies.js +0 -170
  154. package/dist/tools/accessRuntime.js +0 -203
  155. package/dist/tools/bpm.js +0 -343
  156. package/dist/tools/bpmGovernance.js +0 -266
  157. package/dist/tools/bpmOperations.js +0 -230
  158. package/dist/tools/bpmReporting.js +0 -154
  159. package/dist/tools/bpmRouting.js +0 -150
  160. package/dist/tools/bpmRuntime.js +0 -396
  161. package/dist/tools/case.js +0 -178
  162. package/dist/tools/caseRuntime.js +0 -89
  163. package/dist/tools/connectData.js +0 -449
  164. package/dist/tools/connectors.js +0 -193
  165. package/dist/tools/decisions.js +0 -206
  166. package/dist/tools/mobile.js +0 -221
  167. package/dist/tools/mobileStore.js +0 -268
  168. package/dist/tools/modules.js +0 -48
  169. package/dist/tools/organizationStructure.js +0 -137
  170. package/dist/tools/profileWrite.js +0 -92
@@ -1,376 +0,0 @@
1
- {
2
- "_meta": {
3
- "synthetic": true,
4
- "note": "S-2: service düğümü vars.seviye yazar, chain:{{vars.seviye}} sıralı yönetici zinciri (dedupe, selfApproval escalate, requestInfo), paralel bütçe servisi + role:depo-sorumlusu grup görevi, exclusive karar. workflowId alanlarını kendi workflow GUID'lerinizle değiştirin."
5
- },
6
- "definition": {
7
- "slug": "satinalma-talebi",
8
- "name": "Satınalma talebi",
9
- "description": "Tutara göre onay seviyesi hesaplanır, yönetici zinciri sırayla onaylar, bütçe ve stok kontrolü paralel koşar.",
10
- "analysis": {
11
- "purpose": {
12
- "en": "No purchase is made without approval: the larger the amount, the more managers must agree, and the budget and stock are checked before ordering.",
13
- "tr": "Onaysız satın alma yapılmasın: tutar büyüdükçe daha çok yönetici onay verir, sipariş öncesi bütçe ve stok kontrol edilir."
14
- },
15
- "summary": {
16
- "en": "When a request is saved, the number of approvals is worked out from its amount and the managers approve in turn. Then the budget and the stock are checked at the same time, and the request is approved only when the budget allows it.",
17
- "tr": "Talep kaydedilince tutarından kaç onay gerektiği hesaplanır ve yöneticiler sırayla onaylar. Ardından bütçe ve stok aynı anda kontrol edilir; talep yalnız bütçe uygunsa onaylanır."
18
- }
19
- },
20
- "subject": {
21
- "entity": "satinalma_talepleri"
22
- },
23
- "singleton": "per-subject",
24
- "withdrawPolicy": "before-first-decision",
25
- "history": "full",
26
- "params": {
27
- "esikTutar": {
28
- "default": 50000,
29
- "type": "number",
30
- "editable": "params"
31
- }
32
- },
33
- "nodes": [
34
- {
35
- "id": "baslangic",
36
- "type": "start",
37
- "name": "Talep oluşturuldu",
38
- "description": "Talep satırı oluşunca başlar.",
39
- "analysis": {
40
- "what": {
41
- "en": "The process starts by itself when a new purchase request is saved.",
42
- "tr": "Yeni bir satın alma talebi kaydedildiğinde süreç kendiliğinden başlar."
43
- },
44
- "data": {
45
- "en": "Reads the new request record.",
46
- "tr": "Yeni talep kaydını okur."
47
- },
48
- "why": {
49
- "en": "Every request should enter the approval route without anyone starting it by hand.",
50
- "tr": "Her talep kimse elle başlatmadan onay yoluna girsin diye."
51
- },
52
- "example": {
53
- "en": "Ayşe saves her request for a 25,000 TL laptop and the process starts.",
54
- "tr": "Ayşe 25.000 TL'lik dizüstü talebini kaydeder ve süreç başlar."
55
- }
56
- },
57
- "trigger": "row-event",
58
- "entity": "satinalma_talepleri",
59
- "operation": "create"
60
- },
61
- {
62
- "id": "seviye-hesapla",
63
- "type": "service",
64
- "name": "Onay seviyesi",
65
- "description": "Tutardan onay zinciri uzunluğunu hesaplar.",
66
- "analysis": {
67
- "what": {
68
- "en": "The system works out how many managers have to approve the request.",
69
- "tr": "Sistem talebi kaç yöneticinin onaylaması gerektiğini hesaplar."
70
- },
71
- "data": {
72
- "en": "Reads the amount of the request and keeps the result as the approval level. Tries again up to three times if the service fails.",
73
- "tr": "Talebin tutarını okur, sonucu onay seviyesi olarak saklar. Servis hata verirse üç kez daha dener."
74
- },
75
- "why": {
76
- "en": "A small purchase should not wait for many approvals, and a large one should not pass with a single one.",
77
- "tr": "Küçük bir alım çok onay beklemesin, büyük bir alım tek onayla geçmesin diye."
78
- },
79
- "example": {
80
- "en": "For 25,000 TL the level comes out as 1; a 120,000 TL request would need 3 managers.",
81
- "tr": "25.000 TL için seviye 1 çıkar; 120.000 TL'lik bir talep 3 yönetici gerektirirdi."
82
- }
83
- },
84
- "workflowId": "01936f00-0000-7000-8000-000000000001",
85
- "input": {
86
- "tutar": "row.tutar"
87
- },
88
- "output": "vars.seviye",
89
- "retry": {
90
- "count": 3,
91
- "backoff": "exponential",
92
- "delay": "PT30S"
93
- }
94
- },
95
- {
96
- "id": "yonetici-zinciri",
97
- "type": "approval",
98
- "resultKey": "yonetici_zinciri",
99
- "name": "Yönetici onayı",
100
- "description": "Talep sahibinin yöneticileri seviye kadar sırayla onaylar.",
101
- "analysis": {
102
- "what": {
103
- "en": "The requester's managers approve one after the other, as many as the approval level.",
104
- "tr": "Talep sahibinin yöneticileri, onay seviyesi kadar, sırayla onaylar."
105
- },
106
- "data": {
107
- "en": "Uses the approval level from the previous step. A manager can ask for more information; a rejection ends the process; each decision has two days.",
108
- "tr": "Önceki adımdaki onay seviyesini kullanır. Yönetici ek bilgi isteyebilir; ret süreci bitirir; her karar için iki gün vardır."
109
- },
110
- "why": {
111
- "en": "Spending is agreed by the people responsible for it; a requester cannot approve their own request.",
112
- "tr": "Harcamayı sorumlu kişiler onaylasın; talep sahibi kendi talebini onaylayamasın diye."
113
- },
114
- "example": {
115
- "en": "Mehmet, Ayşe's manager, sees the request in his inbox and approves it the next morning.",
116
- "tr": "Ayşe'nin yöneticisi Mehmet talebi kutusunda görür ve ertesi sabah onaylar."
117
- }
118
- },
119
- "assignee": {
120
- "rule": "chain",
121
- "arg": "{{vars.seviye}}",
122
- "of": "initiator",
123
- "dedupe": true,
124
- "selfApproval": "escalate",
125
- "fallback": "admin-queue"
126
- },
127
- "policy": "sequential",
128
- "requestInfo": true,
129
- "onReject": "end",
130
- "sla": {
131
- "name": "karar",
132
- "duration": "P2D",
133
- "onBreach": [
134
- {
135
- "escalate": "previous-approver-manager"
136
- }
137
- ]
138
- }
139
- },
140
- {
141
- "id": "kontrol-catal",
142
- "type": "gateway",
143
- "name": "Paralel kontroller",
144
- "description": "Bütçe ve stok kontrolü aynı anda başlar.",
145
- "analysis": {
146
- "what": {
147
- "en": "The budget check and the stock check start at the same time.",
148
- "tr": "Bütçe kontrolü ve stok kontrolü aynı anda başlar."
149
- },
150
- "data": {
151
- "en": "Uses no values; it only splits the route into two.",
152
- "tr": "Değer kullanmaz; yalnız yolu ikiye ayırır."
153
- },
154
- "why": {
155
- "en": "The two checks do not depend on each other, so running them together saves time.",
156
- "tr": "İki kontrol birbirine bağlı değil; birlikte yürümeleri zaman kazandırır."
157
- },
158
- "example": {
159
- "en": "Right after Mehmet's approval, the budget check and the stock check both start.",
160
- "tr": "Mehmet onaylar onaylamaz bütçe kontrolü ve stok kontrolü birlikte başlar."
161
- }
162
- },
163
- "kind": "parallel"
164
- },
165
- {
166
- "id": "butce-kontrol",
167
- "type": "service",
168
- "name": "Bütçe kontrolü",
169
- "description": "Bütçe uygunluğunu denetler.",
170
- "analysis": {
171
- "what": {
172
- "en": "The system checks whether the unit still has budget for this purchase.",
173
- "tr": "Sistem birimin bu alım için hâlâ bütçesi olup olmadığını kontrol eder."
174
- },
175
- "data": {
176
- "en": "Reads the amount and the unit of the request and keeps the answer as \"budget available\".",
177
- "tr": "Talebin tutarını ve birimini okur, cevabı \"bütçe uygun\" olarak saklar."
178
- },
179
- "why": {
180
- "en": "Approved requests must not exceed the budget.",
181
- "tr": "Onaylanan talepler bütçeyi aşmasın diye."
182
- },
183
- "example": {
184
- "en": "IT has 80,000 TL left in its budget, so the answer is \"budget available\".",
185
- "tr": "BT'nin bütçesinde 80.000 TL kaldığı için cevap \"bütçe uygun\" olur."
186
- }
187
- },
188
- "workflowId": "01936f00-0000-7000-8000-000000000002",
189
- "input": {
190
- "tutar": "row.tutar",
191
- "birim": "row.birim_id"
192
- },
193
- "output": "vars.butceUygun"
194
- },
195
- {
196
- "id": "stok-kontrol",
197
- "type": "user-task",
198
- "resultKey": "stok_kontrol",
199
- "name": "Stok kontrolü",
200
- "description": "Depo sorumlusu stokta karşılık olup olmadığını kontrol eder.",
201
- "analysis": {
202
- "what": {
203
- "en": "Someone from the warehouse team checks whether the item is already in stock.",
204
- "tr": "Depo ekibinden biri malzemenin stokta olup olmadığını kontrol eder."
205
- },
206
- "data": {
207
- "en": "Any warehouse staff member can take the task; there is one day for it.",
208
- "tr": "Görevi herhangi bir depo sorumlusu üstlenebilir; bir gün süresi vardır."
209
- },
210
- "why": {
211
- "en": "Nothing should be bought that is already in the warehouse.",
212
- "tr": "Depoda zaten olan bir şey yeniden satın alınmasın diye."
213
- },
214
- "example": {
215
- "en": "Kemal from the warehouse takes the task, sees no spare laptop in stock and completes it.",
216
- "tr": "Depodan Kemal görevi üstlenir, stokta yedek dizüstü olmadığını görür ve görevi tamamlar."
217
- }
218
- },
219
- "assignee": "role:depo-sorumlusu",
220
- "mode": "claim",
221
- "allowClaim": true,
222
- "sla": "P1D"
223
- },
224
- {
225
- "id": "kontrol-birlesim",
226
- "type": "gateway",
227
- "name": "Kontroller tamam",
228
- "description": "İki kontrol bitince devam eder.",
229
- "analysis": {
230
- "what": {
231
- "en": "Waits until both checks are finished.",
232
- "tr": "İki kontrolün de bitmesini bekler."
233
- },
234
- "data": {
235
- "en": "Uses no values; it joins the two routes again.",
236
- "tr": "Değer kullanmaz; iki yolu yeniden birleştirir."
237
- },
238
- "why": {
239
- "en": "The decision must not be made before both results are known.",
240
- "tr": "Karar iki sonuç da belli olmadan verilmesin diye."
241
- },
242
- "example": {
243
- "en": "The budget answer arrives in seconds; the process waits until Kemal finishes his check too.",
244
- "tr": "Bütçe cevabı saniyeler içinde gelir; süreç Kemal'in kontrolü de bitene kadar bekler."
245
- }
246
- },
247
- "kind": "parallel"
248
- },
249
- {
250
- "id": "butce-karari",
251
- "type": "gateway",
252
- "name": "Bütçe uygun mu",
253
- "description": "Bütçe uygunsa onaylanır, değilse reddedilir.",
254
- "analysis": {
255
- "what": {
256
- "en": "The process decides between approval and rejection.",
257
- "tr": "Süreç onay ile ret arasında karar verir."
258
- },
259
- "data": {
260
- "en": "Looks at \"budget available\" from the budget check: yes goes to approval, anything else to rejection.",
261
- "tr": "Bütçe kontrolündeki \"bütçe uygun\" değerine bakar: evet ise onaya, değilse redde gider."
262
- },
263
- "why": {
264
- "en": "Only requests the budget can cover are approved.",
265
- "tr": "Yalnız bütçenin karşılayabildiği talepler onaylansın diye."
266
- },
267
- "example": {
268
- "en": "Budget is available for Ayşe's laptop, so the request goes to \"approved\".",
269
- "tr": "Ayşe'nin dizüstüsü için bütçe uygun, bu yüzden talep \"onaylandı\"ya gider."
270
- }
271
- },
272
- "kind": "exclusive",
273
- "default": "reddedildi"
274
- },
275
- {
276
- "id": "onaylandi",
277
- "type": "end",
278
- "name": "Onaylandı",
279
- "description": "Talep onaylandı.",
280
- "analysis": {
281
- "what": {
282
- "en": "The process ends with the request approved.",
283
- "tr": "Süreç talep onaylanmış olarak biter."
284
- },
285
- "data": {
286
- "en": "Sets the status of the request to \"approved\".",
287
- "tr": "Talebin durumunu \"onaylandı\" yapar."
288
- },
289
- "why": {
290
- "en": "The purchasing team can see that the request may be ordered.",
291
- "tr": "Satın alma ekibi talebin sipariş edilebileceğini görsün diye."
292
- },
293
- "example": {
294
- "en": "Ayşe's request shows \"approved\" and purchasing can place the order.",
295
- "tr": "Ayşe'nin talebi \"onaylandı\" görünür ve satın alma siparişi verebilir."
296
- }
297
- },
298
- "outcome": "approved",
299
- "writeBack": {
300
- "durum": "'onaylandi'"
301
- }
302
- },
303
- {
304
- "id": "reddedildi",
305
- "type": "end",
306
- "name": "Reddedildi",
307
- "description": "Bütçe uygun değil, talep reddedildi.",
308
- "analysis": {
309
- "what": {
310
- "en": "The process ends with the request rejected because there is no budget.",
311
- "tr": "Süreç bütçe olmadığı için talep reddedilmiş olarak biter."
312
- },
313
- "data": {
314
- "en": "Sets the status of the request to \"rejected\".",
315
- "tr": "Talebin durumunu \"reddedildi\" yapar."
316
- },
317
- "why": {
318
- "en": "The requester sees the result and no order is placed.",
319
- "tr": "Talep sahibi sonucu görsün ve sipariş verilmesin diye."
320
- },
321
- "example": {
322
- "en": "Had IT's budget been down to 10,000 TL, Ayşe's request would have ended here as \"rejected\".",
323
- "tr": "BT'nin bütçesinde yalnız 10.000 TL kalmış olsaydı Ayşe'nin talebi burada \"reddedildi\" olarak biterdi."
324
- }
325
- },
326
- "outcome": "rejected",
327
- "writeBack": {
328
- "durum": "'reddedildi'"
329
- }
330
- }
331
- ],
332
- "edges": [
333
- [
334
- "baslangic",
335
- "seviye-hesapla"
336
- ],
337
- [
338
- "seviye-hesapla",
339
- "yonetici-zinciri"
340
- ],
341
- [
342
- "yonetici-zinciri",
343
- "kontrol-catal"
344
- ],
345
- [
346
- "kontrol-catal",
347
- "butce-kontrol"
348
- ],
349
- [
350
- "kontrol-catal",
351
- "stok-kontrol"
352
- ],
353
- [
354
- "butce-kontrol",
355
- "kontrol-birlesim"
356
- ],
357
- [
358
- "stok-kontrol",
359
- "kontrol-birlesim"
360
- ],
361
- [
362
- "kontrol-birlesim",
363
- "butce-karari"
364
- ],
365
- {
366
- "from": "butce-karari",
367
- "to": "onaylandi",
368
- "condition": "vars.butceUygun === true"
369
- },
370
- [
371
- "butce-karari",
372
- "reddedildi"
373
- ]
374
- ]
375
- }
376
- }
@@ -1,107 +0,0 @@
1
- {
2
- "_meta": {
3
- "synthetic": false,
4
- "note": "Bağlantıyı kullanıcı gözüyle doğrulama, microservice'e çevirme ve geri ayırma. Canlı ölçüldü (2026-09-21, koşu 38 kapanışı): cdt-yetki kompleks enforce — gateway kimliğiyle list 401 AppSessionRequired; asUserId kısıtlı kullanıcı 200 (tckn '*******8901', maas yok, departman { id }), yetkili kullanıcı 200 (maas + departman.ad); lookup departman kısıtlıda 403, yetkilide 4 satır; page_screenshot { asUserId } kısıtlıda Maaş kolonu yok, yetkilide var. Convert → detach turu 38/04 Başlık 1'de.",
5
- "harvestedFrom": "zeyrek-mcp/docs/38-connect-data-kabul-kosusu/04-mcp-uctan-uca.md"
6
- },
7
- "_rules": {
8
- "asUserId": "Parolasız kullanıcı gözü: users satır id'si. İstek gateway kimliği + impersonated-user-id başlığıyla gider. Yalnız development/dal; production'da istek gönderilmez. asUser ve anonymous ile birlikte verilmez; projede olmayan id reddedilir.",
9
- "pageView": "Kullanıcının politikasında sayfanın page.view grant'i yoksa sayfa ve bağlantı 403 döner — access_policy_update ile page:<sayfa id> ekleyin (sayfa şeması boşken katalogda yoktur).",
10
- "screenshot": "page_screenshot { asUserId } sayfanın bütün isteklerine başlığı ekler; Studio 'View as user' seçicisiyle aynı sonuç.",
11
- "convert": "connect_data_convert tanımı microservice'e taşır; prop { version: 1, microserviceId } olur. Doğrulama microservice_execute { method: 'POST', body: { op: 'list', page: { limit: 5 } }, asUserId }. Çevrilmiş prop'a bind reddedilir: önce connect_data_detach (microservice silinir, başka yerde kullanılıyorsa 409)."
12
- },
13
- "connectDataBindArgs": {
14
- "applicationId": "<application id>",
15
- "pageId": "<page id>",
16
- "element": "dt_personel",
17
- "prop": "rows",
18
- "source": {
19
- "kind": "entity",
20
- "id": "<personel entity id>"
21
- },
22
- "edit": {
23
- "update": true,
24
- "editable": [
25
- "ad"
26
- ]
27
- },
28
- "dryRun": true,
29
- "asUserId": "<kısıtlı kullanıcının users satır id'si>"
30
- },
31
- "expectedFindings": [
32
- "CD-006 warn 'kullanıcı <id> gözüyle: edit.update açık ama politika bu kullanıcıya update izni vermiyor'"
33
- ],
34
- "verifyCalls": [
35
- {
36
- "tool": "connect_data_execute",
37
- "arguments": {
38
- "applicationId": "<application id>",
39
- "pageId": "<page id>",
40
- "element": "dt_personel",
41
- "prop": "rows",
42
- "op": "list",
43
- "page": {
44
- "limit": 5
45
- },
46
- "asUserId": "<kısıtlı kullanıcının users satır id'si>"
47
- }
48
- },
49
- {
50
- "tool": "connect_data_execute",
51
- "arguments": {
52
- "applicationId": "<application id>",
53
- "pageId": "<page id>",
54
- "element": "dt_personel",
55
- "prop": "rows",
56
- "op": "lookup",
57
- "field": "departman",
58
- "asUserId": "<kısıtlı kullanıcının users satır id'si>"
59
- },
60
- "expect": "403 — hedef tablo (departmanlar) okunamıyor"
61
- },
62
- {
63
- "tool": "page_screenshot",
64
- "arguments": {
65
- "applicationSlug": "web",
66
- "pageSlug": "personel",
67
- "image": "none",
68
- "asUserId": "<kısıtlı kullanıcının users satır id'si>"
69
- }
70
- },
71
- {
72
- "tool": "connect_data_convert",
73
- "arguments": {
74
- "applicationId": "<application id>",
75
- "pageId": "<page id>",
76
- "element": "dt_personel",
77
- "prop": "rows",
78
- "name": "Personel Baglantisi",
79
- "slug": "personel-baglantisi"
80
- }
81
- },
82
- {
83
- "tool": "microservice_execute",
84
- "arguments": {
85
- "application": "web",
86
- "microservice": "personel-baglantisi",
87
- "method": "POST",
88
- "body": {
89
- "op": "list",
90
- "page": {
91
- "limit": 5
92
- }
93
- },
94
- "asUserId": "<kullanıcı id>"
95
- }
96
- },
97
- {
98
- "tool": "connect_data_detach",
99
- "arguments": {
100
- "applicationId": "<application id>",
101
- "pageId": "<page id>",
102
- "element": "dt_personel",
103
- "prop": "rows"
104
- }
105
- }
106
- ]
107
- }
@@ -1,66 +0,0 @@
1
- {
2
- "_meta": {
3
- "synthetic": true,
4
- "note": "Rol tabanlı bağlama: dropdown seçenekleri bir entity'den. Roller verilmezse yalnız zorunlu roller önerilir (value ← birincil anahtar, label ← görünen alan); isteğe bağlı roller (caption, color, isDisabled…) boş kalır. Kural birim testte gerçek katalog kaydıyla doğrulandı (test/connect-data-bind.test.ts); canlı fixture'ı yok.",
5
- "harvestedFrom": "src/knowledge/connectDataBind.ts defaultMapping"
6
- },
7
- "_rules": {
8
- "connectable": "Önce component_get { slug: 'dropdown' } → connectData.props.options: 13 rol (label, value, caption, color, …), required [value, label]; dropdown kaydında fields YOK — runtime satırları rol adlarına yazar (option.label ← ad). Kayıt yoksa bileşen bağlanamaz (CD-001).",
9
- "roles": "roles verilmezse gateway önerir; zorunlu rol doldurulamazsa bind 'Aday alanlar: …' ile durur.",
10
- "fields": "Rol bileşeninde fields verilmezse birincil anahtar + rollerin kökleri seçilir. Kaydında fields olan bileşende (chart categoryField/valueField, kanban titleField) seçilen alan adı o prop'lara aynı yamada yazılır.",
11
- "sort": "Görünen alan seçiliyse varsayılan sıralama odur."
12
- },
13
- "connectDataBindArgs": {
14
- "applicationId": "<application id>",
15
- "pageId": "<page id>",
16
- "element": "dd_sehir",
17
- "prop": "options",
18
- "source": {
19
- "kind": "entity",
20
- "id": "<sehirler entity id>"
21
- },
22
- "dryRun": true
23
- },
24
- "expectedDryRun": {
25
- "definition": {
26
- "version": 1,
27
- "source": {
28
- "kind": "entity",
29
- "id": "<sehirler entity id>",
30
- "slug": "sehirler"
31
- },
32
- "fields": [
33
- {
34
- "id": "<id field id>",
35
- "slug": "id"
36
- },
37
- {
38
- "id": "<ad field id>",
39
- "slug": "ad"
40
- }
41
- ],
42
- "filter": null,
43
- "sort": [
44
- {
45
- "field": "ad",
46
- "ascending": true
47
- }
48
- ],
49
- "page": {
50
- "mode": "offset",
51
- "limit": 25
52
- },
53
- "language": "request",
54
- "mapping": {
55
- "roles": {
56
- "label": "ad",
57
- "value": "id"
58
- }
59
- }
60
- },
61
- "ops": [
62
- "set_connect_data { target: 'dd_sehir', path: 'options', ref }"
63
- ],
64
- "findings": []
65
- }
66
- }
@@ -1,73 +0,0 @@
1
- {
2
- "_meta": {
3
- "synthetic": false,
4
- "note": "m2m, o2m, enum ve dosya alanı olan tabloyu düzenlemeye açık bağlar ve bir satırı günceller. Canlı ölçüldü (2026-09-21, cdt-mcp, koşu 38/04 Başlık 3): dosya alanı editable'dayken dryRun CD-018 block (önce findings: [] idi, gerçek yazma 422 connect-data-editable-file); m2m tam liste + o2m + enum update 200.",
5
- "harvestedFrom": "zeyrek-mcp/docs/38-connect-data-kabul-kosusu/04-mcp-uctan-uca.md Başlık 3"
6
- },
7
- "_rules": {
8
- "editable": "editable yalnız seçili kök alanlardan (CD-004); dosya alanı (describe type 'file') editable'a konamaz (CD-018). editable verilmezse gateway yazılabilir kökleri önerir ve dosya alanını dışarıda bırakır.",
9
- "relationValues": "o2m değeri '<id>' ya da { id }; m2m TAM liste ['<id>', …] — listede olmayan bağ silinir. Hedefte olmayan kimlik 404 ConnectDataRelationTargetNotFound (field).",
10
- "fileCell": "Dosya hücresi { id, display_name, path, size, extension, content_type, … }; boş dosya null. Dosyayı file_upload + row_update yazar.",
11
- "writeMode": "atomic (varsayılan): tek transaction, hepsi ya da hiçbiri. partial yalnız built-in veritabanında.",
12
- "sideEffect": "connect_data_execute GERÇEKTEN yazar; denetim izinde kaynak CONNECT_DATA. Kompleks projede kimlik asUserId (parolasız, development) ya da asUser."
13
- },
14
- "connectDataBindArgs": {
15
- "applicationId": "<application id>",
16
- "pageId": "<page id>",
17
- "element": "dt_projeler",
18
- "prop": "rows",
19
- "source": {
20
- "kind": "entity",
21
- "id": "<projeler entity id>"
22
- },
23
- "fields": [
24
- "id",
25
- "ad",
26
- "durum",
27
- "dokuman",
28
- "etiketler",
29
- "sorumlu"
30
- ],
31
- "expand": {
32
- "etiketler": [
33
- "ad"
34
- ],
35
- "sorumlu": [
36
- "ad"
37
- ]
38
- },
39
- "filterable": [
40
- "durum",
41
- "etiketler",
42
- "sorumlu"
43
- ],
44
- "edit": {
45
- "update": true,
46
- "editable": [
47
- "durum",
48
- "etiketler",
49
- "sorumlu"
50
- ]
51
- },
52
- "columns": "auto"
53
- },
54
- "executeArgs": {
55
- "applicationId": "<application id>",
56
- "pageId": "<page id>",
57
- "element": "dt_projeler",
58
- "prop": "rows",
59
- "op": "update",
60
- "rows": [
61
- {
62
- "id": "<satır id>",
63
- "etiketler": [
64
- "<acil etiket id>",
65
- "<iç etiket id>"
66
- ],
67
- "sorumlu": "<kişi id>",
68
- "durum": "aktif"
69
- }
70
- ],
71
- "asUserId": "<düzenleme izni olan users satır id'si>"
72
- }
73
- }
@@ -1,50 +0,0 @@
1
- {
2
- "_meta": {
3
- "synthetic": false,
4
- "note": "Parametreli query'yi datatable'a bağlar; parametre sayfa değişkeninden ($minFiyat) gelir. Canlı ölçüldü (2026-09-21, cdt-mcp, koşu 38/04): request.params.minFiyat 6000 → 4 satır; params verilmeden önizleme 0 satır + CD-014 warn (başlangıç değeri 3000 önerildi).",
5
- "harvestedFrom": "zeyrek-mcp/docs/38-connect-data-kabul-kosusu/04-mcp-uctan-uca.md Başlık 1"
6
- },
7
- "_rules": {
8
- "queryFirst": "query_create { rawQuery: 'SELECT id, ad, kategori, fiyat, stok FROM urunler WHERE fiyat >= @minFiyat ORDER BY fiyat DESC', outputType: 'array', parameters: [{ name: 'minFiyat', type: 'number', value: 1000 }] } — yalnız OKUYAN query bağlanır.",
9
- "describe": "connect_data_describe { source: { kind: 'query', id } } → pageMode: client, alanlarda canFilter:false, source.parameters: [{ name: 'minFiyat' }]. Sıralama SQL'in ORDER BY'ındadır.",
10
- "params": "params adları source.parameters'tan (bilinmeyen ad CD-013 block). '$ad' değeri sayfa/uygulama değişkeninden okunur; tanımlı değilse CD-014 warn (runtime null gönderir).",
11
- "stateFirst": "variable_create { pageId, variables: [{ key: 'minFiyat', value: 3000 }] } — $minFiyat'ın runtime'daki başlangıç değeri.",
12
- "forbidden": "query kaynağında filter, sort, filterable, searchable, edit, expand, lookup yok (CD-013); sort verilirse CD-002 de 'query kaynağı sunucuda sıralamaz' der.",
13
- "preview": "Önizleme $ad'ı sayfa durumundan DOLDURMAZ: request.params verin, yoksa sonuç sessizce boş döner (CD-014 warn).",
14
- "clientPaging": "pageMode client: runtime ilk 1000 satırı alır, süzme/sayfalama tarayıcıda (CD-007 warn)."
15
- },
16
- "connectDataBindArgs": {
17
- "applicationId": "<application id>",
18
- "pageId": "<page id>",
19
- "element": "dt_query",
20
- "prop": "rows",
21
- "source": {
22
- "kind": "query",
23
- "id": "<fiyata-gore-urunler query id>"
24
- },
25
- "fields": [
26
- "ad",
27
- "kategori",
28
- "fiyat",
29
- "stok"
30
- ],
31
- "params": {
32
- "minFiyat": "$minFiyat"
33
- },
34
- "dryRun": true
35
- },
36
- "expectedFindings": [
37
- "CD-007 warn (client sayfalama)"
38
- ],
39
- "previewArgs": {
40
- "applicationId": "<application id>",
41
- "pageId": "<page id>",
42
- "element": "dt_query",
43
- "prop": "rows",
44
- "request": {
45
- "params": {
46
- "minFiyat": 6000
47
- }
48
- }
49
- }
50
- }