@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
@@ -0,0 +1,269 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "enabled": {
6
+ "default": false,
7
+ "description": "Enable application-level caching",
8
+ "type": "boolean"
9
+ },
10
+ "tiers": {
11
+ "type": "array",
12
+ "items": {
13
+ "type": "object",
14
+ "properties": {
15
+ "name": {
16
+ "type": "string",
17
+ "description": "Unique cache tier name"
18
+ },
19
+ "type": {
20
+ "type": "string",
21
+ "enum": [
22
+ "memory",
23
+ "redis",
24
+ "memcached",
25
+ "cdn"
26
+ ],
27
+ "description": "Cache backend type"
28
+ },
29
+ "maxSize": {
30
+ "description": "Max size in MB",
31
+ "type": "number"
32
+ },
33
+ "ttl": {
34
+ "default": 300,
35
+ "description": "Default TTL in seconds",
36
+ "type": "number"
37
+ },
38
+ "strategy": {
39
+ "default": "lru",
40
+ "description": "Eviction strategy",
41
+ "type": "string",
42
+ "enum": [
43
+ "lru",
44
+ "lfu",
45
+ "fifo",
46
+ "ttl",
47
+ "adaptive"
48
+ ]
49
+ },
50
+ "warmup": {
51
+ "default": false,
52
+ "description": "Pre-populate cache on startup",
53
+ "type": "boolean"
54
+ }
55
+ },
56
+ "required": [
57
+ "name",
58
+ "type",
59
+ "ttl",
60
+ "strategy",
61
+ "warmup"
62
+ ],
63
+ "additionalProperties": false,
64
+ "description": "Configuration for a single cache tier in the hierarchy"
65
+ },
66
+ "description": "Ordered cache tier hierarchy"
67
+ },
68
+ "invalidation": {
69
+ "type": "array",
70
+ "items": {
71
+ "type": "object",
72
+ "properties": {
73
+ "trigger": {
74
+ "type": "string",
75
+ "enum": [
76
+ "create",
77
+ "update",
78
+ "delete",
79
+ "manual"
80
+ ],
81
+ "description": "Event that triggers invalidation"
82
+ },
83
+ "scope": {
84
+ "type": "string",
85
+ "enum": [
86
+ "key",
87
+ "pattern",
88
+ "tag",
89
+ "all"
90
+ ],
91
+ "description": "Invalidation scope"
92
+ },
93
+ "pattern": {
94
+ "description": "Key pattern for pattern-based invalidation",
95
+ "type": "string"
96
+ },
97
+ "tags": {
98
+ "description": "Cache tags to invalidate",
99
+ "type": "array",
100
+ "items": {
101
+ "type": "string"
102
+ }
103
+ }
104
+ },
105
+ "required": [
106
+ "trigger",
107
+ "scope"
108
+ ],
109
+ "additionalProperties": false,
110
+ "description": "Rule defining when and how cached entries are invalidated"
111
+ },
112
+ "description": "Cache invalidation rules"
113
+ },
114
+ "prefetch": {
115
+ "default": false,
116
+ "description": "Enable cache prefetching",
117
+ "type": "boolean"
118
+ },
119
+ "compression": {
120
+ "default": false,
121
+ "description": "Enable data compression in cache",
122
+ "type": "boolean"
123
+ },
124
+ "encryption": {
125
+ "default": false,
126
+ "description": "Enable encryption for cached data",
127
+ "type": "boolean"
128
+ },
129
+ "consistency": {
130
+ "description": "Distributed cache consistency strategy",
131
+ "type": "string",
132
+ "enum": [
133
+ "write_through",
134
+ "write_behind",
135
+ "write_around",
136
+ "refresh_ahead"
137
+ ]
138
+ },
139
+ "avalanchePrevention": {
140
+ "description": "Cache avalanche and stampede prevention",
141
+ "type": "object",
142
+ "properties": {
143
+ "jitterTtl": {
144
+ "description": "TTL jitter to prevent simultaneous expiration",
145
+ "type": "object",
146
+ "properties": {
147
+ "enabled": {
148
+ "default": false,
149
+ "description": "Add random jitter to TTL values",
150
+ "type": "boolean"
151
+ },
152
+ "maxJitterSeconds": {
153
+ "default": 60,
154
+ "description": "Maximum jitter added to TTL in seconds",
155
+ "type": "number"
156
+ }
157
+ },
158
+ "required": [
159
+ "enabled",
160
+ "maxJitterSeconds"
161
+ ],
162
+ "additionalProperties": false
163
+ },
164
+ "circuitBreaker": {
165
+ "description": "Circuit breaker for backend protection",
166
+ "type": "object",
167
+ "properties": {
168
+ "enabled": {
169
+ "default": false,
170
+ "description": "Enable circuit breaker for backend protection",
171
+ "type": "boolean"
172
+ },
173
+ "failureThreshold": {
174
+ "default": 5,
175
+ "description": "Failures before circuit opens",
176
+ "type": "number"
177
+ },
178
+ "resetTimeout": {
179
+ "default": 30,
180
+ "description": "Seconds before half-open state",
181
+ "type": "number"
182
+ }
183
+ },
184
+ "required": [
185
+ "enabled",
186
+ "failureThreshold",
187
+ "resetTimeout"
188
+ ],
189
+ "additionalProperties": false
190
+ },
191
+ "lockout": {
192
+ "description": "Lock-based stampede prevention",
193
+ "type": "object",
194
+ "properties": {
195
+ "enabled": {
196
+ "default": false,
197
+ "description": "Enable cache locking for key regeneration",
198
+ "type": "boolean"
199
+ },
200
+ "lockTimeoutMs": {
201
+ "default": 5000,
202
+ "description": "Maximum lock wait time in milliseconds",
203
+ "type": "number"
204
+ }
205
+ },
206
+ "required": [
207
+ "enabled",
208
+ "lockTimeoutMs"
209
+ ],
210
+ "additionalProperties": false
211
+ }
212
+ },
213
+ "additionalProperties": false
214
+ },
215
+ "warmup": {
216
+ "description": "Cache warmup strategy",
217
+ "type": "object",
218
+ "properties": {
219
+ "enabled": {
220
+ "default": false,
221
+ "description": "Enable cache warmup",
222
+ "type": "boolean"
223
+ },
224
+ "strategy": {
225
+ "default": "lazy",
226
+ "description": "Warmup strategy: eager (at startup), lazy (on first access), scheduled (cron)",
227
+ "type": "string",
228
+ "enum": [
229
+ "eager",
230
+ "lazy",
231
+ "scheduled"
232
+ ]
233
+ },
234
+ "schedule": {
235
+ "description": "Cron expression for scheduled warmup",
236
+ "type": "string"
237
+ },
238
+ "patterns": {
239
+ "description": "Key patterns to warm up (e.g., \"user:*\", \"config:*\")",
240
+ "type": "array",
241
+ "items": {
242
+ "type": "string"
243
+ }
244
+ },
245
+ "concurrency": {
246
+ "default": 10,
247
+ "description": "Maximum concurrent warmup operations",
248
+ "type": "number"
249
+ }
250
+ },
251
+ "required": [
252
+ "enabled",
253
+ "strategy",
254
+ "concurrency"
255
+ ],
256
+ "additionalProperties": false
257
+ }
258
+ },
259
+ "required": [
260
+ "enabled",
261
+ "tiers",
262
+ "invalidation",
263
+ "prefetch",
264
+ "compression",
265
+ "encryption"
266
+ ],
267
+ "additionalProperties": false,
268
+ "description": "Distributed cache configuration with consistency and avalanche prevention"
269
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "mode": {
6
+ "default": "active_passive",
7
+ "description": "Failover mode",
8
+ "type": "string",
9
+ "enum": [
10
+ "active_passive",
11
+ "active_active",
12
+ "pilot_light",
13
+ "warm_standby"
14
+ ]
15
+ },
16
+ "autoFailover": {
17
+ "default": true,
18
+ "description": "Enable automatic failover",
19
+ "type": "boolean"
20
+ },
21
+ "healthCheckInterval": {
22
+ "default": 30,
23
+ "description": "Health check interval in seconds",
24
+ "type": "number"
25
+ },
26
+ "failureThreshold": {
27
+ "default": 3,
28
+ "description": "Consecutive failures before failover",
29
+ "type": "number"
30
+ },
31
+ "regions": {
32
+ "minItems": 2,
33
+ "type": "array",
34
+ "items": {
35
+ "type": "object",
36
+ "properties": {
37
+ "name": {
38
+ "type": "string",
39
+ "description": "Region identifier (e.g., \"us-east-1\", \"eu-west-1\")"
40
+ },
41
+ "role": {
42
+ "type": "string",
43
+ "enum": [
44
+ "primary",
45
+ "secondary",
46
+ "witness"
47
+ ],
48
+ "description": "Region role"
49
+ },
50
+ "endpoint": {
51
+ "description": "Region endpoint URL",
52
+ "type": "string"
53
+ },
54
+ "priority": {
55
+ "description": "Failover priority (lower = higher priority)",
56
+ "type": "number"
57
+ }
58
+ },
59
+ "required": [
60
+ "name",
61
+ "role"
62
+ ],
63
+ "additionalProperties": false
64
+ },
65
+ "description": "Multi-region configuration (minimum 2 regions)"
66
+ },
67
+ "dns": {
68
+ "description": "DNS failover settings",
69
+ "type": "object",
70
+ "properties": {
71
+ "ttl": {
72
+ "default": 60,
73
+ "description": "DNS TTL in seconds for failover",
74
+ "type": "number"
75
+ },
76
+ "provider": {
77
+ "description": "DNS provider for automatic failover",
78
+ "type": "string",
79
+ "enum": [
80
+ "route53",
81
+ "cloudflare",
82
+ "azure_dns",
83
+ "custom"
84
+ ]
85
+ }
86
+ },
87
+ "required": [
88
+ "ttl"
89
+ ],
90
+ "additionalProperties": false
91
+ }
92
+ },
93
+ "required": [
94
+ "mode",
95
+ "autoFailover",
96
+ "healthCheckInterval",
97
+ "failureThreshold",
98
+ "regions"
99
+ ],
100
+ "additionalProperties": false,
101
+ "description": "Failover configuration"
102
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "string",
4
+ "enum": [
5
+ "active_passive",
6
+ "active_active",
7
+ "pilot_light",
8
+ "warm_standby"
9
+ ],
10
+ "description": "Failover mode"
11
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "dataClassification": {
6
+ "type": "string",
7
+ "enum": [
8
+ "pii",
9
+ "phi",
10
+ "pci",
11
+ "financial",
12
+ "confidential",
13
+ "internal",
14
+ "public"
15
+ ],
16
+ "description": "Data classification this rule applies to"
17
+ },
18
+ "defaultMasked": {
19
+ "default": true,
20
+ "description": "Whether data is masked by default",
21
+ "type": "boolean"
22
+ },
23
+ "unmaskRoles": {
24
+ "description": "Roles allowed to view unmasked data",
25
+ "type": "array",
26
+ "items": {
27
+ "type": "string"
28
+ }
29
+ },
30
+ "auditUnmask": {
31
+ "default": true,
32
+ "description": "Log an audit event when data is unmasked",
33
+ "type": "boolean"
34
+ },
35
+ "requireApproval": {
36
+ "default": false,
37
+ "description": "Require explicit approval before unmasking",
38
+ "type": "boolean"
39
+ },
40
+ "approvalRoles": {
41
+ "description": "Roles that can approve unmasking requests",
42
+ "type": "array",
43
+ "items": {
44
+ "type": "string"
45
+ }
46
+ }
47
+ },
48
+ "required": [
49
+ "dataClassification",
50
+ "defaultMasked",
51
+ "auditUnmask",
52
+ "requireApproval"
53
+ ],
54
+ "additionalProperties": false,
55
+ "description": "Masking visibility and audit rule per data classification"
56
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "string",
4
+ "enum": [
5
+ "filesystem",
6
+ "memory",
7
+ "none"
8
+ ]
9
+ }
@@ -6,7 +6,15 @@
6
6
  "type": "string"
