@objectstack/spec 0.3.1 → 0.3.3

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 (409) hide show
  1. package/README.md +32 -10
  2. package/dist/ai/agent.zod.d.ts +12 -12
  3. package/dist/ai/conversation.zod.d.ts +65 -65
  4. package/dist/ai/cost.zod.d.ts +125 -125
  5. package/dist/ai/index.d.ts +1 -1
  6. package/dist/ai/index.d.ts.map +1 -1
  7. package/dist/ai/index.js +1 -1
  8. package/dist/ai/model-registry.zod.d.ts +94 -94
  9. package/dist/ai/nlq.zod.d.ts +70 -70
  10. package/dist/ai/{workflow-automation.zod.d.ts → orchestration.zod.d.ts} +50 -49
  11. package/dist/ai/orchestration.zod.d.ts.map +1 -0
  12. package/dist/ai/{workflow-automation.zod.js → orchestration.zod.js} +26 -25
  13. package/dist/ai/predictive.zod.d.ts +31 -31
  14. package/dist/ai/rag-pipeline.zod.d.ts +86 -86
  15. package/dist/api/contract.zod.d.ts +125 -109
  16. package/dist/api/contract.zod.d.ts.map +1 -1
  17. package/dist/{system → api}/discovery.zod.d.ts +26 -26
  18. package/dist/api/discovery.zod.d.ts.map +1 -0
  19. package/dist/{system → api}/discovery.zod.js +9 -9
  20. package/dist/{system/api.zod.d.ts → api/endpoint.zod.d.ts} +53 -57
  21. package/dist/api/endpoint.zod.d.ts.map +1 -0
  22. package/dist/{system/api.zod.js → api/endpoint.zod.js} +3 -6
  23. package/dist/api/index.d.ts +4 -0
  24. package/dist/api/index.d.ts.map +1 -1
  25. package/dist/api/index.js +4 -0
  26. package/dist/{system → api}/realtime.zod.d.ts +4 -4
  27. package/dist/api/realtime.zod.d.ts.map +1 -0
  28. package/dist/api/router.zod.d.ts +182 -0
  29. package/dist/api/router.zod.d.ts.map +1 -0
  30. package/dist/api/router.zod.js +103 -0
  31. package/dist/{system/auth.zod.d.ts → auth/config.zod.d.ts} +191 -191
  32. package/dist/auth/config.zod.d.ts.map +1 -0
  33. package/dist/{system → auth}/identity.zod.d.ts +8 -8
  34. package/dist/auth/identity.zod.d.ts.map +1 -0
  35. package/dist/auth/index.d.ts +7 -0
  36. package/dist/auth/index.d.ts.map +1 -0
  37. package/dist/auth/index.js +22 -0
  38. package/dist/{system → auth}/organization.zod.d.ts +5 -5
  39. package/dist/auth/organization.zod.d.ts.map +1 -0
  40. package/dist/{system → auth}/policy.zod.d.ts +3 -3
  41. package/dist/auth/policy.zod.d.ts.map +1 -0
  42. package/dist/{system/auth-protocol.d.ts → auth/protocol.d.ts} +1 -1
  43. package/dist/auth/protocol.d.ts.map +1 -0
  44. package/dist/auth/role.zod.d.ts.map +1 -0
  45. package/dist/{data → automation}/flow.zod.d.ts +34 -16
  46. package/dist/automation/flow.zod.d.ts.map +1 -0
  47. package/dist/{data → automation}/flow.zod.js +6 -1
  48. package/dist/automation/index.d.ts +4 -0
  49. package/dist/automation/index.d.ts.map +1 -0
  50. package/dist/automation/index.js +19 -0
  51. package/dist/{system → automation}/webhook.zod.d.ts +2 -2
  52. package/dist/automation/webhook.zod.d.ts.map +1 -0
  53. package/dist/automation/workflow.zod.d.ts +2045 -0
  54. package/dist/automation/workflow.zod.d.ts.map +1 -0
  55. package/dist/{data → automation}/workflow.zod.js +24 -1
  56. package/dist/data/dataset.zod.d.ts +2 -2
  57. package/dist/data/field.zod.d.ts +443 -213
  58. package/dist/data/field.zod.d.ts.map +1 -1
  59. package/dist/data/field.zod.js +29 -1
  60. package/dist/data/filter.zod.d.ts +167 -30
  61. package/dist/data/filter.zod.d.ts.map +1 -1
  62. package/dist/data/filter.zod.js +25 -13
  63. package/dist/data/hook.zod.d.ts +191 -0
  64. package/dist/data/hook.zod.d.ts.map +1 -0
  65. package/dist/data/hook.zod.js +144 -0
  66. package/dist/data/index.d.ts +4 -17
  67. package/dist/data/index.d.ts.map +1 -1
  68. package/dist/data/index.js +4 -17
  69. package/dist/data/mapping.zod.d.ts +103 -91
  70. package/dist/data/mapping.zod.d.ts.map +1 -1
  71. package/dist/data/object.zod.d.ts +387 -127
  72. package/dist/data/object.zod.d.ts.map +1 -1
  73. package/dist/data/object.zod.js +87 -42
  74. package/dist/data/query.zod.d.ts +98 -169
  75. package/dist/data/query.zod.d.ts.map +1 -1
  76. package/dist/data/query.zod.js +42 -130
  77. package/dist/data/validation.zod.d.ts +166 -26
  78. package/dist/data/validation.zod.d.ts.map +1 -1
  79. package/dist/data/validation.zod.js +38 -16
  80. package/dist/{system → driver}/datasource.zod.d.ts +42 -8
  81. package/dist/driver/datasource.zod.d.ts.map +1 -0
  82. package/dist/{system → driver}/datasource.zod.js +17 -13
  83. package/dist/driver/driver.zod.d.ts +3392 -0
  84. package/dist/driver/driver.zod.d.ts.map +1 -0
  85. package/dist/{system → driver}/driver.zod.js +99 -0
  86. package/dist/driver/index.d.ts +5 -0
  87. package/dist/driver/index.d.ts.map +1 -0
  88. package/dist/driver/index.js +20 -0
  89. package/dist/driver/mongo.zod.d.ts +107 -0
  90. package/dist/driver/mongo.zod.d.ts.map +1 -0
  91. package/dist/driver/mongo.zod.js +80 -0
  92. package/dist/driver/postgres.zod.d.ts +134 -0
  93. package/dist/driver/postgres.zod.d.ts.map +1 -0
  94. package/dist/driver/postgres.zod.js +88 -0
  95. package/dist/hub/composer.zod.d.ts +2768 -0
  96. package/dist/hub/composer.zod.d.ts.map +1 -0
  97. package/dist/hub/composer.zod.js +111 -0
  98. package/dist/hub/index.d.ts +6 -0
  99. package/dist/hub/index.d.ts.map +1 -0
  100. package/dist/hub/index.js +22 -0
  101. package/dist/{system → hub}/license.zod.d.ts +11 -7
  102. package/dist/hub/license.zod.d.ts.map +1 -0
  103. package/dist/{system → hub}/license.zod.js +5 -3
  104. package/dist/hub/marketplace.zod.d.ts +191 -0
  105. package/dist/hub/marketplace.zod.d.ts.map +1 -0
  106. package/dist/hub/marketplace.zod.js +85 -0
  107. package/dist/hub/space.zod.d.ts +383 -0
  108. package/dist/hub/space.zod.d.ts.map +1 -0
  109. package/dist/hub/space.zod.js +103 -0
  110. package/dist/{system → hub}/tenant.zod.d.ts +73 -47
  111. package/dist/hub/tenant.zod.d.ts.map +1 -0
  112. package/dist/{system → hub}/tenant.zod.js +36 -10
  113. package/dist/index.d.ts +11 -4
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +12 -5
  116. package/dist/kernel/context.zod.d.ts +56 -0
  117. package/dist/kernel/context.zod.d.ts.map +1 -0
  118. package/dist/kernel/context.zod.js +43 -0
  119. package/dist/kernel/index.d.ts +12 -0
  120. package/dist/kernel/index.d.ts.map +1 -0
  121. package/dist/kernel/index.js +27 -0
  122. package/dist/kernel/logger.zod.d.ts +111 -0
  123. package/dist/kernel/logger.zod.d.ts.map +1 -0
  124. package/dist/kernel/logger.zod.js +75 -0
  125. package/dist/kernel/manifest.zod.d.ts +2153 -0
  126. package/dist/kernel/manifest.zod.d.ts.map +1 -0
  127. package/dist/{system → kernel}/manifest.zod.js +40 -0
  128. package/dist/{system → kernel}/plugin.zod.d.ts +598 -318
  129. package/dist/kernel/plugin.zod.d.ts.map +1 -0
  130. package/dist/{system → kernel}/plugin.zod.js +13 -0
  131. package/dist/kernel/scoped-storage.zod.d.ts +81 -0
  132. package/dist/kernel/scoped-storage.zod.d.ts.map +1 -0
  133. package/dist/kernel/scoped-storage.zod.js +66 -0
  134. package/dist/permission/index.d.ts +12 -0
  135. package/dist/permission/index.d.ts.map +1 -0
  136. package/dist/permission/index.js +27 -0
  137. package/dist/{data → permission}/permission.zod.d.ts +34 -3
  138. package/dist/permission/permission.zod.d.ts.map +1 -0
  139. package/dist/{data → permission}/permission.zod.js +10 -1
  140. package/dist/permission/sharing.zod.d.ts +146 -0
  141. package/dist/permission/sharing.zod.d.ts.map +1 -0
  142. package/dist/permission/sharing.zod.js +88 -0
  143. package/dist/permission/territory.zod.d.ts.map +1 -0
  144. package/dist/system/audit.zod.d.ts +52 -52
  145. package/dist/system/events.zod.d.ts +17 -17
  146. package/dist/system/index.d.ts +1 -20
  147. package/dist/system/index.d.ts.map +1 -1
  148. package/dist/system/index.js +3 -20
  149. package/dist/system/job.zod.d.ts +13 -13
  150. package/dist/ui/action.zod.d.ts +13 -13
  151. package/dist/ui/app.zod.d.ts +11 -11
  152. package/dist/ui/dashboard.zod.d.ts +12 -12
  153. package/dist/ui/page.zod.d.ts +2 -2
  154. package/dist/ui/report.zod.d.ts +7 -7
  155. package/dist/ui/theme.zod.d.ts +42 -42
  156. package/dist/ui/view.zod.d.ts +2320 -59
  157. package/dist/ui/view.zod.d.ts.map +1 -1
  158. package/dist/ui/view.zod.js +102 -3
  159. package/dist/ui/widget.zod.d.ts +61 -28
  160. package/dist/ui/widget.zod.d.ts.map +1 -1
  161. package/json-schema/ai/{AIWorkflowAutomation.json → AIOrchestration.json} +5 -5
  162. package/json-schema/ai/{AIWorkflowExecutionResult.json → AIOrchestrationExecutionResult.json} +2 -2
  163. package/json-schema/ai/{AIWorkflowTrigger.json → AIOrchestrationTrigger.json} +2 -2
  164. package/json-schema/ai/{BatchAIWorkflowExecution.json → BatchAIOrchestrationExecution.json} +3 -3
  165. package/json-schema/{system → api}/ApiEndpoint.json +3 -1
  166. package/json-schema/{system → api}/ApiRoutes.json +7 -7
  167. package/json-schema/{system → api}/Discovery.json +7 -7
  168. package/json-schema/api/ExportRequest.json +402 -438
  169. package/json-schema/api/HttpMethod.json +18 -0
  170. package/json-schema/api/RouteCategory.json +17 -0
  171. package/json-schema/api/RouteDefinition.json +77 -0
  172. package/json-schema/api/RouterConfig.json +117 -0
  173. package/json-schema/{data → automation}/Flow.json +31 -1
  174. package/json-schema/{data → automation}/FlowEdge.json +9 -0
  175. package/json-schema/{data/WorkflowRule.json → automation/TimeTrigger.json} +35 -25
  176. package/json-schema/automation/WorkflowRule.json +1031 -0
  177. package/json-schema/data/AggregationNode.json +23 -0
  178. package/json-schema/data/AsyncValidation.json +49 -2
  179. package/json-schema/data/ComparisonOperator.json +52 -0
  180. package/json-schema/data/ConditionalValidation.json +693 -46
  181. package/json-schema/data/CrossFieldValidation.json +33 -2
  182. package/json-schema/data/CurrencyConfig.json +35 -0
  183. package/json-schema/data/CurrencyValue.json +26 -0
  184. package/json-schema/data/CustomValidator.json +37 -10
  185. package/json-schema/data/Field.json +30 -0
  186. package/json-schema/data/FieldOperators.json +78 -0
  187. package/json-schema/data/FieldReference.json +19 -0
  188. package/json-schema/data/FormatValidation.json +33 -2
  189. package/json-schema/data/Hook.json +95 -0
  190. package/json-schema/data/HookContext.json +88 -0
  191. package/json-schema/data/HookEvent.json +29 -0
  192. package/json-schema/data/Index.json +10 -0
  193. package/json-schema/data/JSONValidation.json +85 -0
  194. package/json-schema/data/JoinNode.json +197 -213
  195. package/json-schema/data/{TriggerAction.json → JoinStrategy.json} +6 -5
  196. package/json-schema/data/NormalizedFilter.json +234 -0
  197. package/json-schema/data/Object.json +1580 -28
  198. package/json-schema/data/ObjectCapabilities.json +30 -12
  199. package/json-schema/data/Query.json +246 -262
  200. package/json-schema/data/RangeOperator.json +26 -0
  201. package/json-schema/data/ScriptValidation.json +33 -2
  202. package/json-schema/data/SearchConfig.json +36 -0
  203. package/json-schema/data/StateMachineValidation.json +33 -2
  204. package/json-schema/data/UniquenessValidation.json +33 -2
  205. package/json-schema/data/ValidationRule.json +693 -46
  206. package/json-schema/{system → driver}/Datasource.json +35 -0
  207. package/json-schema/{system → driver}/DriverCapabilities.json +10 -0
  208. package/json-schema/{system → driver}/DriverInterface.json +10 -0
  209. package/json-schema/{system → driver}/DriverOptions.json +11 -0
  210. package/json-schema/driver/MongoConfig.json +82 -0
  211. package/json-schema/driver/PostgresConfig.json +98 -0
  212. package/json-schema/hub/BillOfMaterials.json +70 -0
  213. package/json-schema/hub/ComposerRequest.json +86 -0
  214. package/json-schema/hub/ComposerResponse.json +2645 -0
  215. package/json-schema/hub/ConflictReport.json +53 -0
  216. package/json-schema/hub/DependencyRequirement.json +36 -0
  217. package/json-schema/hub/DeploymentTarget.json +38 -0
  218. package/json-schema/hub/HubSpace.json +279 -0
  219. package/json-schema/{system → hub}/License.json +11 -3
  220. package/json-schema/hub/MarketplacePlugin.json +141 -0
  221. package/json-schema/hub/PluginAuthor.json +26 -0
  222. package/json-schema/hub/PluginPricing.json +43 -0
  223. package/json-schema/hub/SpaceSubscription.json +77 -0
  224. package/json-schema/hub/SubscriptionStatus.json +16 -0
  225. package/json-schema/{system → hub}/Tenant.json +3 -5
  226. package/json-schema/kernel/FileMetadata.json +43 -0
  227. package/json-schema/kernel/KernelContext.json +62 -0
  228. package/json-schema/kernel/LogEntry.json +63 -0
  229. package/json-schema/kernel/LogFormat.json +15 -0
  230. package/json-schema/kernel/LogLevel.json +17 -0
  231. package/json-schema/kernel/LoggerConfig.json +70 -0
  232. package/json-schema/kernel/Manifest.json +2557 -0
  233. package/json-schema/{system → kernel}/PluginContext.json +8 -1
  234. package/json-schema/kernel/RuntimeMode.json +16 -0
  235. package/json-schema/kernel/ScopedStorageConfig.json +54 -0
  236. package/json-schema/kernel/StorageAdapterType.json +17 -0
  237. package/json-schema/kernel/StorageScope.json +18 -0
  238. package/json-schema/permission/CriteriaSharingRule.json +82 -0
  239. package/json-schema/{data → permission}/OWDModel.json +2 -1
  240. package/json-schema/{data → permission}/ObjectPermission.json +15 -0
  241. package/json-schema/permission/OwnerSharingRule.json +102 -0
  242. package/json-schema/{data → permission}/PermissionSet.json +15 -0
  243. package/json-schema/permission/ShareRecipientType.json +16 -0
  244. package/json-schema/{data → permission}/SharingLevel.json +2 -1
  245. package/json-schema/permission/SharingRule.json +182 -0
  246. package/json-schema/{data → permission}/SharingRuleType.json +1 -3
  247. package/json-schema/ui/FieldWidgetProps.json +30 -0
  248. package/json-schema/ui/FormField.json +61 -0
  249. package/json-schema/ui/FormSection.json +60 -1
  250. package/json-schema/ui/FormView.json +257 -2
  251. package/json-schema/{system → ui}/HttpMethod.json +2 -2
  252. package/json-schema/ui/HttpRequest.json +46 -0
  253. package/json-schema/ui/ListColumn.json +57 -0
  254. package/json-schema/ui/ListView.json +249 -4
  255. package/json-schema/ui/PaginationConfig.json +26 -0
  256. package/json-schema/ui/SelectionConfig.json +22 -0
  257. package/json-schema/ui/View.json +1012 -12
  258. package/json-schema/ui/ViewData.json +142 -0
  259. package/llms.txt +182 -0
  260. package/package.json +38 -16
  261. package/prompts/README.md +18 -0
  262. package/prompts/architecture.md +81 -0
  263. package/prompts/implement-objectai.md +39 -0
  264. package/prompts/implement-objectos.md +48 -0
  265. package/prompts/implement-objectql.md +39 -0
  266. package/prompts/implement-objectui.md +46 -0
  267. package/prompts/instructions.md +91 -0
  268. package/dist/ai/workflow-automation.zod.d.ts.map +0 -1
  269. package/dist/data/flow.zod.d.ts.map +0 -1
  270. package/dist/data/permission.zod.d.ts.map +0 -1
  271. package/dist/data/sharing.zod.d.ts +0 -63
  272. package/dist/data/sharing.zod.d.ts.map +0 -1
  273. package/dist/data/sharing.zod.js +0 -57
  274. package/dist/data/trigger.zod.d.ts +0 -354
  275. package/dist/data/trigger.zod.d.ts.map +0 -1
  276. package/dist/data/trigger.zod.js +0 -195
  277. package/dist/data/workflow.zod.d.ts +0 -986
  278. package/dist/data/workflow.zod.d.ts.map +0 -1
  279. package/dist/system/api.zod.d.ts.map +0 -1
  280. package/dist/system/auth-protocol.d.ts.map +0 -1
  281. package/dist/system/auth.zod.d.ts.map +0 -1
  282. package/dist/system/datasource.zod.d.ts.map +0 -1
  283. package/dist/system/discovery.zod.d.ts.map +0 -1
  284. package/dist/system/driver.zod.d.ts +0 -1631
  285. package/dist/system/driver.zod.d.ts.map +0 -1
  286. package/dist/system/identity.zod.d.ts.map +0 -1
  287. package/dist/system/license.zod.d.ts.map +0 -1
  288. package/dist/system/manifest.zod.d.ts +0 -397
  289. package/dist/system/manifest.zod.d.ts.map +0 -1
  290. package/dist/system/organization.zod.d.ts.map +0 -1
  291. package/dist/system/plugin.zod.d.ts.map +0 -1
  292. package/dist/system/policy.zod.d.ts.map +0 -1
  293. package/dist/system/realtime.zod.d.ts.map +0 -1
  294. package/dist/system/role.zod.d.ts.map +0 -1
  295. package/dist/system/tenant.zod.d.ts.map +0 -1
  296. package/dist/system/territory.zod.d.ts.map +0 -1
  297. package/dist/system/webhook.zod.d.ts.map +0 -1
  298. package/json-schema/README.md +0 -127
  299. package/json-schema/data/FieldMapping.json +0 -83
  300. package/json-schema/data/FilterNode.json +0 -52
  301. package/json-schema/data/FilterOperator.json +0 -26
  302. package/json-schema/data/LogicOperator.json +0 -14
  303. package/json-schema/data/Mapping.json +0 -598
  304. package/json-schema/data/SharingRule.json +0 -58
  305. package/json-schema/data/TransformType.json +0 -18
  306. package/json-schema/data/Trigger.json +0 -73
  307. package/json-schema/data/TriggerContext.json +0 -61
  308. package/json-schema/data/TriggerTiming.json +0 -13
  309. package/json-schema/system/Manifest.json +0 -315
  310. /package/dist/{system → api}/realtime.zod.js +0 -0
  311. /package/dist/{system/auth.zod.js → auth/config.zod.js} +0 -0
  312. /package/dist/{system → auth}/identity.zod.js +0 -0
  313. /package/dist/{system → auth}/organization.zod.js +0 -0
  314. /package/dist/{system → auth}/policy.zod.js +0 -0
  315. /package/dist/{system/auth-protocol.js → auth/protocol.js} +0 -0
  316. /package/dist/{system → auth}/role.zod.d.ts +0 -0
  317. /package/dist/{system → auth}/role.zod.js +0 -0
  318. /package/dist/{system → automation}/webhook.zod.js +0 -0
  319. /package/dist/{system → permission}/territory.zod.d.ts +0 -0
  320. /package/dist/{system → permission}/territory.zod.js +0 -0
  321. /package/json-schema/{system → api}/ApiCapabilities.json +0 -0
  322. /package/json-schema/{system → api}/ApiMapping.json +0 -0
  323. /package/json-schema/{system → api}/Presence.json +0 -0
  324. /package/json-schema/{system → api}/PresenceStatus.json +0 -0
  325. /package/json-schema/{system → api}/RateLimit.json +0 -0
  326. /package/json-schema/{system → api}/RealtimeAction.json +0 -0
  327. /package/json-schema/{system → api}/RealtimeEvent.json +0 -0
  328. /package/json-schema/{system → api}/RealtimeEventType.json +0 -0
  329. /package/json-schema/{system → api}/Subscription.json +0 -0
  330. /package/json-schema/{system → api}/SubscriptionEvent.json +0 -0
  331. /package/json-schema/{system → api}/TransportProtocol.json +0 -0
  332. /package/json-schema/{system → auth}/Account.json +0 -0
  333. /package/json-schema/{system → auth}/AccountLinkingConfig.json +0 -0
  334. /package/json-schema/{system → auth}/AuditPolicy.json +0 -0
  335. /package/json-schema/{system → auth}/AuthConfig.json +0 -0
  336. /package/json-schema/{system → auth}/AuthPluginConfig.json +0 -0
  337. /package/json-schema/{system → auth}/AuthStrategy.json +0 -0
  338. /package/json-schema/{system → auth}/CSRFConfig.json +0 -0
  339. /package/json-schema/{system → auth}/DatabaseAdapter.json +0 -0
  340. /package/json-schema/{system → auth}/DatabaseMapping.json +0 -0
  341. /package/json-schema/{system → auth}/EmailPasswordConfig.json +0 -0
  342. /package/json-schema/{system → auth}/EnterpriseAuthConfig.json +0 -0
  343. /package/json-schema/{system → auth}/Invitation.json +0 -0
  344. /package/json-schema/{system → auth}/InvitationStatus.json +0 -0
  345. /package/json-schema/{system → auth}/LDAPConfig.json +0 -0
  346. /package/json-schema/{system → auth}/MagicLinkConfig.json +0 -0
  347. /package/json-schema/{system → auth}/Member.json +0 -0
  348. /package/json-schema/{system → auth}/NetworkPolicy.json +0 -0
  349. /package/json-schema/{system → auth}/OAuthProvider.json +0 -0
  350. /package/json-schema/{system → auth}/OIDCConfig.json +0 -0
  351. /package/json-schema/{system → auth}/Organization.json +0 -0
  352. /package/json-schema/{system → auth}/PasskeyConfig.json +0 -0
  353. /package/json-schema/{system → auth}/PasswordPolicy.json +0 -0
  354. /package/json-schema/{system → auth}/Policy.json +0 -0
  355. /package/json-schema/{system → auth}/RateLimitConfig.json +0 -0
  356. /package/json-schema/{system → auth}/Role.json +0 -0
  357. /package/json-schema/{system → auth}/SAMLConfig.json +0 -0
  358. /package/json-schema/{system → auth}/Session.json +0 -0
  359. /package/json-schema/{system → auth}/SessionConfig.json +0 -0
  360. /package/json-schema/{system → auth}/SessionPolicy.json +0 -0
  361. /package/json-schema/{system → auth}/StandardAuthProvider.json +0 -0
  362. /package/json-schema/{system → auth}/TwoFactorConfig.json +0 -0
  363. /package/json-schema/{system → auth}/User.json +0 -0
  364. /package/json-schema/{system → auth}/UserFieldMapping.json +0 -0
  365. /package/json-schema/{system → auth}/VerificationToken.json +0 -0
  366. /package/json-schema/{data → automation}/CustomScriptAction.json +0 -0
  367. /package/json-schema/{data → automation}/EmailAlertAction.json +0 -0
  368. /package/json-schema/{data → automation}/FieldUpdateAction.json +0 -0
  369. /package/json-schema/{data → automation}/FlowNode.json +0 -0
  370. /package/json-schema/{data → automation}/FlowNodeAction.json +0 -0
  371. /package/json-schema/{data → automation}/FlowVariable.json +0 -0
  372. /package/json-schema/{data → automation}/HttpCallAction.json +0 -0
  373. /package/json-schema/{data → automation}/PushNotificationAction.json +0 -0
  374. /package/json-schema/{data → automation}/SlackMessageAction.json +0 -0
  375. /package/json-schema/{data → automation}/SmsNotificationAction.json +0 -0
  376. /package/json-schema/{data → automation}/TaskCreationAction.json +0 -0
  377. /package/json-schema/{data → automation}/TeamsMessageAction.json +0 -0
  378. /package/json-schema/{system → automation}/Webhook.json +0 -0
  379. /package/json-schema/{system → automation}/WebhookReceiver.json +0 -0
  380. /package/json-schema/{data → automation}/WebhookTriggerAction.json +0 -0
  381. /package/json-schema/{system → automation}/WebhookTriggerType.json +0 -0
  382. /package/json-schema/{data → automation}/WorkflowAction.json +0 -0
  383. /package/json-schema/{data → automation}/WorkflowTriggerType.json +0 -0
  384. /package/json-schema/{system → driver}/DatasourceCapabilities.json +0 -0
  385. /package/json-schema/{system → driver}/DriverDefinition.json +0 -0
  386. /package/json-schema/{system → driver}/DriverType.json +0 -0
  387. /package/json-schema/{system → hub}/DatabaseLevelIsolationStrategy.json +0 -0
  388. /package/json-schema/{system → hub}/Feature.json +0 -0
  389. /package/json-schema/{system → hub}/LevelIsolationStrategySchema.json +0 -0
  390. /package/json-schema/{system → hub}/MetricType.json +0 -0
  391. /package/json-schema/{system → hub}/Plan.json +0 -0
  392. /package/json-schema/{system → hub}/RowLevelIsolationStrategy.json +0 -0
  393. /package/json-schema/{system → hub}/TenantIsolationConfig.json +0 -0
  394. /package/json-schema/{system → hub}/TenantIsolationLevel.json +0 -0
  395. /package/json-schema/{system → hub}/TenantQuota.json +0 -0
  396. /package/json-schema/{system → hub}/TenantSecurityPolicy.json +0 -0
  397. /package/json-schema/{system → kernel}/I18nContext.json +0 -0
  398. /package/json-schema/{system → kernel}/Logger.json +0 -0
  399. /package/json-schema/{system → kernel}/ObjectQLClient.json +0 -0
  400. /package/json-schema/{system → kernel}/Plugin.json +0 -0
  401. /package/json-schema/{system → kernel}/PluginLifecycle.json +0 -0
  402. /package/json-schema/{system → kernel}/Router.json +0 -0
  403. /package/json-schema/{system → kernel}/Scheduler.json +0 -0
  404. /package/json-schema/{system → kernel}/ScopedStorage.json +0 -0
  405. /package/json-schema/{system → kernel}/SystemAPI.json +0 -0
  406. /package/json-schema/{data → permission}/FieldPermission.json +0 -0
  407. /package/json-schema/{system → permission}/Territory.json +0 -0
  408. /package/json-schema/{system → permission}/TerritoryModel.json +0 -0
  409. /package/json-schema/{system → permission}/TerritoryType.json +0 -0
