@objectstack/spec 0.1.0 → 0.1.2

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 (309) hide show
  1. package/README.md +134 -121
  2. package/dist/ai/agent.zod.d.ts +164 -0
  3. package/dist/ai/agent.zod.d.ts.map +1 -0
  4. package/dist/ai/agent.zod.js +51 -0
  5. package/dist/api/contract.zod.d.ts +1733 -0
  6. package/dist/api/contract.zod.d.ts.map +1 -0
  7. package/dist/api/contract.zod.js +138 -0
  8. package/dist/data/dataset.zod.d.ts +60 -0
  9. package/dist/data/dataset.zod.d.ts.map +1 -0
  10. package/dist/data/dataset.zod.js +54 -0
  11. package/dist/data/field.zod.d.ts +1808 -0
  12. package/dist/data/field.zod.d.ts.map +1 -0
  13. package/dist/data/field.zod.js +222 -0
  14. package/dist/data/flow.zod.d.ts +242 -0
  15. package/dist/data/flow.zod.d.ts.map +1 -0
  16. package/dist/data/flow.zod.js +77 -0
  17. package/dist/data/mapping.zod.d.ts +470 -0
  18. package/dist/data/mapping.zod.d.ts.map +1 -0
  19. package/dist/data/mapping.zod.js +65 -0
  20. package/dist/data/object.zod.d.ts +844 -0
  21. package/dist/data/object.zod.d.ts.map +1 -0
  22. package/dist/data/object.zod.js +81 -0
  23. package/dist/data/permission.zod.d.ts +163 -0
  24. package/dist/data/permission.zod.d.ts.map +1 -0
  25. package/dist/data/permission.zod.js +62 -0
  26. package/dist/data/query.zod.d.ts +438 -0
  27. package/dist/data/query.zod.d.ts.map +1 -0
  28. package/dist/data/query.zod.js +147 -0
  29. package/dist/data/sharing.zod.d.ts +63 -0
  30. package/dist/data/sharing.zod.d.ts.map +1 -0
  31. package/dist/data/sharing.zod.js +57 -0
  32. package/dist/data/trigger.zod.d.ts +354 -0
  33. package/dist/data/trigger.zod.d.ts.map +1 -0
  34. package/dist/data/trigger.zod.js +195 -0
  35. package/dist/data/validation.zod.d.ts +276 -0
  36. package/dist/data/validation.zod.d.ts.map +1 -0
  37. package/dist/data/validation.zod.js +105 -0
  38. package/dist/data/workflow.zod.d.ts +195 -0
  39. package/dist/data/workflow.zod.d.ts.map +1 -0
  40. package/dist/data/workflow.zod.js +64 -0
  41. package/dist/index.d.ts +41 -5
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +62 -5
  44. package/dist/system/api.zod.d.ts +294 -0
  45. package/dist/system/api.zod.d.ts.map +1 -0
  46. package/dist/system/api.zod.js +56 -0
  47. package/dist/system/constants/index.d.ts +11 -0
  48. package/dist/system/constants/index.d.ts.map +1 -0
  49. package/dist/system/constants/index.js +26 -0
  50. package/dist/system/constants/paths.d.ts +71 -0
  51. package/dist/system/constants/paths.d.ts.map +1 -0
  52. package/dist/system/constants/paths.js +65 -0
  53. package/dist/system/datasource.zod.d.ts +210 -0
  54. package/dist/system/datasource.zod.d.ts.map +1 -0
  55. package/dist/system/datasource.zod.js +90 -0
  56. package/dist/system/discovery.zod.d.ts +174 -0
  57. package/dist/system/discovery.zod.d.ts.map +1 -0
  58. package/dist/system/discovery.zod.js +53 -0
  59. package/dist/system/driver.zod.d.ts +1525 -0
  60. package/dist/system/driver.zod.d.ts.map +1 -0
  61. package/dist/system/driver.zod.js +290 -0
  62. package/dist/system/identity.zod.d.ts +204 -0
  63. package/dist/system/identity.zod.d.ts.map +1 -0
  64. package/dist/system/identity.zod.js +68 -0
  65. package/dist/system/license.zod.d.ts +110 -0
  66. package/dist/system/license.zod.d.ts.map +1 -0
  67. package/dist/system/license.zod.js +63 -0
  68. package/dist/system/manifest.zod.d.ts +397 -0
  69. package/dist/system/manifest.zod.d.ts.map +1 -0
  70. package/dist/system/manifest.zod.js +142 -0
  71. package/dist/system/plugin.zod.d.ts +3516 -0
  72. package/dist/system/plugin.zod.d.ts.map +1 -0
  73. package/dist/system/plugin.zod.js +226 -0
  74. package/dist/system/policy.zod.d.ts +209 -0
  75. package/dist/system/policy.zod.d.ts.map +1 -0
  76. package/dist/system/policy.zod.js +54 -0
  77. package/dist/system/role.zod.d.ts +34 -0
  78. package/dist/system/role.zod.d.ts.map +1 -0
  79. package/dist/system/role.zod.js +25 -0
  80. package/dist/system/territory.zod.d.ts +91 -0
  81. package/dist/system/territory.zod.d.ts.map +1 -0
  82. package/dist/system/territory.zod.js +64 -0
  83. package/dist/system/translation.zod.d.ts +171 -0
  84. package/dist/system/translation.zod.d.ts.map +1 -0
  85. package/dist/system/translation.zod.js +34 -0
  86. package/dist/system/types/index.d.ts +7 -0
  87. package/dist/system/types/index.d.ts.map +1 -0
  88. package/dist/system/types/index.js +22 -0
  89. package/dist/system/types/plugin.d.ts +113 -0
  90. package/dist/system/types/plugin.d.ts.map +1 -0
  91. package/dist/system/types/plugin.js +6 -0
  92. package/dist/system/webhook.zod.d.ts +106 -0
  93. package/dist/system/webhook.zod.d.ts.map +1 -0
  94. package/dist/system/webhook.zod.js +56 -0
  95. package/dist/ui/action.zod.d.ts +155 -0
  96. package/dist/ui/action.zod.d.ts.map +1 -0
  97. package/dist/ui/action.zod.js +54 -0
  98. package/dist/ui/app.zod.d.ts +405 -0
  99. package/dist/ui/app.zod.d.ts.map +1 -0
  100. package/dist/ui/app.zod.js +138 -0
  101. package/dist/ui/dashboard.zod.d.ts +213 -0
  102. package/dist/ui/dashboard.zod.d.ts.map +1 -0
  103. package/dist/ui/dashboard.zod.js +72 -0
  104. package/dist/ui/page.zod.d.ts +187 -0
  105. package/dist/ui/page.zod.d.ts.map +1 -0
  106. package/dist/ui/page.zod.js +48 -0
  107. package/dist/ui/report.zod.d.ts +233 -0
  108. package/dist/ui/report.zod.d.ts.map +1 -0
  109. package/dist/ui/report.zod.js +74 -0
  110. package/dist/ui/theme.zod.d.ts +1221 -0
  111. package/dist/ui/theme.zod.d.ts.map +1 -0
  112. package/dist/ui/theme.zod.js +202 -0
  113. package/dist/ui/view.zod.d.ts +887 -0
  114. package/dist/ui/view.zod.d.ts.map +1 -0
  115. package/dist/ui/view.zod.js +83 -0
  116. package/dist/ui/widget.zod.d.ts +350 -0
  117. package/dist/ui/widget.zod.d.ts.map +1 -0
  118. package/dist/ui/widget.zod.js +66 -0
  119. package/json-schema/AIKnowledge.json +30 -0
  120. package/json-schema/AIModelConfig.json +41 -0
  121. package/json-schema/AITool.json +33 -0
  122. package/json-schema/Action.json +162 -0
  123. package/json-schema/ActionParam.json +82 -0
  124. package/json-schema/Address.json +40 -0
  125. package/json-schema/Agent.json +140 -0
  126. package/json-schema/AggregationFunction.json +19 -0
  127. package/json-schema/AggregationNode.json +42 -0
  128. package/json-schema/Animation.json +56 -0
  129. package/json-schema/ApiCapabilities.json +28 -0
  130. package/json-schema/ApiEndpoint.json +162 -0
  131. package/json-schema/ApiError.json +27 -0
  132. package/json-schema/ApiMapping.json +28 -0
  133. package/json-schema/ApiRoutes.json +41 -0
  134. package/json-schema/App.json +297 -0
  135. package/json-schema/AppBranding.json +24 -0
  136. package/json-schema/AsyncValidation.json +70 -0
  137. package/json-schema/AuditPolicy.json +31 -0
  138. package/json-schema/AuthProtocol.json +17 -0
  139. package/json-schema/AuthProvider.json +171 -0
  140. package/json-schema/BaseResponse.json +63 -0
  141. package/json-schema/BorderRadius.json +44 -0
  142. package/json-schema/Breakpoints.json +36 -0
  143. package/json-schema/BulkRequest.json +29 -0
  144. package/json-schema/BulkResponse.json +108 -0
  145. package/json-schema/CalendarConfig.json +28 -0
  146. package/json-schema/ChartType.json +19 -0
  147. package/json-schema/ColorPalette.json +83 -0
  148. package/json-schema/ConditionalValidation.json +793 -0
  149. package/json-schema/CreateRequest.json +20 -0
  150. package/json-schema/CrossFieldValidation.json +56 -0
  151. package/json-schema/CustomValidator.json +57 -0
  152. package/json-schema/Dashboard.json +117 -0
  153. package/json-schema/DashboardNavItem.json +42 -0
  154. package/json-schema/DashboardWidget.json +89 -0
  155. package/json-schema/Dataset.json +63 -0
  156. package/json-schema/DatasetMode.json +16 -0
  157. package/json-schema/Datasource.json +75 -0
  158. package/json-schema/DatasourceCapabilities.json +36 -0
  159. package/json-schema/DeleteResponse.json +68 -0
  160. package/json-schema/Discovery.json +114 -0
  161. package/json-schema/DriverCapabilities.json +39 -0
  162. package/json-schema/DriverDefinition.json +66 -0
  163. package/json-schema/DriverInterface.json +58 -0
  164. package/json-schema/DriverOptions.json +23 -0
  165. package/json-schema/DriverType.json +10 -0
  166. package/json-schema/EmailAlertAction.json +37 -0
  167. package/json-schema/ExportRequest.json +786 -0
  168. package/json-schema/Feature.json +51 -0
  169. package/json-schema/Field.json +290 -0
  170. package/json-schema/FieldMapping.json +83 -0
  171. package/json-schema/FieldNode.json +32 -0
  172. package/json-schema/FieldPermission.json +22 -0
  173. package/json-schema/FieldType.json +42 -0
  174. package/json-schema/FieldUpdateAction.json +32 -0
  175. package/json-schema/FieldWidgetProps.json +327 -0
  176. package/json-schema/FilterNode.json +52 -0
  177. package/json-schema/FilterOperator.json +26 -0
  178. package/json-schema/Flow.json +186 -0
  179. package/json-schema/FlowEdge.json +37 -0
  180. package/json-schema/FlowNode.json +65 -0
  181. package/json-schema/FlowNodeAction.json +24 -0
  182. package/json-schema/FlowVariable.json +34 -0
  183. package/json-schema/FormSection.json +42 -0
  184. package/json-schema/FormView.json +99 -0
  185. package/json-schema/FormatValidation.json +59 -0
  186. package/json-schema/GanttConfig.json +32 -0
  187. package/json-schema/GroupNavItem.json +42 -0
  188. package/json-schema/HttpMethod.json +16 -0
  189. package/json-schema/I18nContext.json +12 -0
  190. package/json-schema/Index.json +30 -0
  191. package/json-schema/JoinNode.json +455 -0
  192. package/json-schema/JoinType.json +15 -0
  193. package/json-schema/KanbanConfig.json +31 -0
  194. package/json-schema/LDAPConfig.json +39 -0
  195. package/json-schema/License.json +57 -0
  196. package/json-schema/ListRecordResponse.json +103 -0
  197. package/json-schema/ListView.json +153 -0
  198. package/json-schema/Locale.json +10 -0
  199. package/json-schema/LocationCoordinates.json +36 -0
  200. package/json-schema/Logger.json +25 -0
  201. package/json-schema/LogicOperator.json +14 -0
  202. package/json-schema/Manifest.json +315 -0
  203. package/json-schema/Mapping.json +598 -0
  204. package/json-schema/MenuItem.json +28 -0
  205. package/json-schema/MetricType.json +14 -0
  206. package/json-schema/ModificationResult.json +46 -0
  207. package/json-schema/NavigationItem.json +214 -0
  208. package/json-schema/NetworkPolicy.json +31 -0
  209. package/json-schema/OIDCConfig.json +46 -0
  210. package/json-schema/OWDModel.json +14 -0
  211. package/json-schema/Object.json +428 -0
  212. package/json-schema/ObjectCapabilities.json +62 -0
  213. package/json-schema/ObjectNavItem.json +46 -0
  214. package/json-schema/ObjectPermission.json +42 -0
  215. package/json-schema/ObjectQLClient.json +12 -0
  216. package/json-schema/Page.json +117 -0
  217. package/json-schema/PageComponent.json +36 -0
  218. package/json-schema/PageNavItem.json +47 -0
  219. package/json-schema/PageRegion.json +63 -0
  220. package/json-schema/PasswordPolicy.json +41 -0
  221. package/json-schema/PermissionSet.json +96 -0
  222. package/json-schema/Plan.json +53 -0
  223. package/json-schema/Plugin.json +20 -0
  224. package/json-schema/PluginContext.json +91 -0
  225. package/json-schema/PluginLifecycle.json +11 -0
  226. package/json-schema/Policy.json +138 -0
  227. package/json-schema/Query.json +456 -0
  228. package/json-schema/RateLimit.json +26 -0
  229. package/json-schema/RecordData.json +11 -0
  230. package/json-schema/Report.json +219 -0
  231. package/json-schema/ReportChart.json +45 -0
  232. package/json-schema/ReportColumn.json +35 -0
  233. package/json-schema/ReportGrouping.json +38 -0
  234. package/json-schema/ReportType.json +15 -0
  235. package/json-schema/Role.json +32 -0
  236. package/json-schema/Router.json +12 -0
  237. package/json-schema/SAMLConfig.json +44 -0
  238. package/json-schema/Scheduler.json +12 -0
  239. package/json-schema/ScopedStorage.json +12 -0
  240. package/json-schema/ScriptValidation.json +48 -0
  241. package/json-schema/SelectOption.json +32 -0
  242. package/json-schema/SessionPolicy.json +27 -0
  243. package/json-schema/Shadow.json +44 -0
  244. package/json-schema/SharingLevel.json +13 -0
  245. package/json-schema/SharingRule.json +58 -0
  246. package/json-schema/SharingRuleType.json +15 -0
  247. package/json-schema/SingleRecordResponse.json +69 -0
  248. package/json-schema/SortNode.json +26 -0
  249. package/json-schema/Spacing.json +64 -0
  250. package/json-schema/StateMachineValidation.json +59 -0
  251. package/json-schema/SystemAPI.json +12 -0
  252. package/json-schema/Territory.json +77 -0
  253. package/json-schema/TerritoryModel.json +34 -0
  254. package/json-schema/TerritoryType.json +15 -0
  255. package/json-schema/Theme.json +543 -0
  256. package/json-schema/ThemeMode.json +14 -0
  257. package/json-schema/TransformType.json +18 -0
  258. package/json-schema/TranslationBundle.json +78 -0
  259. package/json-schema/TranslationData.json +75 -0
  260. package/json-schema/Trigger.json +73 -0
  261. package/json-schema/TriggerAction.json +14 -0
  262. package/json-schema/TriggerContext.json +61 -0
  263. package/json-schema/TriggerTiming.json +13 -0
  264. package/json-schema/Typography.json +142 -0
  265. package/json-schema/UniquenessValidation.json +59 -0
  266. package/json-schema/UpdateRequest.json +20 -0
  267. package/json-schema/UrlNavItem.json +51 -0
  268. package/json-schema/ValidationRule.json +794 -0
  269. package/json-schema/View.json +500 -0
  270. package/json-schema/Webhook.json +88 -0
  271. package/json-schema/WebhookReceiver.json +66 -0
  272. package/json-schema/WebhookTriggerType.json +16 -0
  273. package/json-schema/WindowFunction.json +24 -0
  274. package/json-schema/WindowFunctionNode.json +104 -0
  275. package/json-schema/WindowSpec.json +65 -0
  276. package/json-schema/WorkflowAction.json +84 -0
  277. package/json-schema/WorkflowRule.json +128 -0
  278. package/json-schema/WorkflowTriggerType.json +16 -0
  279. package/json-schema/ZIndex.json +44 -0
  280. package/package.json +34 -20
  281. package/dist/examples.d.ts +0 -28
  282. package/dist/examples.d.ts.map +0 -1
  283. package/dist/examples.js +0 -250
  284. package/dist/types/index.d.ts +0 -9
  285. package/dist/types/index.d.ts.map +0 -1
  286. package/dist/types/index.js +0 -8
  287. package/dist/types/meta/field-type.d.ts +0 -54
  288. package/dist/types/meta/field-type.d.ts.map +0 -1
  289. package/dist/types/meta/field-type.js +0 -42
  290. package/dist/types/meta/index.d.ts +0 -13
  291. package/dist/types/meta/index.d.ts.map +0 -1
  292. package/dist/types/meta/index.js +0 -12
  293. package/dist/types/meta/object-entity.d.ts +0 -246
  294. package/dist/types/meta/object-entity.d.ts.map +0 -1
  295. package/dist/types/meta/object-entity.js +0 -9
  296. package/dist/types/meta/object-field.d.ts +0 -199
  297. package/dist/types/meta/object-field.d.ts.map +0 -1
  298. package/dist/types/meta/object-field.js +0 -9
  299. package/dist/types/meta/object-view.d.ts +0 -430
  300. package/dist/types/meta/object-view.d.ts.map +0 -1
  301. package/dist/types/meta/object-view.js +0 -9
  302. package/src/examples.ts +0 -257
  303. package/src/index.ts +0 -10
  304. package/src/types/index.ts +0 -9
  305. package/src/types/meta/field-type.ts +0 -91
  306. package/src/types/meta/index.ts +0 -13
  307. package/src/types/meta/object-entity.ts +0 -265
  308. package/src/types/meta/object-field.ts +0 -218
  309. package/src/types/meta/object-view.ts +0 -475