7
7
  },
8
8
  "protocol": {
9
- "type": "string"
9
+ "type": "string",
10
+ "enum": [
11
+ "file:",
12
+ "http:",
13
+ "s3:",
14
+ "datasource:",
15
+ "memory:"
16
+ ],
17
+ "description": "Loader protocol identifier"
10
18
  },
11
19
  "description": {
12
20
  "type": "string"
@@ -2,23 +2,31 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "type": "object",
4
4
  "properties": {
5
- "loaders": {
6
- "type": "array",
7
- "items": {}
8
- },
9
- "watch": {
10
- "type": "boolean"
11
- },
12
- "cache": {
13
- "type": "boolean"
5
+ "datasource": {
6
+ "description": "Datasource name reference for database persistence",
7
+ "type": "string"
14
8
  },
15
- "basePath": {
9
+ "tableName": {
10
+ "default": "sys_metadata",
11
+ "description": "Database table name for metadata storage",
16
12
  "type": "string"
17
13
  },
14
+ "fallback": {
15
+ "default": "none",
16
+ "description": "Fallback strategy when datasource is unavailable",
17
+ "type": "string",
18
+ "enum": [
19
+ "filesystem",
20
+ "memory",
21
+ "none"
22
+ ]
23
+ },
18
24
  "rootDir": {
25
+ "description": "Root directory for filesystem-based metadata",
19
26
  "type": "string"
20
27
  },
21
28
  "formats": {
29
+ "description": "Enabled metadata formats",
22
30
  "type": "array",
23
31
  "items": {
24
32
  "type": "string",
@@ -33,7 +41,40 @@
33
41
  ]
34
42
  }
35
43
  },
36
- "watchOptions": {}
44
+ "watch": {
45
+ "description": "Enable file watching for filesystem loaders",
46
+ "type": "boolean"
47
+ },
48
+ "cache": {
49
+ "description": "Enable metadata caching",
50
+ "type": "boolean"
51
+ },
52
+ "watchOptions": {
53
+ "description": "File watcher options",
54
+ "type": "object",
55
+ "properties": {
56
+ "ignored": {
57
+ "description": "Patterns to ignore",
58
+ "type": "array",
59
+ "items": {
60
+ "type": "string"
61
+ }
62
+ },
63
+ "persistent": {
64
+ "default": true,
65
+ "description": "Keep process running",
66
+ "type": "boolean"
67
+ }
68
+ },
69
+ "required": [
70
+ "persistent"
71
+ ],
72
+ "additionalProperties": false
73
+ }
37
74
  },
75
+ "required": [
76
+ "tableName",
77
+ "fallback"
78
+ ],
38
79
  "additionalProperties": false
39
80
  }
@@ -56,6 +56,36 @@
56
56
  "deprecated"
57
57
  ]
