@budibase/server 1.0.218 → 1.0.219-alpha.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.
- package/__mocks__/node-fetch.ts +9 -0
- package/builder/assets/index.00d6b4be.js +977 -0
- package/builder/assets/index.7786f497.css +6 -0
- package/builder/assets/{vendor.9bf2fcb4.js → vendor.001dcf8c.js} +163 -163
- package/builder/index.html +3 -3
- package/coverage/clover.xml +868 -794
- package/coverage/coverage-final.json +26 -26
- 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 +111 -12
- package/coverage/lcov-report/api/controllers/backup.js.html +9 -6
- 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 +16 -16
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +21 -21
- 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 +47 -17
- package/coverage/lcov-report/api/controllers/row/index.html +34 -34
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +95 -11
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +17 -8
- 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 +15 -15
- package/coverage/lcov-report/api/index.js.html +22 -13
- 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 +32 -2
- 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 +57 -12
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +17 -17
- 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 +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +58 -34
- package/coverage/lcov-report/automations/steps/index.html +11 -11
- 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 +4 -4
- 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 +14 -14
- 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 +13 -13
- package/coverage/lcov-report/db/linkedRows/index.js.html +10 -7
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +2 -2
- package/coverage/lcov-report/db/utils.js.html +27 -51
- 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 +74 -74
- 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 +12 -12
- package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +10 -10
- package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +7 -7
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +18 -9
- package/coverage/lcov-report/threads/index.html +25 -25
- package/coverage/lcov-report/threads/query.js.html +283 -76
- package/coverage/lcov-report/threads/utils.js.html +4 -4
- 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 +14 -14
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +9 -9
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
- 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 +2 -2
- 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 +1553 -1425
- package/dist/api/controllers/application.js +18 -15
- package/dist/api/controllers/automation.js +28 -2
- package/dist/api/controllers/backup.js +3 -2
- package/dist/api/controllers/query/index.js +25 -0
- package/dist/api/controllers/row/external.js +19 -7
- package/dist/api/controllers/row/internalSearch.js +22 -1
- package/dist/api/controllers/row/utils.js +3 -0
- package/dist/api/index.js +4 -1
- package/dist/api/routes/automation.js +2 -0
- package/dist/automations/automationUtils.js +16 -4
- package/dist/automations/logging/index.js +70 -0
- package/dist/automations/steps/filter.js +38 -29
- package/dist/automations/triggers.js +1 -1
- package/dist/db/linkedRows/index.js +1 -0
- package/dist/db/utils.js +4 -31
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +1 -0
- package/dist/integrations/airtable.js +1 -0
- package/dist/integrations/arangodb.js +1 -0
- package/dist/integrations/base/sql.js +20 -3
- package/dist/integrations/couchdb.js +1 -0
- package/dist/integrations/dynamodb.js +1 -0
- package/dist/integrations/elasticsearch.js +1 -0
- package/dist/integrations/firebase.js +1 -0
- package/dist/integrations/googlesheets.js +1 -0
- package/dist/integrations/index.js +4 -0
- package/dist/integrations/microsoftSqlServer.js +2 -1
- package/dist/integrations/mongodb.js +1 -0
- package/dist/integrations/mysql.js +2 -1
- package/dist/integrations/oracle.js +1 -0
- package/dist/integrations/postgres.js +2 -1
- package/dist/integrations/queries/sql.js +3 -0
- package/dist/integrations/redis.js +1 -0
- package/dist/integrations/rest.js +2 -1
- package/dist/integrations/s3.js +1 -0
- package/dist/integrations/snowflake.js +102 -0
- package/dist/package.json +7 -6
- package/dist/tests/utilities/TestConfiguration.js +19 -6
- package/dist/threads/automation.js +6 -3
- package/dist/threads/index.js +15 -1
- package/dist/threads/query.js +54 -8
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +16 -6
- package/package.json +8 -7
- package/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip +0 -0
- package/scripts/integrations/oracle/instantclient/linux/arm64/install.sh +23 -0
- package/scripts/integrations/oracle/instantclient/linux/install.sh +10 -0
- package/src/api/controllers/application.ts +18 -14
- package/src/api/controllers/automation.js +35 -2
- package/src/api/controllers/backup.js +3 -2
- package/src/api/controllers/query/index.ts +29 -1
- package/src/api/controllers/row/external.js +19 -9
- package/src/api/controllers/row/internalSearch.js +28 -0
- package/src/api/controllers/row/utils.js +3 -0
- package/src/api/index.js +4 -1
- package/src/api/routes/automation.js +10 -0
- package/src/api/routes/tests/query.spec.js +166 -0
- package/src/automations/automationUtils.js +19 -4
- package/src/automations/logging/index.ts +35 -0
- package/src/automations/steps/filter.js +36 -28
- package/src/automations/tests/filter.spec.js +2 -1
- package/src/automations/triggers.js +1 -1
- package/src/db/linkedRows/index.js +1 -0
- package/src/db/utils.js +5 -13
- package/src/definitions/common.ts +1 -0
- package/src/definitions/datasource.ts +2 -0
- package/src/environment.js +1 -0
- package/src/integrations/airtable.ts +1 -0
- package/src/integrations/arangodb.ts +1 -0
- package/src/integrations/base/sql.ts +25 -11
- package/src/integrations/couchdb.ts +1 -0
- package/src/integrations/dynamodb.ts +1 -0
- package/src/integrations/elasticsearch.ts +1 -0
- package/src/integrations/firebase.ts +1 -0
- package/src/integrations/googlesheets.ts +1 -0
- package/src/integrations/index.ts +4 -0
- package/src/integrations/microsoftSqlServer.ts +2 -0
- package/src/integrations/mongodb.ts +1 -0
- package/src/integrations/mysql.ts +2 -0
- package/src/integrations/oracle.ts +1 -0
- package/src/integrations/postgres.ts +2 -0
- package/src/integrations/queries/sql.ts +3 -1
- package/src/integrations/redis.ts +1 -0
- package/src/integrations/rest.ts +2 -1
- package/src/integrations/s3.ts +1 -0
- package/src/integrations/snowflake.ts +99 -0
- package/src/integrations/tests/rest.spec.js +16 -1
- package/src/migrations/tests/index.spec.ts +18 -2
- package/src/module.d.ts +2 -0
- package/src/tests/utilities/TestConfiguration.js +22 -3
- package/src/threads/automation.js +6 -3
- package/src/threads/index.ts +5 -1
- package/src/threads/query.js +79 -10
- package/src/utilities/fileSystem/index.js +22 -8
- package/builder/assets/index.24307ca0.css +0 -6
- package/builder/assets/index.36419068.js +0 -1316
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">81.53% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>106/130</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">66.66% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>38/57</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">76.92% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>10/
|
|
42
|
+
<span class='fraction'>10/13</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">81.74% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>103/126</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -266,12 +266,88 @@
|
|
|
266
266
|
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
267
|
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
268
|
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
-
<a name='L204'></a><a href='#L204'>204</a
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
289
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
290
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
291
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
292
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
293
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
294
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
295
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
296
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
297
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
298
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
299
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
300
|
+
<a name='L235'></a><a href='#L235'>235</a>
|
|
301
|
+
<a name='L236'></a><a href='#L236'>236</a>
|
|
302
|
+
<a name='L237'></a><a href='#L237'>237</a>
|
|
303
|
+
<a name='L238'></a><a href='#L238'>238</a>
|
|
304
|
+
<a name='L239'></a><a href='#L239'>239</a>
|
|
305
|
+
<a name='L240'></a><a href='#L240'>240</a>
|
|
306
|
+
<a name='L241'></a><a href='#L241'>241</a>
|
|
307
|
+
<a name='L242'></a><a href='#L242'>242</a>
|
|
308
|
+
<a name='L243'></a><a href='#L243'>243</a>
|
|
309
|
+
<a name='L244'></a><a href='#L244'>244</a>
|
|
310
|
+
<a name='L245'></a><a href='#L245'>245</a>
|
|
311
|
+
<a name='L246'></a><a href='#L246'>246</a>
|
|
312
|
+
<a name='L247'></a><a href='#L247'>247</a>
|
|
313
|
+
<a name='L248'></a><a href='#L248'>248</a>
|
|
314
|
+
<a name='L249'></a><a href='#L249'>249</a>
|
|
315
|
+
<a name='L250'></a><a href='#L250'>250</a>
|
|
316
|
+
<a name='L251'></a><a href='#L251'>251</a>
|
|
317
|
+
<a name='L252'></a><a href='#L252'>252</a>
|
|
318
|
+
<a name='L253'></a><a href='#L253'>253</a>
|
|
319
|
+
<a name='L254'></a><a href='#L254'>254</a>
|
|
320
|
+
<a name='L255'></a><a href='#L255'>255</a>
|
|
321
|
+
<a name='L256'></a><a href='#L256'>256</a>
|
|
322
|
+
<a name='L257'></a><a href='#L257'>257</a>
|
|
323
|
+
<a name='L258'></a><a href='#L258'>258</a>
|
|
324
|
+
<a name='L259'></a><a href='#L259'>259</a>
|
|
325
|
+
<a name='L260'></a><a href='#L260'>260</a>
|
|
326
|
+
<a name='L261'></a><a href='#L261'>261</a>
|
|
327
|
+
<a name='L262'></a><a href='#L262'>262</a>
|
|
328
|
+
<a name='L263'></a><a href='#L263'>263</a>
|
|
329
|
+
<a name='L264'></a><a href='#L264'>264</a>
|
|
330
|
+
<a name='L265'></a><a href='#L265'>265</a>
|
|
331
|
+
<a name='L266'></a><a href='#L266'>266</a>
|
|
332
|
+
<a name='L267'></a><a href='#L267'>267</a>
|
|
333
|
+
<a name='L268'></a><a href='#L268'>268</a>
|
|
334
|
+
<a name='L269'></a><a href='#L269'>269</a>
|
|
335
|
+
<a name='L270'></a><a href='#L270'>270</a>
|
|
336
|
+
<a name='L271'></a><a href='#L271'>271</a>
|
|
337
|
+
<a name='L272'></a><a href='#L272'>272</a>
|
|
338
|
+
<a name='L273'></a><a href='#L273'>273</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">2x</span>
|
|
270
339
|
<span class="cline-any cline-yes">2x</span>
|
|
271
340
|
<span class="cline-any cline-yes">2x</span>
|
|
272
341
|
<span class="cline-any cline-yes">2x</span>
|
|
273
342
|
<span class="cline-any cline-yes">2x</span>
|
|
274
343
|
<span class="cline-any cline-yes">2x</span>
|
|
344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
347
|
+
<span class="cline-any cline-yes">2x</span>
|
|
348
|
+
<span class="cline-any cline-yes">2x</span>
|
|
349
|
+
<span class="cline-any cline-yes">2x</span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
275
351
|
<span class="cline-any cline-yes">2x</span>
|
|
276
352
|
<span class="cline-any cline-neutral"> </span>
|
|
277
353
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -280,59 +356,86 @@
|
|
|
280
356
|
<span class="cline-any cline-neutral"> </span>
|
|
281
357
|
<span class="cline-any cline-neutral"> </span>
|
|
282
358
|
<span class="cline-any cline-neutral"> </span>
|
|
283
|
-
<span class="cline-any cline-yes">
|
|
284
|
-
<span class="cline-any cline-yes">
|
|
285
|
-
<span class="cline-any cline-yes">
|
|
286
|
-
<span class="cline-any cline-yes">
|
|
287
|
-
<span class="cline-any cline-yes">
|
|
288
|
-
<span class="cline-any cline-yes">
|
|
289
|
-
<span class="cline-any cline-yes">
|
|
290
|
-
<span class="cline-any cline-yes">
|
|
291
|
-
<span class="cline-any cline-yes">
|
|
359
|
+
<span class="cline-any cline-yes">22x</span>
|
|
360
|
+
<span class="cline-any cline-yes">22x</span>
|
|
361
|
+
<span class="cline-any cline-yes">22x</span>
|
|
362
|
+
<span class="cline-any cline-yes">22x</span>
|
|
363
|
+
<span class="cline-any cline-yes">22x</span>
|
|
364
|
+
<span class="cline-any cline-yes">22x</span>
|
|
365
|
+
<span class="cline-any cline-yes">22x</span>
|
|
366
|
+
<span class="cline-any cline-yes">22x</span>
|
|
367
|
+
<span class="cline-any cline-yes">22x</span>
|
|
292
368
|
<span class="cline-any cline-neutral"> </span>
|
|
369
|
+
<span class="cline-any cline-yes">22x</span>
|
|
293
370
|
<span class="cline-any cline-neutral"> </span>
|
|
294
371
|
<span class="cline-any cline-neutral"> </span>
|
|
295
|
-
<span class="cline-any cline-yes">15x</span>
|
|
296
|
-
<span class="cline-any cline-yes">15x</span>
|
|
297
372
|
<span class="cline-any cline-neutral"> </span>
|
|
373
|
+
<span class="cline-any cline-yes">22x</span>
|
|
374
|
+
<span class="cline-any cline-yes">22x</span>
|
|
375
|
+
<span class="cline-any cline-yes">22x</span>
|
|
298
376
|
<span class="cline-any cline-neutral"> </span>
|
|
299
377
|
<span class="cline-any cline-neutral"> </span>
|
|
300
|
-
<span class="cline-any cline-
|
|
301
|
-
<span class="cline-any cline-yes">
|
|
302
|
-
<span class="cline-any cline-
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-yes">23x</span>
|
|
380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
381
|
+
<span class="cline-any cline-yes">23x</span>
|
|
382
|
+
<span class="cline-any cline-yes">23x</span>
|
|
303
383
|
<span class="cline-any cline-yes">2x</span>
|
|
304
384
|
<span class="cline-any cline-neutral"> </span>
|
|
305
|
-
<span class="cline-any cline-
|
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
|
+
<span class="cline-any cline-yes">21x</span>
|
|
387
|
+
<span class="cline-any cline-no"> </span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
389
|
+
<span class="cline-any cline-no"> </span>
|
|
390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
394
|
+
<span class="cline-any cline-yes">21x</span>
|
|
395
|
+
<span class="cline-any cline-neutral"> </span>
|
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
397
|
+
<span class="cline-any cline-yes">21x</span>
|
|
398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
399
|
+
<span class="cline-any cline-neutral"> </span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
401
|
+
<span class="cline-any cline-yes">21x</span>
|
|
402
|
+
<span class="cline-any cline-yes">21x</span>
|
|
403
|
+
<span class="cline-any cline-neutral"> </span>
|
|
404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
405
|
+
<span class="cline-any cline-yes">21x</span>
|
|
406
|
+
<span class="cline-any cline-yes">1x</span>
|
|
407
|
+
<span class="cline-any cline-neutral"> </span>
|
|
408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
306
409
|
<span class="cline-any cline-neutral"> </span>
|
|
307
410
|
<span class="cline-any cline-neutral"> </span>
|
|
308
|
-
<span class="cline-any cline-yes">14x</span>
|
|
309
411
|
<span class="cline-any cline-neutral"> </span>
|
|
310
412
|
<span class="cline-any cline-neutral"> </span>
|
|
311
|
-
<span class="cline-any cline-
|
|
413
|
+
<span class="cline-any cline-neutral"> </span>
|
|
414
|
+
<span class="cline-any cline-yes">21x</span>
|
|
312
415
|
<span class="cline-any cline-yes">2x</span>
|
|
313
416
|
<span class="cline-any cline-neutral"> </span>
|
|
314
|
-
<span class="cline-any cline-yes">
|
|
417
|
+
<span class="cline-any cline-yes">19x</span>
|
|
315
418
|
<span class="cline-any cline-neutral"> </span>
|
|
316
419
|
<span class="cline-any cline-neutral"> </span>
|
|
317
420
|
<span class="cline-any cline-neutral"> </span>
|
|
318
|
-
<span class="cline-any cline-yes">
|
|
421
|
+
<span class="cline-any cline-yes">21x</span>
|
|
319
422
|
<span class="cline-any cline-no"> </span>
|
|
320
423
|
<span class="cline-any cline-neutral"> </span>
|
|
321
424
|
<span class="cline-any cline-neutral"> </span>
|
|
322
|
-
<span class="cline-any cline-yes">
|
|
323
|
-
<span class="cline-any cline-yes">
|
|
324
|
-
<span class="cline-any cline-yes">
|
|
325
|
-
<span class="cline-any cline-yes">
|
|
326
|
-
<span class="cline-any cline-yes">
|
|
327
|
-
<span class="cline-any cline-yes">
|
|
328
|
-
<span class="cline-any cline-yes">
|
|
329
|
-
<span class="cline-any cline-yes">
|
|
330
|
-
<span class="cline-any cline-yes">
|
|
331
|
-
<span class="cline-any cline-yes">
|
|
425
|
+
<span class="cline-any cline-yes">21x</span>
|
|
426
|
+
<span class="cline-any cline-yes">21x</span>
|
|
427
|
+
<span class="cline-any cline-yes">21x</span>
|
|
428
|
+
<span class="cline-any cline-yes">21x</span>
|
|
429
|
+
<span class="cline-any cline-yes">21x</span>
|
|
430
|
+
<span class="cline-any cline-yes">21x</span>
|
|
431
|
+
<span class="cline-any cline-yes">19x</span>
|
|
432
|
+
<span class="cline-any cline-yes">19x</span>
|
|
433
|
+
<span class="cline-any cline-yes">19x</span>
|
|
434
|
+
<span class="cline-any cline-yes">19x</span>
|
|
332
435
|
<span class="cline-any cline-neutral"> </span>
|
|
333
436
|
<span class="cline-any cline-neutral"> </span>
|
|
334
437
|
<span class="cline-any cline-neutral"> </span>
|
|
335
|
-
<span class="cline-any cline-yes">
|
|
438
|
+
<span class="cline-any cline-yes">21x</span>
|
|
336
439
|
<span class="cline-any cline-no"> </span>
|
|
337
440
|
<span class="cline-any cline-neutral"> </span>
|
|
338
441
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -341,41 +444,45 @@
|
|
|
341
444
|
<span class="cline-any cline-neutral"> </span>
|
|
342
445
|
<span class="cline-any cline-neutral"> </span>
|
|
343
446
|
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-yes">
|
|
447
|
+
<span class="cline-any cline-yes">21x</span>
|
|
448
|
+
<span class="cline-any cline-yes">1x</span>
|
|
345
449
|
<span class="cline-any cline-neutral"> </span>
|
|
346
450
|
<span class="cline-any cline-neutral"> </span>
|
|
347
451
|
<span class="cline-any cline-neutral"> </span>
|
|
348
452
|
<span class="cline-any cline-neutral"> </span>
|
|
453
|
+
<span class="cline-any cline-no"> </span>
|
|
454
|
+
<span class="cline-any cline-neutral"> </span>
|
|
455
|
+
<span class="cline-any cline-no"> </span>
|
|
349
456
|
<span class="cline-any cline-neutral"> </span>
|
|
350
|
-
<span class="cline-any cline-yes">1x</span>
|
|
351
457
|
<span class="cline-any cline-neutral"> </span>
|
|
352
458
|
<span class="cline-any cline-yes">1x</span>
|
|
353
459
|
<span class="cline-any cline-yes">1x</span>
|
|
460
|
+
<span class="cline-any cline-yes">1x</span>
|
|
354
461
|
<span class="cline-any cline-neutral"> </span>
|
|
355
462
|
<span class="cline-any cline-neutral"> </span>
|
|
356
463
|
<span class="cline-any cline-neutral"> </span>
|
|
357
|
-
<span class="cline-any cline-yes">
|
|
464
|
+
<span class="cline-any cline-yes">20x</span>
|
|
358
465
|
<span class="cline-any cline-no"> </span>
|
|
359
466
|
<span class="cline-any cline-neutral"> </span>
|
|
360
467
|
<span class="cline-any cline-neutral"> </span>
|
|
361
468
|
<span class="cline-any cline-neutral"> </span>
|
|
362
|
-
<span class="cline-any cline-yes">
|
|
363
|
-
<span class="cline-any cline-yes">
|
|
469
|
+
<span class="cline-any cline-yes">20x</span>
|
|
470
|
+
<span class="cline-any cline-yes">18x</span>
|
|
364
471
|
<span class="cline-any cline-neutral"> </span>
|
|
365
472
|
<span class="cline-any cline-neutral"> </span>
|
|
366
473
|
<span class="cline-any cline-neutral"> </span>
|
|
367
|
-
<span class="cline-any cline-yes">
|
|
474
|
+
<span class="cline-any cline-yes">20x</span>
|
|
368
475
|
<span class="cline-any cline-no"> </span>
|
|
369
476
|
<span class="cline-any cline-neutral"> </span>
|
|
370
477
|
<span class="cline-any cline-neutral"> </span>
|
|
371
478
|
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-yes">
|
|
479
|
+
<span class="cline-any cline-yes">20x</span>
|
|
373
480
|
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-yes">
|
|
481
|
+
<span class="cline-any cline-yes">20x</span>
|
|
375
482
|
<span class="cline-any cline-no"> </span>
|
|
376
483
|
<span class="cline-any cline-neutral"> </span>
|
|
377
484
|
<span class="cline-any cline-neutral"> </span>
|
|
378
|
-
<span class="cline-any cline-yes">
|
|
485
|
+
<span class="cline-any cline-yes">20x</span>
|
|
379
486
|
<span class="cline-any cline-neutral"> </span>
|
|
380
487
|
<span class="cline-any cline-neutral"> </span>
|
|
381
488
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -395,6 +502,37 @@
|
|
|
395
502
|
<span class="cline-any cline-neutral"> </span>
|
|
396
503
|
<span class="cline-any cline-neutral"> </span>
|
|
397
504
|
<span class="cline-any cline-neutral"> </span>
|
|
505
|
+
<span class="cline-any cline-no"> </span>
|
|
506
|
+
<span class="cline-any cline-no"> </span>
|
|
507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
508
|
+
<span class="cline-any cline-no"> </span>
|
|
509
|
+
<span class="cline-any cline-no"> </span>
|
|
510
|
+
<span class="cline-any cline-neutral"> </span>
|
|
511
|
+
<span class="cline-any cline-neutral"> </span>
|
|
512
|
+
<span class="cline-any cline-no"> </span>
|
|
513
|
+
<span class="cline-any cline-neutral"> </span>
|
|
514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
515
|
+
<span class="cline-any cline-neutral"> </span>
|
|
516
|
+
<span class="cline-any cline-neutral"> </span>
|
|
517
|
+
<span class="cline-any cline-neutral"> </span>
|
|
518
|
+
<span class="cline-any cline-neutral"> </span>
|
|
519
|
+
<span class="cline-any cline-neutral"> </span>
|
|
520
|
+
<span class="cline-any cline-no"> </span>
|
|
521
|
+
<span class="cline-any cline-no"> </span>
|
|
522
|
+
<span class="cline-any cline-no"> </span>
|
|
523
|
+
<span class="cline-any cline-no"> </span>
|
|
524
|
+
<span class="cline-any cline-neutral"> </span>
|
|
525
|
+
<span class="cline-any cline-neutral"> </span>
|
|
526
|
+
<span class="cline-any cline-neutral"> </span>
|
|
527
|
+
<span class="cline-any cline-no"> </span>
|
|
528
|
+
<span class="cline-any cline-neutral"> </span>
|
|
529
|
+
<span class="cline-any cline-neutral"> </span>
|
|
530
|
+
<span class="cline-any cline-neutral"> </span>
|
|
531
|
+
<span class="cline-any cline-neutral"> </span>
|
|
532
|
+
<span class="cline-any cline-no"> </span>
|
|
533
|
+
<span class="cline-any cline-neutral"> </span>
|
|
534
|
+
<span class="cline-any cline-neutral"> </span>
|
|
535
|
+
<span class="cline-any cline-neutral"> </span>
|
|
398
536
|
<span class="cline-any cline-yes">6x</span>
|
|
399
537
|
<span class="cline-any cline-yes">6x</span>
|
|
400
538
|
<span class="cline-any cline-yes">6x</span>
|
|
@@ -413,21 +551,21 @@
|
|
|
413
551
|
<span class="cline-any cline-neutral"> </span>
|
|
414
552
|
<span class="cline-any cline-neutral"> </span>
|
|
415
553
|
<span class="cline-any cline-neutral"> </span>
|
|
416
|
-
<span class="cline-any cline-yes">
|
|
417
|
-
<span class="cline-any cline-yes">
|
|
554
|
+
<span class="cline-any cline-yes">21x</span>
|
|
555
|
+
<span class="cline-any cline-yes">21x</span>
|
|
418
556
|
<span class="cline-any cline-no"> </span>
|
|
419
557
|
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-yes">
|
|
421
|
-
<span class="cline-any cline-yes">
|
|
422
|
-
<span class="cline-any cline-yes">
|
|
558
|
+
<span class="cline-any cline-yes">21x</span>
|
|
559
|
+
<span class="cline-any cline-yes">21x</span>
|
|
560
|
+
<span class="cline-any cline-yes">21x</span>
|
|
423
561
|
<span class="cline-any cline-yes">2x</span>
|
|
424
562
|
<span class="cline-any cline-yes">2x</span>
|
|
425
563
|
<span class="cline-any cline-neutral"> </span>
|
|
426
564
|
<span class="cline-any cline-neutral"> </span>
|
|
427
|
-
<span class="cline-any cline-yes">
|
|
565
|
+
<span class="cline-any cline-yes">21x</span>
|
|
428
566
|
<span class="cline-any cline-neutral"> </span>
|
|
429
|
-
<span class="cline-any cline-yes">
|
|
430
|
-
<span class="cline-any cline-yes">
|
|
567
|
+
<span class="cline-any cline-yes">16x</span>
|
|
568
|
+
<span class="cline-any cline-yes">16x</span>
|
|
431
569
|
<span class="cline-any cline-neutral"> </span>
|
|
432
570
|
<span class="cline-any cline-yes">6x</span>
|
|
433
571
|
<span class="cline-any cline-no"> </span>
|
|
@@ -436,9 +574,9 @@
|
|
|
436
574
|
<span class="cline-any cline-yes">6x</span>
|
|
437
575
|
<span class="cline-any cline-yes">6x</span>
|
|
438
576
|
<span class="cline-any cline-neutral"> </span>
|
|
439
|
-
<span class="cline-any cline-yes">
|
|
440
|
-
<span class="cline-any cline-yes">
|
|
441
|
-
<span class="cline-any cline-yes">
|
|
577
|
+
<span class="cline-any cline-yes">16x</span>
|
|
578
|
+
<span class="cline-any cline-yes">16x</span>
|
|
579
|
+
<span class="cline-any cline-yes">16x</span>
|
|
442
580
|
<span class="cline-any cline-yes">6x</span>
|
|
443
581
|
<span class="cline-any cline-yes">6x</span>
|
|
444
582
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -454,16 +592,16 @@
|
|
|
454
592
|
<span class="cline-any cline-yes">6x</span>
|
|
455
593
|
<span class="cline-any cline-neutral"> </span>
|
|
456
594
|
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-yes">
|
|
595
|
+
<span class="cline-any cline-yes">21x</span>
|
|
458
596
|
<span class="cline-any cline-neutral"> </span>
|
|
459
597
|
<span class="cline-any cline-neutral"> </span>
|
|
460
598
|
<span class="cline-any cline-neutral"> </span>
|
|
461
599
|
<span class="cline-any cline-yes">2x</span>
|
|
462
|
-
<span class="cline-any cline-yes">
|
|
463
|
-
<span class="cline-any cline-yes">
|
|
464
|
-
<span class="cline-any cline-yes">
|
|
465
|
-
<span class="cline-any cline-yes">
|
|
466
|
-
<span class="cline-any cline-yes">
|
|
600
|
+
<span class="cline-any cline-yes">17x</span>
|
|
601
|
+
<span class="cline-any cline-yes">17x</span>
|
|
602
|
+
<span class="cline-any cline-yes">17x</span>
|
|
603
|
+
<span class="cline-any cline-yes">17x</span>
|
|
604
|
+
<span class="cline-any cline-yes">15x</span>
|
|
467
605
|
<span class="cline-any cline-neutral"> </span>
|
|
468
606
|
<span class="cline-any cline-yes">2x</span>
|
|
469
607
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -475,6 +613,13 @@ const ScriptRunner = require("../utilities/scriptRunner")
|
|
|
475
613
|
const { integrations } = require("../integrations")
|
|
476
614
|
const { processStringSync } = require("@budibase/string-templates")
|
|
477
615
|
const { doInAppContext, getAppDB } = require("@budibase/backend-core/context")
|
|
616
|
+
const {
|
|
617
|
+
refreshOAuthToken,
|
|
618
|
+
updateUserOAuth,
|
|
619
|
+
} = require("@budibase/backend-core/auth")
|
|
620
|
+
const { user: userCache } = require("@budibase/backend-core/cache")
|
|
621
|
+
const { getGlobalIDFromUserMetadataID } = require("../db/utils")
|
|
622
|
+
|
|
478
623
|
const { isSQL } = require("../integrations/utils")
|
|
479
624
|
const {
|
|
480
625
|
enrichQueryFields,
|
|
@@ -492,29 +637,56 @@ class QueryRunner {
|
|
|
492
637
|
this.queryId = input.queryId
|
|
493
638
|
this.noRecursiveQuery = flags.noRecursiveQuery
|
|
494
639
|
this.cachedVariables = []
|
|
640
|
+
// Additional context items for enrichment
|
|
641
|
+
this.ctx = input.ctx
|
|
495
642
|
// allows the response from a query to be stored throughout this
|
|
496
643
|
// execution so that if it needs to be re-used for another variable
|
|
497
644
|
// it can be
|
|
498
645
|
this.queryResponse = {}
|
|
499
646
|
this.hasRerun = false
|
|
647
|
+
this.hasRefreshedOAuth = false
|
|
500
648
|
}
|
|
501
649
|
|
|
502
650
|
async execute() {
|
|
503
651
|
let { datasource, fields, queryVerb, transformer } = this
|
|
652
|
+
|
|
504
653
|
const Integration = integrations[datasource.source]
|
|
505
654
|
if (!Integration) {
|
|
506
655
|
throw "Integration type does not exist."
|
|
507
656
|
}
|
|
657
|
+
|
|
658
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (datasource.config.authConfigs) {
|
|
659
|
+
<span class="cstat-no" title="statement not covered" > datasource.config.authConfigs = datasource.config.authConfigs.map(</span>
|
|
660
|
+
<span class="fstat-no" title="function not covered" > co</span>nfig => {
|
|
661
|
+
<span class="cstat-no" title="statement not covered" > return enrichQueryFields(config, this.ctx)</span>
|
|
662
|
+
}
|
|
663
|
+
)
|
|
664
|
+
}
|
|
665
|
+
|
|
508
666
|
const integration = new Integration(datasource.config)
|
|
509
667
|
|
|
510
668
|
// pre-query, make sure datasource variables are added to parameters
|
|
511
669
|
const parameters = await this.addDatasourceVariables()
|
|
670
|
+
|
|
671
|
+
// Enrich the parameters with the addition context items.
|
|
672
|
+
// 'user' is now a reserved variable key in mapping parameters
|
|
673
|
+
const enrichedParameters = enrichQueryFields(parameters, this.ctx)
|
|
674
|
+
const enrichedContext = { ...enrichedParameters, ...this.ctx }
|
|
675
|
+
|
|
676
|
+
// Parse global headers
|
|
677
|
+
if (datasource.config.defaultHeaders) {
|
|
678
|
+
datasource.config.defaultHeaders = enrichQueryFields(
|
|
679
|
+
datasource.config.defaultHeaders,
|
|
680
|
+
enrichedContext
|
|
681
|
+
)
|
|
682
|
+
}
|
|
683
|
+
|
|
512
684
|
let query
|
|
513
685
|
// handle SQL injections by interpolating the variables
|
|
514
686
|
if (isSQL(datasource)) {
|
|
515
|
-
query = interpolateSQL(fields,
|
|
687
|
+
query = interpolateSQL(fields, enrichedParameters, integration)
|
|
516
688
|
} else {
|
|
517
|
-
query = enrichQueryFields(fields,
|
|
689
|
+
query = enrichQueryFields(fields, enrichedContext)
|
|
518
690
|
}
|
|
519
691
|
|
|
520
692
|
// Add pagination values for REST queries
|
|
@@ -538,20 +710,24 @@ class QueryRunner {
|
|
|
538
710
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (transformer) {
|
|
539
711
|
const runner = <span class="cstat-no" title="statement not covered" >new ScriptRunner(transformer, {</span>
|
|
540
712
|
data: rows,
|
|
541
|
-
params:
|
|
713
|
+
params: enrichedParameters,
|
|
542
714
|
})
|
|
543
715
|
<span class="cstat-no" title="statement not covered" > rows = runner.execute()</span>
|
|
544
716
|
}
|
|
545
717
|
|
|
546
718
|
// if the request fails we retry once, invalidating the cached value
|
|
547
|
-
if (
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
719
|
+
if (info && info.code >= 400 && !this.hasRerun) {
|
|
720
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
721
|
+
this.ctx.user?.provider &&
|
|
722
|
+
<span class="branch-1 cbranch-no" title="branch not covered" > info.code === 401 </span>&&
|
|
723
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > !this.hasRefreshedOAuth</span>
|
|
724
|
+
) {
|
|
725
|
+
<span class="cstat-no" title="statement not covered" > await this.refreshOAuth2(this.ctx)</span>
|
|
726
|
+
// Attempt to refresh the access token from the provider
|
|
727
|
+
<span class="cstat-no" title="statement not covered" > this.hasRefreshedOAuth = true</span>
|
|
728
|
+
}
|
|
729
|
+
|
|
553
730
|
this.hasRerun = true
|
|
554
|
-
// invalidate the cache value
|
|
555
731
|
await threadUtils.invalidateDynamicVariables(this.cachedVariables)
|
|
556
732
|
return this.execute()
|
|
557
733
|
}
|
|
@@ -596,6 +772,37 @@ class QueryRunner {
|
|
|
596
772
|
{ noRecursiveQuery: true }
|
|
597
773
|
).execute()
|
|
598
774
|
}
|
|
775
|
+
|
|
776
|
+
<span class="fstat-no" title="function not covered" > as</span>ync refreshOAuth2(ctx) {
|
|
777
|
+
const { oauth2, providerType, _id } = <span class="cstat-no" title="statement not covered" >ctx.user</span>
|
|
778
|
+
const { configId } = <span class="cstat-no" title="statement not covered" >ctx.auth</span>
|
|
779
|
+
|
|
780
|
+
<span class="cstat-no" title="statement not covered" > if (!providerType || !oauth2?.refreshToken) {</span>
|
|
781
|
+
<span class="cstat-no" title="statement not covered" > throw new Error("No refresh token found for authenticated user")</span>
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
const resp = <span class="cstat-no" title="statement not covered" >await refreshOAuthToken(</span>
|
|
785
|
+
oauth2.refreshToken,
|
|
786
|
+
providerType,
|
|
787
|
+
configId
|
|
788
|
+
)
|
|
789
|
+
|
|
790
|
+
// Refresh session flow. Should be in same location as refreshOAuthToken
|
|
791
|
+
// There are several other properties available in 'resp'
|
|
792
|
+
<span class="cstat-no" title="statement not covered" > if (!resp.err) {</span>
|
|
793
|
+
const globalUserId = <span class="cstat-no" title="statement not covered" >getGlobalIDFromUserMetadataID(_id)</span>
|
|
794
|
+
<span class="cstat-no" title="statement not covered" > await updateUserOAuth(globalUserId, resp)</span>
|
|
795
|
+
<span class="cstat-no" title="statement not covered" > this.ctx.user = await userCache.getUser(globalUserId)</span>
|
|
796
|
+
} else {
|
|
797
|
+
// In this event the user may have oAuth issues that
|
|
798
|
+
// could require re-authenticating with their provider.
|
|
799
|
+
<span class="cstat-no" title="statement not covered" > throw new Error(</span>
|
|
800
|
+
"OAuth2 access token could not be refreshed: " + resp.err.toString()
|
|
801
|
+
)
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
<span class="cstat-no" title="statement not covered" > return resp</span>
|
|
805
|
+
}
|
|
599
806
|
|
|
600
807
|
async getDynamicVariable(variable) {
|
|
601
808
|
let { parameters } = this
|
|
@@ -679,7 +886,7 @@ module.exports = (input, callback) => {
|
|
|
679
886
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
680
887
|
Code coverage generated by
|
|
681
888
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
682
|
-
at
|
|
889
|
+
at Wed Jul 06 2022 12:36:17 GMT+0000 (Coordinated Universal Time)
|
|
683
890
|
</div>
|
|
684
891
|
<script src="../prettify.js"></script>
|
|
685
892
|
<script>
|
|
@@ -200,18 +200,18 @@
|
|
|
200
200
|
<span class="cline-any cline-neutral"> </span>
|
|
201
201
|
<span class="cline-any cline-neutral"> </span>
|
|
202
202
|
<span class="cline-any cline-yes">44x</span>
|
|
203
|
-
<span class="cline-any cline-yes">
|
|
203
|
+
<span class="cline-any cline-yes">21x</span>
|
|
204
204
|
<span class="cline-any cline-no"> </span>
|
|
205
205
|
<span class="cline-any cline-no"> </span>
|
|
206
206
|
<span class="cline-any cline-neutral"> </span>
|
|
207
207
|
<span class="cline-any cline-no"> </span>
|
|
208
208
|
<span class="cline-any cline-neutral"> </span>
|
|
209
209
|
<span class="cline-any cline-neutral"> </span>
|
|
210
|
-
<span class="cline-any cline-yes">
|
|
210
|
+
<span class="cline-any cline-yes">21x</span>
|
|
211
211
|
<span class="cline-any cline-neutral"> </span>
|
|
212
212
|
<span class="cline-any cline-neutral"> </span>
|
|
213
213
|
<span class="cline-any cline-yes">44x</span>
|
|
214
|
-
<span class="cline-any cline-yes">
|
|
214
|
+
<span class="cline-any cline-yes">21x</span>
|
|
215
215
|
<span class="cline-any cline-neutral"> </span>
|
|
216
216
|
<span class="cline-any cline-neutral"> </span>
|
|
217
217
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -304,7 +304,7 @@ exports.hasExtraData = response => {
|
|
|
304
304
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
305
305
|
Code coverage generated by
|
|
306
306
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
307
|
-
at
|
|
307
|
+
at Wed Jul 06 2022 12:36:17 GMT+0000 (Coordinated Universal Time)
|
|
308
308
|
</div>
|
|
309
309
|
<script src="../prettify.js"></script>
|
|
310
310
|
<script>
|
|
@@ -79,7 +79,7 @@ module.exports.budibaseTempDir = budibaseTempDir
|
|
|
79
79
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
80
80
|
Code coverage generated by
|
|
81
81
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
82
|
-
at
|
|
82
|
+
at Wed Jul 06 2022 12:36:17 GMT+0000 (Coordinated Universal Time)
|
|
83
83
|
</div>
|
|
84
84
|
<script src="../prettify.js"></script>
|
|
85
85
|
<script>
|
|
@@ -136,7 +136,7 @@ exports.resolve = function (...args) {
|
|
|
136
136
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
137
137
|
Code coverage generated by
|
|
138
138
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
139
|
-
at
|
|
139
|
+
at Wed Jul 06 2022 12:36:17 GMT+0000 (Coordinated Universal Time)
|
|
140
140
|
</div>
|
|
141
141
|
<script src="../prettify.js"></script>
|
|
142
142
|
<script>
|
|
@@ -502,7 +502,7 @@ module.exports = {
|
|
|
502
502
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
503
503
|
Code coverage generated by
|
|
504
504
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
505
|
-
at
|
|
505
|
+
at Wed Jul 06 2022 12:36:17 GMT+0000 (Coordinated Universal Time)
|
|
506
506
|
</div>
|
|
507
507
|
<script src="../prettify.js"></script>
|
|
508
508
|
<script>
|