@@ -0,0 +1,210 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Driver Type Enum (Built-in)
4
+ * Standard drivers supported by the core platform.
5
+ * Plugins can register additional drivers using different identifiers.
6
+ */
7
+ export declare const BuiltInDrivers: readonly ["postgres", "mysql", "sqlserver", "oracle", "sqlite", "mongo", "redis", "excel", "csv", "airtable", "rest_api", "graphql", "odata", "salesforce", "sap", "workday"];
8
+ /**
9
+ * Driver Identifier
10
+ * Can be a built-in driver or a plugin-contributed driver (e.g., "com.vendor.snowflake").
11
+ */
12
+ export declare const DriverType: z.ZodString;
13
+ /**
14
+ * Driver Definition Schema
15
+ * Metadata describing a Database Driver.
16
+ * Plugins use this to register new connectivity options.
17
+ */
18
+ export declare const DriverDefinitionSchema: z.ZodObject<{
19
+ id: z.ZodString;
20
+ label: z.ZodString;
21
+ description: z.ZodOptional<z.ZodString>;
22
+ icon: z.ZodOptional<z.ZodString>;
23
+ /**
24
+ * Configuration Schema (JSON Schema)
25
+ * Describes the structure of the `config` object needed for this driver.
26
+ * Used by the UI to generate the connection form.
27
+ */
28
+ configSchema: z.ZodRecord<z.ZodString, z.ZodAny>;
29
+ /**
30
+ * Default Capabilities
31
+ * What this driver supports out-of-the-box.
32
+ */
33
+ capabilities: z.ZodOptional<z.ZodLazy<z.ZodObject<{
34
+ /** Can execute SQL-like joins natively? */
35
+ joins: z.ZodDefault<z.ZodBoolean>;
36
+ /** Can handle ACID transactions? */
37
+ transactions: z.ZodDefault<z.ZodBoolean>;
38
+ /** Can perform full-text search? */
39
+ fullTextSearch: z.ZodDefault<z.ZodBoolean>;
40
+ /** Can perform aggregation (group by, sum, avg)? */
41
+ aggregation: z.ZodDefault<z.ZodBoolean>;
42
+ /** Is scheme-less (needs schema inference)? */
43
+ dynamicSchema: z.ZodDefault<z.ZodBoolean>;
44
+ /** Is read-only? */
45
+ readOnly: z.ZodDefault<z.ZodBoolean>;
46
+ }, "strip", z.ZodTypeAny, {
47
+ joins: boolean;
48
+ transactions: boolean;
49
+ fullTextSearch: boolean;
50
+ aggregation: boolean;
51
+ dynamicSchema: boolean;
52
+ readOnly: boolean;
53
+ }, {
54
+ joins?: boolean | undefined;
55
+ transactions?: boolean | undefined;
56
+ fullTextSearch?: boolean | undefined;
57
+ aggregation?: boolean | undefined;
58
+ dynamicSchema?: boolean | undefined;
59
+ readOnly?: boolean | undefined;
60
+ }>>>;
61
+ }, "strip", z.ZodTypeAny, {
62
+ label: string;
63
+ id: string;
64
+ configSchema: Record<string, any>;
65
+ description?: string | undefined;
66
+ icon?: string | undefined;
67
+ capabilities?: {
68
+ joins: boolean;
69
+ transactions: boolean;
70
+ fullTextSearch: boolean;
71
+ aggregation: boolean;
72
+ dynamicSchema: boolean;
73
+ readOnly: boolean;
74
+ } | undefined;
75
+ }, {
76
+ label: string;
77
+ id: string;
78
+ configSchema: Record<string, any>;
79
+ description?: string | undefined;
80
+ icon?: string | undefined;
81
+ capabilities?: {
82
+ joins?: boolean | undefined;
83
+ transactions?: boolean | undefined;
84
+ fullTextSearch?: boolean | undefined;
85
+ aggregation?: boolean | undefined;
86
+ dynamicSchema?: boolean | undefined;
87
+ readOnly?: boolean | undefined;
88
+ } | undefined;
89
+ }>;
90
+ /**
91
+ * Datasource Capabilities Schema
92
+ * Declares what this datasource naturally supports.
93
+ * The ObjectQL engine uses this to determine what logic to push down
94
+ * and what to compute in memory.
95
+ */
96
+ export declare const DatasourceCapabilities: z.ZodObject<{
97
+ /** Can execute SQL-like joins natively? */
98
+ joins: z.ZodDefault<z.ZodBoolean>;
99
+ /** Can handle ACID transactions? */
100
+ transactions: z.ZodDefault<z.ZodBoolean>;
101
+ /** Can perform full-text search? */
102
+ fullTextSearch: z.ZodDefault<z.ZodBoolean>;
103
+ /** Can perform aggregation (group by, sum, avg)? */
104
+ aggregation: z.ZodDefault<z.ZodBoolean>;
105
+ /** Is scheme-less (needs schema inference)? */
106
+ dynamicSchema: z.ZodDefault<z.ZodBoolean>;
107
+ /** Is read-only? */
108
+ readOnly: z.ZodDefault<z.ZodBoolean>;
109
+ }, "strip", z.ZodTypeAny, {
110
+ joins: boolean;
111
+ transactions: boolean;
112
+ fullTextSearch: boolean;
113
+ aggregation: boolean;
114
+ dynamicSchema: boolean;
115
+ readOnly: boolean;
116
+ }, {
117
+ joins?: boolean | undefined;
118
+ transactions?: boolean | undefined;
119
+ fullTextSearch?: boolean | undefined;
120
+ aggregation?: boolean | undefined;
121
+ dynamicSchema?: boolean | undefined;
122
+ readOnly?: boolean | undefined;
123
+ }>;
124
+ /**
125
+ * Datasource Schema
126
+ * Represents a connection to an external data store.
127
+ */
128
+ export declare const DatasourceSchema: z.ZodObject<{
129
+ /** Machine Name */
130
+ name: z.ZodString;
131
+ /** Human Label */
132
+ label: z.ZodOptional<z.ZodString>;
133
+ /** Driver */
134
+ driver: z.ZodString;
135
+ /**
136
+ * Connection Configuration
137
+ * Specific to the driver (e.g., host, port, user, password, bucket, etc.)
138
+ * Stored securely (passwords usually interpolated from ENV).
139
+ */
140
+ config: z.ZodRecord<z.ZodString, z.ZodAny>;
141
+ /**
142
+ * Capability Overrides
143
+ * Manually override what the driver claims to support.
144
+ */
145
+ capabilities: z.ZodOptional<z.ZodObject<{
146
+ /** Can execute SQL-like joins natively? */
147
+ joins: z.ZodDefault<z.ZodBoolean>;
148
+ /** Can handle ACID transactions? */
149
+ transactions: z.ZodDefault<z.ZodBoolean>;
150
+ /** Can perform full-text search? */
151
+ fullTextSearch: z.ZodDefault<z.ZodBoolean>;
152
+ /** Can perform aggregation (group by, sum, avg)? */
153
+ aggregation: z.ZodDefault<z.ZodBoolean>;
154
+ /** Is scheme-less (needs schema inference)? */
155
+ dynamicSchema: z.ZodDefault<z.ZodBoolean>;
156
+ /** Is read-only? */
157
+ readOnly: z.ZodDefault<z.ZodBoolean>;
158
+ }, "strip", z.ZodTypeAny, {
159
+ joins: boolean;
160
+ transactions: boolean;
161
+ fullTextSearch: boolean;
162
+ aggregation: boolean;
163
+ dynamicSchema: boolean;
164
+ readOnly: boolean;
165
+ }, {
166
+ joins?: boolean | undefined;
167
+ transactions?: boolean | undefined;
168
+ fullTextSearch?: boolean | undefined;
169
+ aggregation?: boolean | undefined;
170
+ dynamicSchema?: boolean | undefined;
171
+ readOnly?: boolean | undefined;
172
+ }>>;
173
+ /** Description */
174
+ description: z.ZodOptional<z.ZodString>;
175
+ /** Is enabled? */
176
+ active: z.ZodDefault<z.ZodBoolean>;
177
+ }, "strip", z.ZodTypeAny, {
178
+ name: string;
179
+ active: boolean;
180
+ config: Record<string, any>;
181
+ driver: string;
182
+ label?: string | undefined;
183
+ description?: string | undefined;
184
+ capabilities?: {
185
+ joins: boolean;
186
+ transactions: boolean;
187
+ fullTextSearch: boolean;
188
+ aggregation: boolean;
189
+ dynamicSchema: boolean;
190
+ readOnly: boolean;
191
+ } | undefined;
192
+ }, {
193
+ name: string;
194
+ config: Record<string, any>;
195
+ driver: string;
196
+ label?: string | undefined;
197
+ description?: string | undefined;
198
+ active?: boolean | undefined;
199
+ capabilities?: {
200
+ joins?: boolean | undefined;
201
+ transactions?: boolean | undefined;
202
+ fullTextSearch?: boolean | undefined;
203
+ aggregation?: boolean | undefined;
204
+ dynamicSchema?: boolean | undefined;
205
+ readOnly?: boolean | undefined;
206
+ } | undefined;
207
+ }>;
208
+ export type Datasource = z.infer<typeof DatasourceSchema>;
209
+ export type DatasourceConfig = z.infer<typeof DatasourceCapabilities>;
210
+ //# sourceMappingURL=datasource.zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasource.zod.d.ts","sourceRoot":"","sources":["../../src/system/datasource.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,cAAc,+KAMjB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,UAAU,aAAsD,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;IAMjC;;;;OAIG;;IAGH;;;OAGG;;QAWH,2CAA2C;;QAE3C,oCAAoC;;QAEpC,oCAAoC;;QAEpC,oDAAoD;;QAEpD,+CAA+C;;QAE/C,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAnBpB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;IACjC,2CAA2C;;IAE3C,oCAAoC;;IAEpC,oCAAoC;;IAEpC,oDAAoD;;IAEpD,+CAA+C;;IAE/C,oBAAoB;;;;;;;;;;;;;;;;EAEpB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;IAC3B,mBAAmB;;IAGnB,kBAAkB;;IAGlB,aAAa;;IAGb;;;;OAIG;;IAGH;;;OAGG;;QAtCH,2CAA2C;;QAE3C,oCAAoC;;QAEpC,oCAAoC;;QAEpC,oDAAoD;;QAEpD,+CAA+C;;QAE/C,oBAAoB;;;;;;;;;;;;;;;;;IA+BpB,kBAAkB;;IAGlB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAElB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC1D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatasourceSchema = exports.DatasourceCapabilities = exports.DriverDefinitionSchema = exports.DriverType = exports.BuiltInDrivers = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * Driver Type Enum (Built-in)
7
+ * Standard drivers supported by the core platform.
8
+ * Plugins can register additional drivers using different identifiers.
9
+ */
10
+ exports.BuiltInDrivers = [
11
+ 'postgres', 'mysql', 'sqlserver', 'oracle', 'sqlite', // SQL
12
+ 'mongo', 'redis', // NoSQL
13
+ 'excel', 'csv', 'airtable', // Spreadsheet / Low-code
14
+ 'rest_api', 'graphql', 'odata', // Web Services
15
+ 'salesforce', 'sap', 'workday' // Enterprise SaaS
16
+ ];
17
+ /**
18
+ * Driver Identifier
19
+ * Can be a built-in driver or a plugin-contributed driver (e.g., "com.vendor.snowflake").
20
+ */
21
+ exports.DriverType = zod_1.z.string().describe('Underlying driver identifier');
22
+ /**
23
+ * Driver Definition Schema
24
+ * Metadata describing a Database Driver.
25
+ * Plugins use this to register new connectivity options.
26
+ */
27
+ exports.DriverDefinitionSchema = zod_1.z.object({
28
+ id: zod_1.z.string().describe('Unique driver identifier (e.g. "postgres")'),
29
+ label: zod_1.z.string().describe('Display label (e.g. "PostgreSQL")'),
30
+ description: zod_1.z.string().optional(),
31
+ icon: zod_1.z.string().optional(),
32
+ /**
33
+ * Configuration Schema (JSON Schema)
34
+ * Describes the structure of the `config` object needed for this driver.
35
+ * Used by the UI to generate the connection form.
36
+ */
37
+ configSchema: zod_1.z.record(zod_1.z.any()).describe('JSON Schema for connection configuration'),
38
+ /**
39
+ * Default Capabilities
40
+ * What this driver supports out-of-the-box.
41
+ */
42
+ capabilities: zod_1.z.lazy(() => exports.DatasourceCapabilities).optional(),
43
+ });
44
+ /**
45
+ * Datasource Capabilities Schema
46
+ * Declares what this datasource naturally supports.
47
+ * The ObjectQL engine uses this to determine what logic to push down
48
+ * and what to compute in memory.
49
+ */
50
+ exports.DatasourceCapabilities = zod_1.z.object({
51
+ /** Can execute SQL-like joins natively? */
52
+ joins: zod_1.z.boolean().default(false),
53
+ /** Can handle ACID transactions? */
54
+ transactions: zod_1.z.boolean().default(false),
55
+ /** Can perform full-text search? */
56
+ fullTextSearch: zod_1.z.boolean().default(false),
57
+ /** Can perform aggregation (group by, sum, avg)? */
58
+ aggregation: zod_1.z.boolean().default(false),
59
+ /** Is scheme-less (needs schema inference)? */
60
+ dynamicSchema: zod_1.z.boolean().default(false),
61
+ /** Is read-only? */
62
+ readOnly: zod_1.z.boolean().default(false),
63
+ });
64
+ /**
65
+ * Datasource Schema
66
+ * Represents a connection to an external data store.
67
+ */
68
+ exports.DatasourceSchema = zod_1.z.object({
69
+ /** Machine Name */
70
+ name: zod_1.z.string().regex(/^[a-z_][a-z0-9_]*$/).describe('Unique datasource identifier'),
71
+ /** Human Label */
72
+ label: zod_1.z.string().optional().describe('Display label'),
73
+ /** Driver */
74
+ driver: exports.DriverType.describe('Underlying driver type'),
75
+ /**
76
+ * Connection Configuration
77
+ * Specific to the driver (e.g., host, port, user, password, bucket, etc.)
78
+ * Stored securely (passwords usually interpolated from ENV).
79
+ */
80
+ config: zod_1.z.record(zod_1.z.any()).describe('Driver specific configuration'),
81
+ /**
82
+ * Capability Overrides
83
+ * Manually override what the driver claims to support.
84
+ */
85
+ capabilities: exports.DatasourceCapabilities.optional().describe('Capability overrides'),
86
+ /** Description */
87
+ description: zod_1.z.string().optional().describe('Internal description'),
88
+ /** Is enabled? */
89
+ active: zod_1.z.boolean().default(true).describe('Is datasource enabled'),
90
+ });
@@ -0,0 +1,174 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * API Capabilities Schema
4
+ * Defines what features are enabled on this ObjectOS instance.
5
+ */
6
+ export declare const ApiCapabilitiesSchema: z.ZodObject<{
7
+ graphql: z.ZodDefault<z.ZodBoolean>;
8
+ search: z.ZodDefault<z.ZodBoolean>;
9
+ websockets: z.ZodDefault<z.ZodBoolean>;
10
+ files: z.ZodDefault<z.ZodBoolean>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ search: boolean;
13
+ files: boolean;
14
+ graphql: boolean;
15
+ websockets: boolean;
16
+ }, {
17
+ search?: boolean | undefined;
18
+ files?: boolean | undefined;
19
+ graphql?: boolean | undefined;
20
+ websockets?: boolean | undefined;
21
+ }>;
22
+ /**
23
+ * API Routes Schema
24
+ * The "Map" for the frontend to know where to send requests.
25
+ * This decouples the frontend from hardcoded URL paths.
26
+ */
27
+ export declare const ApiRoutesSchema: z.ZodObject<{
28
+ /** Base URL for Object CRUD (Standard Data API) */
29
+ data: z.ZodString;
30
+ /** Base URL for Schema Definitions (Metadata API) */
31
+ metadata: z.ZodString;
32
+ /** Base URL for Authentication */
33
+ auth: z.ZodString;
34
+ /** Base URL for Server Actions/Flows */
35
+ actions: z.ZodOptional<z.ZodString>;
36
+ /** Base URL for File/Storage operations */
37
+ storage: z.ZodOptional<z.ZodString>;
38
+ /** GraphQL Endpoint (if enabled) */
39
+ graphql: z.ZodOptional<z.ZodString>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ data: string;
42
+ metadata: string;
43
+ auth: string;
44
+ actions?: string | undefined;
45
+ graphql?: string | undefined;
46
+ storage?: string | undefined;
47
+ }, {
48
+ data: string;
49
+ metadata: string;
50
+ auth: string;
51
+ actions?: string | undefined;
52
+ graphql?: string | undefined;
53
+ storage?: string | undefined;
54
+ }>;
55
+ /**
56
+ * Discovery Response Schema
57
+ * The root object returned by the Metadata Discovery Endpoint.
58
+ */
59
+ export declare const DiscoverySchema: z.ZodObject<{
60
+ /** System Identity */
61
+ name: z.ZodString;
62
+ version: z.ZodString;
63
+ environment: z.ZodEnum<["production", "sandbox", "development"]>;
64
+ /** Dynamic Routing */
65
+ routes: z.ZodObject<{
66
+ /** Base URL for Object CRUD (Standard Data API) */
67
+ data: z.ZodString;
68
+ /** Base URL for Schema Definitions (Metadata API) */
69
+ metadata: z.ZodString;
70
+ /** Base URL for Authentication */
71
+ auth: z.ZodString;
72
+ /** Base URL for Server Actions/Flows */
73
+ actions: z.ZodOptional<z.ZodString>;
74
+ /** Base URL for File/Storage operations */
75
+ storage: z.ZodOptional<z.ZodString>;
76
+ /** GraphQL Endpoint (if enabled) */
77
+ graphql: z.ZodOptional<z.ZodString>;
78
+ }, "strip", z.ZodTypeAny, {
79
+ data: string;
80
+ metadata: string;
81
+ auth: string;
82
+ actions?: string | undefined;
83
+ graphql?: string | undefined;
84
+ storage?: string | undefined;
85
+ }, {
86
+ data: string;
87
+ metadata: string;
88
+ auth: string;
89
+ actions?: string | undefined;
90
+ graphql?: string | undefined;
91
+ storage?: string | undefined;
92
+ }>;
93
+ /** Feature Flags */
94
+ features: z.ZodObject<{
95
+ graphql: z.ZodDefault<z.ZodBoolean>;
96
+ search: z.ZodDefault<z.ZodBoolean>;
97
+ websockets: z.ZodDefault<z.ZodBoolean>;
98
+ files: z.ZodDefault<z.ZodBoolean>;
99
+ }, "strip", z.ZodTypeAny, {
100
+ search: boolean;
101
+ files: boolean;
102
+ graphql: boolean;
103
+ websockets: boolean;
104
+ }, {
105
+ search?: boolean | undefined;
106
+ files?: boolean | undefined;
107
+ graphql?: boolean | undefined;
108
+ websockets?: boolean | undefined;
109
+ }>;
110
+ /** Localization Info (helping frontend init i18n) */
111
+ locale: z.ZodObject<{
112
+ default: z.ZodString;
113
+ supported: z.ZodArray<z.ZodString, "many">;
114
+ timezone: z.ZodString;
115
+ }, "strip", z.ZodTypeAny, {
116
+ default: string;
117
+ supported: string[];
118
+ timezone: string;
119
+ }, {
120
+ default: string;
121
+ supported: string[];
122
+ timezone: string;
123
+ }>;
124
+ }, "strip", z.ZodTypeAny, {
125
+ name: string;
126
+ version: string;
127
+ locale: {
128
+ default: string;
129
+ supported: string[];
130
+ timezone: string;
131
+ };
132
+ features: {
133
+ search: boolean;
134
+ files: boolean;
135
+ graphql: boolean;
136
+ websockets: boolean;
137
+ };
138
+ environment: "production" | "sandbox" | "development";
139
+ routes: {
140
+ data: string;
141
+ metadata: string;
142
+ auth: string;
143
+ actions?: string | undefined;
144
+ graphql?: string | undefined;
145
+ storage?: string | undefined;
146
+ };
147
+ }, {
148
+ name: string;
149
+ version: string;
150
+ locale: {
151
+ default: string;
152
+ supported: string[];
153
+ timezone: string;
154
+ };
155
+ features: {
156
+ search?: boolean | undefined;
157
+ files?: boolean | undefined;
158
+ graphql?: boolean | undefined;
159
+ websockets?: boolean | undefined;
160
+ };
161
+ environment: "production" | "sandbox" | "development";
162
+ routes: {
163
+ data: string;
164
+ metadata: string;
165
+ auth: string;
166
+ actions?: string | undefined;
167
+ graphql?: string | undefined;
168
+ storage?: string | undefined;
169
+ };
170
+ }>;
171
+ export type DiscoveryResponse = z.infer<typeof DiscoverySchema>;
172
+ export type ApiRoutes = z.infer<typeof ApiRoutesSchema>;
173
+ export type ApiCapabilities = z.infer<typeof ApiCapabilitiesSchema>;
174
+ //# sourceMappingURL=discovery.zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.zod.d.ts","sourceRoot":"","sources":["../../src/system/discovery.zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe;IAC1B,mDAAmD;;IAGnD,qDAAqD;;IAGrD,kCAAkC;;IAGlC,wCAAwC;;IAGxC,2CAA2C;;IAG3C,oCAAoC;;;;;;;;;;;;;;;;EAEpC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe;IAC1B,sBAAsB;;;;IAKtB,sBAAsB;;QA7BtB,mDAAmD;;QAGnD,qDAAqD;;QAGrD,kCAAkC;;QAGlC,wCAAwC;;QAGxC,2CAA2C;;QAG3C,oCAAoC;;;;;;;;;;;;;;;;;IAiBpC,oBAAoB;;;;;;;;;;;;;;;;;IAGpB,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMrD,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAChE,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AACxD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiscoverySchema = exports.ApiRoutesSchema = exports.ApiCapabilitiesSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * API Capabilities Schema
7
+ * Defines what features are enabled on this ObjectOS instance.
8
+ */
9
+ exports.ApiCapabilitiesSchema = zod_1.z.object({
10
+ graphql: zod_1.z.boolean().default(false),
11
+ search: zod_1.z.boolean().default(false),
12
+ websockets: zod_1.z.boolean().default(false),
13
+ files: zod_1.z.boolean().default(true),
14
+ });
15
+ /**
16
+ * API Routes Schema
17
+ * The "Map" for the frontend to know where to send requests.
18
+ * This decouples the frontend from hardcoded URL paths.
19
+ */
20
+ exports.ApiRoutesSchema = zod_1.z.object({
21
+ /** Base URL for Object CRUD (Standard Data API) */
22
+ data: zod_1.z.string().describe('e.g. /api/v1/data'),
23
+ /** Base URL for Schema Definitions (Metadata API) */
24
+ metadata: zod_1.z.string().describe('e.g. /api/v1/meta'),
25
+ /** Base URL for Authentication */
26
+ auth: zod_1.z.string().describe('e.g. /api/v1/auth'),
27
+ /** Base URL for Server Actions/Flows */
28
+ actions: zod_1.z.string().optional().describe('e.g. /api/v1/p'),
29
+ /** Base URL for File/Storage operations */
30
+ storage: zod_1.z.string().optional().describe('e.g. /api/v1/storage'),
31
+ /** GraphQL Endpoint (if enabled) */
32
+ graphql: zod_1.z.string().optional().describe('e.g. /api/v1/graphql'),
33
+ });
34
+ /**
35
+ * Discovery Response Schema
36
+ * The root object returned by the Metadata Discovery Endpoint.
37
+ */
38
+ exports.DiscoverySchema = zod_1.z.object({
39
+ /** System Identity */
40
+ name: zod_1.z.string(),
41
+ version: zod_1.z.string(),
42
+ environment: zod_1.z.enum(['production', 'sandbox', 'development']),
43
+ /** Dynamic Routing */
44
+ routes: exports.ApiRoutesSchema,
45
+ /** Feature Flags */
46
+ features: exports.ApiCapabilitiesSchema,
47
+ /** Localization Info (helping frontend init i18n) */
48
+ locale: zod_1.z.object({
49
+ default: zod_1.z.string(),
50
+ supported: zod_1.z.array(zod_1.z.string()),
51
+ timezone: zod_1.z.string(),
52
+ }),
53
+ });