@objectstack/spec 2.0.5 → 2.0.7

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 (293) hide show
  1. package/dist/ai/index.d.mts +1 -1
  2. package/dist/ai/index.d.ts +1 -1
  3. package/dist/ai/index.js +230 -3
  4. package/dist/ai/index.js.map +1 -1
  5. package/dist/ai/index.mjs +218 -3
  6. package/dist/ai/index.mjs.map +1 -1
  7. package/dist/api/index.d.mts +2 -2
  8. package/dist/api/index.d.ts +2 -2
  9. package/dist/api/index.js +3409 -2841
  10. package/dist/api/index.js.map +1 -1
  11. package/dist/api/index.mjs +3386 -2841
  12. package/dist/api/index.mjs.map +1 -1
  13. package/dist/automation/index.d.mts +1 -1
  14. package/dist/automation/index.d.ts +1 -1
  15. package/dist/contracts/index.d.mts +2 -2
  16. package/dist/contracts/index.d.ts +2 -2
  17. package/dist/contracts/index.js.map +1 -1
  18. package/dist/data/index.d.mts +2 -2
  19. package/dist/data/index.d.ts +2 -2
  20. package/dist/data/index.js +58 -1
  21. package/dist/data/index.js.map +1 -1
  22. package/dist/data/index.mjs +58 -1
  23. package/dist/data/index.mjs.map +1 -1
  24. package/dist/{driver.zod-E3C6n0W-.d.ts → driver.zod-B3Q0oLlF.d.ts} +1 -1
  25. package/dist/{driver.zod-DnOPgUGi.d.mts → driver.zod-Bf2z72WQ.d.mts} +1 -1
  26. package/dist/{index-DyawwLFZ.d.ts → index-B3C8s_DZ.d.ts} +307 -29
  27. package/dist/{index-DTCkpGMm.d.mts → index-BliYpI46.d.mts} +879 -52
  28. package/dist/{index-BbtSaxHm.d.ts → index-BpE_xfkc.d.ts} +3289 -229
  29. package/dist/{index-E1mP_eoE.d.mts → index-C3cFLYII.d.mts} +307 -29
  30. package/dist/{index-BpP0MwlW.d.ts → index-CXtgLAue.d.ts} +879 -52
  31. package/dist/{index-D-tf4nDV.d.mts → index-CYbdd-mL.d.mts} +27 -1
  32. package/dist/index-CeUUI-ym.d.mts +2102 -0
  33. package/dist/{index-BPhGHW32.d.ts → index-CfvdYFyf.d.ts} +27 -1
  34. package/dist/{index-CDN6TRx9.d.mts → index-ClHj1Tbo.d.mts} +71 -2
  35. package/dist/{index-CDN6TRx9.d.ts → index-ClHj1Tbo.d.ts} +71 -2
  36. package/dist/index-CmY8tgpL.d.ts +2102 -0
  37. package/dist/{index-DRCh2NTZ.d.mts → index-CqDMk0T6.d.mts} +3289 -229
  38. package/dist/{index-d9wYlv-g.d.ts → index-DNKiU_-x.d.mts} +684 -18
  39. package/dist/{index-d9wYlv-g.d.mts → index-DNKiU_-x.d.ts} +684 -18
  40. package/dist/{index-CisfSmuF.d.ts → index-Dm4UfDKG.d.ts} +451 -19
  41. package/dist/index-KhvhiesR.d.mts +6902 -0
  42. package/dist/{index-BV0xBoer.d.mts → index-Onf8hbkX.d.mts} +451 -19
  43. package/dist/index-OqCqQSaH.d.ts +6902 -0
  44. package/dist/index.d.mts +2519 -222
  45. package/dist/index.d.ts +2519 -222
  46. package/dist/index.js +9957 -8069
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +9957 -8069
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/integration/index.d.mts +1 -1
  51. package/dist/integration/index.d.ts +1 -1
  52. package/dist/integration/index.js +67 -0
  53. package/dist/integration/index.js.map +1 -1
  54. package/dist/integration/index.mjs +61 -0
  55. package/dist/integration/index.mjs.map +1 -1
  56. package/dist/kernel/index.d.mts +2 -2
  57. package/dist/kernel/index.d.ts +2 -2
  58. package/dist/kernel/index.js +1698 -1474
  59. package/dist/kernel/index.js.map +1 -1
  60. package/dist/kernel/index.mjs +1690 -1474
  61. package/dist/kernel/index.mjs.map +1 -1
  62. package/dist/{package-registry.zod-CbS9FKeH.d.mts → package-registry.zod-BJQSiICj.d.mts} +78 -43
  63. package/dist/{package-registry.zod-CbS9FKeH.d.ts → package-registry.zod-BJQSiICj.d.ts} +78 -43
  64. package/dist/security/index.d.mts +1 -1
  65. package/dist/security/index.d.ts +1 -1
  66. package/dist/security/index.js +47 -1
  67. package/dist/security/index.js.map +1 -1
  68. package/dist/security/index.mjs +45 -1
  69. package/dist/security/index.mjs.map +1 -1
  70. package/dist/system/index.d.mts +1 -1
  71. package/dist/system/index.d.ts +1 -1
  72. package/dist/system/index.js +2189 -1821
  73. package/dist/system/index.js.map +1 -1
  74. package/dist/system/index.mjs +2168 -1821
  75. package/dist/system/index.mjs.map +1 -1
  76. package/dist/ui/index.d.mts +1 -1
  77. package/dist/ui/index.d.ts +1 -1
  78. package/dist/ui/index.js +1414 -767
  79. package/dist/ui/index.js.map +1 -1
  80. package/dist/ui/index.mjs +1354 -767
  81. package/dist/ui/index.mjs.map +1 -1
  82. package/json-schema/ai/Agent.json +203 -0
  83. package/json-schema/ai/AgentCommunicationProtocol.json +9 -0
  84. package/json-schema/ai/AgentGroupMember.json +45 -0
  85. package/json-schema/ai/AgentGroupRole.json +10 -0
  86. package/json-schema/ai/DevOpsAgent.json +203 -0
  87. package/json-schema/ai/MCPClientConfig.json +168 -0
  88. package/json-schema/ai/MCPRootEntry.json +23 -0
  89. package/json-schema/ai/MCPRootsConfig.json +49 -0
  90. package/json-schema/ai/MCPSamplingConfig.json +46 -0
  91. package/json-schema/ai/MCPServerConfig.json +120 -0
  92. package/json-schema/ai/MCPStreamingConfig.json +38 -0
  93. package/json-schema/ai/MCPToolApproval.json +39 -0
  94. package/json-schema/ai/MultiAgentGroup.json +137 -0
  95. package/json-schema/ai/StructuredOutputConfig.json +75 -0
  96. package/json-schema/ai/StructuredOutputFormat.json +12 -0
  97. package/json-schema/ai/TransformPipelineStep.json +11 -0
  98. package/json-schema/api/AppDefinitionResponse.json +285 -7
  99. package/json-schema/api/BasePresence.json +40 -0
  100. package/json-schema/api/BatchLoadingStrategy.json +40 -0
  101. package/json-schema/api/Callback.json +39 -0
  102. package/json-schema/api/DataLoaderConfig.json +55 -0
  103. package/json-schema/api/DisablePackageResponse.json +26 -0
  104. package/json-schema/api/Discovery.json +4 -62
  105. package/json-schema/api/EnablePackageResponse.json +26 -0
  106. package/json-schema/api/FederationEntity.json +110 -0
  107. package/json-schema/api/FederationEntityKey.json +20 -0
  108. package/json-schema/api/FederationExternalField.json +18 -0
  109. package/json-schema/api/FederationGateway.json +327 -0
  110. package/json-schema/api/FederationProvides.json +19 -0
  111. package/json-schema/api/FederationRequires.json +19 -0
  112. package/json-schema/api/GetDiscoveryResponse.json +1 -60
  113. package/json-schema/api/GetPackageResponse.json +26 -0
  114. package/json-schema/api/GraphQLConfig.json +327 -0
  115. package/json-schema/api/GraphQLQueryAdapter.json +84 -0
  116. package/json-schema/api/InstallPackageRequest.json +26 -0
  117. package/json-schema/api/InstallPackageResponse.json +26 -0
  118. package/json-schema/api/ListPackagesResponse.json +26 -0
  119. package/json-schema/api/ODataQueryAdapter.json +66 -0
  120. package/json-schema/api/OpenApi31Extensions.json +139 -0
  121. package/json-schema/api/OperatorMapping.json +26 -0
  122. package/json-schema/api/PresenceStatus.json +10 -0
  123. package/json-schema/api/QueryAdapterConfig.json +272 -0
  124. package/json-schema/api/QueryAdapterTarget.json +9 -0
  125. package/json-schema/api/QueryOptimizationConfig.json +126 -0
  126. package/json-schema/api/RealtimeRecordAction.json +9 -0
  127. package/json-schema/api/RestQueryAdapter.json +86 -0
  128. package/json-schema/api/RestServerConfig.json +139 -0
  129. package/json-schema/api/SubgraphConfig.json +183 -0
  130. package/json-schema/api/WebhookConfig.json +129 -0
  131. package/json-schema/api/WebhookEvent.json +64 -0
  132. package/json-schema/data/ExternalLookup.json +128 -0
  133. package/json-schema/identity/SCIMBulkOperation.json +41 -0
  134. package/json-schema/identity/SCIMBulkRequest.json +73 -0
  135. package/json-schema/identity/SCIMBulkResponse.json +61 -0
  136. package/json-schema/identity/SCIMBulkResponseOperation.json +36 -0
  137. package/json-schema/integration/CircuitBreakerConfig.json +49 -0
  138. package/json-schema/integration/Connector.json +223 -0
  139. package/json-schema/integration/ConnectorHealth.json +113 -0
  140. package/json-schema/integration/DatabaseConnector.json +223 -0
  141. package/json-schema/integration/ErrorCategory.json +15 -0
  142. package/json-schema/integration/ErrorMappingConfig.json +112 -0
  143. package/json-schema/integration/ErrorMappingRule.json +66 -0
  144. package/json-schema/integration/FileStorageConnector.json +223 -0
  145. package/json-schema/integration/GitHubConnector.json +223 -0
  146. package/json-schema/integration/HealthCheckConfig.json +58 -0
  147. package/json-schema/integration/MessageQueueConnector.json +223 -0
  148. package/json-schema/integration/SaasConnector.json +223 -0
  149. package/json-schema/integration/VercelConnector.json +223 -0
  150. package/json-schema/kernel/CLICommandContribution.json +23 -0
  151. package/json-schema/kernel/CLIExtensionExport.json +22 -0
  152. package/json-schema/kernel/DevFixtureConfig.json +35 -0
  153. package/json-schema/kernel/DevPluginConfig.json +170 -0
  154. package/json-schema/kernel/DevPluginPreset.json +10 -0
  155. package/json-schema/kernel/DevServiceOverride.json +41 -0
  156. package/json-schema/kernel/DevToolsConfig.json +45 -0
  157. package/json-schema/kernel/DisablePackageResponse.json +26 -0
  158. package/json-schema/kernel/EnablePackageResponse.json +26 -0
  159. package/json-schema/kernel/GetPackageResponse.json +26 -0
  160. package/json-schema/kernel/InstallPackageRequest.json +26 -0
  161. package/json-schema/kernel/InstallPackageResponse.json +26 -0
  162. package/json-schema/kernel/InstalledPackage.json +26 -0
  163. package/json-schema/kernel/ListPackagesResponse.json +26 -0
  164. package/json-schema/kernel/Manifest.json +26 -0
  165. package/json-schema/kernel/MetadataFallbackStrategy.json +9 -0
  166. package/json-schema/kernel/MetadataLoaderContract.json +7 -0
  167. package/json-schema/kernel/MetadataManagerConfig.json +21 -0
  168. package/json-schema/security/RLSAuditConfig.json +62 -0
  169. package/json-schema/security/RLSAuditEvent.json +66 -0
  170. package/json-schema/security/RLSConfig.json +62 -0
  171. package/json-schema/system/AuthConfig.json +83 -0
  172. package/json-schema/system/BackupConfig.json +148 -0
  173. package/json-schema/system/BackupRetention.json +27 -0
  174. package/json-schema/system/BackupStrategy.json +10 -0
  175. package/json-schema/system/CacheAvalanchePrevention.json +77 -0
  176. package/json-schema/system/CacheConsistency.json +11 -0
  177. package/json-schema/system/CacheWarmup.json +44 -0
  178. package/json-schema/system/ComplianceAuditRequirement.json +43 -0
  179. package/json-schema/system/ComplianceEncryptionRequirement.json +58 -0
  180. package/json-schema/system/DataClassificationPolicy.json +46 -0
  181. package/json-schema/system/DisasterRecoveryPlan.json +414 -0
  182. package/json-schema/system/DistributedCacheConfig.json +269 -0
  183. package/json-schema/system/FailoverConfig.json +102 -0
  184. package/json-schema/system/FailoverMode.json +11 -0
  185. package/json-schema/system/MaskingVisibilityRule.json +56 -0
  186. package/json-schema/system/MetadataFallbackStrategy.json +9 -0
  187. package/json-schema/system/MetadataLoaderContract.json +9 -1
  188. package/json-schema/system/MetadataManagerConfig.json +52 -11
  189. package/json-schema/system/MetadataRecord.json +32 -1
  190. package/json-schema/system/MetadataSource.json +10 -0
  191. package/json-schema/system/MutualTLSConfig.json +83 -0
  192. package/json-schema/system/RPO.json +27 -0
  193. package/json-schema/system/RTO.json +27 -0
  194. package/json-schema/system/SecurityContextConfig.json +288 -0
  195. package/json-schema/system/SecurityEventCorrelation.json +40 -0
  196. package/json-schema/ui/Action.json +200 -5
  197. package/json-schema/ui/ActionParam.json +62 -2
  198. package/json-schema/ui/AnimationTrigger.json +14 -0
  199. package/json-schema/ui/App.json +285 -7
  200. package/json-schema/ui/AriaProps.json +49 -0
  201. package/json-schema/ui/BreakpointColumnMap.json +38 -0
  202. package/json-schema/ui/BreakpointName.json +12 -0
  203. package/json-schema/ui/BreakpointOrderMap.json +26 -0
  204. package/json-schema/ui/ChartAnnotation.json +31 -1
  205. package/json-schema/ui/ChartAxis.json +30 -1
  206. package/json-schema/ui/ChartConfig.json +259 -7
  207. package/json-schema/ui/ChartSeries.json +30 -1
  208. package/json-schema/ui/ColumnSummary.json +18 -0
  209. package/json-schema/ui/ComponentAnimation.json +246 -0
  210. package/json-schema/ui/ConflictResolution.json +11 -0
  211. package/json-schema/ui/Dashboard.json +627 -11
  212. package/json-schema/ui/DashboardNavItem.json +30 -1
  213. package/json-schema/ui/DashboardWidget.json +433 -8
  214. package/json-schema/ui/DateFormat.json +36 -0
  215. package/json-schema/ui/DensityMode.json +9 -0
  216. package/json-schema/ui/DndConfig.json +306 -0
  217. package/json-schema/ui/DragConstraint.json +44 -0
  218. package/json-schema/ui/DragHandle.json +10 -0
  219. package/json-schema/ui/DragItem.json +160 -0
  220. package/json-schema/ui/DropEffect.json +11 -0
  221. package/json-schema/ui/DropZone.json +114 -0
  222. package/json-schema/ui/EasingFunction.json +13 -0
  223. package/json-schema/ui/EvictionPolicy.json +10 -0
  224. package/json-schema/ui/FocusManagement.json +69 -0
  225. package/json-schema/ui/FocusTrapConfig.json +32 -0
  226. package/json-schema/ui/FormField.json +90 -3
  227. package/json-schema/ui/GalleryConfig.json +46 -0
  228. package/json-schema/ui/GestureConfig.json +128 -0
  229. package/json-schema/ui/GestureType.json +14 -0
  230. package/json-schema/ui/GroupNavItem.json +30 -1
  231. package/json-schema/ui/GroupingConfig.json +45 -0
  232. package/json-schema/ui/GroupingField.json +30 -0
  233. package/json-schema/ui/I18nLabel.json +34 -0
  234. package/json-schema/ui/I18nObject.json +26 -0
  235. package/json-schema/ui/KeyboardNavigationConfig.json +194 -0
  236. package/json-schema/ui/KeyboardShortcut.json +66 -0
  237. package/json-schema/ui/ListColumn.json +55 -1
  238. package/json-schema/ui/ListView.json +435 -4
  239. package/json-schema/ui/LocaleConfig.json +108 -0
  240. package/json-schema/ui/LongPressGestureConfig.json +20 -0
  241. package/json-schema/ui/MotionConfig.json +405 -0
  242. package/json-schema/ui/NavigationItem.json +150 -5
  243. package/json-schema/ui/Notification.json +232 -0
  244. package/json-schema/ui/NotificationAction.json +60 -0
  245. package/json-schema/ui/NotificationConfig.json +52 -0
  246. package/json-schema/ui/NotificationPosition.json +13 -0
  247. package/json-schema/ui/NotificationSeverity.json +11 -0
  248. package/json-schema/ui/NotificationType.json +12 -0
  249. package/json-schema/ui/NumberFormat.json +42 -0
  250. package/json-schema/ui/ObjectNavItem.json +30 -1
  251. package/json-schema/ui/OfflineCacheConfig.json +40 -0
  252. package/json-schema/ui/OfflineConfig.json +157 -0
  253. package/json-schema/ui/OfflineStrategy.json +12 -0
  254. package/json-schema/ui/Page.json +285 -3
  255. package/json-schema/ui/PageCardProps.json +79 -1
  256. package/json-schema/ui/PageComponent.json +175 -1
  257. package/json-schema/ui/PageHeaderProps.json +108 -2
  258. package/json-schema/ui/PageNavItem.json +30 -1
  259. package/json-schema/ui/PageRegion.json +175 -1
  260. package/json-schema/ui/PageTabsProps.json +79 -1
  261. package/json-schema/ui/PageTransition.json +53 -0
  262. package/json-schema/ui/PerformanceConfig.json +57 -0
  263. package/json-schema/ui/PersistStorage.json +10 -0
  264. package/json-schema/ui/PinchGestureConfig.json +16 -0
  265. package/json-schema/ui/PluralRule.json +40 -0
  266. package/json-schema/ui/Report.json +490 -8
  267. package/json-schema/ui/ReportChart.json +199 -5
  268. package/json-schema/ui/ReportColumn.json +126 -1
  269. package/json-schema/ui/ResponsiveConfig.json +97 -0
  270. package/json-schema/ui/RowColorConfig.json +25 -0
  271. package/json-schema/ui/RowHeight.json +12 -0
  272. package/json-schema/ui/SwipeDirection.json +10 -0
  273. package/json-schema/ui/SwipeGestureConfig.json +32 -0
  274. package/json-schema/ui/SyncConfig.json +47 -0
  275. package/json-schema/ui/Theme.json +137 -0
  276. package/json-schema/ui/TimelineConfig.json +46 -0
  277. package/json-schema/ui/TouchInteraction.json +232 -0
  278. package/json-schema/ui/TouchTargetConfig.json +49 -0
  279. package/json-schema/ui/TransitionConfig.json +47 -0
  280. package/json-schema/ui/TransitionPreset.json +16 -0
  281. package/json-schema/ui/UrlNavItem.json +30 -1
  282. package/json-schema/ui/ViewSharing.json +24 -0
  283. package/json-schema/ui/WcagContrastLevel.json +8 -0
  284. package/json-schema/ui/WidgetEvent.json +60 -2
  285. package/json-schema/ui/WidgetManifest.json +284 -6
  286. package/json-schema/ui/WidgetProperty.json +60 -2
  287. package/package.json +1 -1
  288. package/dist/index-C6p-2KXV.d.ts +0 -767
  289. package/dist/index-CVnGe2b8.d.mts +0 -767
  290. package/dist/index-CZjkpp75.d.mts +0 -3867
  291. package/dist/index-CgkjUheS.d.ts +0 -3867
  292. package/dist/{index-B08s7rEU.d.mts → index-DmhxH5jy.d.mts} +8 -8
  293. package/dist/{index-DqnBqATx.d.ts → index-y5JJvyML.d.ts} +8 -8
