@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
@@ -7,12 +7,43 @@
7
7
  "name": {
8
8
  "type": "string",
9
9
  "pattern": "^[a-z_][a-z0-9_]*$",
10
- "description": "Unique rule name"
10
+ "description": "Unique rule name (snake_case)"
11
+ },
12
+ "label": {
13
+ "type": "string",
14
+ "description": "Human-readable label for the rule listing"
15
+ },
16
+ "description": {
17
+ "type": "string",
18
+ "description": "Administrative notes explaining the business reason"
11
19
  },
12
20
  "active": {
13
21
  "type": "boolean",
14
22
  "default": true
15
23
  },
24
+ "events": {
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string",
28
+ "enum": [
29
+ "insert",
30
+ "update",
31
+ "delete"
32
+ ]
33
+ },
34
+ "default": [
35
+ "insert",
36
+ "update"
37
+ ],
38
+ "description": "Validation contexts"
39
+ },
40
+ "tags": {
41
+ "type": "array",
42
+ "items": {
43
+ "type": "string"
44
+ },
45
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
46
+ },
16
47
  "severity": {
17
48
  "type": "string",
18
49
  "enum": [
@@ -24,7 +55,7 @@
24
55
  },
25
56
  "message": {
26
57
  "type": "string",
27
- "description": "Error message to display"
58
+ "description": "Error message to display to the user"
28
59
  },
29
60
  "type": {
30
61
  "type": "string",
@@ -42,12 +73,43 @@
42
73
  "name": {
43
74
  "type": "string",
44
75
  "pattern": "^[a-z_][a-z0-9_]*$",
45
- "description": "Unique rule name"
76
+ "description": "Unique rule name (snake_case)"
77
+ },
78
+ "label": {
79
+ "type": "string",
80
+ "description": "Human-readable label for the rule listing"
81
+ },
82
+ "description": {
83
+ "type": "string",
84
+ "description": "Administrative notes explaining the business reason"
46
85
  },
47
86
  "active": {
48
87
  "type": "boolean",
49
88
  "default": true
50
89
  },
90
+ "events": {
91
+ "type": "array",
92
+ "items": {
93
+ "type": "string",
94
+ "enum": [
95
+ "insert",
96
+ "update",
97
+ "delete"
98
+ ]
99
+ },
100
+ "default": [
101
+ "insert",
102
+ "update"
103
+ ],
104
+ "description": "Validation contexts"
105
+ },
106
+ "tags": {
107
+ "type": "array",
108
+ "items": {
109
+ "type": "string"
110
+ },
111
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
112
+ },
51
113
  "severity": {
52
114
  "type": "string",
53
115
  "enum": [
@@ -59,7 +121,7 @@
59
121
  },
60
122
  "message": {
61
123
  "type": "string",
62
- "description": "Error message to display"
124
+ "description": "Error message to display to the user"
63
125
  },
64
126
  "type": {
65
127
  "type": "string",
@@ -84,12 +146,43 @@
84
146
  "name": {
85
147
  "type": "string",
86
148
  "pattern": "^[a-z_][a-z0-9_]*$",
87
- "description": "Unique rule name"
149
+ "description": "Unique rule name (snake_case)"
150
+ },
151
+ "label": {
152
+ "type": "string",
153
+ "description": "Human-readable label for the rule listing"
154
+ },
155
+ "description": {
156
+ "type": "string",
157
+ "description": "Administrative notes explaining the business reason"
88
158
  },
89
159
  "active": {
90
160
  "type": "boolean",
91
161
  "default": true
92
162
  },
163
+ "events": {
164
+ "type": "array",
165
+ "items": {
166
+ "type": "string",
167
+ "enum": [
168
+ "insert",
169
+ "update",
170
+ "delete"
171
+ ]
172
+ },
173
+ "default": [
174
+ "insert",
175
+ "update"
176
+ ],
177
+ "description": "Validation contexts"
178
+ },
179
+ "tags": {
180
+ "type": "array",
181
+ "items": {
182
+ "type": "string"
183
+ },
184
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
185
+ },
93
186
  "severity": {
94
187
  "type": "string",
95
188
  "enum": [
@@ -101,7 +194,7 @@
101
194
  },
102
195
  "message": {
103
196
  "type": "string",
104
- "description": "Error message to display"
197
+ "description": "Error message to display to the user"
105
198
  },
106
199
  "type": {
107
200
  "type": "string",
@@ -137,12 +230,43 @@
137
230
  "name": {
138
231
  "type": "string",
139
232
  "pattern": "^[a-z_][a-z0-9_]*$",
140
- "description": "Unique rule name"
233
+ "description": "Unique rule name (snake_case)"
234
+ },
235
+ "label": {
236
+ "type": "string",
237
+ "description": "Human-readable label for the rule listing"
238
+ },
239
+ "description": {
240
+ "type": "string",
241
+ "description": "Administrative notes explaining the business reason"
141
242
  },
142
243
  "active": {
143
244
  "type": "boolean",
144
245
  "default": true
145
246
  },
247
+ "events": {
248
+ "type": "array",
249
+ "items": {
250
+ "type": "string",
251
+ "enum": [
252
+ "insert",
253
+ "update",
254
+ "delete"
255
+ ]
256
+ },
257
+ "default": [
258
+ "insert",
259
+ "update"
260
+ ],
261
+ "description": "Validation contexts"
262
+ },
263
+ "tags": {
264
+ "type": "array",
265
+ "items": {
266
+ "type": "string"
267
+ },
268
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
269
+ },
146
270
  "severity": {
147
271
  "type": "string",
148
272
  "enum": [
@@ -154,7 +278,7 @@
154
278
  },
155
279
  "message": {
156
280
  "type": "string",
157
- "description": "Error message to display"
281
+ "description": "Error message to display to the user"
158
282
  },
159
283
  "type": {
160
284
  "type": "string",
@@ -190,12 +314,43 @@
190
314
  "name": {
191
315
  "type": "string",
192
316
  "pattern": "^[a-z_][a-z0-9_]*$",
193
- "description": "Unique rule name"
317
+ "description": "Unique rule name (snake_case)"
318
+ },
319
+ "label": {
320
+ "type": "string",
321
+ "description": "Human-readable label for the rule listing"
322
+ },
323
+ "description": {
324
+ "type": "string",
325
+ "description": "Administrative notes explaining the business reason"
194
326
  },
195
327
  "active": {
196
328
  "type": "boolean",
197
329
  "default": true
198
330
  },
331
+ "events": {
332
+ "type": "array",
333
+ "items": {
334
+ "type": "string",
335
+ "enum": [
336
+ "insert",
337
+ "update",
338
+ "delete"
339
+ ]
340
+ },
341
+ "default": [
342
+ "insert",
343
+ "update"
344
+ ],
345
+ "description": "Validation contexts"
346
+ },
347
+ "tags": {
348
+ "type": "array",
349
+ "items": {
350
+ "type": "string"
351
+ },
352
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
353
+ },
199
354
  "severity": {
200
355
  "type": "string",
201
356
  "enum": [
@@ -207,7 +362,7 @@
207
362
  },
208
363
  "message": {
209
364
  "type": "string",
210
- "description": "Error message to display"
365
+ "description": "Error message to display to the user"
211
366
  },
212
367
  "type": {
213
368
  "type": "string",
@@ -243,12 +398,43 @@
243
398
  "name": {
244
399
  "type": "string",
245
400
  "pattern": "^[a-z_][a-z0-9_]*$",
246
- "description": "Unique rule name"
401
+ "description": "Unique rule name (snake_case)"
402
+ },
403
+ "label": {
404
+ "type": "string",
405
+ "description": "Human-readable label for the rule listing"
406
+ },
407
+ "description": {
408
+ "type": "string",
409
+ "description": "Administrative notes explaining the business reason"
247
410
  },
248
411
  "active": {
249
412
  "type": "boolean",
250
413
  "default": true
251
414
  },
415
+ "events": {
416
+ "type": "array",
417
+ "items": {
418
+ "type": "string",
419
+ "enum": [
420
+ "insert",
421
+ "update",
422
+ "delete"
423
+ ]
424
+ },
425
+ "default": [
426
+ "insert",
427
+ "update"
428
+ ],
429
+ "description": "Validation contexts"
430
+ },
431
+ "tags": {
432
+ "type": "array",
433
+ "items": {
434
+ "type": "string"
435
+ },
436
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
437
+ },
252
438
  "severity": {
253
439
  "type": "string",
254
440
  "enum": [
@@ -260,7 +446,7 @@
260
446
  },
261
447
  "message": {
262
448
  "type": "string",
263
- "description": "Error message to display"
449
+ "description": "Error message to display to the user"
264
450
  },
265
451
  "type": {
266
452
  "type": "string",
@@ -293,12 +479,122 @@
293
479
  "name": {
294
480
  "type": "string",
295
481
  "pattern": "^[a-z_][a-z0-9_]*$",
296
- "description": "Unique rule name"
482
+ "description": "Unique rule name (snake_case)"
483
+ },
484
+ "label": {
485
+ "type": "string",
486
+ "description": "Human-readable label for the rule listing"
487
+ },
488
+ "description": {
489
+ "type": "string",
490
+ "description": "Administrative notes explaining the business reason"
491
+ },
492
+ "active": {
493
+ "type": "boolean",
494
+ "default": true
495
+ },
496
+ "events": {
497
+ "type": "array",
498
+ "items": {
499
+ "type": "string",
500
+ "enum": [
501
+ "insert",
502
+ "update",
503
+ "delete"
504
+ ]
505
+ },
506
+ "default": [
507
+ "insert",
508
+ "update"
509
+ ],
510
+ "description": "Validation contexts"
511
+ },
512
+ "tags": {
513
+ "type": "array",
514
+ "items": {
515
+ "type": "string"
516
+ },
517
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
518
+ },
519
+ "severity": {
520
+ "type": "string",
521
+ "enum": [
522
+ "error",
523
+ "warning",
524
+ "info"
525
+ ],
526
+ "default": "error"
527
+ },
528
+ "message": {
529
+ "type": "string",
530
+ "description": "Error message to display to the user"
531
+ },
532
+ "type": {
533
+ "type": "string",
534
+ "const": "json_schema"
535
+ },
536
+ "field": {
537
+ "type": "string",
538
+ "description": "JSON field to validate"
539
+ },
540
+ "schema": {
541
+ "type": "object",
542
+ "additionalProperties": {},
543
+ "description": "JSON Schema object definition"
544
+ }
545
+ },
546
+ "required": [
547
+ "name",
548
+ "message",
549
+ "type",
550
+ "field",
551
+ "schema"
552
+ ],
553
+ "additionalProperties": false
554
+ },
555
+ {
556
+ "type": "object",
557
+ "properties": {
558
+ "name": {
559
+ "type": "string",
560
+ "pattern": "^[a-z_][a-z0-9_]*$",
561
+ "description": "Unique rule name (snake_case)"
562
+ },
563
+ "label": {
564
+ "type": "string",
565
+ "description": "Human-readable label for the rule listing"
566
+ },
567
+ "description": {
568
+ "type": "string",
569
+ "description": "Administrative notes explaining the business reason"
297
570
  },
298
571
  "active": {
299
572
  "type": "boolean",
300
573
  "default": true
301
574
  },
575
+ "events": {
576
+ "type": "array",
577
+ "items": {
578
+ "type": "string",
579
+ "enum": [
580
+ "insert",
581
+ "update",
582
+ "delete"
583
+ ]
584
+ },
585
+ "default": [
586
+ "insert",
587
+ "update"
588
+ ],
589
+ "description": "Validation contexts"
590
+ },
591
+ "tags": {
592
+ "type": "array",
593
+ "items": {
594
+ "type": "string"
595
+ },
596
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
597
+ },
302
598
  "severity": {
303
599
  "type": "string",
304
600
  "enum": [
@@ -310,7 +606,7 @@
310
606
  },
311
607
  "message": {
312
608
  "type": "string",
313
- "description": "Error message to display"
609
+ "description": "Error message to display to the user"
314
610
  },
315
611
  "type": {
316
612
  "type": "string",
@@ -324,6 +620,22 @@
324
620
  "type": "string",
325
621
  "description": "External API endpoint for validation"
326
622
  },
623
+ "method": {
624
+ "type": "string",
625
+ "enum": [
626
+ "GET",
627
+ "POST"
628
+ ],
629
+ "default": "GET",
630
+ "description": "HTTP method for external call"
631
+ },
632
+ "headers": {
633
+ "type": "object",
634
+ "additionalProperties": {
635
+ "type": "string"
636
+ },
637
+ "description": "Custom headers for the request"
638
+ },
327
639
  "validatorFunction": {
328
640
  "type": "string",
329
641
  "description": "Reference to custom validator function"
@@ -357,12 +669,43 @@
357
669
  "name": {
358
670
  "type": "string",
359
671
  "pattern": "^[a-z_][a-z0-9_]*$",
360
- "description": "Unique rule name"
672
+ "description": "Unique rule name (snake_case)"
673
+ },
674
+ "label": {
675
+ "type": "string",
676
+ "description": "Human-readable label for the rule listing"
677
+ },
678
+ "description": {
679
+ "type": "string",
680
+ "description": "Administrative notes explaining the business reason"
361
681
  },
362
682
  "active": {
363
683
  "type": "boolean",
364
684
  "default": true
365
685
  },
686
+ "events": {
687
+ "type": "array",
688
+ "items": {
689
+ "type": "string",
690
+ "enum": [
691
+ "insert",
692
+ "update",
693
+ "delete"
694
+ ]
695
+ },
696
+ "default": [
697
+ "insert",
698
+ "update"
699
+ ],
700
+ "description": "Validation contexts"
701
+ },
702
+ "tags": {
703
+ "type": "array",
704
+ "items": {
705
+ "type": "string"
706
+ },
707
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
708
+ },
366
709
  "severity": {
367
710
  "type": "string",
368
711
  "enum": [
@@ -374,31 +717,27 @@
374
717
  },
375
718
  "message": {
376
719
  "type": "string",
377
- "description": "Error message to display"
720
+ "description": "Error message to display to the user"
378
721
  },
379
722
  "type": {
380
723
  "type": "string",
381
724
  "const": "custom"
382
725
  },
383
- "field": {
726
+ "handler": {
384
727
  "type": "string",
385
- "description": "Field to validate (optional for record-level validation)"
386
- },
387
- "validatorFunction": {
388
- "type": "string",
389
- "description": "Function name or reference to custom validator"
728
+ "description": "Name of the custom validation function registered in the system"
390
729
  },
391
730
  "params": {
392
731
  "type": "object",
393
732
  "additionalProperties": {},
394
- "description": "Additional parameters for the validator"
733
+ "description": "Parameters passed to the custom handler"
395
734
  }
396
735
  },
397
736
  "required": [
398
737
  "name",
399
738
  "message",
400
739
  "type",
401
- "validatorFunction"
740
+ "handler"
402
741
  ],
403
742
  "additionalProperties": false
404
743
  },
@@ -414,12 +753,43 @@
414
753
  "name": {
415
754
  "type": "string",
416
755
  "pattern": "^[a-z_][a-z0-9_]*$",
417
- "description": "Unique rule name"
756
+ "description": "Unique rule name (snake_case)"
757
+ },
758
+ "label": {
759
+ "type": "string",
760
+ "description": "Human-readable label for the rule listing"
761
+ },
762
+ "description": {
763
+ "type": "string",
764
+ "description": "Administrative notes explaining the business reason"
418
765
  },
419
766
  "active": {
420
767
  "type": "boolean",
421
768
  "default": true
422
769
  },
770
+ "events": {
771
+ "type": "array",
772
+ "items": {
773
+ "type": "string",
774
+ "enum": [
775
+ "insert",
776
+ "update",
777
+ "delete"
778
+ ]
779
+ },
780
+ "default": [
781
+ "insert",
782
+ "update"
783
+ ],
784
+ "description": "Validation contexts"
785
+ },
786
+ "tags": {
787
+ "type": "array",
788
+ "items": {
789
+ "type": "string"
790
+ },
791
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
792
+ },
423
793
  "severity": {
424
794
  "type": "string",
425
795
  "enum": [
@@ -431,7 +801,7 @@
431
801
  },
432
802
  "message": {
433
803
  "type": "string",
434
- "description": "Error message to display"
804
+ "description": "Error message to display to the user"
435
805
  },
436
806
  "type": {
437
807
  "type": "string",
@@ -456,12 +826,43 @@
456
826
  "name": {
457
827
  "type": "string",
458
828
  "pattern": "^[a-z_][a-z0-9_]*$",
459
- "description": "Unique rule name"
829
+ "description": "Unique rule name (snake_case)"
830
+ },
831
+ "label": {
832
+ "type": "string",
833
+ "description": "Human-readable label for the rule listing"
834
+ },
835
+ "description": {
836
+ "type": "string",
837
+ "description": "Administrative notes explaining the business reason"
460
838
  },
461
839
  "active": {
462
840
  "type": "boolean",
463
841
  "default": true
464
842
  },
843
+ "events": {
844
+ "type": "array",
845
+ "items": {
846
+ "type": "string",
847
+ "enum": [
848
+ "insert",
849
+ "update",
850
+ "delete"
851
+ ]
852
+ },
853
+ "default": [
854
+ "insert",
855
+ "update"
856
+ ],
857
+ "description": "Validation contexts"
858
+ },
859
+ "tags": {
860
+ "type": "array",
861
+ "items": {
862
+ "type": "string"
863
+ },
864
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
865
+ },
465
866
  "severity": {
466
867
  "type": "string",
467
868
  "enum": [
@@ -473,7 +874,7 @@
473
874
  },
474
875
  "message": {
475
876
  "type": "string",
476
- "description": "Error message to display"
877
+ "description": "Error message to display to the user"
477
878
  },
478
879
  "type": {
479
880
  "type": "string",
@@ -509,12 +910,43 @@
509
910
  "name": {
510
911
  "type": "string",
511
912
  "pattern": "^[a-z_][a-z0-9_]*$",
512
- "description": "Unique rule name"
913
+ "description": "Unique rule name (snake_case)"
914
+ },
915
+ "label": {
916
+ "type": "string",
917
+ "description": "Human-readable label for the rule listing"
918
+ },
919
+ "description": {
920
+ "type": "string",
921
+ "description": "Administrative notes explaining the business reason"
513
922
  },
514
923
  "active": {
515
924
  "type": "boolean",
516
925
  "default": true
517
926
  },
927
+ "events": {
928
+ "type": "array",
929
+ "items": {
930
+ "type": "string",
931
+ "enum": [
932
+ "insert",
933
+ "update",
934
+ "delete"
935
+ ]
936
+ },
937
+ "default": [
938
+ "insert",
939
+ "update"
940
+ ],
941
+ "description": "Validation contexts"
942
+ },
943
+ "tags": {
944
+ "type": "array",
945
+ "items": {
946
+ "type": "string"
947
+ },
948
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
949
+ },
518
950
  "severity": {
519
951
  "type": "string",
520
952
  "enum": [
@@ -526,7 +958,7 @@
526
958
  },
527
959
  "message": {
528
960
  "type": "string",
529
- "description": "Error message to display"
961
+ "description": "Error message to display to the user"
530
962
  },
531
963
  "type": {
532
964
  "type": "string",
@@ -562,12 +994,43 @@
562
994
  "name": {
563
995
  "type": "string",
564
996
  "pattern": "^[a-z_][a-z0-9_]*$",
565
- "description": "Unique rule name"
997
+ "description": "Unique rule name (snake_case)"
998
+ },
999
+ "label": {
1000
+ "type": "string",
1001
+ "description": "Human-readable label for the rule listing"
1002
+ },
1003
+ "description": {
1004
+ "type": "string",
1005
+ "description": "Administrative notes explaining the business reason"
566
1006
  },
567
1007
  "active": {
568
1008
  "type": "boolean",
569
1009
  "default": true
570
1010
  },
1011
+ "events": {
1012
+ "type": "array",
1013
+ "items": {
1014
+ "type": "string",
1015
+ "enum": [
1016
+ "insert",
1017
+ "update",
1018
+ "delete"
1019
+ ]
1020
+ },
1021
+ "default": [
1022
+ "insert",
1023
+ "update"
1024
+ ],
1025
+ "description": "Validation contexts"
1026
+ },
1027
+ "tags": {
1028
+ "type": "array",
1029
+ "items": {
1030
+ "type": "string"
1031
+ },
1032
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1033
+ },
571
1034
  "severity": {
572
1035
  "type": "string",
573
1036
  "enum": [
@@ -579,7 +1042,7 @@
579
1042
  },
580
1043
  "message": {
581
1044
  "type": "string",
582
- "description": "Error message to display"
1045
+ "description": "Error message to display to the user"
583
1046
  },
584
1047
  "type": {
585
1048
  "type": "string",
@@ -615,12 +1078,43 @@
615
1078
  "name": {
616
1079
  "type": "string",
617
1080
  "pattern": "^[a-z_][a-z0-9_]*$",
618
- "description": "Unique rule name"
1081
+ "description": "Unique rule name (snake_case)"
1082
+ },
1083
+ "label": {
1084
+ "type": "string",
1085
+ "description": "Human-readable label for the rule listing"
1086
+ },
1087
+ "description": {
1088
+ "type": "string",
1089
+ "description": "Administrative notes explaining the business reason"
619
1090
  },
620
1091
  "active": {
621
1092
  "type": "boolean",
622
1093
  "default": true
623
1094
  },
1095
+ "events": {
1096
+ "type": "array",
1097
+ "items": {
1098
+ "type": "string",
1099
+ "enum": [
1100
+ "insert",
1101
+ "update",
1102
+ "delete"
1103
+ ]
1104
+ },
1105
+ "default": [
1106
+ "insert",
1107
+ "update"
1108
+ ],
1109
+ "description": "Validation contexts"
1110
+ },
1111
+ "tags": {
1112
+ "type": "array",
1113
+ "items": {
1114
+ "type": "string"
1115
+ },
1116
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1117
+ },
624
1118
  "severity": {
625
1119
  "type": "string",
626
1120
  "enum": [
@@ -632,7 +1126,7 @@
632
1126
  },
633
1127
  "message": {
634
1128
  "type": "string",
635
- "description": "Error message to display"
1129
+ "description": "Error message to display to the user"
636
1130
  },
637
1131
  "type": {
638
1132
  "type": "string",
@@ -665,12 +1159,122 @@
665
1159
  "name": {
666
1160
  "type": "string",
667
1161
  "pattern": "^[a-z_][a-z0-9_]*$",
668
- "description": "Unique rule name"
1162
+ "description": "Unique rule name (snake_case)"
1163
+ },
1164
+ "label": {
1165
+ "type": "string",
1166
+ "description": "Human-readable label for the rule listing"
1167
+ },
1168
+ "description": {
1169
+ "type": "string",
1170
+ "description": "Administrative notes explaining the business reason"
669
1171
  },
670
1172
  "active": {
671
1173
  "type": "boolean",
672
1174
  "default": true
673
1175
  },
1176
+ "events": {
1177
+ "type": "array",
1178
+ "items": {
1179
+ "type": "string",
1180
+ "enum": [
1181
+ "insert",
1182
+ "update",
1183
+ "delete"
1184
+ ]
1185
+ },
1186
+ "default": [
1187
+ "insert",
1188
+ "update"
1189
+ ],
1190
+ "description": "Validation contexts"
1191
+ },
1192
+ "tags": {
1193
+ "type": "array",
1194
+ "items": {
1195
+ "type": "string"
1196
+ },
1197
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1198
+ },
1199
+ "severity": {
1200
+ "type": "string",
1201
+ "enum": [
1202
+ "error",
1203
+ "warning",
1204
+ "info"
1205
+ ],
1206
+ "default": "error"
1207
+ },
1208
+ "message": {
1209
+ "type": "string",
1210
+ "description": "Error message to display to the user"
1211
+ },
1212
+ "type": {
1213
+ "type": "string",
1214
+ "const": "json_schema"
1215
+ },
1216
+ "field": {
1217
+ "type": "string",
1218
+ "description": "JSON field to validate"
1219
+ },
1220
+ "schema": {
1221
+ "type": "object",
1222
+ "additionalProperties": {},
1223
+ "description": "JSON Schema object definition"
1224
+ }
1225
+ },
1226
+ "required": [
1227
+ "name",
1228
+ "message",
1229
+ "type",
1230
+ "field",
1231
+ "schema"
1232
+ ],
1233
+ "additionalProperties": false
1234
+ },
1235
+ {
1236
+ "type": "object",
1237
+ "properties": {
1238
+ "name": {
1239
+ "type": "string",
1240
+ "pattern": "^[a-z_][a-z0-9_]*$",
1241
+ "description": "Unique rule name (snake_case)"
1242
+ },
1243
+ "label": {
1244
+ "type": "string",
1245
+ "description": "Human-readable label for the rule listing"
1246
+ },
1247
+ "description": {
1248
+ "type": "string",
1249
+ "description": "Administrative notes explaining the business reason"
1250
+ },
1251
+ "active": {
1252
+ "type": "boolean",
1253
+ "default": true
1254
+ },
1255
+ "events": {
1256
+ "type": "array",
1257
+ "items": {
1258
+ "type": "string",
1259
+ "enum": [
1260
+ "insert",
1261
+ "update",
1262
+ "delete"
1263
+ ]
1264
+ },
1265
+ "default": [
1266
+ "insert",
1267
+ "update"
1268
+ ],
1269
+ "description": "Validation contexts"
1270
+ },
1271
+ "tags": {
1272
+ "type": "array",
1273
+ "items": {
1274
+ "type": "string"
1275
+ },
1276
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1277
+ },
674
1278
  "severity": {
675
1279
  "type": "string",
676
1280
  "enum": [
@@ -682,7 +1286,7 @@
682
1286
  },
683
1287
  "message": {
684
1288
  "type": "string",
685
- "description": "Error message to display"
1289
+ "description": "Error message to display to the user"
686
1290
  },
687
1291
  "type": {
688
1292
  "type": "string",
@@ -696,6 +1300,22 @@
696
1300
  "type": "string",
697
1301
  "description": "External API endpoint for validation"
698
1302
  },
1303
+ "method": {
1304
+ "type": "string",
1305
+ "enum": [
1306
+ "GET",
1307
+ "POST"
1308
+ ],
1309
+ "default": "GET",
1310
+ "description": "HTTP method for external call"
1311
+ },
1312
+ "headers": {
1313
+ "type": "object",
1314
+ "additionalProperties": {
1315
+ "type": "string"
1316
+ },
1317
+ "description": "Custom headers for the request"
1318
+ },
699
1319
  "validatorFunction": {
700
1320
  "type": "string",
701
1321
  "description": "Reference to custom validator function"
@@ -729,12 +1349,43 @@
729
1349
  "name": {
730
1350
  "type": "string",
731
1351
  "pattern": "^[a-z_][a-z0-9_]*$",
732
- "description": "Unique rule name"
1352
+ "description": "Unique rule name (snake_case)"
1353
+ },
1354
+ "label": {
1355
+ "type": "string",
1356
+ "description": "Human-readable label for the rule listing"
1357
+ },
1358
+ "description": {
1359
+ "type": "string",
1360
+ "description": "Administrative notes explaining the business reason"
733
1361
  },
734
1362
  "active": {
735
1363
  "type": "boolean",
736
1364
  "default": true
737
1365
  },
1366
+ "events": {
1367
+ "type": "array",
1368
+ "items": {
1369
+ "type": "string",
1370
+ "enum": [
1371
+ "insert",
1372
+ "update",
1373
+ "delete"
1374
+ ]
1375
+ },
1376
+ "default": [
1377
+ "insert",
1378
+ "update"
1379
+ ],
1380
+ "description": "Validation contexts"
1381
+ },
1382
+ "tags": {
1383
+ "type": "array",
1384
+ "items": {
1385
+ "type": "string"
1386
+ },
1387
+ "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1388
+ },
738
1389
  "severity": {
739
1390
  "type": "string",
740
1391
  "enum": [
@@ -746,31 +1397,27 @@
746
1397
  },
747
1398
  "message": {
748
1399
  "type": "string",
749
- "description": "Error message to display"
1400
+ "description": "Error message to display to the user"
750
1401
  },
751
1402
  "type": {
752
1403
  "type": "string",
753
1404
  "const": "custom"
754
1405
  },
755
- "field": {
756
- "type": "string",
757
- "description": "Field to validate (optional for record-level validation)"
758
- },
759
- "validatorFunction": {
1406
+ "handler": {
760
1407
  "type": "string",
761
- "description": "Function name or reference to custom validator"
1408
+ "description": "Name of the custom validation function registered in the system"
762
1409
  },
763
1410
  "params": {
764
1411
  "type": "object",
765
1412
  "additionalProperties": {},
766
- "description": "Additional parameters for the validator"
1413
+ "description": "Parameters passed to the custom handler"
767
1414
  }
768
1415
  },
769
1416
  "required": [
770
1417
  "name",
771
1418
  "message",
772
1419
  "type",
773
- "validatorFunction"
1420
+ "handler"
774
1421
  ],
775
1422
  "additionalProperties": false
776
1423
  },