@budibase/server 1.0.221 → 1.1.4

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 (165) hide show
  1. package/builder/assets/{index.58a51c8a.css → index.1bfe8b40.css} +1 -1
  2. package/builder/assets/{index.4e12347e.js → index.67240929.js} +81 -81
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +2 -2
  5. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/index.html +1 -1
  14. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  43. package/coverage/lcov-report/api/index.html +1 -1
  44. package/coverage/lcov-report/api/index.js.html +1 -1
  45. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/index.html +1 -1
  56. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  73. package/coverage/lcov-report/automations/actions.js.html +1 -1
  74. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  75. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  76. package/coverage/lcov-report/automations/index.html +1 -1
  77. package/coverage/lcov-report/automations/index.js.html +1 -1
  78. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/index.html +1 -1
  85. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  95. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  104. package/coverage/lcov-report/constants/index.html +1 -1
  105. package/coverage/lcov-report/constants/index.js.html +1 -1
  106. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  107. package/coverage/lcov-report/constants/screens.js.html +1 -1
  108. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  109. package/coverage/lcov-report/db/index.html +1 -1
  110. package/coverage/lcov-report/db/index.js.html +1 -1
  111. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  115. package/coverage/lcov-report/db/newid.js.html +1 -1
  116. package/coverage/lcov-report/db/utils.js.html +1 -1
  117. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  118. package/coverage/lcov-report/events/index.html +1 -1
  119. package/coverage/lcov-report/events/index.js.html +1 -1
  120. package/coverage/lcov-report/events/utils.js.html +1 -1
  121. package/coverage/lcov-report/index.html +1 -1
  122. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  123. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  124. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  125. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  126. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  127. package/coverage/lcov-report/middleware/index.html +1 -1
  128. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  129. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  130. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  131. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  132. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  133. package/coverage/lcov-report/threads/automation.js.html +1 -1
  134. package/coverage/lcov-report/threads/index.html +1 -1
  135. package/coverage/lcov-report/threads/query.js.html +1 -1
  136. package/coverage/lcov-report/threads/utils.js.html +1 -1
  137. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  138. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  139. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  140. package/coverage/lcov-report/utilities/global.js.html +1 -1
  141. package/coverage/lcov-report/utilities/index.html +1 -1
  142. package/coverage/lcov-report/utilities/index.js.html +1 -1
  143. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  144. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  145. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  146. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  147. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  148. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  150. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  151. package/coverage/lcov-report/utilities/security.js.html +1 -1
  152. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  153. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  154. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  156. package/coverage/lcov-report/utilities/users.js.html +1 -1
  157. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  158. package/dist/api/controllers/query/index.js +29 -1
  159. package/dist/integrations/index.js +1 -1
  160. package/dist/package.json +6 -6
  161. package/dist/tsconfig.build.tsbuildinfo +1 -1
  162. package/package.json +7 -7
  163. package/src/api/controllers/query/index.ts +29 -2
  164. package/src/api/routes/tests/query.spec.js +19 -4
  165. package/src/integrations/index.ts +1 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "1.0.221",
4
+ "version": "1.1.4",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -77,10 +77,10 @@
77
77
  "license": "GPL-3.0",
78
78
  "dependencies": {
79
79
  "@apidevtools/swagger-parser": "10.0.3",
80
- "@budibase/backend-core": "^1.0.221",
81
- "@budibase/client": "^1.0.221",
82
- "@budibase/pro": "1.0.220",
83
- "@budibase/string-templates": "^1.0.221",
80
+ "@budibase/backend-core": "^1.1.4",
81
+ "@budibase/client": "^1.1.4",
82
+ "@budibase/pro": "1.1.3",
83
+ "@budibase/string-templates": "^1.1.4",
84
84
  "@bull-board/api": "3.7.0",
85
85
  "@bull-board/koa": "3.9.4",
86
86
  "@elastic/elasticsearch": "7.10.0",
@@ -151,7 +151,7 @@
151
151
  "@babel/core": "7.17.4",
152
152
  "@babel/preset-env": "7.16.11",
153
153
  "@budibase/standard-components": "^0.9.139",
154
- "@budibase/types": "^1.0.221",
154
+ "@budibase/types": "^1.1.4",
155
155
  "@jest/test-sequencer": "24.9.0",
156
156
  "@types/apidoc": "0.50.0",
157
157
  "@types/bson": "4.2.0",
@@ -195,5 +195,5 @@
195
195
  "optionalDependencies": {
196
196
  "oracledb": "5.3.0"
197
197
  },
198
- "gitHead": "4e1904bba3bbec3d6f36827ecd012827b5e76cd8"
198
+ "gitHead": "8f9b9b62422e22bdf844a61ac9344fda9900d079"
199
199
  }