@@ -68,7 +68,36 @@
68
68
  "description": "App unique machine name (lowercase snake_case)"
69
69
  },
70
70
  "label": {
71
- "type": "string",
71
+ "anyOf": [
72
+ {
73
+ "type": "string"
74
+ },
75
+ {
76
+ "type": "object",
77
+ "properties": {
78
+ "key": {
79
+ "type": "string",
80
+ "description": "Translation key (e.g., \"views.task_list.label\")"
81
+ },
82
+ "defaultValue": {
83
+ "description": "Fallback value when translation key is not found",
84
+ "type": "string"
85
+ },
86
+ "params": {
87
+ "description": "Interpolation parameters (e.g., { count: 5 })",
88
+ "type": "object",
89
+ "propertyNames": {
90
+ "type": "string"
91
+ },
92
+ "additionalProperties": {}
93
+ }
94
+ },
95
+ "required": [
96
+ "key"
97
+ ],
98
+ "additionalProperties": false
99
+ }
100
+ ],
72
101
  "description": "App display label"
73
102
  },
74
103
  "version": {
@@ -77,7 +106,36 @@
77
106
  },
78
107
  "description": {
79
108
  "description": "App description",
80
- "type": "string"
109
+ "anyOf": [
110
+ {
111
+ "type": "string"
112
+ },
113
+ {
114
+ "type": "object",
115
+ "properties": {
116
+ "key": {
117
+ "type": "string",
118
+ "description": "Translation key (e.g., \"views.task_list.label\")"
119
+ },
120
+ "defaultValue": {
121
+ "description": "Fallback value when translation key is not found",
122
+ "type": "string"
123
+ },
124
+ "params": {
125
+ "description": "Interpolation parameters (e.g., { count: 5 })",
126
+ "type": "object",
127
+ "propertyNames": {
128
+ "type": "string"
129
+ },
130
+ "additionalProperties": {}
131
+ }
132
+ },
133
+ "required": [
134
+ "key"
135
+ ],
136
+ "additionalProperties": false
137
+ }
138
+ ]
81
139
  },
