@objectstack/spec 0.3.3 → 0.4.1

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 (304) hide show
  1. package/dist/ai/conversation.zod.d.ts +14 -14
  2. package/dist/ai/cost.zod.d.ts +112 -112
  3. package/dist/ai/model-registry.zod.d.ts +44 -44
  4. package/dist/ai/nlq.zod.d.ts +2 -2
  5. package/dist/ai/orchestration.zod.d.ts +6 -6
  6. package/dist/ai/predictive.zod.d.ts +8 -8
  7. package/dist/ai/rag-pipeline.zod.d.ts +62 -62
  8. package/dist/api/contract.zod.d.ts +92 -92
  9. package/dist/api/discovery.zod.d.ts +2 -2
  10. package/dist/api/index.d.ts +2 -0
  11. package/dist/api/index.d.ts.map +1 -1
  12. package/dist/api/index.js +2 -0
  13. package/dist/api/odata.zod.d.ts +482 -0
  14. package/dist/api/odata.zod.d.ts.map +1 -0
  15. package/dist/api/odata.zod.js +401 -0
  16. package/dist/api/router.zod.d.ts +4 -4
  17. package/dist/auth/config.zod.d.ts +21 -21
  18. package/dist/auth/index.d.ts +1 -0
  19. package/dist/auth/index.d.ts.map +1 -1
  20. package/dist/auth/index.js +1 -0
  21. package/dist/auth/organization.zod.d.ts +2 -2
  22. package/dist/auth/role.zod.d.ts +14 -0
  23. package/dist/auth/role.zod.d.ts.map +1 -1
  24. package/dist/auth/role.zod.js +16 -1
  25. package/dist/auth/scim.zod.d.ts +2732 -0
  26. package/dist/auth/scim.zod.d.ts.map +1 -0
  27. package/dist/auth/scim.zod.js +811 -0
  28. package/dist/automation/approval.zod.d.ts +643 -0
  29. package/dist/automation/approval.zod.d.ts.map +1 -0
  30. package/dist/automation/approval.zod.js +84 -0
  31. package/dist/automation/connector.zod.d.ts +1284 -0
  32. package/dist/automation/connector.zod.d.ts.map +1 -0
  33. package/dist/automation/connector.zod.js +500 -0
  34. package/dist/automation/etl.zod.d.ts +623 -0
  35. package/dist/automation/etl.zod.d.ts.map +1 -0
  36. package/dist/automation/etl.zod.js +359 -0
  37. package/dist/automation/flow.zod.d.ts +6 -6
  38. package/dist/automation/index.d.ts +4 -0
  39. package/dist/automation/index.d.ts.map +1 -1
  40. package/dist/automation/index.js +4 -0
  41. package/dist/automation/sync.zod.d.ts +854 -0
  42. package/dist/automation/sync.zod.d.ts.map +1 -0
  43. package/dist/automation/sync.zod.js +444 -0
  44. package/dist/automation/webhook.zod.d.ts +24 -1
  45. package/dist/automation/webhook.zod.d.ts.map +1 -1
  46. package/dist/automation/webhook.zod.js +27 -3
  47. package/dist/automation/workflow.zod.d.ts +14 -0
  48. package/dist/automation/workflow.zod.d.ts.map +1 -1
  49. package/dist/automation/workflow.zod.js +16 -1
  50. package/dist/data/field.zod.d.ts +338 -8
  51. package/dist/data/field.zod.d.ts.map +1 -1
  52. package/dist/data/field.zod.js +100 -16
  53. package/dist/data/mapping.zod.d.ts +22 -10
  54. package/dist/data/mapping.zod.d.ts.map +1 -1
  55. package/dist/data/mapping.zod.js +16 -3
  56. package/dist/data/object.zod.d.ts +116 -22
  57. package/dist/data/object.zod.d.ts.map +1 -1
  58. package/dist/data/object.zod.js +4 -4
  59. package/dist/data/validation.zod.d.ts +18 -18
  60. package/dist/hub/composer.zod.d.ts +42 -1939
  61. package/dist/hub/composer.zod.d.ts.map +1 -1
  62. package/dist/hub/composer.zod.js +1 -1
  63. package/dist/hub/license.zod.d.ts +2 -2
  64. package/dist/hub/marketplace.zod.d.ts +6 -6
  65. package/dist/index.d.ts +2 -2
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +6 -3
  68. package/dist/permission/index.d.ts +7 -5
  69. package/dist/permission/index.d.ts.map +1 -1
  70. package/dist/permission/index.js +7 -5
  71. package/dist/permission/permission.zod.d.ts +14 -0
  72. package/dist/permission/permission.zod.d.ts.map +1 -1
  73. package/dist/permission/permission.zod.js +16 -1
  74. package/dist/permission/rls.zod.d.ts +605 -0
  75. package/dist/permission/rls.zod.d.ts.map +1 -0
  76. package/dist/permission/rls.zod.js +615 -0
  77. package/dist/permission/territory.zod.d.ts +13 -0
  78. package/dist/permission/territory.zod.d.ts.map +1 -1
  79. package/dist/permission/territory.zod.js +15 -1
  80. package/dist/shared/identifiers.zod.d.ts +87 -0
  81. package/dist/shared/identifiers.zod.d.ts.map +1 -0
  82. package/dist/shared/identifiers.zod.js +101 -0
  83. package/dist/shared/index.d.ts +6 -0
  84. package/dist/shared/index.d.ts.map +1 -0
  85. package/dist/{driver → shared}/index.js +5 -4
  86. package/dist/stack.zod.d.ts +19869 -0
  87. package/dist/stack.zod.d.ts.map +1 -0
  88. package/dist/stack.zod.js +248 -0
  89. package/dist/system/audit.zod.d.ts +12 -12
  90. package/dist/{kernel → system}/context.zod.d.ts.map +1 -1
  91. package/dist/{driver → system}/datasource.zod.d.ts +2 -2
  92. package/dist/{driver → system}/datasource.zod.d.ts.map +1 -1
  93. package/dist/{driver → system/driver}/mongo.zod.d.ts +2 -2
  94. package/dist/system/driver/mongo.zod.d.ts.map +1 -0
  95. package/dist/{driver → system/driver}/postgres.zod.d.ts +4 -4
  96. package/dist/system/driver/postgres.zod.d.ts.map +1 -0
  97. package/dist/{driver → system}/driver.zod.d.ts +14 -14
  98. package/dist/{driver → system}/driver.zod.d.ts.map +1 -1
  99. package/dist/system/events.zod.d.ts +15 -12
  100. package/dist/system/events.zod.d.ts.map +1 -1
  101. package/dist/system/events.zod.js +5 -1
  102. package/dist/system/feature.zod.d.ts +131 -0
  103. package/dist/system/feature.zod.d.ts.map +1 -0
  104. package/dist/system/feature.zod.js +45 -0
  105. package/dist/system/index.d.ts +10 -0
  106. package/dist/system/index.d.ts.map +1 -1
  107. package/dist/system/index.js +12 -0
  108. package/dist/system/job.zod.d.ts +8 -8
  109. package/dist/{kernel → system}/logger.zod.d.ts +4 -4
  110. package/dist/{kernel → system}/logger.zod.d.ts.map +1 -1
  111. package/dist/system/manifest.zod.d.ts +515 -0
  112. package/dist/system/manifest.zod.d.ts.map +1 -0
  113. package/dist/{kernel → system}/manifest.zod.js +0 -12
  114. package/dist/{kernel → system}/plugin.zod.d.ts.map +1 -1
  115. package/dist/{kernel → system}/scoped-storage.zod.d.ts +2 -2
  116. package/dist/{kernel → system}/scoped-storage.zod.d.ts.map +1 -1
  117. package/dist/ui/action.zod.d.ts +35 -10
  118. package/dist/ui/action.zod.d.ts.map +1 -1
  119. package/dist/ui/action.zod.js +30 -1
  120. package/dist/ui/app.zod.d.ts +23 -8
  121. package/dist/ui/app.zod.d.ts.map +1 -1
  122. package/dist/ui/app.zod.js +32 -4
  123. package/dist/ui/block.zod.d.ts +265 -0
  124. package/dist/ui/block.zod.d.ts.map +1 -0
  125. package/dist/ui/block.zod.js +90 -0
  126. package/dist/ui/component.zod.d.ts +265 -0
  127. package/dist/ui/component.zod.d.ts.map +1 -0
  128. package/dist/ui/component.zod.js +90 -0
  129. package/dist/ui/dashboard.zod.d.ts +15 -15
  130. package/dist/ui/dashboard.zod.d.ts.map +1 -1
  131. package/dist/ui/dashboard.zod.js +18 -8
  132. package/dist/ui/index.d.ts +1 -0
  133. package/dist/ui/index.d.ts.map +1 -1
  134. package/dist/ui/index.js +1 -0
  135. package/dist/ui/page.zod.d.ts +21 -3
  136. package/dist/ui/page.zod.d.ts.map +1 -1
  137. package/dist/ui/page.zod.js +37 -4
  138. package/dist/ui/report.zod.d.ts +7 -7
  139. package/dist/ui/view.zod.d.ts +252 -240
  140. package/dist/ui/view.zod.d.ts.map +1 -1
  141. package/dist/ui/view.zod.js +32 -3
  142. package/dist/ui/widget.zod.d.ts +673 -5
  143. package/dist/ui/widget.zod.d.ts.map +1 -1
  144. package/dist/ui/widget.zod.js +294 -1
  145. package/json-schema/api/ODataError.json +65 -0
  146. package/json-schema/api/ODataFilterFunction.json +39 -0
  147. package/json-schema/api/ODataFilterOperator.json +24 -0
  148. package/json-schema/api/ODataMetadata.json +115 -0
  149. package/json-schema/api/ODataQuery.json +89 -0
  150. package/json-schema/api/ODataResponse.json +37 -0
  151. package/json-schema/auth/Role.json +3 -2
  152. package/json-schema/auth/SCIMAddress.json +50 -0
  153. package/json-schema/auth/SCIMEmail.json +38 -0
  154. package/json-schema/auth/SCIMEnterpriseUser.json +55 -0
  155. package/json-schema/auth/SCIMError.json +52 -0
  156. package/json-schema/auth/SCIMGroup.json +102 -0
  157. package/json-schema/auth/SCIMGroupReference.json +36 -0
  158. package/json-schema/auth/SCIMListResponse.json +606 -0
  159. package/json-schema/auth/SCIMMemberReference.json +36 -0
  160. package/json-schema/auth/SCIMMeta.json +35 -0
  161. package/json-schema/auth/SCIMName.json +36 -0
  162. package/json-schema/auth/SCIMPatchOperation.json +31 -0
  163. package/json-schema/auth/SCIMPatchRequest.json +56 -0
  164. package/json-schema/auth/SCIMPhoneNumber.json +40 -0
  165. package/json-schema/auth/SCIMUser.json +462 -0
  166. package/json-schema/automation/ApprovalAction.json +35 -0
  167. package/json-schema/automation/ApprovalActionType.json +15 -0
  168. package/json-schema/automation/ApprovalProcess.json +326 -0
  169. package/json-schema/automation/ApprovalStep.json +147 -0
  170. package/json-schema/automation/ApproverType.json +16 -0
  171. package/json-schema/automation/AuthField.json +73 -0
  172. package/json-schema/automation/Authentication.json +159 -0
  173. package/json-schema/automation/AuthenticationType.json +18 -0
  174. package/json-schema/automation/ConflictResolution.json +16 -0
  175. package/json-schema/automation/Connector.json +440 -0
  176. package/json-schema/automation/ConnectorCategory.json +26 -0
  177. package/json-schema/automation/ConnectorInstance.json +69 -0
  178. package/json-schema/automation/ConnectorOperation.json +117 -0
  179. package/json-schema/automation/ConnectorTrigger.json +54 -0
  180. package/json-schema/automation/DataDestinationConfig.json +89 -0
  181. package/json-schema/automation/DataSourceConfig.json +34 -0
  182. package/json-schema/automation/DataSyncConfig.json +355 -0
  183. package/json-schema/automation/ETLDestination.json +57 -0
  184. package/json-schema/automation/ETLEndpointType.json +19 -0
  185. package/json-schema/automation/ETLPipeline.json +252 -0
  186. package/json-schema/automation/ETLPipelineRun.json +107 -0
  187. package/json-schema/automation/ETLRunStatus.json +17 -0
  188. package/json-schema/automation/ETLSource.json +60 -0
  189. package/json-schema/automation/ETLSyncMode.json +14 -0
  190. package/json-schema/automation/ETLTransformation.json +46 -0
  191. package/json-schema/automation/ETLTransformationType.json +21 -0
  192. package/json-schema/automation/FieldMapping.json +36 -0
  193. package/json-schema/automation/OAuth2Config.json +43 -0
  194. package/json-schema/automation/OperationParameter.json +59 -0
  195. package/json-schema/automation/OperationType.json +17 -0
  196. package/json-schema/automation/SyncDirection.json +14 -0
  197. package/json-schema/automation/SyncExecutionResult.json +135 -0
  198. package/json-schema/automation/SyncExecutionStatus.json +17 -0
  199. package/json-schema/automation/SyncMode.json +14 -0
  200. package/json-schema/automation/Webhook.json +3 -1
  201. package/json-schema/automation/WebhookReceiver.json +3 -1
  202. package/json-schema/automation/WorkflowRule.json +3 -2
  203. package/json-schema/data/Field.json +62 -4
  204. package/json-schema/data/FieldType.json +12 -2
  205. package/json-schema/data/Object.json +62 -4
  206. package/json-schema/data/SelectOption.json +4 -2
  207. package/json-schema/data/VectorConfig.json +51 -0
  208. package/json-schema/hub/ComposerResponse.json +0 -2162
  209. package/json-schema/permission/PermissionSet.json +3 -1
  210. package/json-schema/permission/RLSConfig.json +59 -0
  211. package/json-schema/permission/RLSEvaluationResult.json +40 -0
  212. package/json-schema/permission/RLSOperation.json +16 -0
  213. package/json-schema/permission/RLSUserContext.json +51 -0
  214. package/json-schema/permission/RowLevelSecurityPolicy.json +77 -0
  215. package/json-schema/permission/Territory.json +3 -1
  216. package/json-schema/shared/EventName.json +12 -0
  217. package/json-schema/shared/SnakeCaseIdentifier.json +12 -0
  218. package/json-schema/shared/SystemIdentifier.json +12 -0
  219. package/json-schema/system/Event.json +3 -2
  220. package/json-schema/system/FeatureFlag.json +87 -0
  221. package/json-schema/system/FeatureStrategy.json +16 -0
  222. package/json-schema/system/Manifest.json +395 -0
  223. package/json-schema/ui/Action.json +25 -4
  224. package/json-schema/ui/ActionParam.json +12 -2
  225. package/json-schema/ui/App.json +18 -7
  226. package/json-schema/ui/ChartType.json +9 -1
  227. package/json-schema/ui/Dashboard.json +9 -1
  228. package/json-schema/ui/DashboardNavItem.json +3 -1
  229. package/json-schema/ui/DashboardWidget.json +9 -1
  230. package/json-schema/ui/FieldWidgetProps.json +62 -4
  231. package/json-schema/ui/FormView.json +4 -1
  232. package/json-schema/ui/GroupNavItem.json +3 -1
  233. package/json-schema/ui/ListView.json +7 -1
  234. package/json-schema/ui/NavigationItem.json +15 -5
  235. package/json-schema/ui/ObjectNavItem.json +3 -1
  236. package/json-schema/ui/Page.json +36 -4
  237. package/json-schema/ui/PageCardProps.json +32 -0
  238. package/json-schema/ui/PageComponent.json +33 -3
  239. package/json-schema/ui/PageComponentType.json +32 -0
  240. package/json-schema/ui/PageHeaderProps.json +39 -0
  241. package/json-schema/ui/PageNavItem.json +3 -1
  242. package/json-schema/ui/PageRegion.json +33 -3
  243. package/json-schema/ui/PageTabsProps.json +55 -0
  244. package/json-schema/ui/RecordDetailsProps.json +37 -0
  245. package/json-schema/ui/RecordHighlightsProps.json +24 -0
  246. package/json-schema/ui/RecordRelatedListProps.json +39 -0
  247. package/json-schema/ui/UrlNavItem.json +3 -1
  248. package/json-schema/ui/View.json +22 -4
  249. package/json-schema/ui/WidgetEvent.json +42 -0
  250. package/json-schema/ui/WidgetLifecycle.json +40 -0
  251. package/json-schema/ui/WidgetManifest.json +262 -0
  252. package/json-schema/ui/WidgetProperty.json +58 -0
  253. package/package.json +1 -1
  254. package/prompts/architecture.md +5 -5
  255. package/prompts/create-new-project.md +85 -0
  256. package/dist/driver/index.d.ts +0 -5
  257. package/dist/driver/index.d.ts.map +0 -1
  258. package/dist/driver/mongo.zod.d.ts.map +0 -1
  259. package/dist/driver/postgres.zod.d.ts.map +0 -1
  260. package/dist/kernel/index.d.ts +0 -12
  261. package/dist/kernel/index.d.ts.map +0 -1
  262. package/dist/kernel/index.js +0 -27
  263. package/dist/kernel/manifest.zod.d.ts +0 -2153
  264. package/dist/kernel/manifest.zod.d.ts.map +0 -1
  265. package/json-schema/kernel/Manifest.json +0 -2557
  266. /package/dist/{kernel → system}/context.zod.d.ts +0 -0
  267. /package/dist/{kernel → system}/context.zod.js +0 -0
  268. /package/dist/{driver → system}/datasource.zod.js +0 -0
  269. /package/dist/{driver → system/driver}/mongo.zod.js +0 -0
  270. /package/dist/{driver → system/driver}/postgres.zod.js +0 -0
  271. /package/dist/{driver → system}/driver.zod.js +0 -0
  272. /package/dist/{kernel → system}/logger.zod.js +0 -0
  273. /package/dist/{kernel → system}/plugin.zod.d.ts +0 -0
  274. /package/dist/{kernel → system}/plugin.zod.js +0 -0
  275. /package/dist/{kernel → system}/scoped-storage.zod.js +0 -0
  276. /package/json-schema/{driver → system}/Datasource.json +0 -0
  277. /package/json-schema/{driver → system}/DatasourceCapabilities.json +0 -0
  278. /package/json-schema/{driver → system}/DriverCapabilities.json +0 -0
  279. /package/json-schema/{driver → system}/DriverDefinition.json +0 -0
  280. /package/json-schema/{driver → system}/DriverInterface.json +0 -0
  281. /package/json-schema/{driver → system}/DriverOptions.json +0 -0
  282. /package/json-schema/{driver → system}/DriverType.json +0 -0
  283. /package/json-schema/{kernel → system}/FileMetadata.json +0 -0
  284. /package/json-schema/{kernel → system}/I18nContext.json +0 -0
  285. /package/json-schema/{kernel → system}/KernelContext.json +0 -0
  286. /package/json-schema/{kernel → system}/LogEntry.json +0 -0
  287. /package/json-schema/{kernel → system}/LogFormat.json +0 -0
  288. /package/json-schema/{kernel → system}/LogLevel.json +0 -0
  289. /package/json-schema/{kernel → system}/Logger.json +0 -0
  290. /package/json-schema/{kernel → system}/LoggerConfig.json +0 -0
  291. /package/json-schema/{driver → system}/MongoConfig.json +0 -0
  292. /package/json-schema/{kernel → system}/ObjectQLClient.json +0 -0
  293. /package/json-schema/{kernel → system}/Plugin.json +0 -0
  294. /package/json-schema/{kernel → system}/PluginContext.json +0 -0
  295. /package/json-schema/{kernel → system}/PluginLifecycle.json +0 -0
  296. /package/json-schema/{driver → system}/PostgresConfig.json +0 -0
  297. /package/json-schema/{kernel → system}/Router.json +0 -0
  298. /package/json-schema/{kernel → system}/RuntimeMode.json +0 -0
  299. /package/json-schema/{kernel → system}/Scheduler.json +0 -0
  300. /package/json-schema/{kernel → system}/ScopedStorage.json +0 -0
  301. /package/json-schema/{kernel → system}/ScopedStorageConfig.json +0 -0
  302. /package/json-schema/{kernel → system}/StorageAdapterType.json +0 -0
  303. /package/json-schema/{kernel → system}/StorageScope.json +0 -0
  304. /package/json-schema/{kernel → system}/SystemAPI.json +0 -0