58
58
  },
59
+ "tenantId": {
60
+ "description": "Tenant identifier for multi-tenant isolation",
61
+ "type": "string"
62
+ },
63
+ "version": {
64
+ "default": 1,
65
+ "description": "Record version for optimistic concurrency control",
66
+ "type": "number"
67
+ },
68
+ "checksum": {
69
+ "description": "Content checksum for change detection",
70
+ "type": "string"
71
+ },
72
+ "source": {
73
+ "description": "Origin of this metadata record",
74
+ "type": "string",
75
+ "enum": [
76
+ "filesystem",
77
+ "database",
78
+ "api",
79
+ "migration"
80
+ ]
81
+ },
82
+ "tags": {
83
+ "description": "Classification tags for filtering and grouping",
84
+ "type": "array",
85
+ "items": {
86
+ "type": "string"
87
+ }
88
+ },
59
89
  "createdBy": {
60
90
  "type": "string"
61
91
  },
@@ -83,7 +113,8 @@
83
113
  "scope",
84
114
  "metadata",
85
115
  "strategy",
86
- "state"
116
+ "state",
117
+ "version"
87
118
  ],
88
119
  "additionalProperties": false
89
120
  }
@@ -0,0 +1,10 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "string",
4
+ "enum": [
5
+ "filesystem",
6
+ "database",
7
+ "api",
8
+ "migration"
9
+ ]
10
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "enabled": {
6
+ "default": false,
7
+ "description": "Enable mutual TLS authentication",
8
+ "type": "boolean"
9
+ },
10
+ "clientCertRequired": {
11
+ "default": false,
12
+ "description": "Require client certificates for all connections",
13
+ "type": "boolean"
14
+ },
15
+ "trustedCAs": {
16
+ "type": "array",
17
+ "items": {
18
+ "type": "string"
19
+ },
20
+ "description": "PEM-encoded CA certificates or file paths"
21
+ },
22
+ "crlUrl": {
23
+ "description": "Certificate Revocation List (CRL) URL",
24
+ "type": "string"
25
+ },
26
+ "ocspUrl": {
27
+ "description": "Online Certificate Status Protocol (OCSP) URL",
28
+ "type": "string"
29
+ },
30
+ "certificateValidation": {
31
+ "type": "string",
32
+ "enum": [
33
+ "strict",
34
+ "relaxed",
35
+ "none"
36
+ ],
37
+ "description": "Certificate validation strictness level"
38
+ },
39
+ "allowedCNs": {
40
+ "description": "Allowed Common Names (CN) on client certificates",
41
+ "type": "array",
42
+ "items": {
43
+ "type": "string"
44
+ }
45
+ },
46
+ "allowedOUs": {
47
+ "description": "Allowed Organizational Units (OU) on client certificates",
48
+ "type": "array",
49
+ "items": {
50
+ "type": "string"
51
+ }
52
+ },
53
+ "pinning": {
54
+ "description": "Certificate pinning configuration",
55
+ "type": "object",
56
+ "properties": {
57
+ "enabled": {
58
+ "type": "boolean",
59
+ "description": "Enable certificate pinning"
60
+ },
61
+ "pins": {
62
+ "type": "array",
63
+ "items": {
64
+ "type": "string"
65
+ },
66
+ "description": "Pinned certificate hashes"
67
+ }
68
+ },
69
+ "required": [
70
+ "enabled",
71
+ "pins"
72
+ ],
73
+ "additionalProperties": false
74
+ }
75
+ },
76
+ "required": [
77
+ "enabled",
78
+ "clientCertRequired",
79
+ "trustedCAs",
80
+ "certificateValidation"
81
+ ],
82
+ "additionalProperties": false
83
+ }