82
140
  "icon": {
83
141
  "description": "App icon used in the App Launcher",
@@ -139,6 +197,81 @@
139
197
  "description": "Custom APIs belonging to this app",
140
198
  "type": "array",
141
199
  "items": {}
200
+ },
201
+ "mobileNavigation": {
202
+ "description": "Mobile-specific navigation configuration",
203
+ "type": "object",
204
+ "properties": {
205
+ "mode": {
206
+ "default": "drawer",
207
+ "description": "Mobile navigation mode: drawer sidebar, bottom navigation bar, or hamburger menu",
208
+ "type": "string",
209
+ "enum": [
210
+ "drawer",
211
+ "bottom_nav",
212
+ "hamburger"
213
+ ]
214
+ },
215
+ "bottomNavItems": {
216
+ "description": "Navigation item IDs to show in bottom nav (max 5)",
217
+ "type": "array",
218
+ "items": {
219
+ "type": "string"
220
+ }
221
+ }
222
+ },
223
+ "required": [
224
+ "mode"
225
+ ],
226
+ "additionalProperties": false
227
+ },
228
+ "aria": {
229
+ "description": "ARIA accessibility attributes for the application",
230
+ "type": "object",
231
+ "properties": {
232
+ "ariaLabel": {
233
+ "description": "Accessible label for screen readers (WAI-ARIA aria-label)",
234
+ "anyOf": [
235
+ {
236
+ "type": "string"
237
+ },
238
+ {
239
+ "type": "object",
240
+ "properties": {
241
+ "key": {
242
+ "type": "string",
243
+ "description": "Translation key (e.g., \"views.task_list.label\")"
244
+ },
245
+ "defaultValue": {
246
+ "description": "Fallback value when translation key is not found",
247
+ "type": "string"
248
+ },
249
+ "params": {
250
+ "description": "Interpolation parameters (e.g., { count: 5 })",
251
+ "type": "object",
252
+ "propertyNames": {
253
+ "type": "string"
254
+ },
255
+ "additionalProperties": {}
256
+ }
257
+ },
258
+ "required": [
259
+ "key"
260
+ ],
261
+ "additionalProperties": false
262
+ }
263
+ ]
264
+ },
265
+ "ariaDescribedBy": {
266
+ "description": "ID of element providing additional description (WAI-ARIA aria-describedby)",
267
+ "type": "string"
268
+ },
269
+ "role": {
270
+ "description": "WAI-ARIA role attribute (e.g., \"dialog\", \"navigation\", \"alert\")",
271
+ "type": "string"
272
+ }
273
+ },
274
+ "additionalProperties": false
142
275
  }