@@ -51,2168 +51,6 @@
51
51
  },
52
52
  "description": "Glob patterns for ObjectQL schemas files"
53
53
  },
54
- "definitions": {
55
- "type": "object",
56
- "properties": {
57
- "objects": {
58
- "type": "object",
59
- "additionalProperties": {
60
- "type": "object",
61
- "properties": {
62
- "name": {
63
- "type": "string",
64
- "pattern": "^[a-z_][a-z0-9_]*$",
65
- "description": "Machine unique key (snake_case). Immutable."
66
- },
67
- "label": {
68
- "type": "string",
69
- "description": "Human readable singular label (e.g. \"Account\")"
70
- },
71
- "pluralLabel": {
72
- "type": "string",
73
- "description": "Human readable plural label (e.g. \"Accounts\")"
74
- },
75
- "description": {
76
- "type": "string",
77
- "description": "Developer documentation / description"
78
- },
79
- "icon": {
80
- "type": "string",
81
- "description": "Icon name (Lucide/Material) for UI representation"
82
- },
83
- "tags": {
84
- "type": "array",
85
- "items": {
86
- "type": "string"
87
- },
88
- "description": "Categorization tags (e.g. \"sales\", \"system\", \"reference\")"
89
- },
90
- "active": {
91
- "type": "boolean",
92
- "default": true,
93
- "description": "Is the object active and usable"
94
- },
95
- "isSystem": {
96
- "type": "boolean",
97
- "default": false,
98
- "description": "Is system object (protected from deletion)"
99
- },
100
- "abstract": {
101
- "type": "boolean",
102
- "default": false,
103
- "description": "Is abstract base object (cannot be instantiated)"
104
- },
105
- "datasource": {
106
- "type": "string",
107
- "default": "default",
108
- "description": "Target Datasource ID. \"default\" is the primary DB."
109
- },
110
- "tableName": {
111
- "type": "string",
112
- "description": "Physical table/collection name in the target datasource"
113
- },
114
- "fields": {
115
- "type": "object",
116
- "additionalProperties": {
117
- "type": "object",
118
- "properties": {
119
- "name": {
120
- "type": "string",
121
- "pattern": "^[a-z_][a-z0-9_]*$",
122
- "description": "Machine name (snake_case)"
123
- },
124
- "label": {
125
- "type": "string",
126
- "description": "Human readable label"
127
- },
128
- "type": {
129
- "type": "string",
130
- "enum": [
131
- "text",
132
- "textarea",
133
- "email",
134
- "url",
135
- "phone",
136
- "password",
137
- "markdown",
138
- "html",
139
- "richtext",
140
- "number",
141
- "currency",
142
- "percent",
143
- "date",
144
- "datetime",
145
- "time",
146
- "boolean",
147
- "select",
148
- "lookup",
149
- "master_detail",
150
- "image",
151
- "file",
152
- "avatar",
153
- "formula",
154
- "summary",
155
- "autonumber",
156
- "location",
157
- "geolocation",
158
- "address",
159
- "code",
160
- "color",
161
- "rating",
162
- "slider",
163
- "signature",
164
- "qrcode"
165
- ],
166
- "description": "Field Data Type"
167
- },
168
- "description": {
169
- "type": "string",
170
- "description": "Tooltip/Help text"
171
- },
172
- "format": {
173
- "type": "string",
174
- "description": "Format string (e.g. email, phone)"
175
- },
176
- "required": {
177
- "type": "boolean",
178
- "default": false,
179
- "description": "Is required"
180
- },
181
- "searchable": {
182
- "type": "boolean",
183
- "default": false,
184
- "description": "Is searchable"
185
- },
186
- "multiple": {
187
- "type": "boolean",
188
- "default": false,
189
- "description": "Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image."
190
- },
191
- "unique": {
192
- "type": "boolean",
193
- "default": false,
194
- "description": "Is unique constraint"
195
- },
196
- "defaultValue": {
197
- "description": "Default value"
198
- },
199
- "maxLength": {
200
- "type": "number",
201
- "description": "Max character length"
202
- },
203
- "minLength": {
204
- "type": "number",
205
- "description": "Min character length"
206
- },
207
- "precision": {
208
- "type": "number",
209
- "description": "Total digits"
210
- },
211
- "scale": {
212
- "type": "number",
213
- "description": "Decimal places"
214
- },
215
- "min": {
216
- "type": "number",
217
- "description": "Minimum value"
218
- },
219
- "max": {
220
- "type": "number",
221
- "description": "Maximum value"
222
- },
223
- "options": {
224
- "type": "array",
225
- "items": {
226
- "type": "object",
227
- "properties": {
228
- "label": {
229
- "type": "string",
230
- "description": "Display label"
231
- },
232
- "value": {
233
- "type": "string",
234
- "description": "Stored value"
235
- },
236
- "color": {
237
- "type": "string",
238
- "description": "Color code for badges/charts"
239
- },
240
- "default": {
241
- "type": "boolean",
242
- "description": "Is default option"
243
- }
244
- },
245
- "required": [
246
- "label",
247
- "value"
248
- ],
249
- "additionalProperties": false
250
- },
251
- "description": "Static options for select/multiselect"
252
- },
253
- "reference": {
254
- "type": "string",
255
- "description": "Target Object Name"
256
- },
257
- "referenceFilters": {
258
- "type": "array",
259
- "items": {
260
- "type": "string"
261
- },
262
- "description": "Filters applied to lookup dialogs (e.g. \"active = true\")"
263
- },
264
- "writeRequiresMasterRead": {
265
- "type": "boolean",
266
- "description": "If true, user needs read access to master record to edit this field"
267
- },
268
- "deleteBehavior": {
269
- "type": "string",
270
- "enum": [
271
- "set_null",
272
- "cascade",
273
- "restrict"
274
- ],
275
- "default": "set_null",
276
- "description": "What happens if referenced record is deleted"
277
- },
278
- "expression": {
279
- "type": "string",
280
- "description": "Formula expression"
281
- },
282
- "formula": {
283
- "type": "string",
284
- "description": "Deprecated: Use expression"
285
- },
286
- "summaryOperations": {
287
- "type": "object",
288
- "properties": {
289
- "object": {
290
- "type": "string"
291
- },
292
- "field": {
293
- "type": "string"
294
- },
295
- "function": {
296
- "type": "string",
297
- "enum": [
298
- "count",
299
- "sum",
300
- "min",
301
- "max",
302
- "avg"
303
- ]
304
- }
305
- },
306
- "required": [
307
- "object",
308
- "field",
309
- "function"
310
- ],
311
- "additionalProperties": false,
312
- "description": "Roll-up summary definition"
313
- },
314
- "language": {
315
- "type": "string",
316
- "description": "Programming language for syntax highlighting (e.g., javascript, python, sql)"
317
- },
318
- "theme": {
319
- "type": "string",
320
- "description": "Code editor theme (e.g., dark, light, monokai)"
321
- },
322
- "lineNumbers": {
323
- "type": "boolean",
324
- "description": "Show line numbers in code editor"
325
- },
326
- "maxRating": {
327
- "type": "number",
328
- "description": "Maximum rating value (default: 5)"
329
- },
330
- "allowHalf": {
331
- "type": "boolean",
332
- "description": "Allow half-star ratings"
333
- },
334
- "displayMap": {
335
- "type": "boolean",
336
- "description": "Display map widget for location field"
337
- },
338
- "allowGeocoding": {
339
- "type": "boolean",
340
- "description": "Allow address-to-coordinate conversion"
341
- },
342
- "addressFormat": {
343
- "type": "string",
344
- "enum": [
345
- "us",
346
- "uk",
347
- "international"
348
- ],
349
- "description": "Address format template"
350
- },
351
- "colorFormat": {
352
- "type": "string",
353
- "enum": [
354
- "hex",
355
- "rgb",
356
- "rgba",
357
- "hsl"
358
- ],
359
- "description": "Color value format"
360
- },
361
- "allowAlpha": {
362
- "type": "boolean",
363
- "description": "Allow transparency/alpha channel"
364
- },
365
- "presetColors": {
366
- "type": "array",
367
- "items": {
368
- "type": "string"
369
- },
370
- "description": "Preset color options"
371
- },
372
- "step": {
373
- "type": "number",
374
- "description": "Step increment for slider (default: 1)"
375
- },
376
- "showValue": {
377
- "type": "boolean",
378
- "description": "Display current value on slider"
379
- },
380
- "marks": {
381
- "type": "object",
382
- "additionalProperties": {
383
- "type": "string"
384
- },
385
- "description": "Custom marks/labels at specific values (e.g., {0: \"Low\", 50: \"Medium\", 100: \"High\"})"
386
- },
387
- "barcodeFormat": {
388
- "type": "string",
389
- "enum": [
390
- "qr",
391
- "ean13",
392
- "ean8",
393
- "code128",
394
- "code39",
395
- "upca",
396
- "upce"
397
- ],
398
- "description": "Barcode format type"
399
- },
400
- "qrErrorCorrection": {
401
- "type": "string",
402
- "enum": [
403
- "L",
404
- "M",
405
- "Q",
406
- "H"
407
- ],
408
- "description": "QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is \"qr\""
409
- },
410
- "displayValue": {
411
- "type": "boolean",
412
- "description": "Display human-readable value below barcode/QR code"
413
- },
414
- "allowScanning": {
415
- "type": "boolean",
416
- "description": "Enable camera scanning for barcode/QR code input"
417
- },
418
- "currencyConfig": {
419
- "type": "object",
420
- "properties": {
421
- "precision": {
422
- "type": "integer",
423
- "minimum": 0,
424
- "maximum": 10,
425
- "default": 2,
426
- "description": "Decimal precision (default: 2)"
427
- },
428
- "currencyMode": {
429
- "type": "string",
430
- "enum": [
431
- "dynamic",
432
- "fixed"
433
- ],
434
- "default": "dynamic",
435
- "description": "Currency mode: dynamic (user selectable) or fixed (single currency)"
436
- },
437
- "defaultCurrency": {
438
- "type": "string",
439
- "minLength": 3,
440
- "maxLength": 3,
441
- "default": "CNY",
442
- "description": "Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)"
443
- }
444
- },
445
- "additionalProperties": false,
446
- "description": "Configuration for currency field type"
447
- },
448
- "hidden": {
449
- "type": "boolean",
450
- "default": false,
451
- "description": "Hidden from default UI"
452
- },
453
- "readonly": {
454
- "type": "boolean",
455
- "default": false,
456
- "description": "Read-only in UI"
457
- },
458
- "encryption": {
459
- "type": "boolean",
460
- "default": false,
461
- "description": "Encrypt at rest"
462
- },
463
- "index": {
464
- "type": "boolean",
465
- "default": false,
466
- "description": "Create standard database index"
467
- },
468
- "externalId": {
469
- "type": "boolean",
470
- "default": false,
471
- "description": "Is external ID for upsert operations"
472
- }
473
- },
474
- "required": [
475
- "type"
476
- ],
477
- "additionalProperties": false
478
- },
479
- "description": "Field definitions map"
480
- },
481
- "indexes": {
482
- "type": "array",
483
- "items": {
484
- "type": "object",
485
- "properties": {
486
- "name": {
487
- "type": "string",
488
- "description": "Index name"
489
- },
490
- "fields": {
491
- "type": "array",
492
- "items": {
493
- "type": "string"
494
- },
495
- "description": "Fields included in the index"
496
- },
497
- "unique": {
498
- "type": "boolean",
499
- "description": "Whether the index is unique"
500
- },
501
- "type": {
502
- "type": "string",
503
- "enum": [
504
- "btree",
505
- "hash",
506
- "gin",
507
- "gist"
508
- ],
509
- "description": "Index type (default: btree)"
510
- }
511
- },
512
- "required": [
513
- "fields"
514
- ],
515
- "additionalProperties": false
516
- },
517
- "description": "Database performance indexes"
518
- },
519
- "validations": {
520
- "type": "array",
521
- "items": {
522
- "anyOf": [
523
- {
524
- "type": "object",
525
- "properties": {
526
- "name": {
527
- "type": "string",
528
- "pattern": "^[a-z_][a-z0-9_]*$",
529
- "description": "Unique rule name (snake_case)"
530
- },
531
- "label": {
532
- "type": "string",
533
- "description": "Human-readable label for the rule listing"
534
- },
535
- "description": {
536
- "type": "string",
537
- "description": "Administrative notes explaining the business reason"
538
- },
539
- "active": {
540
- "type": "boolean",
541
- "default": true
542
- },
543
- "events": {
544
- "type": "array",
545
- "items": {
546
- "type": "string",
547
- "enum": [
548
- "insert",
549
- "update",
550
- "delete"
551
- ]
552
- },
553
- "default": [
554
- "insert",
555
- "update"
556
- ],
557
- "description": "Validation contexts"
558
- },
559
- "tags": {
560
- "type": "array",
561
- "items": {
562
- "type": "string"
563
- },
564
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
565
- },
566
- "severity": {
567
- "type": "string",
568
- "enum": [
569
- "error",
570
- "warning",
571
- "info"
572
- ],
573
- "default": "error"
574
- },
575
- "message": {
576
- "type": "string",
577
- "description": "Error message to display to the user"
578
- },
579
- "type": {
580
- "type": "string",
581
- "const": "script"
582
- },
583
- "condition": {
584
- "type": "string",
585
- "description": "Formula expression. If TRUE, validation fails. (e.g. amount < 0)"
586
- }
587
- },
588
- "required": [
589
- "name",
590
- "message",
591
- "type",
592
- "condition"
593
- ],
594
- "additionalProperties": false
595
- },
596
- {
597
- "type": "object",
598
- "properties": {
599
- "name": {
600
- "type": "string",
601
- "pattern": "^[a-z_][a-z0-9_]*$",
602
- "description": "Unique rule name (snake_case)"
603
- },
604
- "label": {
605
- "type": "string",
606
- "description": "Human-readable label for the rule listing"
607
- },
608
- "description": {
609
- "type": "string",
610
- "description": "Administrative notes explaining the business reason"
611
- },
612
- "active": {
613
- "type": "boolean",
614
- "default": true
615
- },
616
- "events": {
617
- "type": "array",
618
- "items": {
619
- "type": "string",
620
- "enum": [
621
- "insert",
622
- "update",
623
- "delete"
624
- ]
625
- },
626
- "default": [
627
- "insert",
628
- "update"
629
- ],
630
- "description": "Validation contexts"
631
- },
632
- "tags": {
633
- "type": "array",
634
- "items": {
635
- "type": "string"
636
- },
637
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
638
- },
639
- "severity": {
640
- "type": "string",
641
- "enum": [
642
- "error",
643
- "warning",
644
- "info"
645
- ],
646
- "default": "error"
647
- },
648
- "message": {
649
- "type": "string",
650
- "description": "Error message to display to the user"
651
- },
652
- "type": {
653
- "type": "string",
654
- "const": "unique"
655
- },
656
- "fields": {
657
- "type": "array",
658
- "items": {
659
- "type": "string"
660
- },
661
- "description": "Fields that must be combined unique"
662
- },
663
- "scope": {
664
- "type": "string",
665
- "description": "Formula condition for scope (e.g. active = true)"
666
- },
667
- "caseSensitive": {
668
- "type": "boolean",
669
- "default": true
670
- }
671
- },
672
- "required": [
673
- "name",
674
- "message",
675
- "type",
676
- "fields"
677
- ],
678
- "additionalProperties": false
679
- },
680
- {
681
- "type": "object",
682
- "properties": {
683
- "name": {
684
- "type": "string",
685
- "pattern": "^[a-z_][a-z0-9_]*$",
686
- "description": "Unique rule name (snake_case)"
687
- },
688
- "label": {
689
- "type": "string",
690
- "description": "Human-readable label for the rule listing"
691
- },
692
- "description": {
693
- "type": "string",
694
- "description": "Administrative notes explaining the business reason"
695
- },
696
- "active": {
697
- "type": "boolean",
698
- "default": true
699
- },
700
- "events": {
701
- "type": "array",
702
- "items": {
703
- "type": "string",
704
- "enum": [
705
- "insert",
706
- "update",
707
- "delete"
708
- ]
709
- },
710
- "default": [
711
- "insert",
712
- "update"
713
- ],
714
- "description": "Validation contexts"
715
- },
716
- "tags": {
717
- "type": "array",
718
- "items": {
719
- "type": "string"
720
- },
721
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
722
- },
723
- "severity": {
724
- "type": "string",
725
- "enum": [
726
- "error",
727
- "warning",
728
- "info"
729
- ],
730
- "default": "error"
731
- },
732
- "message": {
733
- "type": "string",
734
- "description": "Error message to display to the user"
735
- },
736
- "type": {
737
- "type": "string",
738
- "const": "state_machine"
739
- },
740
- "field": {
741
- "type": "string",
742
- "description": "State field (e.g. status)"
743
- },
744
- "transitions": {
745
- "type": "object",
746
- "additionalProperties": {
747
- "type": "array",
748
- "items": {
749
- "type": "string"
750
- }
751
- },
752
- "description": "Map of { OldState: [AllowedNewStates] }"
753
- }
754
- },
755
- "required": [
756
- "name",
757
- "message",
758
- "type",
759
- "field",
760
- "transitions"
761
- ],
762
- "additionalProperties": false
763
- },
764
- {
765
- "type": "object",
766
- "properties": {
767
- "name": {
768
- "type": "string",
769
- "pattern": "^[a-z_][a-z0-9_]*$",
770
- "description": "Unique rule name (snake_case)"
771
- },
772
- "label": {
773
- "type": "string",
774
- "description": "Human-readable label for the rule listing"
775
- },
776
- "description": {
777
- "type": "string",
778
- "description": "Administrative notes explaining the business reason"
779
- },
780
- "active": {
781
- "type": "boolean",
782
- "default": true
783
- },
784
- "events": {
785
- "type": "array",
786
- "items": {
787
- "type": "string",
788
- "enum": [
789
- "insert",
790
- "update",
791
- "delete"
792
- ]
793
- },
794
- "default": [
795
- "insert",
796
- "update"
797
- ],
798
- "description": "Validation contexts"
799
- },
800
- "tags": {
801
- "type": "array",
802
- "items": {
803
- "type": "string"
804
- },
805
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
806
- },
807
- "severity": {
808
- "type": "string",
809
- "enum": [
810
- "error",
811
- "warning",
812
- "info"
813
- ],
814
- "default": "error"
815
- },
816
- "message": {
817
- "type": "string",
818
- "description": "Error message to display to the user"
819
- },
820
- "type": {
821
- "type": "string",
822
- "const": "format"
823
- },
824
- "field": {
825
- "type": "string"
826
- },
827
- "regex": {
828
- "type": "string"
829
- },
830
- "format": {
831
- "type": "string",
832
- "enum": [
833
- "email",
834
- "url",
835
- "phone",
836
- "json"
837
- ]
838
- }
839
- },
840
- "required": [
841
- "name",
842
- "message",
843
- "type",
844
- "field"
845
- ],
846
- "additionalProperties": false
847
- },
848
- {
849
- "type": "object",
850
- "properties": {
851
- "name": {
852
- "type": "string",
853
- "pattern": "^[a-z_][a-z0-9_]*$",
854
- "description": "Unique rule name (snake_case)"
855
- },
856
- "label": {
857
- "type": "string",
858
- "description": "Human-readable label for the rule listing"
859
- },
860
- "description": {
861
- "type": "string",
862
- "description": "Administrative notes explaining the business reason"
863
- },
864
- "active": {
865
- "type": "boolean",
866
- "default": true
867
- },
868
- "events": {
869
- "type": "array",
870
- "items": {
871
- "type": "string",
872
- "enum": [
873
- "insert",
874
- "update",
875
- "delete"
876
- ]
877
- },
878
- "default": [
879
- "insert",
880
- "update"
881
- ],
882
- "description": "Validation contexts"
883
- },
884
- "tags": {
885
- "type": "array",
886
- "items": {
887
- "type": "string"
888
- },
889
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
890
- },
891
- "severity": {
892
- "type": "string",
893
- "enum": [
894
- "error",
895
- "warning",
896
- "info"
897
- ],
898
- "default": "error"
899
- },
900
- "message": {
901
- "type": "string",
902
- "description": "Error message to display to the user"
903
- },
904
- "type": {
905
- "type": "string",
906
- "const": "cross_field"
907
- },
908
- "condition": {
909
- "type": "string",
910
- "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")"
911
- },
912
- "fields": {
913
- "type": "array",
914
- "items": {
915
- "type": "string"
916
- },
917
- "description": "Fields involved in the validation"
918
- }
919
- },
920
- "required": [
921
- "name",
922
- "message",
923
- "type",
924
- "condition",
925
- "fields"
926
- ],
927
- "additionalProperties": false
928
- },
929
- {
930
- "type": "object",
931
- "properties": {
932
- "name": {
933
- "type": "string",
934
- "pattern": "^[a-z_][a-z0-9_]*$",
935
- "description": "Unique rule name (snake_case)"
936
- },
937
- "label": {
938
- "type": "string",
939
- "description": "Human-readable label for the rule listing"
940
- },
941
- "description": {
942
- "type": "string",
943
- "description": "Administrative notes explaining the business reason"
944
- },
945
- "active": {
946
- "type": "boolean",
947
- "default": true
948
- },
949
- "events": {
950
- "type": "array",
951
- "items": {
952
- "type": "string",
953
- "enum": [
954
- "insert",
955
- "update",
956
- "delete"
957
- ]
958
- },
959
- "default": [
960
- "insert",
961
- "update"
962
- ],
963
- "description": "Validation contexts"
964
- },
965
- "tags": {
966
- "type": "array",
967
- "items": {
968
- "type": "string"
969
- },
970
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
971
- },
972
- "severity": {
973
- "type": "string",
974
- "enum": [
975
- "error",
976
- "warning",
977
- "info"
978
- ],
979
- "default": "error"
980
- },
981
- "message": {
982
- "type": "string",
983
- "description": "Error message to display to the user"
984
- },
985
- "type": {
986
- "type": "string",
987
- "const": "json_schema"
988
- },
989
- "field": {
990
- "type": "string",
991
- "description": "JSON field to validate"
992
- },
993
- "schema": {
994
- "type": "object",
995
- "additionalProperties": {},
996
- "description": "JSON Schema object definition"
997
- }
998
- },
999
- "required": [
1000
- "name",
1001
- "message",
1002
- "type",
1003
- "field",
1004
- "schema"
1005
- ],
1006
- "additionalProperties": false
1007
- },
1008
- {
1009
- "type": "object",
1010
- "properties": {
1011
- "name": {
1012
- "type": "string",
1013
- "pattern": "^[a-z_][a-z0-9_]*$",
1014
- "description": "Unique rule name (snake_case)"
1015
- },
1016
- "label": {
1017
- "type": "string",
1018
- "description": "Human-readable label for the rule listing"
1019
- },
1020
- "description": {
1021
- "type": "string",
1022
- "description": "Administrative notes explaining the business reason"
1023
- },
1024
- "active": {
1025
- "type": "boolean",
1026
- "default": true
1027
- },
1028
- "events": {
1029
- "type": "array",
1030
- "items": {
1031
- "type": "string",
1032
- "enum": [
1033
- "insert",
1034
- "update",
1035
- "delete"
1036
- ]
1037
- },
1038
- "default": [
1039
- "insert",
1040
- "update"
1041
- ],
1042
- "description": "Validation contexts"
1043
- },
1044
- "tags": {
1045
- "type": "array",
1046
- "items": {
1047
- "type": "string"
1048
- },
1049
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1050
- },
1051
- "severity": {
1052
- "type": "string",
1053
- "enum": [
1054
- "error",
1055
- "warning",
1056
- "info"
1057
- ],
1058
- "default": "error"
1059
- },
1060
- "message": {
1061
- "type": "string",
1062
- "description": "Error message to display to the user"
1063
- },
1064
- "type": {
1065
- "type": "string",
1066
- "const": "async"
1067
- },
1068
- "field": {
1069
- "type": "string",
1070
- "description": "Field to validate"
1071
- },
1072
- "validatorUrl": {
1073
- "type": "string",
1074
- "description": "External API endpoint for validation"
1075
- },
1076
- "method": {
1077
- "type": "string",
1078
- "enum": [
1079
- "GET",
1080
- "POST"
1081
- ],
1082
- "default": "GET",
1083
- "description": "HTTP method for external call"
1084
- },
1085
- "headers": {
1086
- "type": "object",
1087
- "additionalProperties": {
1088
- "type": "string"
1089
- },
1090
- "description": "Custom headers for the request"
1091
- },
1092
- "validatorFunction": {
1093
- "type": "string",
1094
- "description": "Reference to custom validator function"
1095
- },
1096
- "timeout": {
1097
- "type": "number",
1098
- "default": 5000,
1099
- "description": "Timeout in milliseconds"
1100
- },
1101
- "debounce": {
1102
- "type": "number",
1103
- "description": "Debounce delay in milliseconds"
1104
- },
1105
- "params": {
1106
- "type": "object",
1107
- "additionalProperties": {},
1108
- "description": "Additional parameters to pass to validator"
1109
- }
1110
- },
1111
- "required": [
1112
- "name",
1113
- "message",
1114
- "type",
1115
- "field"
1116
- ],
1117
- "additionalProperties": false
1118
- },
1119
- {
1120
- "type": "object",
1121
- "properties": {
1122
- "name": {
1123
- "type": "string",
1124
- "pattern": "^[a-z_][a-z0-9_]*$",
1125
- "description": "Unique rule name (snake_case)"
1126
- },
1127
- "label": {
1128
- "type": "string",
1129
- "description": "Human-readable label for the rule listing"
1130
- },
1131
- "description": {
1132
- "type": "string",
1133
- "description": "Administrative notes explaining the business reason"
1134
- },
1135
- "active": {
1136
- "type": "boolean",
1137
- "default": true
1138
- },
1139
- "events": {
1140
- "type": "array",
1141
- "items": {
1142
- "type": "string",
1143
- "enum": [
1144
- "insert",
1145
- "update",
1146
- "delete"
1147
- ]
1148
- },
1149
- "default": [
1150
- "insert",
1151
- "update"
1152
- ],
1153
- "description": "Validation contexts"
1154
- },
1155
- "tags": {
1156
- "type": "array",
1157
- "items": {
1158
- "type": "string"
1159
- },
1160
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1161
- },
1162
- "severity": {
1163
- "type": "string",
1164
- "enum": [
1165
- "error",
1166
- "warning",
1167
- "info"
1168
- ],
1169
- "default": "error"
1170
- },
1171
- "message": {
1172
- "type": "string",
1173
- "description": "Error message to display to the user"
1174
- },
1175
- "type": {
1176
- "type": "string",
1177
- "const": "custom"
1178
- },
1179
- "handler": {
1180
- "type": "string",
1181
- "description": "Name of the custom validation function registered in the system"
1182
- },
1183
- "params": {
1184
- "type": "object",
1185
- "additionalProperties": {},
1186
- "description": "Parameters passed to the custom handler"
1187
- }
1188
- },
1189
- "required": [
1190
- "name",
1191
- "message",
1192
- "type",
1193
- "handler"
1194
- ],
1195
- "additionalProperties": false
1196
- },
1197
- {
1198
- "type": "object",
1199
- "properties": {
1200
- "name": {
1201
- "type": "string",
1202
- "pattern": "^[a-z_][a-z0-9_]*$",
1203
- "description": "Unique rule name (snake_case)"
1204
- },
1205
- "label": {
1206
- "type": "string",
1207
- "description": "Human-readable label for the rule listing"
1208
- },
1209
- "description": {
1210
- "type": "string",
1211
- "description": "Administrative notes explaining the business reason"
1212
- },
1213
- "active": {
1214
- "type": "boolean",
1215
- "default": true
1216
- },
1217
- "events": {
1218
- "type": "array",
1219
- "items": {
1220
- "type": "string",
1221
- "enum": [
1222
- "insert",
1223
- "update",
1224
- "delete"
1225
- ]
1226
- },
1227
- "default": [
1228
- "insert",
1229
- "update"
1230
- ],
1231
- "description": "Validation contexts"
1232
- },
1233
- "tags": {
1234
- "type": "array",
1235
- "items": {
1236
- "type": "string"
1237
- },
1238
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1239
- },
1240
- "severity": {
1241
- "type": "string",
1242
- "enum": [
1243
- "error",
1244
- "warning",
1245
- "info"
1246
- ],
1247
- "default": "error"
1248
- },
1249
- "message": {
1250
- "type": "string",
1251
- "description": "Error message to display to the user"
1252
- },
1253
- "type": {
1254
- "type": "string",
1255
- "const": "conditional"
1256
- },
1257
- "when": {
1258
- "type": "string",
1259
- "description": "Condition formula (e.g. \"type = 'enterprise'\")"
1260
- },
1261
- "then": {
1262
- "anyOf": [
1263
- {
1264
- "type": "object",
1265
- "properties": {
1266
- "name": {
1267
- "type": "string",
1268
- "pattern": "^[a-z_][a-z0-9_]*$",
1269
- "description": "Unique rule name (snake_case)"
1270
- },
1271
- "label": {
1272
- "type": "string",
1273
- "description": "Human-readable label for the rule listing"
1274
- },
1275
- "description": {
1276
- "type": "string",
1277
- "description": "Administrative notes explaining the business reason"
1278
- },
1279
- "active": {
1280
- "type": "boolean",
1281
- "default": true
1282
- },
1283
- "events": {
1284
- "type": "array",
1285
- "items": {
1286
- "type": "string",
1287
- "enum": [
1288
- "insert",
1289
- "update",
1290
- "delete"
1291
- ]
1292
- },
1293
- "default": [
1294
- "insert",
1295
- "update"
1296
- ],
1297
- "description": "Validation contexts"
1298
- },
1299
- "tags": {
1300
- "type": "array",
1301
- "items": {
1302
- "type": "string"
1303
- },
1304
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1305
- },
1306
- "severity": {
1307
- "type": "string",
1308
- "enum": [
1309
- "error",
1310
- "warning",
1311
- "info"
1312
- ],
1313
- "default": "error"
1314
- },
1315
- "message": {
1316
- "type": "string",
1317
- "description": "Error message to display to the user"
1318
- },
1319
- "type": {
1320
- "type": "string",
1321
- "const": "script"
1322
- },
1323
- "condition": {
1324
- "type": "string",
1325
- "description": "Formula expression. If TRUE, validation fails. (e.g. amount < 0)"
1326
- }
1327
- },
1328
- "required": [
1329
- "name",
1330
- "message",
1331
- "type",
1332
- "condition"
1333
- ],
1334
- "additionalProperties": false
1335
- },
1336
- {
1337
- "type": "object",
1338
- "properties": {
1339
- "name": {
1340
- "type": "string",
1341
- "pattern": "^[a-z_][a-z0-9_]*$",
1342
- "description": "Unique rule name (snake_case)"
1343
- },
1344
- "label": {
1345
- "type": "string",
1346
- "description": "Human-readable label for the rule listing"
1347
- },
1348
- "description": {
1349
- "type": "string",
1350
- "description": "Administrative notes explaining the business reason"
1351
- },
1352
- "active": {
1353
- "type": "boolean",
1354
- "default": true
1355
- },
1356
- "events": {
1357
- "type": "array",
1358
- "items": {
1359
- "type": "string",
1360
- "enum": [
1361
- "insert",
1362
- "update",
1363
- "delete"
1364
- ]
1365
- },
1366
- "default": [
1367
- "insert",
1368
- "update"
1369
- ],
1370
- "description": "Validation contexts"
1371
- },
1372
- "tags": {
1373
- "type": "array",
1374
- "items": {
1375
- "type": "string"
1376
- },
1377
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1378
- },
1379
- "severity": {
1380
- "type": "string",
1381
- "enum": [
1382
- "error",
1383
- "warning",
1384
- "info"
1385
- ],
1386
- "default": "error"
1387
- },
1388
- "message": {
1389
- "type": "string",
1390
- "description": "Error message to display to the user"
1391
- },
1392
- "type": {
1393
- "type": "string",
1394
- "const": "unique"
1395
- },
1396
- "fields": {
1397
- "type": "array",
1398
- "items": {
1399
- "type": "string"
1400
- },
1401
- "description": "Fields that must be combined unique"
1402
- },
1403
- "scope": {
1404
- "type": "string",
1405
- "description": "Formula condition for scope (e.g. active = true)"
1406
- },
1407
- "caseSensitive": {
1408
- "type": "boolean",
1409
- "default": true
1410
- }
1411
- },
1412
- "required": [
1413
- "name",
1414
- "message",
1415
- "type",
1416
- "fields"
1417
- ],
1418
- "additionalProperties": false
1419
- },
1420
- {
1421
- "type": "object",
1422
- "properties": {
1423
- "name": {
1424
- "type": "string",
1425
- "pattern": "^[a-z_][a-z0-9_]*$",
1426
- "description": "Unique rule name (snake_case)"
1427
- },
1428
- "label": {
1429
- "type": "string",
1430
- "description": "Human-readable label for the rule listing"
1431
- },
1432
- "description": {
1433
- "type": "string",
1434
- "description": "Administrative notes explaining the business reason"
1435
- },
1436
- "active": {
1437
- "type": "boolean",
1438
- "default": true
1439
- },
1440
- "events": {
1441
- "type": "array",
1442
- "items": {
1443
- "type": "string",
1444
- "enum": [
1445
- "insert",
1446
- "update",
1447
- "delete"
1448
- ]
1449
- },
1450
- "default": [
1451
- "insert",
1452
- "update"
1453
- ],
1454
- "description": "Validation contexts"
1455
- },
1456
- "tags": {
1457
- "type": "array",
1458
- "items": {
1459
- "type": "string"
1460
- },
1461
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1462
- },
1463
- "severity": {
1464
- "type": "string",
1465
- "enum": [
1466
- "error",
1467
- "warning",
1468
- "info"
1469
- ],
1470
- "default": "error"
1471
- },
1472
- "message": {
1473
- "type": "string",
1474
- "description": "Error message to display to the user"
1475
- },
1476
- "type": {
1477
- "type": "string",
1478
- "const": "state_machine"
1479
- },
1480
- "field": {
1481
- "type": "string",
1482
- "description": "State field (e.g. status)"
1483
- },
1484
- "transitions": {
1485
- "type": "object",
1486
- "additionalProperties": {
1487
- "type": "array",
1488
- "items": {
1489
- "type": "string"
1490
- }
1491
- },
1492
- "description": "Map of { OldState: [AllowedNewStates] }"
1493
- }
1494
- },
1495
- "required": [
1496
- "name",
1497
- "message",
1498
- "type",
1499
- "field",
1500
- "transitions"
1501
- ],
1502
- "additionalProperties": false
1503
- },
1504
- {
1505
- "type": "object",
1506
- "properties": {
1507
- "name": {
1508
- "type": "string",
1509
- "pattern": "^[a-z_][a-z0-9_]*$",
1510
- "description": "Unique rule name (snake_case)"
1511
- },
1512
- "label": {
1513
- "type": "string",
1514
- "description": "Human-readable label for the rule listing"
1515
- },
1516
- "description": {
1517
- "type": "string",
1518
- "description": "Administrative notes explaining the business reason"
1519
- },
1520
- "active": {
1521
- "type": "boolean",
1522
- "default": true
1523
- },
1524
- "events": {
1525
- "type": "array",
1526
- "items": {
1527
- "type": "string",
1528
- "enum": [
1529
- "insert",
1530
- "update",
1531
- "delete"
1532
- ]
1533
- },
1534
- "default": [
1535
- "insert",
1536
- "update"
1537
- ],
1538
- "description": "Validation contexts"
1539
- },
1540
- "tags": {
1541
- "type": "array",
1542
- "items": {
1543
- "type": "string"
1544
- },
1545
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1546
- },
1547
- "severity": {
1548
- "type": "string",
1549
- "enum": [
1550
- "error",
1551
- "warning",
1552
- "info"
1553
- ],
1554
- "default": "error"
1555
- },
1556
- "message": {
1557
- "type": "string",
1558
- "description": "Error message to display to the user"
1559
- },
1560
- "type": {
1561
- "type": "string",
1562
- "const": "format"
1563
- },
1564
- "field": {
1565
- "type": "string"
1566
- },
1567
- "regex": {
1568
- "type": "string"
1569
- },
1570
- "format": {
1571
- "type": "string",
1572
- "enum": [
1573
- "email",
1574
- "url",
1575
- "phone",
1576
- "json"
1577
- ]
1578
- }
1579
- },
1580
- "required": [
1581
- "name",
1582
- "message",
1583
- "type",
1584
- "field"
1585
- ],
1586
- "additionalProperties": false
1587
- },
1588
- {
1589
- "type": "object",
1590
- "properties": {
1591
- "name": {
1592
- "type": "string",
1593
- "pattern": "^[a-z_][a-z0-9_]*$",
1594
- "description": "Unique rule name (snake_case)"
1595
- },
1596
- "label": {
1597
- "type": "string",
1598
- "description": "Human-readable label for the rule listing"
1599
- },
1600
- "description": {
1601
- "type": "string",
1602
- "description": "Administrative notes explaining the business reason"
1603
- },
1604
- "active": {
1605
- "type": "boolean",
1606
- "default": true
1607
- },
1608
- "events": {
1609
- "type": "array",
1610
- "items": {
1611
- "type": "string",
1612
- "enum": [
1613
- "insert",
1614
- "update",
1615
- "delete"
1616
- ]
1617
- },
1618
- "default": [
1619
- "insert",
1620
- "update"
1621
- ],
1622
- "description": "Validation contexts"
1623
- },
1624
- "tags": {
1625
- "type": "array",
1626
- "items": {
1627
- "type": "string"
1628
- },
1629
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1630
- },
1631
- "severity": {
1632
- "type": "string",
1633
- "enum": [
1634
- "error",
1635
- "warning",
1636
- "info"
1637
- ],
1638
- "default": "error"
1639
- },
1640
- "message": {
1641
- "type": "string",
1642
- "description": "Error message to display to the user"
1643
- },
1644
- "type": {
1645
- "type": "string",
1646
- "const": "cross_field"
1647
- },
1648
- "condition": {
1649
- "type": "string",
1650
- "description": "Formula expression comparing fields (e.g. \"end_date > start_date\")"
1651
- },
1652
- "fields": {
1653
- "type": "array",
1654
- "items": {
1655
- "type": "string"
1656
- },
1657
- "description": "Fields involved in the validation"
1658
- }
1659
- },
1660
- "required": [
1661
- "name",
1662
- "message",
1663
- "type",
1664
- "condition",
1665
- "fields"
1666
- ],
1667
- "additionalProperties": false
1668
- },
1669
- {
1670
- "type": "object",
1671
- "properties": {
1672
- "name": {
1673
- "type": "string",
1674
- "pattern": "^[a-z_][a-z0-9_]*$",
1675
- "description": "Unique rule name (snake_case)"
1676
- },
1677
- "label": {
1678
- "type": "string",
1679
- "description": "Human-readable label for the rule listing"
1680
- },
1681
- "description": {
1682
- "type": "string",
1683
- "description": "Administrative notes explaining the business reason"
1684
- },
1685
- "active": {
1686
- "type": "boolean",
1687
- "default": true
1688
- },
1689
- "events": {
1690
- "type": "array",
1691
- "items": {
1692
- "type": "string",
1693
- "enum": [
1694
- "insert",
1695
- "update",
1696
- "delete"
1697
- ]
1698
- },
1699
- "default": [
1700
- "insert",
1701
- "update"
1702
- ],
1703
- "description": "Validation contexts"
1704
- },
1705
- "tags": {
1706
- "type": "array",
1707
- "items": {
1708
- "type": "string"
1709
- },
1710
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1711
- },
1712
- "severity": {
1713
- "type": "string",
1714
- "enum": [
1715
- "error",
1716
- "warning",
1717
- "info"
1718
- ],
1719
- "default": "error"
1720
- },
1721
- "message": {
1722
- "type": "string",
1723
- "description": "Error message to display to the user"
1724
- },
1725
- "type": {
1726
- "type": "string",
1727
- "const": "json_schema"
1728
- },
1729
- "field": {
1730
- "type": "string",
1731
- "description": "JSON field to validate"
1732
- },
1733
- "schema": {
1734
- "type": "object",
1735
- "additionalProperties": {},
1736
- "description": "JSON Schema object definition"
1737
- }
1738
- },
1739
- "required": [
1740
- "name",
1741
- "message",
1742
- "type",
1743
- "field",
1744
- "schema"
1745
- ],
1746
- "additionalProperties": false
1747
- },
1748
- {
1749
- "type": "object",
1750
- "properties": {
1751
- "name": {
1752
- "type": "string",
1753
- "pattern": "^[a-z_][a-z0-9_]*$",
1754
- "description": "Unique rule name (snake_case)"
1755
- },
1756
- "label": {
1757
- "type": "string",
1758
- "description": "Human-readable label for the rule listing"
1759
- },
1760
- "description": {
1761
- "type": "string",
1762
- "description": "Administrative notes explaining the business reason"
1763
- },
1764
- "active": {
1765
- "type": "boolean",
1766
- "default": true
1767
- },
1768
- "events": {
1769
- "type": "array",
1770
- "items": {
1771
- "type": "string",
1772
- "enum": [
1773
- "insert",
1774
- "update",
1775
- "delete"
1776
- ]
1777
- },
1778
- "default": [
1779
- "insert",
1780
- "update"
1781
- ],
1782
- "description": "Validation contexts"
1783
- },
1784
- "tags": {
1785
- "type": "array",
1786
- "items": {
1787
- "type": "string"
1788
- },
1789
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1790
- },
1791
- "severity": {
1792
- "type": "string",
1793
- "enum": [
1794
- "error",
1795
- "warning",
1796
- "info"
1797
- ],
1798
- "default": "error"
1799
- },
1800
- "message": {
1801
- "type": "string",
1802
- "description": "Error message to display to the user"
1803
- },
1804
- "type": {
1805
- "type": "string",
1806
- "const": "async"
1807
- },
1808
- "field": {
1809
- "type": "string",
1810
- "description": "Field to validate"
1811
- },
1812
- "validatorUrl": {
1813
- "type": "string",
1814
- "description": "External API endpoint for validation"
1815
- },
1816
- "method": {
1817
- "type": "string",
1818
- "enum": [
1819
- "GET",
1820
- "POST"
1821
- ],
1822
- "default": "GET",
1823
- "description": "HTTP method for external call"
1824
- },
1825
- "headers": {
1826
- "type": "object",
1827
- "additionalProperties": {
1828
- "type": "string"
1829
- },
1830
- "description": "Custom headers for the request"
1831
- },
1832
- "validatorFunction": {
1833
- "type": "string",
1834
- "description": "Reference to custom validator function"
1835
- },
1836
- "timeout": {
1837
- "type": "number",
1838
- "default": 5000,
1839
- "description": "Timeout in milliseconds"
1840
- },
1841
- "debounce": {
1842
- "type": "number",
1843
- "description": "Debounce delay in milliseconds"
1844
- },
1845
- "params": {
1846
- "type": "object",
1847
- "additionalProperties": {},
1848
- "description": "Additional parameters to pass to validator"
1849
- }
1850
- },
1851
- "required": [
1852
- "name",
1853
- "message",
1854
- "type",
1855
- "field"
1856
- ],
1857
- "additionalProperties": false
1858
- },
1859
- {
1860
- "type": "object",
1861
- "properties": {
1862
- "name": {
1863
- "type": "string",
1864
- "pattern": "^[a-z_][a-z0-9_]*$",
1865
- "description": "Unique rule name (snake_case)"
1866
- },
1867
- "label": {
1868
- "type": "string",
1869
- "description": "Human-readable label for the rule listing"
1870
- },
1871
- "description": {
1872
- "type": "string",
1873
- "description": "Administrative notes explaining the business reason"
1874
- },
1875
- "active": {
1876
- "type": "boolean",
1877
- "default": true
1878
- },
1879
- "events": {
1880
- "type": "array",
1881
- "items": {
1882
- "type": "string",
1883
- "enum": [
1884
- "insert",
1885
- "update",
1886
- "delete"
1887
- ]
1888
- },
1889
- "default": [
1890
- "insert",
1891
- "update"
1892
- ],
1893
- "description": "Validation contexts"
1894
- },
1895
- "tags": {
1896
- "type": "array",
1897
- "items": {
1898
- "type": "string"
1899
- },
1900
- "description": "Categorization tags (e.g., \"compliance\", \"billing\")"
1901
- },
1902
- "severity": {
1903
- "type": "string",
1904
- "enum": [
1905
- "error",
1906
- "warning",
1907
- "info"
1908
- ],
1909
- "default": "error"
1910
- },
1911
- "message": {
1912
- "type": "string",
1913
- "description": "Error message to display to the user"
1914
- },
1915
- "type": {
1916
- "type": "string",
1917
- "const": "custom"
1918
- },
1919
- "handler": {
1920
- "type": "string",
1921
- "description": "Name of the custom validation function registered in the system"
1922
- },
1923
- "params": {
1924
- "type": "object",
1925
- "additionalProperties": {},
1926
- "description": "Parameters passed to the custom handler"
1927
- }
1928
- },
1929
- "required": [
1930
- "name",
1931
- "message",
1932
- "type",
1933
- "handler"
1934
- ],
1935
- "additionalProperties": false
1936
- },
1937
- {}
1938
- ],
1939
- "description": "Validation rule to apply when condition is true"
1940
- },
1941
- "otherwise": {
1942
- "description": "Validation rule to apply when condition is false"
1943
- }
1944
- },
1945
- "required": [
1946
- "name",
1947
- "message",
1948
- "type",
1949
- "when",
1950
- "then"
1951
- ],
1952
- "additionalProperties": false
1953
- }
1954
- ]
1955
- },
1956
- "description": "Object-level validation rules"
1957
- },
1958
- "titleFormat": {
1959
- "type": "string",
1960
- "description": "Title expression (e.g. \"{name} - {code}\"). Overrides nameField."
1961
- },
1962
- "compactLayout": {
1963
- "type": "array",
1964
- "items": {
1965
- "type": "string"
1966
- },
1967
- "description": "Primary fields for hover/cards/lookups"
1968
- },
1969
- "search": {
1970
- "type": "object",
1971
- "properties": {
1972
- "fields": {
1973
- "type": "array",
1974
- "items": {
1975
- "type": "string"
1976
- },
1977
- "description": "Fields to index for full-text search weighting"
1978
- },
1979
- "displayFields": {
1980
- "type": "array",
1981
- "items": {
1982
- "type": "string"
1983
- },
1984
- "description": "Fields to display in search result cards"
1985
- },
1986
- "filters": {
1987
- "type": "array",
1988
- "items": {
1989
- "type": "string"
1990
- },
1991
- "description": "Default filters for search results"
1992
- }
1993
- },
1994
- "required": [
1995
- "fields"
1996
- ],
1997
- "additionalProperties": false,
1998
- "description": "Search engine configuration"
1999
- },
2000
- "enable": {
2001
- "type": "object",
2002
- "properties": {
2003
- "trackHistory": {
2004
- "type": "boolean",
2005
- "default": false,
2006
- "description": "Enable field history tracking for audit compliance"
2007
- },
2008
- "searchable": {
2009
- "type": "boolean",
2010
- "default": true,
2011
- "description": "Index records for global search"
2012
- },
2013
- "apiEnabled": {
2014
- "type": "boolean",
2015
- "default": true,
2016
- "description": "Expose object via automatic APIs"
2017
- },
2018
- "apiMethods": {
2019
- "type": "array",
2020
- "items": {
2021
- "type": "string",
2022
- "enum": [
2023
- "get",
2024
- "list",
2025
- "create",
2026
- "update",
2027
- "delete",
2028
- "upsert",
2029
- "bulk",
2030
- "aggregate",
2031
- "history",
2032
- "search",
2033
- "restore",
2034
- "purge",
2035
- "import",
2036
- "export"
2037
- ]
2038
- },
2039
- "description": "Whitelist of allowed API operations"
2040
- },
2041
- "files": {
2042
- "type": "boolean",
2043
- "default": false,
2044
- "description": "Enable file attachments and document management"
2045
- },
2046
- "feeds": {
2047
- "type": "boolean",
2048
- "default": false,
2049
- "description": "Enable social feed, comments, and mentions (Chatter-like)"
2050
- },
2051
- "activities": {
2052
- "type": "boolean",
2053
- "default": false,
2054
- "description": "Enable standard tasks and events tracking"
2055
- },
2056
- "trash": {
2057
- "type": "boolean",
2058
- "default": true,
2059
- "description": "Enable soft-delete with restore capability"
2060
- },
2061
- "mru": {
2062
- "type": "boolean",
2063
- "default": true,
2064
- "description": "Track Most Recently Used (MRU) list for users"
2065
- },
2066
- "clone": {
2067
- "type": "boolean",
2068
- "default": true,
2069
- "description": "Allow record deep cloning"
2070
- }
2071
- },
2072
- "additionalProperties": false,
2073
- "description": "Enabled system features modules"
2074
- }
2075
- },
2076
- "required": [
2077
- "name",
2078
- "fields"
2079
- ],
2080
- "additionalProperties": false
2081
- },
2082
- "description": "Map of compiled Object Schemas (Name -> Schema)"
2083
- },
2084
- "datasource": {
2085
- "type": "object",
2086
- "additionalProperties": {
2087
- "type": "object",
2088
- "properties": {
2089
- "name": {
2090
- "type": "string",
2091
- "pattern": "^[a-z_][a-z0-9_]*$",
2092
- "description": "Unique datasource identifier"
2093
- },
2094
- "label": {
2095
- "type": "string",
2096
- "description": "Display label"
2097
- },
2098
- "driver": {
2099
- "type": "string",
2100
- "description": "Underlying driver type"
2101
- },
2102
- "config": {
2103
- "type": "object",
2104
- "additionalProperties": {},
2105
- "description": "Driver specific configuration"
2106
- },
2107
- "pool": {
2108
- "type": "object",
2109
- "properties": {
2110
- "min": {
2111
- "type": "number",
2112
- "default": 0,
2113
- "description": "Minimum connections"
2114
- },
2115
- "max": {
2116
- "type": "number",
2117
- "default": 10,
2118
- "description": "Maximum connections"
2119
- },
2120
- "idleTimeoutMillis": {
2121
- "type": "number",
2122
- "default": 30000,
2123
- "description": "Idle timeout"
2124
- },
2125
- "connectionTimeoutMillis": {
2126
- "type": "number",
2127
- "default": 3000,
2128
- "description": "Connection establishment timeout"
2129
- }
2130
- },
2131
- "additionalProperties": false,
2132
- "description": "Connection pool settings"
2133
- },
2134
- "readReplicas": {
2135
- "type": "array",
2136
- "items": {
2137
- "type": "object",
2138
- "additionalProperties": {}
2139
- },
2140
- "description": "Read-only replica configurations"
2141
- },
2142
- "capabilities": {
2143
- "type": "object",
2144
- "properties": {
2145
- "transactions": {
2146
- "type": "boolean",
2147
- "default": false
2148
- },
2149
- "queryFilters": {
2150
- "type": "boolean",
2151
- "default": false
2152
- },
2153
- "queryAggregations": {
2154
- "type": "boolean",
2155
- "default": false
2156
- },
2157
- "querySorting": {
2158
- "type": "boolean",
2159
- "default": false
2160
- },
2161
- "queryPagination": {
2162
- "type": "boolean",
2163
- "default": false
2164
- },
2165
- "queryWindowFunctions": {
2166
- "type": "boolean",
2167
- "default": false
2168
- },
2169
- "querySubqueries": {
2170
- "type": "boolean",
2171
- "default": false
2172
- },
2173
- "joins": {
2174
- "type": "boolean",
2175
- "default": false
2176
- },
2177
- "fullTextSearch": {
2178
- "type": "boolean",
2179
- "default": false
2180
- },
2181
- "readOnly": {
2182
- "type": "boolean",
2183
- "default": false
2184
- },
2185
- "dynamicSchema": {
2186
- "type": "boolean",
2187
- "default": false
2188
- }
2189
- },
2190
- "additionalProperties": false,
2191
- "description": "Capability overrides"
2192
- },
2193
- "description": {
2194
- "type": "string",
2195
- "description": "Internal description"
2196
- },
2197
- "active": {
2198
- "type": "boolean",
2199
- "default": true,
2200
- "description": "Is datasource enabled"
2201
- }
2202
- },
2203
- "required": [
2204
- "name",
2205
- "driver",
2206
- "config"
2207
- ],
2208
- "additionalProperties": false
2209
- },
2210
- "description": "Map of compiled Datasource Schemas"
2211
- }
2212
- },
2213
- "additionalProperties": false,
2214
- "description": "Inline resource definitions (for serverless/compiled runtimes)"
2215
- },
2216
54
  "datasources": {
2217
55
  "type": "array",
2218
56
  "items": {