@@ -0,0 +1,1031 @@
1
+ {
2
+ "$ref": "#/definitions/WorkflowRule",
3
+ "definitions": {
4
+ "WorkflowRule": {
5
+ "type": "object",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "pattern": "^[a-z_][a-z0-9_]*$",
10
+ "description": "Unique workflow name"
11
+ },
12
+ "objectName": {
13
+ "type": "string",
14
+ "description": "Target Object"
15
+ },
16
+ "triggerType": {
17
+ "type": "string",
18
+ "enum": [
19
+ "on_create",
20
+ "on_update",
21
+ "on_create_or_update",
22
+ "on_delete",
23
+ "schedule"
24
+ ],
25
+ "description": "When to evaluate"
26
+ },
27
+ "criteria": {
28
+ "type": "string",
29
+ "description": "Formula condition. If TRUE, actions execute."
30
+ },
31
+ "actions": {
32
+ "type": "array",
33
+ "items": {
34
+ "anyOf": [
35
+ {
36
+ "type": "object",
37
+ "properties": {
38
+ "name": {
39
+ "type": "string",
40
+ "description": "Action name"
41
+ },
42
+ "type": {
43
+ "type": "string",
44
+ "const": "field_update"
45
+ },
46
+ "field": {
47
+ "type": "string",
48
+ "description": "Field to update"
49
+ },
50
+ "value": {
51
+ "description": "Value or Formula to set"
52
+ }
53
+ },
54
+ "required": [
55
+ "name",
56
+ "type",
57
+ "field"
58
+ ],
59
+ "additionalProperties": false
60
+ },
61
+ {
62
+ "type": "object",
63
+ "properties": {
64
+ "name": {
65
+ "type": "string",
66
+ "description": "Action name"
67
+ },
68
+ "type": {
69
+ "type": "string",
70
+ "const": "email_alert"
71
+ },
72
+ "template": {
73
+ "type": "string",
74
+ "description": "Email template ID/DevName"
75
+ },
76
+ "recipients": {
77
+ "type": "array",
78
+ "items": {
79
+ "type": "string"
80
+ },
81
+ "description": "List of recipient emails or user IDs"
82
+ }
83
+ },
84
+ "required": [
85
+ "name",
86
+ "type",
87
+ "template",
88
+ "recipients"
89
+ ],
90
+ "additionalProperties": false
91
+ },
92
+ {
93
+ "type": "object",
94
+ "properties": {
95
+ "name": {
96
+ "type": "string",
97
+ "description": "Action name"
98
+ },
99
+ "type": {
100
+ "type": "string",
101
+ "const": "sms_notification"
102
+ },
103
+ "provider": {
104
+ "type": "string",
105
+ "enum": [
106
+ "twilio",
107
+ "vonage"
108
+ ],
109
+ "description": "SMS provider"
110
+ },
111
+ "recipients": {
112
+ "type": "array",
113
+ "items": {
114
+ "type": "string"
115
+ },
116
+ "description": "List of phone numbers or user field references"
117
+ },
118
+ "message": {
119
+ "type": "string",
120
+ "description": "SMS message text or template"
121
+ },
122
+ "fromNumber": {
123
+ "type": "string",
124
+ "description": "Sender phone number (provider-specific)"
125
+ }
126
+ },
127
+ "required": [
128
+ "name",
129
+ "type",
130
+ "provider",
131
+ "recipients",
132
+ "message"
133
+ ],
134
+ "additionalProperties": false
135
+ },
136
+ {
137
+ "type": "object",
138
+ "properties": {
139
+ "name": {
140
+ "type": "string",
141
+ "description": "Action name"
142
+ },
143
+ "type": {
144
+ "type": "string",
145
+ "const": "slack_message"
146
+ },
147
+ "channel": {
148
+ "type": "string",
149
+ "description": "Slack channel ID or name (#channel)"
150
+ },
151
+ "message": {
152
+ "type": "string",
153
+ "description": "Message text with optional markdown"
154
+ },
155
+ "mentions": {
156
+ "type": "array",
157
+ "items": {
158
+ "type": "string"
159
+ },
160
+ "description": "User IDs or @username to mention"
161
+ },
162
+ "threadId": {
163
+ "type": "string",
164
+ "description": "Thread ID for replies"
165
+ }
166
+ },
167
+ "required": [
168
+ "name",
169
+ "type",
170
+ "channel",
171
+ "message"
172
+ ],
173
+ "additionalProperties": false
174
+ },
175
+ {
176
+ "type": "object",
177
+ "properties": {
178
+ "name": {
179
+ "type": "string",
180
+ "description": "Action name"
181
+ },
182
+ "type": {
183
+ "type": "string",
184
+ "const": "teams_message"
185
+ },
186
+ "channel": {
187
+ "type": "string",
188
+ "description": "Teams channel ID"
189
+ },
190
+ "message": {
191
+ "type": "string",
192
+ "description": "Message text with optional markdown"
193
+ },
194
+ "mentions": {
195
+ "type": "array",
196
+ "items": {
197
+ "type": "string"
198
+ },
199
+ "description": "User IDs to mention"
200
+ },
201
+ "teamId": {
202
+ "type": "string",
203
+ "description": "Team ID (if not in default team)"
204
+ }
205
+ },
206
+ "required": [
207
+ "name",
208
+ "type",
209
+ "channel",
210
+ "message"
211
+ ],
212
+ "additionalProperties": false
213
+ },
214
+ {
215
+ "type": "object",
216
+ "properties": {
217
+ "name": {
218
+ "type": "string",
219
+ "description": "Action name"
220
+ },
221
+ "type": {
222
+ "type": "string",
223
+ "const": "http_call"
224
+ },
225
+ "url": {
226
+ "type": "string",
227
+ "description": "Target URL"
228
+ },
229
+ "method": {
230
+ "type": "string",
231
+ "enum": [
232
+ "GET",
233
+ "POST",
234
+ "PUT",
235
+ "PATCH",
236
+ "DELETE"
237
+ ],
238
+ "description": "HTTP method"
239
+ },
240
+ "headers": {
241
+ "type": "object",
242
+ "additionalProperties": {
243
+ "type": "string"
244
+ },
245
+ "description": "Request headers"
246
+ },
247
+ "body": {
248
+ "description": "Request body (object/string)"
249
+ },
250
+ "authentication": {
251
+ "type": "object",
252
+ "properties": {
253
+ "type": {
254
+ "type": "string",
255
+ "enum": [
256
+ "none",
257
+ "basic",
258
+ "bearer",
259
+ "api_key",
260
+ "oauth2"
261
+ ]
262
+ },
263
+ "credentials": {
264
+ "type": "object",
265
+ "additionalProperties": {
266
+ "type": "string"
267
+ }
268
+ }
269
+ },
270
+ "required": [
271
+ "type"
272
+ ],
273
+ "additionalProperties": false,
274
+ "description": "Authentication configuration"
275
+ },
276
+ "timeout": {
277
+ "type": "number",
278
+ "description": "Request timeout in milliseconds"
279
+ }
280
+ },
281
+ "required": [
282
+ "name",
283
+ "type",
284
+ "url",
285
+ "method"
286
+ ],
287
+ "additionalProperties": false
288
+ },
289
+ {
290
+ "type": "object",
291
+ "properties": {
292
+ "name": {
293
+ "type": "string",
294
+ "description": "Action name"
295
+ },
296
+ "type": {
297
+ "type": "string",
298
+ "const": "webhook_trigger"
299
+ },
300
+ "url": {
301
+ "type": "string",
302
+ "description": "Webhook URL to call"
303
+ },
304
+ "method": {
305
+ "type": "string",
306
+ "enum": [
307
+ "POST",
308
+ "PUT"
309
+ ],
310
+ "default": "POST",
311
+ "description": "HTTP method"
312
+ },
313
+ "headers": {
314
+ "type": "object",
315
+ "additionalProperties": {
316
+ "type": "string"
317
+ },
318
+ "description": "Custom headers"
319
+ },
320
+ "payload": {
321
+ "description": "Webhook payload (uses record data if not specified)"
322
+ },
323
+ "retryOnFailure": {
324
+ "type": "boolean",
325
+ "default": true,
326
+ "description": "Retry if webhook fails"
327
+ },
328
+ "maxRetries": {
329
+ "type": "number",
330
+ "default": 3,
331
+ "description": "Maximum retry attempts"
332
+ }
333
+ },
334
+ "required": [
335
+ "name",
336
+ "type",
337
+ "url"
338
+ ],
339
+ "additionalProperties": false
340
+ },
341
+ {
342
+ "type": "object",
343
+ "properties": {
344
+ "name": {
345
+ "type": "string",
346
+ "description": "Action name"
347
+ },
348
+ "type": {
349
+ "type": "string",
350
+ "const": "task_creation"
351
+ },
352
+ "taskObject": {
353
+ "type": "string",
354
+ "description": "Task object name (e.g., \"task\", \"project_task\")"
355
+ },
356
+ "subject": {
357
+ "type": "string",
358
+ "description": "Task subject/title"
359
+ },
360
+ "description": {
361
+ "type": "string",
362
+ "description": "Task description"
363
+ },
364
+ "assignedTo": {
365
+ "type": "string",
366
+ "description": "User ID or field reference for assignee"
367
+ },
368
+ "dueDate": {
369
+ "type": "string",
370
+ "description": "Due date (ISO string or formula)"
371
+ },
372
+ "priority": {
373
+ "type": "string",
374
+ "description": "Task priority"
375
+ },
376
+ "relatedTo": {
377
+ "type": "string",
378
+ "description": "Related record ID or field reference"
379
+ },
380
+ "additionalFields": {
381
+ "type": "object",
382
+ "additionalProperties": {},
383
+ "description": "Additional custom fields"
384
+ }
385
+ },
386
+ "required": [
387
+ "name",
388
+ "type",
389
+ "taskObject",
390
+ "subject"
391
+ ],
392
+ "additionalProperties": false
393
+ },
394
+ {
395
+ "type": "object",
396
+ "properties": {
397
+ "name": {
398
+ "type": "string",
399
+ "description": "Action name"
400
+ },
401
+ "type": {
402
+ "type": "string",
403
+ "const": "push_notification"
404
+ },
405
+ "title": {
406
+ "type": "string",
407
+ "description": "Notification title"
408
+ },
409
+ "body": {
410
+ "type": "string",
411
+ "description": "Notification body text"
412
+ },
413
+ "recipients": {
414
+ "type": "array",
415
+ "items": {
416
+ "type": "string"
417
+ },
418
+ "description": "User IDs or device tokens"
419
+ },
420
+ "data": {
421
+ "type": "object",
422
+ "additionalProperties": {},
423
+ "description": "Additional data payload"
424
+ },
425
+ "badge": {
426
+ "type": "number",
427
+ "description": "Badge count (iOS)"
428
+ },
429
+ "sound": {
430
+ "type": "string",
431
+ "description": "Notification sound"
432
+ },
433
+ "clickAction": {
434
+ "type": "string",
435
+ "description": "Action/URL when notification is clicked"
436
+ }
437
+ },
438
+ "required": [
439
+ "name",
440
+ "type",
441
+ "title",
442
+ "body",
443
+ "recipients"
444
+ ],
445
+ "additionalProperties": false
446
+ },
447
+ {
448
+ "type": "object",
449
+ "properties": {
450
+ "name": {
451
+ "type": "string",
452
+ "description": "Action name"
453
+ },
454
+ "type": {
455
+ "type": "string",
456
+ "const": "custom_script"
457
+ },
458
+ "language": {
459
+ "type": "string",
460
+ "enum": [
461
+ "javascript",
462
+ "typescript",
463
+ "python"
464
+ ],
465
+ "default": "javascript",
466
+ "description": "Script language"
467
+ },
468
+ "code": {
469
+ "type": "string",
470
+ "description": "Script code to execute"
471
+ },
472
+ "timeout": {
473
+ "type": "number",
474
+ "default": 30000,
475
+ "description": "Execution timeout in milliseconds"
476
+ },
477
+ "context": {
478
+ "type": "object",
479
+ "additionalProperties": {},
480
+ "description": "Additional context variables"
481
+ }
482
+ },
483
+ "required": [
484
+ "name",
485
+ "type",
486
+ "code"
487
+ ],
488
+ "additionalProperties": false
489
+ }
490
+ ]
491
+ },
492
+ "description": "Immediate actions"
493
+ },
494
+ "timeTriggers": {
495
+ "type": "array",
496
+ "items": {
497
+ "type": "object",
498
+ "properties": {
499
+ "id": {
500
+ "type": "string",
501
+ "description": "Unique identifier"
502
+ },
503
+ "timeLength": {
504
+ "type": "integer",
505
+ "description": "Duration amount (e.g. 1, 30)"
506
+ },
507
+ "timeUnit": {
508
+ "type": "string",
509
+ "enum": [
510
+ "minutes",
511
+ "hours",
512
+ "days"
513
+ ],
514
+ "description": "Unit of time"
515
+ },
516
+ "offsetDirection": {
517
+ "type": "string",
518
+ "enum": [
519
+ "before",
520
+ "after"
521
+ ],
522
+ "description": "Before or After the reference date"
523
+ },
524
+ "offsetFrom": {
525
+ "type": "string",
526
+ "enum": [
527
+ "trigger_date",
528
+ "date_field"
529
+ ],
530
+ "description": "Basis for calculation"
531
+ },
532
+ "dateField": {
533
+ "type": "string",
534
+ "description": "Date field to calculate from (required if offsetFrom is date_field)"
535
+ },
536
+ "actions": {
537
+ "type": "array",
538
+ "items": {
539
+ "anyOf": [
540
+ {
541
+ "type": "object",
542
+ "properties": {
543
+ "name": {
544
+ "type": "string",
545
+ "description": "Action name"
546
+ },
547
+ "type": {
548
+ "type": "string",
549
+ "const": "field_update"
550
+ },
551
+ "field": {
552
+ "type": "string",
553
+ "description": "Field to update"
554
+ },
555
+ "value": {
556
+ "description": "Value or Formula to set"
557
+ }
558
+ },
559
+ "required": [
560
+ "name",
561
+ "type",
562
+ "field"
563
+ ],
564
+ "additionalProperties": false
565
+ },
566
+ {
567
+ "type": "object",
568
+ "properties": {
569
+ "name": {
570
+ "type": "string",
571
+ "description": "Action name"
572
+ },
573
+ "type": {
574
+ "type": "string",
575
+ "const": "email_alert"
576
+ },
577
+ "template": {
578
+ "type": "string",
579
+ "description": "Email template ID/DevName"
580
+ },
581
+ "recipients": {
582
+ "type": "array",
583
+ "items": {
584
+ "type": "string"
585
+ },
586
+ "description": "List of recipient emails or user IDs"
587
+ }
588
+ },
589
+ "required": [
590
+ "name",
591
+ "type",
592
+ "template",
593
+ "recipients"
594
+ ],
595
+ "additionalProperties": false
596
+ },
597
+ {
598
+ "type": "object",
599
+ "properties": {
600
+ "name": {
601
+ "type": "string",
602
+ "description": "Action name"
603
+ },
604
+ "type": {
605
+ "type": "string",
606
+ "const": "sms_notification"
607
+ },
608
+ "provider": {
609
+ "type": "string",
610
+ "enum": [
611
+ "twilio",
612
+ "vonage"
613
+ ],
614
+ "description": "SMS provider"
615
+ },
616
+ "recipients": {
617
+ "type": "array",
618
+ "items": {
619
+ "type": "string"
620
+ },
621
+ "description": "List of phone numbers or user field references"
622
+ },
623
+ "message": {
624
+ "type": "string",
625
+ "description": "SMS message text or template"
626
+ },
627
+ "fromNumber": {
628
+ "type": "string",
629
+ "description": "Sender phone number (provider-specific)"
630
+ }
631
+ },
632
+ "required": [
633
+ "name",
634
+ "type",
635
+ "provider",
636
+ "recipients",
637
+ "message"
638
+ ],
639
+ "additionalProperties": false
640
+ },
641
+ {
642
+ "type": "object",
643
+ "properties": {
644
+ "name": {
645
+ "type": "string",
646
+ "description": "Action name"
647
+ },
648
+ "type": {
649
+ "type": "string",
650
+ "const": "slack_message"
651
+ },
652
+ "channel": {
653
+ "type": "string",
654
+ "description": "Slack channel ID or name (#channel)"
655
+ },
656
+ "message": {
657
+ "type": "string",
658
+ "description": "Message text with optional markdown"
659
+ },
660
+ "mentions": {
661
+ "type": "array",
662
+ "items": {
663
+ "type": "string"
664
+ },
665
+ "description": "User IDs or @username to mention"
666
+ },
667
+ "threadId": {
668
+ "type": "string",
669
+ "description": "Thread ID for replies"
670
+ }
671
+ },
672
+ "required": [
673
+ "name",
674
+ "type",
675
+ "channel",
676
+ "message"
677
+ ],
678
+ "additionalProperties": false
679
+ },
680
+ {
681
+ "type": "object",
682
+ "properties": {
683
+ "name": {
684
+ "type": "string",
685
+ "description": "Action name"
686
+ },
687
+ "type": {
688
+ "type": "string",
689
+ "const": "teams_message"
690
+ },
691
+ "channel": {
692
+ "type": "string",
693
+ "description": "Teams channel ID"
694
+ },
695
+ "message": {
696
+ "type": "string",
697
+ "description": "Message text with optional markdown"
698
+ },
699
+ "mentions": {
700
+ "type": "array",
701
+ "items": {
702
+ "type": "string"
703
+ },
704
+ "description": "User IDs to mention"
705
+ },
706
+ "teamId": {
707
+ "type": "string",
708
+ "description": "Team ID (if not in default team)"
709
+ }
710
+ },
711
+ "required": [
712
+ "name",
713
+ "type",
714
+ "channel",
715
+ "message"
716
+ ],
717
+ "additionalProperties": false
718
+ },
719
+ {
720
+ "type": "object",
721
+ "properties": {
722
+ "name": {
723
+ "type": "string",
724
+ "description": "Action name"
725
+ },
726
+ "type": {
727
+ "type": "string",
728
+ "const": "http_call"
729
+ },
730
+ "url": {
731
+ "type": "string",
732
+ "description": "Target URL"
733
+ },
734
+ "method": {
735
+ "type": "string",
736
+ "enum": [
737
+ "GET",
738
+ "POST",
739
+ "PUT",
740
+ "PATCH",
741
+ "DELETE"
742
+ ],
743
+ "description": "HTTP method"
744
+ },
745
+ "headers": {
746
+ "type": "object",
747
+ "additionalProperties": {
748
+ "type": "string"
749
+ },
750
+ "description": "Request headers"
751
+ },
752
+ "body": {
753
+ "description": "Request body (object/string)"
754
+ },
755
+ "authentication": {
756
+ "type": "object",
757
+ "properties": {
758
+ "type": {
759
+ "type": "string",
760
+ "enum": [
761
+ "none",
762
+ "basic",
763
+ "bearer",
764
+ "api_key",
765
+ "oauth2"
766
+ ]
767
+ },
768
+ "credentials": {
769
+ "type": "object",
770
+ "additionalProperties": {
771
+ "type": "string"
772
+ }
773
+ }
774
+ },
775
+ "required": [
776
+ "type"
777
+ ],
778
+ "additionalProperties": false,
779
+ "description": "Authentication configuration"
780
+ },
781
+ "timeout": {
782
+ "type": "number",
783
+ "description": "Request timeout in milliseconds"
784
+ }
785
+ },
786
+ "required": [
787
+ "name",
788
+ "type",
789
+ "url",
790
+ "method"
791
+ ],
792
+ "additionalProperties": false
793
+ },
794
+ {
795
+ "type": "object",
796
+ "properties": {
797
+ "name": {
798
+ "type": "string",
799
+ "description": "Action name"
800
+ },
801
+ "type": {
802
+ "type": "string",
803
+ "const": "webhook_trigger"
804
+ },
805
+ "url": {
806
+ "type": "string",
807
+ "description": "Webhook URL to call"
808
+ },
809
+ "method": {
810
+ "type": "string",
811
+ "enum": [
812
+ "POST",
813
+ "PUT"
814
+ ],
815
+ "default": "POST",
816
+ "description": "HTTP method"
817
+ },
818
+ "headers": {
819
+ "type": "object",
820
+ "additionalProperties": {
821
+ "type": "string"
822
+ },
823
+ "description": "Custom headers"
824
+ },
825
+ "payload": {
826
+ "description": "Webhook payload (uses record data if not specified)"
827
+ },
828
+ "retryOnFailure": {
829
+ "type": "boolean",
830
+ "default": true,
831
+ "description": "Retry if webhook fails"
832
+ },
833
+ "maxRetries": {
834
+ "type": "number",
835
+ "default": 3,
836
+ "description": "Maximum retry attempts"
837
+ }
838
+ },
839
+ "required": [
840
+ "name",
841
+ "type",
842
+ "url"
843
+ ],
844
+ "additionalProperties": false
845
+ },
846
+ {
847
+ "type": "object",
848
+ "properties": {
849
+ "name": {
850
+ "type": "string",
851
+ "description": "Action name"
852
+ },
853
+ "type": {
854
+ "type": "string",
855
+ "const": "task_creation"
856
+ },
857
+ "taskObject": {
858
+ "type": "string",
859
+ "description": "Task object name (e.g., \"task\", \"project_task\")"
860
+ },
861
+ "subject": {
862
+ "type": "string",
863
+ "description": "Task subject/title"
864
+ },
865
+ "description": {
866
+ "type": "string",
867
+ "description": "Task description"
868
+ },
869
+ "assignedTo": {
870
+ "type": "string",
871
+ "description": "User ID or field reference for assignee"
872
+ },
873
+ "dueDate": {
874
+ "type": "string",
875
+ "description": "Due date (ISO string or formula)"
876
+ },
877
+ "priority": {
878
+ "type": "string",
879
+ "description": "Task priority"
880
+ },
881
+ "relatedTo": {
882
+ "type": "string",
883
+ "description": "Related record ID or field reference"
884
+ },
885
+ "additionalFields": {
886
+ "type": "object",
887
+ "additionalProperties": {},
888
+ "description": "Additional custom fields"
889
+ }
890
+ },
891
+ "required": [
892
+ "name",
893
+ "type",
894
+ "taskObject",
895
+ "subject"
896
+ ],
897
+ "additionalProperties": false
898
+ },
899
+ {
900
+ "type": "object",
901
+ "properties": {
902
+ "name": {
903
+ "type": "string",
904
+ "description": "Action name"
905
+ },
906
+ "type": {
907
+ "type": "string",
908
+ "const": "push_notification"
909
+ },
910
+ "title": {
911
+ "type": "string",
912
+ "description": "Notification title"
913
+ },
914
+ "body": {
915
+ "type": "string",
916
+ "description": "Notification body text"
917
+ },
918
+ "recipients": {
919
+ "type": "array",
920
+ "items": {
921
+ "type": "string"
922
+ },
923
+ "description": "User IDs or device tokens"
924
+ },
925
+ "data": {
926
+ "type": "object",
927
+ "additionalProperties": {},
928
+ "description": "Additional data payload"
929
+ },
930
+ "badge": {
931
+ "type": "number",
932
+ "description": "Badge count (iOS)"
933
+ },
934
+ "sound": {
935
+ "type": "string",
936
+ "description": "Notification sound"
937
+ },
938
+ "clickAction": {
939
+ "type": "string",
940
+ "description": "Action/URL when notification is clicked"
941
+ }
942
+ },
943
+ "required": [
944
+ "name",
945
+ "type",
946
+ "title",
947
+ "body",
948
+ "recipients"
949
+ ],
950
+ "additionalProperties": false
951
+ },
952
+ {
953
+ "type": "object",
954
+ "properties": {
955
+ "name": {
956
+ "type": "string",
957
+ "description": "Action name"
958
+ },
959
+ "type": {
960
+ "type": "string",
961
+ "const": "custom_script"
962
+ },
963
+ "language": {
964
+ "type": "string",
965
+ "enum": [
966
+ "javascript",
967
+ "typescript",
968
+ "python"
969
+ ],
970
+ "default": "javascript",
971
+ "description": "Script language"
972
+ },
973
+ "code": {
974
+ "type": "string",
975
+ "description": "Script code to execute"
976
+ },
977
+ "timeout": {
978
+ "type": "number",
979
+ "default": 30000,
980
+ "description": "Execution timeout in milliseconds"
981
+ },
982
+ "context": {
983
+ "type": "object",
984
+ "additionalProperties": {},
985
+ "description": "Additional context variables"
986
+ }
987
+ },
988
+ "required": [
989
+ "name",
990
+ "type",
991
+ "code"
992
+ ],
993
+ "additionalProperties": false
994
+ }
995
+ ]
996
+ },
997
+ "description": "Actions to execute at the scheduled time"
998
+ }
999
+ },
1000
+ "required": [
1001
+ "timeLength",
1002
+ "timeUnit",
1003
+ "offsetDirection",
1004
+ "offsetFrom",
1005
+ "actions"
1006
+ ],
1007
+ "additionalProperties": false
1008
+ },
1009
+ "description": "Scheduled actions relative to trigger or date field"
1010
+ },
1011
+ "active": {
1012
+ "type": "boolean",
1013
+ "default": true,
1014
+ "description": "Whether this workflow is active"
1015
+ },
1016
+ "reevaluateOnChange": {
1017
+ "type": "boolean",
1018
+ "default": false,
1019
+ "description": "Re-evaluate rule if field updates change the record validity"
1020
+ }
1021
+ },
1022
+ "required": [
1023
+ "name",
1024
+ "objectName",
1025
+ "triggerType"
1026
+ ],
1027
+ "additionalProperties": false
1028
+ }
1029
+ },
1030
+ "$schema": "http://json-schema.org/draft-07/schema#"
1031
+ }