143
276
  },
144
277
  "required": [
@@ -169,7 +302,36 @@
169
302
  "description": "Unique identifier for this navigation item (lowercase snake_case)"
170
303
  },
171
304
  "label": {
172
- "type": "string",
305
+ "anyOf": [
306
+ {
307
+ "type": "string"
308
+ },
309
+ {
310
+ "type": "object",
311
+ "properties": {
312
+ "key": {
313
+ "type": "string",
314
+ "description": "Translation key (e.g., \"views.task_list.label\")"
315
+ },
316
+ "defaultValue": {
317
+ "description": "Fallback value when translation key is not found",
318
+ "type": "string"
319
+ },
320
+ "params": {
321
+ "description": "Interpolation parameters (e.g., { count: 5 })",
322
+ "type": "object",
323
+ "propertyNames": {
324
+ "type": "string"
325
+ },
326
+ "additionalProperties": {}
327
+ }
328
+ },
329
+ "required": [
330
+ "key"
331
+ ],
332
+ "additionalProperties": false
333
+ }
334
+ ],
173
335
  "description": "Display proper label"
174
336
  },
175
337
  "icon": {
@@ -218,7 +380,36 @@
218
380
  "description": "Unique identifier for this navigation item (lowercase snake_case)"
219
381
  },
220
382
  "label": {
221
- "type": "string",
383
+ "anyOf": [
384
+ {
385
+ "type": "string"
386
+ },
387
+ {
388
+ "type": "object",
389
+ "properties": {
390
+ "key": {
391
+ "type": "string",
392
+ "description": "Translation key (e.g., \"views.task_list.label\")"
393
+ },
394
+ "defaultValue": {
395
+ "description": "Fallback value when translation key is not found",
396
+ "type": "string"
397
+ },
398
+ "params": {
399
+ "description": "Interpolation parameters (e.g., { count: 5 })",
400
+ "type": "object",
401
+ "propertyNames": {
402
+ "type": "string"
403
+ },
404
+ "additionalProperties": {}
405
+ }
406
+ },
407
+ "required": [
408
+ "key"
409
+ ],
410
+ "additionalProperties": false
411
+ }
412
+ ],
222
413
  "description": "Display proper label"
223
414
  },
