@budibase/server 1.0.219-alpha.13 → 1.0.219-alpha.16

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 (168) hide show
  1. package/builder/assets/{index.3f761849.js → index.455dc625.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +107 -103
  4. package/coverage/coverage-final.json +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 +2 -2
  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 +13 -13
  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 +14 -14
  135. package/coverage/lcov-report/threads/query.js.html +40 -25
  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/coverage/lcov.info +167 -161
  159. package/dist/api/controllers/query/index.js +7 -4
  160. package/dist/automations/steps/executeQuery.js +1 -1
  161. package/dist/package.json +6 -6
  162. package/dist/threads/query.js +20 -13
  163. package/dist/tsconfig.build.tsbuildinfo +1 -1
  164. package/package.json +7 -7
  165. package/src/api/controllers/query/index.ts +13 -5
  166. package/src/api/routes/tests/query.spec.js +0 -1
  167. package/src/automations/steps/executeQuery.js +1 -1
  168. package/src/threads/query.js +20 -15
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.219-alpha.13",
4
+ "version": "1.0.219-alpha.16",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -77,11 +77,11 @@
77
77
  "license": "GPL-3.0",
78
78
  "dependencies": {
79
79
  "@apidevtools/swagger-parser": "10.0.3",
80
- "@budibase/backend-core": "^1.0.219-alpha.13",
81
- "@budibase/client": "^1.0.219-alpha.13",
82
- "@budibase/pro": "1.0.219-alpha.12",
83
- "@budibase/string-templates": "^1.0.219-alpha.13",
84
- "@budibase/types": "^1.0.219-alpha.13",
80
+ "@budibase/backend-core": "^1.0.219-alpha.16",
81
+ "@budibase/client": "^1.0.219-alpha.16",
82
+ "@budibase/pro": "1.0.219-alpha.15",
83
+ "@budibase/string-templates": "^1.0.219-alpha.16",
84
+ "@budibase/types": "^1.0.219-alpha.16",
85
85
  "@bull-board/api": "3.7.0",
86
86
  "@bull-board/koa": "3.9.4",
87
87
  "@elastic/elasticsearch": "7.10.0",
@@ -195,5 +195,5 @@
195
195
  "optionalDependencies": {
196
196
  "oracledb": "5.3.0"
197
197
  },
198
- "gitHead": "dc4365d70871d724b33c8de0ecdcf40d3764436b"
198
+ "gitHead": "2e50ccf547daf4bb0282faa72bef39ed65fdf78f"
199
199
  }
@@ -166,14 +166,19 @@ export async function preview(ctx: any) {
166
166
  }
167
167
  }
168
168
 
