@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.
- package/builder/assets/{index.3f761849.js → index.455dc625.js} +1 -1
- package/builder/index.html +1 -1
- package/coverage/clover.xml +107 -103
- package/coverage/coverage-final.json +2 -2
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/utils/index.html +1 -1
- package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +2 -2
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +1 -1
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +13 -13
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +14 -14
- package/coverage/lcov-report/threads/query.js.html +40 -25
- package/coverage/lcov-report/threads/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +1 -1
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/coverage/lcov.info +167 -161
- package/dist/api/controllers/query/index.js +7 -4
- package/dist/automations/steps/executeQuery.js +1 -1
- package/dist/package.json +6 -6
- package/dist/threads/query.js +20 -13
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/api/controllers/query/index.ts +13 -5
- package/src/api/routes/tests/query.spec.js +0 -1
- package/src/automations/steps/executeQuery.js +1 -1
- 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.
|
|
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.
|
|
81
|
-
"@budibase/client": "^1.0.219-alpha.
|
|
82
|
-
"@budibase/pro": "1.0.219-alpha.
|
|
83
|
-
"@budibase/string-templates": "^1.0.219-alpha.
|
|
84
|
-
"@budibase/types": "^1.0.219-alpha.
|
|
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": "
|
|
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(
|
|
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
|
-
|
|
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(
|
|
221
|
-
|
|
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
|
|
package/src/threads/query.js
CHANGED
|
@@ -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
|
-
|
|
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 (
|
|
50
|
-
|
|
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(
|
|
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 (
|
|
69
|
-
|
|
70
|
-
|
|
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(
|
|
78
|
-
query = interpolateSQL(
|
|
80
|
+
if (isSQL(datasourceClone)) {
|
|
81
|
+
query = interpolateSQL(fieldsClone, enrichedParameters, integration)
|
|
79
82
|
} else {
|
|
80
|
-
query = enrichQueryFields(
|
|
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: " +
|
|
196
|
+
"OAuth2 access token could not be refreshed: " + errorMessage
|
|
192
197
|
)
|
|
193
198
|
}
|
|
194
199
|
|