224
415
  "icon": {
@@ -256,7 +447,36 @@
256
447
  "description": "Unique identifier for this navigation item (lowercase snake_case)"
257
448
  },
258
449
  "label": {
259
- "type": "string",
450
+ "anyOf": [
451
+ {
452
+ "type": "string"
453
+ },
454
+ {
455
+ "type": "object",
456
+ "properties": {
457
+ "key": {
458
+ "type": "string",
459
+ "description": "Translation key (e.g., \"views.task_list.label\")"
460
+ },
461
+ "defaultValue": {
462
+ "description": "Fallback value when translation key is not found",
463
+ "type": "string"
464
+ },
465
+ "params": {
466
+ "description": "Interpolation parameters (e.g., { count: 5 })",
467
+ "type": "object",
468
+ "propertyNames": {
469
+ "type": "string"
470
+ },
471
+ "additionalProperties": {}
472
+ }
473
+ },
474
+ "required": [
475
+ "key"
476
+ ],
477
+ "additionalProperties": false
478
+ }
479
+ ],
260
480
  "description": "Display proper label"
261
481
  },
262
482
  "icon": {
@@ -302,7 +522,36 @@
302
522
  "description": "Unique identifier for this navigation item (lowercase snake_case)"
303
523
  },
304
524
  "label": {
305
- "type": "string",
525
+ "anyOf": [
526
+ {
527
+ "type": "string"
528
+ },
529
+ {
530
+ "type": "object",
531
+ "properties": {
532
+ "key": {
533
+ "type": "string",
534
+ "description": "Translation key (e.g., \"views.task_list.label\")"
535
+ },
536
+ "defaultValue": {
537
+ "description": "Fallback value when translation key is not found",
538
+ "type": "string"
539
+ },
540
+ "params": {
541
+ "description": "Interpolation parameters (e.g., { count: 5 })",
542
+ "type": "object",
543
+ "propertyNames": {
544
+ "type": "string"
545
+ },
546
+ "additionalProperties": {}
547
+ }
548
+ },
549
+ "required": [
550
+ "key"
551
+ ],
552
+ "additionalProperties": false
553
+ }
554
+ ],
306
555
  "description": "Display proper label"
307
556
  },