@@ -1,5 +1,5 @@
1
1
  import { generateQueryID, getQueryParams, isProdAppID } from "../../../db/utils"
2
- import { BaseQueryVerbs } from "../../../constants"
2
+ import { BaseQueryVerbs, FieldTypes } from "../../../constants"
3
3
  import { Thread, ThreadType } from "../../../threads"
4
4
  import { save as saveDatasource } from "../datasource"
5
5
  import { RestImporter } from "./import"
@@ -154,10 +154,37 @@ export async function preview(ctx: any) {
154
154
  },
155
155
  })
156
156
  const { rows, keys, info, extra } = await quotas.addQuery(runFn)
157
+ const schemaFields: any = {}
158
+ if (rows?.length > 0) {
159
+ for (let key of [...new Set(keys)] as string[]) {
160
+ const field = rows[0][key]
161
+ let type = typeof field,
162
+ fieldType = FieldTypes.STRING
163
+ if (field)
164
+ switch (type) {
165
+ case "boolean":
166
+ schemaFields[key] = FieldTypes.BOOLEAN
167
+ break
168
+ case "object":
169
+ if (field instanceof Date) {
170
+ fieldType = FieldTypes.DATETIME
171
+ } else if (Array.isArray(field)) {
172
+ fieldType = FieldTypes.ARRAY
173
+ } else {
174
+ fieldType = FieldTypes.JSON
175
+ }
176
+ break
177
+ case "number":
178
+ fieldType = FieldTypes.NUMBER
179
+ break
180
+ }
181
+ schemaFields[key] = fieldType
182
+ }
183
+ }
157
184
  await events.query.previewed(datasource, query)
158
185
  ctx.body = {
159
186
  rows,
160
- schemaFields: [...new Set(keys)],
187
+ schemaFields,
161
188
  info,
162
189
  extra,
163
190
  }
@@ -215,7 +215,10 @@ describe("/queries", () => {
215
215
  .expect("Content-Type", /json/)
216
216
  .expect(200)
217
217
  // these responses come from the mock
218
- expect(res.body.schemaFields).toEqual(["a", "b"])
218
+ expect(res.body.schemaFields).toEqual({
219
+ "a": "string",
220
+ "b": "number",
221
+ })
219
222
  expect(res.body.rows.length).toEqual(1)
220
223
  expect(events.query.previewed).toBeCalledTimes(1)
221
224
  expect(events.query.previewed).toBeCalledWith(datasource, query)
@@ -289,7 +292,11 @@ describe("/queries", () => {
289
292
  queryString: "test={{ variable2 }}",
290
293
  })
291
294
  // these responses come from the mock
292
- expect(res.body.schemaFields).toEqual(["url", "opts", "value"])
295
+ expect(res.body.schemaFields).toEqual({
296
+ "opts": "json",
297
+ "url": "string",
298
+ "value": "string",
299
+ })
293
300
  expect(res.body.rows[0].url).toEqual("http://www.google.com?test=1")
294
301
  })
295
302
 
@@ -299,7 +306,11 @@ describe("/queries", () => {
299
306
  path: "www.google.com",
300
307
  queryString: "test={{ variable3 }}",
301
308
  })
302
- expect(res.body.schemaFields).toEqual(["url", "opts", "value"])
309
+ expect(res.body.schemaFields).toEqual({
310
+ "opts": "json",
311
+ "url": "string",
312
+ "value": "string"
313
+ })
303
314
  expect(res.body.rows[0].url).toContain("doctype html")
304
315
  })
305
316
 
@@ -318,7 +329,11 @@ describe("/queries", () => {
318
329
  path: "www.failonce.com",
319
330
  queryString: "test={{ variable3 }}",
320
331
  })
321
- expect(res.body.schemaFields).toEqual(["fails", "url", "opts"])
332
+ expect(res.body.schemaFields).toEqual({
333
+ "fails": "number",
334
+ "opts": "json",
335
+ "url": "string"
336
+ })
322
337
  expect(res.body.rows[0].fails).toEqual(1)
323
338
  })
324
339
 
@@ -53,7 +53,7 @@ const INTEGRATIONS = {
53
53
  }
54
54
 
55
55
  // optionally add oracle integration if the oracle binary can be installed
56
- if (!(process.arch === "arm64" && process.platform === "darwin")) {
56
+ if (process.arch && !process.arch.startsWith("arm")) {
57
57
  const oracle = require("./oracle")
58
58
  DEFINITIONS[SourceNames.ORACLE] = oracle.schema
59
59
  INTEGRATIONS[SourceNames.ORACLE] = oracle.integration