169
- async function execute(ctx: any, opts = { rowsOnly: false }) {
169
+ async function execute(
170
+ ctx: any,
171
+ opts: any = { rowsOnly: false, isAutomation: false }
172
+ ) {
170
173
  const db = getAppDB()
171
174
 
172
175
  const query = await db.get(ctx.params.queryId)
173
176
  const datasource = await db.get(query.datasourceId)
174
177
 
175
- const authConfigCtx: any = getAuthConfig(ctx)
176
-
178
+ let authConfigCtx: any = {}
179
+ if (!opts.isAutomation) {
180
+ authConfigCtx = getAuthConfig(ctx)
181
+ }
177
182
  const enrichedParameters = ctx.request.body.parameters || {}
178
183
  // make sure parameters are fully enriched with defaults
179
184
  if (query && query.parameters) {
@@ -217,8 +222,11 @@ export async function executeV1(ctx: any) {
217
222
  return execute(ctx, { rowsOnly: true })
218
223
  }
219
224
 
220
- export async function executeV2(ctx: any) {
221
- return execute(ctx, { rowsOnly: false })
225
+ export async function executeV2(
226
+ ctx: any,
227
+ { isAutomation }: { isAutomation?: boolean } = {}
228
+ ) {
229
+ return execute(ctx, { rowsOnly: false, isAutomation })
222
230
  }
223
231
 
224
232
  const removeDynamicVariables = async (queryId: any) => {
@@ -218,7 +218,6 @@ describe("/queries", () => {
218
218
  expect(res.body.schemaFields).toEqual(["a", "b"])
219
219
  expect(res.body.rows.length).toEqual(1)
220
220
  expect(events.query.previewed).toBeCalledTimes(1)
221
- datasource.config = { schema: "public" }
222
221
  expect(events.query.previewed).toBeCalledWith(datasource, query)
223
222
  })
224
223
 
@@ -72,7 +72,7 @@ exports.run = async function ({ inputs, appId, emitter }) {
72
72
  })
73
73
 
74
74
  try {
75
- await queryController.executeV2(ctx)
75
+ await queryController.executeV2(ctx, { isAutomation: true })
76
76
  const { data, ...rest } = ctx.body
77
77
  return {
78
78
  response: data,
@@ -10,6 +10,7 @@ const {
10
10
  } = require("@budibase/backend-core/auth")
11
11
  const { user: userCache } = require("@budibase/backend-core/cache")
12
12
  const { getGlobalIDFromUserMetadataID } = require("../db/utils")
13
+ const { cloneDeep } = require("lodash/fp")
13
14
 
14
15
  const { isSQL } = require("../integrations/utils")
15
16
  const {
@@ -41,20 +42,22 @@ class QueryRunner {
41
42
  async execute() {
42
43
  let { datasource, fields, queryVerb, transformer } = this
43
44
 
44
- const Integration = integrations[datasource.source]
45
+ let datasourceClone = cloneDeep(datasource)
46
+ let fieldsClone = cloneDeep(fields)
47
+
48
+ const Integration = integrations[datasourceClone.source]
45
49
  if (!Integration) {
46
50
  throw "Integration type does not exist."
47
51
  }
48
52
 
49
- if (datasource.config.authConfigs) {
50
- datasource.config.authConfigs = datasource.config.authConfigs.map(
51
- config => {
53
+ if (datasourceClone.config.authConfigs) {
54
+ datasourceClone.config.authConfigs =
55
+ datasourceClone.config.authConfigs.map(config => {
52
56
  return enrichQueryFields(config, this.ctx)
53
- }
54
- )
57
+ })
55
58
  }
56
59
 
57
- const integration = new Integration(datasource.config)
60
+ const integration = new Integration(datasourceClone.config)
58
61
 
59
62
  // pre-query, make sure datasource variables are added to parameters
60
63
  const parameters = await this.addDatasourceVariables()
@@ -65,19 +68,19 @@ class QueryRunner {
65
68
  const enrichedContext = { ...enrichedParameters, ...this.ctx }
66
69
 
67
70
  // Parse global headers
68
- if (datasource.config.defaultHeaders) {
69
- datasource.config.defaultHeaders = enrichQueryFields(
70
- datasource.config.defaultHeaders,
71
+ if (datasourceClone.config.defaultHeaders) {
72
+ datasourceClone.config.defaultHeaders = enrichQueryFields(
73
+ datasourceClone.config.defaultHeaders,
71
74
  enrichedContext
72
75
  )
73
76
  }
74
77
 
75
78
  let query
76
79
  // handle SQL injections by interpolating the variables
77
- if (isSQL(datasource)) {
78
- query = interpolateSQL(fields, enrichedParameters, integration)
80
+ if (isSQL(datasourceClone)) {
81
+ query = interpolateSQL(fieldsClone, enrichedParameters, integration)
79
82
  } else {
80
- query = enrichQueryFields(fields, enrichedContext)
83
+ query = enrichQueryFields(fieldsClone, enrichedContext)
81
84
  }
82
85
 
83
86
  // Add pagination values for REST queries
@@ -116,9 +119,10 @@ class QueryRunner {
116
119
  await this.refreshOAuth2(this.ctx)
117
120
  // Attempt to refresh the access token from the provider
118
121
  this.hasRefreshedOAuth = true
122
+ } else {
123
+ this.hasRerun = true
119
124
  }
120
125
 
121
- this.hasRerun = true
122
126
  await threadUtils.invalidateDynamicVariables(this.cachedVariables)
123
127
  return this.execute()
124
128
  }
@@ -187,8 +191,9 @@ class QueryRunner {
187
191
  } else {
188
192
  // In this event the user may have oAuth issues that
189
193
  // could require re-authenticating with their provider.
194
+ let errorMessage = resp.err.data ? resp.err.data : resp.err.toString()
190
195
  throw new Error(
191
- "OAuth2 access token could not be refreshed: " + resp.err.toString()
196
+ "OAuth2 access token could not be refreshed: " + errorMessage
192
197
  )
193
198
  }
194
199