308
557
  "icon": {
@@ -350,7 +599,36 @@
350
599
  "description": "Unique identifier for this navigation item (lowercase snake_case)"
351
600
  },
352
601
  "label": {
353
- "type": "string",
602
+ "anyOf": [
603
+ {
604
+ "type": "string"
605
+ },
606
+ {
607
+ "type": "object",
608
+ "properties": {
609
+ "key": {
610
+ "type": "string",
611
+ "description": "Translation key (e.g., \"views.task_list.label\")"
612
+ },
613
+ "defaultValue": {
614
+ "description": "Fallback value when translation key is not found",
615
+ "type": "string"
616
+ },
617
+ "params": {
618
+ "description": "Interpolation parameters (e.g., { count: 5 })",
619
+ "type": "object",
620
+ "propertyNames": {
621
+ "type": "string"
622
+ },
623
+ "additionalProperties": {}
624
+ }
625
+ },
626
+ "required": [
627
+ "key"
628
+ ],
629
+ "additionalProperties": false
630
+ }
631
+ ],
354
632
  "description": "Display proper label"
355
633
  },
356
634
  "icon": {
@@ -0,0 +1,40 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "userId": {
6
+ "type": "string",
7
+ "description": "User identifier"
8
+ },
9
+ "status": {
10
+ "type": "string",
11
+ "enum": [
12
+ "online",
13
+ "away",
14
+ "busy",
15
+ "offline"
16
+ ],
17
+ "description": "Current presence status"
18
+ },
19
+ "lastSeen": {
20
+ "type": "string",
21
+ "format": "date-time",
22
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
23
+ "description": "ISO 8601 datetime of last activity"
24
+ },
25
+ "metadata": {
26
+ "description": "Custom presence data (e.g., current page, custom status)",
27
+ "type": "object",
28
+ "propertyNames": {
29
+ "type": "string"
30
+ },
31
+ "additionalProperties": {}
32
+ }
33
+ },
34
+ "required": [
35
+ "userId",
36
+ "status",
37
+ "lastSeen"
38
+ ],
39
+ "additionalProperties": false
40
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "strategy": {
6
+ "type": "string",
7
+ "enum": [
8
+ "dataloader",
9
+ "windowed",
10
+ "prefetch"
11
+ ],
12
+ "description": "Batch loading strategy type"
13
+ },
14
+ "windowMs": {
15
+ "description": "Collection window duration in milliseconds (for windowed strategy)",
16
+ "type": "number"
17
+ },
18
+ "prefetchDepth": {
19
+ "description": "Depth of relation prefetching (for prefetch strategy)",
20
+ "type": "integer",
21
+ "minimum": -9007199254740991,
22
+ "maximum": 9007199254740991
23
+ },
24
+ "associationLoading": {
25
+ "default": "batch",
26
+ "description": "How to load related associations",
27
+ "type": "string",
28
+ "enum": [
29
+ "lazy",
30
+ "eager",
31
+ "batch"
32
+ ]
33
+ }
34
+ },
35
+ "required": [
36
+ "strategy",
37
+ "associationLoading"
38
+ ],
39
+ "additionalProperties": false
40
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "name": {
6
+ "type": "string",
7
+ "pattern": "^[a-z_][a-z0-9_]*$",
8
+ "description": "Callback identifier (snake_case)"
9
+ },
10
+ "expression": {
11
+ "type": "string",
12
+ "description": "Runtime expression (e.g., {$request.body#/callbackUrl})"
13
+ },
14
+ "method": {
15
+ "type": "string",
16
+ "enum": [
17
+ "GET",
18
+ "POST",
19
+ "PUT",
20
+ "DELETE",
21
+ "PATCH",
22
+ "HEAD",
23
+ "OPTIONS"
24
+ ],
25
+ "description": "HTTP method for callback request"
26
+ },
27
+ "url": {
28
+ "type": "string",
29
+ "description": "Callback URL template with runtime expressions"
30
+ }
31
+ },
32
+ "required": [
33
+ "name",
34
+ "expression",
35
+ "method",
36
+ "url"
37
+ ],
38
+ "additionalProperties": false
39
+ }
@@ -0,0 +1,55 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "maxBatchSize": {
6
+ "default": 100,
7
+ "description": "Maximum number of keys per batch load",
8
+ "type": "integer",
9
+ "minimum": -9007199254740991,
10
+ "maximum": 9007199254740991
11
+ },
12
+ "batchScheduleFn": {
13
+ "default": "microtask",
14
+ "description": "Scheduling strategy for collecting batch keys",
15
+ "type": "string",
16
+ "enum": [
17
+ "microtask",
18
+ "timeout",
19
+ "manual"
20
+ ]
21
+ },
22
+ "cacheEnabled": {
23
+ "default": true,
24
+ "description": "Enable per-request result caching",
25
+ "type": "boolean"
26
+ },
27
+ "cacheKeyFn": {
28
+ "description": "Name or identifier of the cache key function",
29
+ "type": "string"
30
+ },
31
+ "cacheTtl": {
32
+ "description": "Cache time-to-live in seconds (0 = no expiration)",
33
+ "type": "number",
34
+ "minimum": 0
35
+ },
36
+ "coalesceRequests": {
37
+ "default": true,
38
+ "description": "Deduplicate identical requests within a batch window",
39
+ "type": "boolean"
40
+ },
41
+ "maxConcurrency": {
42
+ "description": "Maximum parallel batch requests",
43
+ "type": "integer",
44
+ "minimum": -9007199254740991,
45
+ "maximum": 9007199254740991
46
+ }
47
+ },
48
+ "required": [
49
+ "maxBatchSize",
50
+ "batchScheduleFn",
51
+ "cacheEnabled",
52
+ "coalesceRequests"
53
+ ],
54
+ "additionalProperties": false
55
+ }
@@ -391,6 +391,32 @@
391
391
  ],
392
392
  "additionalProperties": false
393
393
  }
394
+ },
395
+ "commands": {
396
+ "description": "CLI command contributions",
397
+ "type": "array",
398
+ "items": {
399
+ "type": "object",
400
+ "properties": {
401
+ "name": {
402
+ "type": "string",
403
+ "pattern": "^[a-z][a-z0-9-]*$",
404
+ "description": "CLI command name"
405
+ },
406
+ "description": {
407
+ "description": "Command description for help text",
408
+ "type": "string"
409
+ },
410
+ "module": {
411
+ "description": "Module path exporting Commander.js commands",
412
+ "type": "string"
413
+ }
414
+ },
415
+ "required": [
416
+ "name"
417
+ ],
418
+ "additionalProperties": false
419
+ }
394
420
  }
395
421
  },
396
422
  "additionalProperties": false
@@ -82,64 +82,6 @@
82
82
  ],
83
83
  "additionalProperties": false
84
84
  },
85
- "features": {
86
- "type": "object",
87
- "properties": {
88
- "graphql": {
89
- "default": false,
90
- "type": "boolean"
91
- },
92
- "search": {
93
- "default": false,
94
- "type": "boolean"
95
- },
96
- "websockets": {
97
- "default": false,
98
- "type": "boolean"
99
- },
100
- "files": {
101
- "default": true,
102
- "type": "boolean"
103
- },
104
- "analytics": {
105
- "default": false,
106
- "description": "Is the Analytics/BI engine enabled?",
107
- "type": "boolean"
108
- },
109
- "ai": {
110
- "default": false,
111
- "description": "Is the AI engine enabled?",
112
- "type": "boolean"
113
- },
114
- "workflow": {
115
- "default": false,
116
- "description": "Is the Workflow engine enabled?",
117
- "type": "boolean"
118
- },
119
- "notifications": {
120
- "default": false,
121
- "description": "Is the Notification service enabled?",
122
- "type": "boolean"
123
- },
124
- "i18n": {
125
- "default": false,
126
- "description": "Is the i18n service enabled?",
127
- "type": "boolean"
128
- }
129
- },
130
- "required": [
131
- "graphql",
132
- "search",
133
- "websockets",
134
- "files",
135
- "analytics",
136
- "ai",
137
- "workflow",
138
- "notifications",
139
- "i18n"
140
- ],
141
- "additionalProperties": false
142
- },
143
85
  "locale": {
144
86
  "type": "object",
145
87
  "properties": {
@@ -164,7 +106,6 @@
164
106
  "additionalProperties": false
165
107
  },
166
108
  "services": {
167
- "description": "Per-service availability map keyed by CoreServiceName",
168
109
  "type": "object",
169
110
  "propertyNames": {
170
111
  "type": "string"
@@ -203,7 +144,8 @@
203
144
  "status"
204
145
  ],
205
146
  "additionalProperties": false
206
- }
147
+ },
148
+ "description": "Per-service availability map keyed by CoreServiceName"
207
149
  },
208
150
  "metadata": {
209
151
  "description": "Custom metadata key-value pairs for extensibility",
@@ -219,8 +161,8 @@
219
161
  "version",
220
162
  "environment",
221
163
  "routes",
222
- "features",
223
- "locale"
164
+ "locale",
165
+ "services"
224
166
  ],
225
167
  "additionalProperties": false
226
168
  }
@@ -391,6 +391,32 @@
391
391
  ],
392
392
  "additionalProperties": false
393
393
  }
394
+ },
395
+ "commands": {
396
+ "description": "CLI command contributions",
397
+ "type": "array",
398
+ "items": {
399
+ "type": "object",
400
+ "properties": {
401
+ "name": {
402
+ "type": "string",
403
+ "pattern": "^[a-z][a-z0-9-]*$",
404
+ "description": "CLI command name"
405
+ },
406
+ "description": {
407
+ "description": "Command description for help text",
408
+ "type": "string"
409
+ },
410
+ "module": {
411
+ "description": "Module path exporting Commander.js commands",
412
+ "type": "string"
413
+ }
414
+ },
415
+ "required": [
416
+ "name"
417
+ ],
418
+ "additionalProperties": false
419
+ }
394
420
  }
395
421
  },
396
422
  "additionalProperties": false