@budibase/server 0.9.188 → 0.9.190-alpha.10
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/Dockerfile +7 -1
- package/__mocks__/mssql.ts +1 -1
- package/__mocks__/oracledb.ts +31 -0
- package/__mocks__/pg.ts +3 -0
- package/builder/assets/bb-space-man.5be51a45.svg +290 -0
- package/builder/assets/index.2bd3b345.js +1316 -0
- package/builder/assets/index.4fb3f887.css +1 -0
- package/builder/assets/oracle.66592424.png +0 -0
- package/builder/assets/vendor.470042a4.js +152 -0
- package/builder/assets/vendor.5e1fe644.css +1 -0
- package/builder/index.html +4 -4
- package/coverage/clover.xml +1608 -1191
- package/coverage/coverage-final.json +97 -93
- package/coverage/lcov-report/api/controllers/analytics.js.html +2 -2
- package/coverage/lcov-report/api/controllers/apikeys.js.html +2 -2
- package/coverage/lcov-report/api/controllers/application.js.html +113 -80
- package/coverage/lcov-report/api/controllers/auth.js.html +19 -10
- package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
- 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 +4 -4
- package/coverage/lcov-report/api/controllers/datasource.js.html +245 -41
- package/coverage/lcov-report/api/controllers/dev.js.html +16 -7
- package/coverage/lcov-report/api/controllers/hosting.js.html +10 -10
- package/coverage/lcov-report/api/controllers/index.html +98 -98
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
- package/coverage/lcov-report/api/controllers/metadata.js.html +3 -3
- package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
- package/coverage/lcov-report/api/controllers/query.js.html +79 -229
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +29 -29
- package/coverage/lcov-report/api/controllers/row/external.js.html +17 -8
- package/coverage/lcov-report/api/controllers/row/index.html +26 -26
- package/coverage/lcov-report/api/controllers/row/index.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/internal.js.html +9 -9
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/utils.js.html +21 -30
- package/coverage/lcov-report/api/controllers/screen.js.html +3 -3
- package/coverage/lcov-report/api/controllers/script.js.html +3 -3
- package/coverage/lcov-report/api/controllers/table/external.js.html +1001 -0
- package/coverage/lcov-report/api/controllers/table/index.html +56 -26
- package/coverage/lcov-report/api/controllers/table/index.js.html +80 -350
- package/coverage/lcov-report/api/controllers/table/internal.js.html +533 -0
- package/coverage/lcov-report/api/controllers/table/utils.js.html +175 -52
- package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
- package/coverage/lcov-report/api/controllers/user.js.html +390 -33
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +19 -4
- package/coverage/lcov-report/api/controllers/view/index.html +22 -22
- package/coverage/lcov-report/api/controllers/view/index.js.html +52 -13
- package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -3
- package/coverage/lcov-report/api/controllers/webhook.js.html +4 -4
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +5 -5
- 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/application.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 +2 -2
- package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +4 -4
- package/coverage/lcov-report/api/routes/index.js.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/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +5 -2
- 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/row.js.html +536 -2
- 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/static.js.html +2 -2
- package/coverage/lcov-report/api/routes/table.js.html +464 -2
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +17 -2
- 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 +2 -2
- package/coverage/lcov-report/automations/automationUtils.js.html +4 -4
- package/coverage/lcov-report/automations/bullboard.js.html +71 -20
- package/coverage/lcov-report/automations/index.html +35 -50
- package/coverage/lcov-report/automations/index.js.html +2 -2
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +3 -3
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -3
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +14 -14
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +3 -3
- package/coverage/lcov-report/automations/steps/queryRows.js.html +3 -3
- 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 +7 -7
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/triggers.js.html +22 -10
- package/coverage/lcov-report/automations/utils.js.html +46 -16
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +87 -21
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +2 -2
- package/coverage/lcov-report/db/client.js.html +2 -2
- package/coverage/lcov-report/db/inMemoryView.js.html +2 -2
- package/coverage/lcov-report/db/index.html +2 -2
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +6 -6
- package/coverage/lcov-report/db/linkedRows/index.html +10 -10
- package/coverage/lcov-report/db/linkedRows/index.js.html +5 -5
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +6 -6
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +75 -75
- package/coverage/lcov-report/events/AutomationEmitter.js.html +6 -6
- package/coverage/lcov-report/events/index.html +6 -6
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +5 -5
- package/coverage/lcov-report/index.html +106 -91
- 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 +2 -2
- package/coverage/lcov-report/middleware/authorized.js.html +19 -16
- package/coverage/lcov-report/middleware/builder.js.html +22 -13
- package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
- package/coverage/lcov-report/middleware/index.html +23 -23
- package/coverage/lcov-report/middleware/joi-validator.js.html +2 -2
- package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
- package/coverage/lcov-report/middleware/selfhost.js.html +2 -2
- package/coverage/lcov-report/middleware/usageQuota.js.html +4 -4
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/{automations/thread.js.html → threads/automation.js.html} +90 -33
- package/coverage/lcov-report/threads/index.html +141 -0
- package/coverage/lcov-report/threads/index.js.html +278 -0
- package/coverage/lcov-report/threads/query.js.html +278 -0
- package/coverage/lcov-report/utilities/bcrypt.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 +144 -15
- package/coverage/lcov-report/utilities/global.js.html +38 -23
- package/coverage/lcov-report/utilities/index.html +48 -48
- package/coverage/lcov-report/utilities/index.js.html +49 -16
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +31 -10
- package/coverage/lcov-report/utilities/queue/index.html +14 -14
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +2 -2
- package/coverage/lcov-report/utilities/rowProcessor/index.html +4 -4
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +2 -2
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +3 -3
- package/coverage/lcov-report/utilities/scriptRunner.js.html +16 -7
- package/coverage/lcov-report/utilities/security.js.html +3 -3
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
- package/coverage/lcov.info +2687 -1942
- package/dist/api/controllers/application.js +16 -6
- package/dist/api/controllers/auth.js +3 -3
- package/dist/api/controllers/datasource.js +67 -16
- package/dist/api/controllers/deploy/index.js +2 -0
- package/dist/api/controllers/dev.js +4 -1
- package/dist/api/controllers/query.js +32 -62
- package/dist/api/controllers/row/ExternalRequest.js +83 -36
- package/dist/api/controllers/row/external.js +3 -1
- package/dist/api/controllers/row/utils.js +6 -12
- package/dist/api/controllers/table/external.js +249 -0
- package/dist/api/controllers/table/index.js +49 -123
- package/dist/api/controllers/table/internal.js +146 -0
- package/dist/api/controllers/table/utils.js +62 -28
- package/dist/api/controllers/user.js +123 -11
- package/dist/api/controllers/view/exporters.js +4 -0
- package/dist/api/controllers/view/index.js +14 -2
- package/dist/api/routes/query.js +1 -1
- package/dist/api/routes/row.js +178 -0
- package/dist/api/routes/table.js +150 -1
- package/dist/api/routes/user.js +2 -1
- package/dist/app.js +2 -11
- package/dist/automations/bullboard.js +37 -10
- package/dist/automations/triggers.js +7 -3
- package/dist/automations/utils.js +11 -2
- package/dist/constants/index.js +19 -0
- package/dist/definitions/datasource.js +17 -1
- package/dist/environment.js +13 -0
- package/dist/integrations/base/IntegrationBase.js +2 -0
- package/dist/integrations/base/datasourcePlus.js +2 -0
- package/dist/integrations/base/sql.js +350 -177
- package/dist/integrations/base/sqlTable.js +143 -0
- package/dist/integrations/base/utils.js +30 -0
- package/dist/integrations/index.js +6 -0
- package/dist/integrations/microsoftSqlServer.js +117 -9
- package/dist/integrations/mysql.js +16 -85
- package/dist/integrations/oracle.js +367 -0
- package/dist/integrations/postgres.js +35 -28
- package/dist/integrations/utils.js +71 -9
- package/dist/middleware/authorized.js +2 -1
- package/dist/middleware/builder.js +4 -1
- package/dist/package.json +18 -9
- package/dist/tests/utilities/TestConfiguration.js +2 -1
- package/dist/{automations/thread.js → threads/automation.js} +26 -8
- package/dist/threads/index.js +64 -0
- package/dist/threads/query.js +64 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/csvParser.js +46 -5
- package/dist/utilities/global.js +6 -2
- package/dist/utilities/index.js +11 -0
- package/dist/utilities/queue/inMemoryQueue.js +8 -0
- package/dist/utilities/scriptRunner.js +4 -1
- package/package.json +19 -10
- package/scripts/dev/manage.js +1 -0
- package/scripts/docs/README.md +31 -0
- package/scripts/docs/generate.js +74 -0
- package/scripts/docs/toSwagger.js +320 -0
- package/scripts/integrations/mssql/data/Dockerfile +9 -0
- package/scripts/integrations/mssql/data/entrypoint.sh +24 -0
- package/scripts/integrations/mssql/data/setup.sql +54 -0
- package/scripts/integrations/mssql/docker-compose.yaml +12 -0
- package/scripts/integrations/mssql/reset.sh +3 -0
- package/scripts/integrations/oracle/docker-compose.yml +19 -0
- package/scripts/integrations/oracle/instantclient/linux/x86-64/basiclite-21.4.zip +0 -0
- package/scripts/integrations/oracle/instantclient/linux/x86-64/install.sh +23 -0
- package/scripts/integrations/oracle/oracle.md +90 -0
- package/scripts/integrations/postgres/docker-compose.yml +3 -3
- package/scripts/likeCypress.ts +33 -0
- package/src/api/controllers/application.js +18 -7
- package/src/api/controllers/auth.js +3 -0
- package/src/api/controllers/datasource.js +84 -16
- package/src/api/controllers/deploy/index.js +2 -0
- package/src/api/controllers/dev.js +4 -1
- package/src/api/controllers/query.js +35 -85
- package/src/api/controllers/row/ExternalRequest.ts +99 -38
- package/src/api/controllers/row/external.js +4 -1
- package/src/api/controllers/row/utils.js +8 -11
- package/src/api/controllers/table/external.js +307 -0
- package/src/api/controllers/table/index.js +47 -137
- package/src/api/controllers/table/internal.js +151 -0
- package/src/api/controllers/table/utils.js +74 -33
- package/src/api/controllers/user.js +132 -13
- package/src/api/controllers/view/exporters.js +5 -0
- package/src/api/controllers/view/index.js +15 -2
- package/src/api/routes/query.js +1 -0
- package/src/api/routes/row.js +178 -0
- package/src/api/routes/table.js +154 -0
- package/src/api/routes/tests/application.spec.js +0 -2
- package/src/api/routes/tests/datasource.spec.js +2 -2
- package/src/api/routes/tests/misc.spec.js +5 -1
- package/src/api/routes/tests/query.spec.js +38 -9
- package/src/api/routes/tests/screen.spec.js +1 -1
- package/src/api/routes/user.js +5 -0
- package/src/app.ts +2 -10
- package/src/automations/bullboard.js +28 -11
- package/src/automations/tests/automation.spec.js +3 -4
- package/src/automations/triggers.js +7 -3
- package/src/automations/utils.js +12 -2
- package/src/constants/index.js +22 -0
- package/src/definitions/common.ts +7 -1
- package/src/definitions/datasource.ts +21 -3
- package/src/environment.js +15 -0
- package/src/integrations/airtable.ts +2 -1
- package/src/integrations/arangodb.ts +2 -1
- package/src/integrations/base/IntegrationBase.ts +6 -0
- package/src/integrations/base/datasourcePlus.ts +9 -0
- package/src/integrations/base/sql.ts +375 -218
- package/src/integrations/base/sqlTable.ts +180 -0
- package/src/integrations/base/utils.ts +22 -0
- package/src/integrations/couchdb.ts +2 -1
- package/src/integrations/dynamodb.ts +2 -1
- package/src/integrations/elasticsearch.ts +2 -1
- package/src/integrations/index.ts +7 -0
- package/src/integrations/microsoftSqlServer.ts +145 -13
- package/src/integrations/mongodb.ts +2 -1
- package/src/integrations/mysql.ts +23 -95
- package/src/integrations/oracle.ts +464 -0
- package/src/integrations/postgres.ts +45 -35
- package/src/integrations/rest.ts +2 -1
- package/src/integrations/s3.ts +2 -1
- package/src/integrations/tests/microsoftSqlServer.spec.js +22 -15
- package/src/integrations/tests/oracle.spec.js +94 -0
- package/src/integrations/tests/postgres.spec.js +4 -0
- package/src/integrations/utils.ts +78 -8
- package/src/middleware/authorized.js +2 -1
- package/src/middleware/builder.js +4 -1
- package/src/tests/utilities/TestConfiguration.js +2 -1
- package/src/{automations/thread.js → threads/automation.js} +27 -8
- package/src/threads/index.js +66 -0
- package/src/threads/query.js +66 -0
- package/src/utilities/csvParser.js +48 -5
- package/src/utilities/global.js +7 -2
- package/src/utilities/index.js +11 -0
- package/src/utilities/queue/inMemoryQueue.js +7 -0
- package/src/utilities/scriptRunner.js +4 -1
- package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -6
- package/src/utilities/tests/csvParser.spec.js +3 -0
- package/tsconfig.json +1 -1
- package/builder/assets/index.550fdba7.js +0 -201
- package/builder/assets/index.7469e1e4.css +0 -29
- package/builder/assets/vendor.278a305c.js +0 -9
- package/builder/assets/vendor.d75d5eb7.css +0 -1
|
@@ -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">84.5% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>60/71</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">48% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>12/25</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>9/9</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">84.28% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>59/70</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
57
|
</div>
|
|
58
|
-
<div class='status-line
|
|
58
|
+
<div class='status-line high'></div>
|
|
59
59
|
<pre><table class="coverage">
|
|
60
60
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
61
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -215,115 +215,28 @@
|
|
|
215
215
|
<a name='L156'></a><a href='#L156'>156</a>
|
|
216
216
|
<a name='L157'></a><a href='#L157'>157</a>
|
|
217
217
|
<a name='L158'></a><a href='#L158'>158</a>
|
|
218
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
219
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
220
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
221
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
222
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
223
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
224
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
225
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
226
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
227
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
228
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
229
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
230
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
231
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
232
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
233
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
234
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
235
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
236
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
237
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
238
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
239
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
240
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
241
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
242
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
243
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
244
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
245
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
246
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
247
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
248
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
249
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
250
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
251
|
-
<a name='L192'></a><a href='#L192'>192</a>
|
|
252
|
-
<a name='L193'></a><a href='#L193'>193</a>
|
|
253
|
-
<a name='L194'></a><a href='#L194'>194</a>
|
|
254
|
-
<a name='L195'></a><a href='#L195'>195</a>
|
|
255
|
-
<a name='L196'></a><a href='#L196'>196</a>
|
|
256
|
-
<a name='L197'></a><a href='#L197'>197</a>
|
|
257
|
-
<a name='L198'></a><a href='#L198'>198</a>
|
|
258
|
-
<a name='L199'></a><a href='#L199'>199</a>
|
|
259
|
-
<a name='L200'></a><a href='#L200'>200</a>
|
|
260
|
-
<a name='L201'></a><a href='#L201'>201</a>
|
|
261
|
-
<a name='L202'></a><a href='#L202'>202</a>
|
|
262
|
-
<a name='L203'></a><a href='#L203'>203</a>
|
|
263
|
-
<a name='L204'></a><a href='#L204'>204</a>
|
|
264
|
-
<a name='L205'></a><a href='#L205'>205</a>
|
|
265
|
-
<a name='L206'></a><a href='#L206'>206</a>
|
|
266
|
-
<a name='L207'></a><a href='#L207'>207</a>
|
|
267
|
-
<a name='L208'></a><a href='#L208'>208</a>
|
|
268
|
-
<a name='L209'></a><a href='#L209'>209</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
269
|
-
<span class="cline-any cline-yes">34x</span>
|
|
218
|
+
<a name='L159'></a><a href='#L159'>159</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
270
219
|
<span class="cline-any cline-yes">34x</span>
|
|
220
|
+
<span class="cline-any cline-neutral"> </span>
|
|
221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
271
224
|
<span class="cline-any cline-yes">34x</span>
|
|
272
225
|
<span class="cline-any cline-yes">34x</span>
|
|
273
226
|
<span class="cline-any cline-yes">34x</span>
|
|
227
|
+
<span class="cline-any cline-neutral"> </span>
|
|
274
228
|
<span class="cline-any cline-yes">34x</span>
|
|
275
229
|
<span class="cline-any cline-neutral"> </span>
|
|
276
230
|
<span class="cline-any cline-neutral"> </span>
|
|
277
231
|
<span class="cline-any cline-neutral"> </span>
|
|
232
|
+
<span class="cline-any cline-yes">5x</span>
|
|
233
|
+
<span class="cline-any cline-yes">5x</span>
|
|
234
|
+
<span class="cline-any cline-yes">5x</span>
|
|
278
235
|
<span class="cline-any cline-yes">4x</span>
|
|
279
236
|
<span class="cline-any cline-yes">4x</span>
|
|
280
|
-
<span class="cline-any cline-yes">4x</span>
|
|
281
|
-
<span class="cline-any cline-yes">3x</span>
|
|
282
|
-
<span class="cline-any cline-yes">3x</span>
|
|
283
|
-
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
285
|
-
<span class="cline-any cline-yes">4x</span>
|
|
286
237
|
<span class="cline-any cline-neutral"> </span>
|
|
287
238
|
<span class="cline-any cline-neutral"> </span>
|
|
288
|
-
<span class="cline-any cline-
|
|
289
|
-
<span class="cline-any cline-yes">2x</span>
|
|
290
|
-
<span class="cline-any cline-no"> </span>
|
|
291
|
-
<span class="cline-any cline-no"> </span>
|
|
292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
293
|
-
<span class="cline-any cline-no"> </span>
|
|
294
|
-
<span class="cline-any cline-neutral"> </span>
|
|
295
|
-
<span class="cline-any cline-neutral"> </span>
|
|
296
|
-
<span class="cline-any cline-yes">2x</span>
|
|
297
|
-
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-neutral"> </span>
|
|
299
|
-
<span class="cline-any cline-neutral"> </span>
|
|
300
|
-
<span class="cline-any cline-neutral"> </span>
|
|
301
|
-
<span class="cline-any cline-neutral"> </span>
|
|
302
|
-
<span class="cline-any cline-neutral"> </span>
|
|
303
|
-
<span class="cline-any cline-neutral"> </span>
|
|
304
|
-
<span class="cline-any cline-neutral"> </span>
|
|
305
|
-
<span class="cline-any cline-yes">2x</span>
|
|
306
|
-
<span class="cline-any cline-neutral"> </span>
|
|
307
|
-
<span class="cline-any cline-neutral"> </span>
|
|
308
|
-
<span class="cline-any cline-yes">2x</span>
|
|
309
|
-
<span class="cline-any cline-no"> </span>
|
|
310
|
-
<span class="cline-any cline-no"> </span>
|
|
311
|
-
<span class="cline-any cline-neutral"> </span>
|
|
312
|
-
<span class="cline-any cline-neutral"> </span>
|
|
313
|
-
<span class="cline-any cline-neutral"> </span>
|
|
314
|
-
<span class="cline-any cline-yes">2x</span>
|
|
315
|
-
<span class="cline-any cline-no"> </span>
|
|
316
|
-
<span class="cline-any cline-neutral"> </span>
|
|
317
|
-
<span class="cline-any cline-neutral"> </span>
|
|
318
|
-
<span class="cline-any cline-neutral"> </span>
|
|
319
|
-
<span class="cline-any cline-yes">2x</span>
|
|
320
|
-
<span class="cline-any cline-no"> </span>
|
|
321
|
-
<span class="cline-any cline-neutral"> </span>
|
|
322
|
-
<span class="cline-any cline-neutral"> </span>
|
|
323
|
-
<span class="cline-any cline-neutral"> </span>
|
|
324
|
-
<span class="cline-any cline-yes">2x</span>
|
|
325
|
-
<span class="cline-any cline-neutral"> </span>
|
|
326
|
-
<span class="cline-any cline-yes">2x</span>
|
|
239
|
+
<span class="cline-any cline-yes">5x</span>
|
|
327
240
|
<span class="cline-any cline-neutral"> </span>
|
|
328
241
|
<span class="cline-any cline-neutral"> </span>
|
|
329
242
|
<span class="cline-any cline-yes">34x</span>
|
|
@@ -338,25 +251,25 @@
|
|
|
338
251
|
<span class="cline-any cline-neutral"> </span>
|
|
339
252
|
<span class="cline-any cline-neutral"> </span>
|
|
340
253
|
<span class="cline-any cline-yes">34x</span>
|
|
341
|
-
<span class="cline-any cline-yes">
|
|
342
|
-
<span class="cline-any cline-yes">
|
|
254
|
+
<span class="cline-any cline-yes">20x</span>
|
|
255
|
+
<span class="cline-any cline-yes">20x</span>
|
|
343
256
|
<span class="cline-any cline-neutral"> </span>
|
|
344
|
-
<span class="cline-any cline-yes">
|
|
345
|
-
<span class="cline-any cline-yes">
|
|
257
|
+
<span class="cline-any cline-yes">20x</span>
|
|
258
|
+
<span class="cline-any cline-yes">20x</span>
|
|
346
259
|
<span class="cline-any cline-neutral"> </span>
|
|
347
260
|
<span class="cline-any cline-neutral"> </span>
|
|
348
|
-
<span class="cline-any cline-yes">
|
|
349
|
-
<span class="cline-any cline-yes">
|
|
261
|
+
<span class="cline-any cline-yes">20x</span>
|
|
262
|
+
<span class="cline-any cline-yes">20x</span>
|
|
350
263
|
<span class="cline-any cline-neutral"> </span>
|
|
351
|
-
<span class="cline-any cline-yes">
|
|
352
|
-
<span class="cline-any cline-yes">
|
|
264
|
+
<span class="cline-any cline-yes">20x</span>
|
|
265
|
+
<span class="cline-any cline-yes">20x</span>
|
|
353
266
|
<span class="cline-any cline-neutral"> </span>
|
|
354
267
|
<span class="cline-any cline-neutral"> </span>
|
|
355
268
|
<span class="cline-any cline-neutral"> </span>
|
|
356
|
-
<span class="cline-any cline-yes">
|
|
269
|
+
<span class="cline-any cline-yes">4x</span>
|
|
357
270
|
<span class="cline-any cline-neutral"> </span>
|
|
358
271
|
<span class="cline-any cline-neutral"> </span>
|
|
359
|
-
<span class="cline-any cline-yes">
|
|
272
|
+
<span class="cline-any cline-yes">4x</span>
|
|
360
273
|
<span class="cline-any cline-no"> </span>
|
|
361
274
|
<span class="cline-any cline-no"> </span>
|
|
362
275
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -367,11 +280,13 @@
|
|
|
367
280
|
<span class="cline-any cline-neutral"> </span>
|
|
368
281
|
<span class="cline-any cline-no"> </span>
|
|
369
282
|
<span class="cline-any cline-neutral"> </span>
|
|
283
|
+
<span class="cline-any cline-neutral"> </span>
|
|
284
|
+
<span class="cline-any cline-neutral"> </span>
|
|
370
285
|
<span class="cline-any cline-no"> </span>
|
|
371
286
|
<span class="cline-any cline-neutral"> </span>
|
|
372
287
|
<span class="cline-any cline-neutral"> </span>
|
|
373
288
|
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-yes">
|
|
289
|
+
<span class="cline-any cline-yes">4x</span>
|
|
375
290
|
<span class="cline-any cline-neutral"> </span>
|
|
376
291
|
<span class="cline-any cline-neutral"> </span>
|
|
377
292
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -388,19 +303,18 @@
|
|
|
388
303
|
<span class="cline-any cline-no"> </span>
|
|
389
304
|
<span class="cline-any cline-neutral"> </span>
|
|
390
305
|
<span class="cline-any cline-neutral"> </span>
|
|
391
|
-
<span class="cline-any cline-yes">
|
|
306
|
+
<span class="cline-any cline-yes">4x</span>
|
|
392
307
|
<span class="cline-any cline-neutral"> </span>
|
|
393
308
|
<span class="cline-any cline-neutral"> </span>
|
|
394
309
|
<span class="cline-any cline-yes">34x</span>
|
|
395
|
-
<span class="cline-any cline-yes">
|
|
396
|
-
<span class="cline-any cline-yes">
|
|
310
|
+
<span class="cline-any cline-yes">3x</span>
|
|
311
|
+
<span class="cline-any cline-yes">3x</span>
|
|
397
312
|
<span class="cline-any cline-neutral"> </span>
|
|
398
|
-
<span class="cline-any cline-yes">
|
|
399
|
-
<span class="cline-any cline-yes">1x</span>
|
|
313
|
+
<span class="cline-any cline-yes">3x</span>
|
|
400
314
|
<span class="cline-any cline-yes">1x</span>
|
|
401
315
|
<span class="cline-any cline-yes">1x</span>
|
|
402
316
|
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-yes">
|
|
317
|
+
<span class="cline-any cline-yes">3x</span>
|
|
404
318
|
<span class="cline-any cline-neutral"> </span>
|
|
405
319
|
<span class="cline-any cline-neutral"> </span>
|
|
406
320
|
<span class="cline-any cline-yes">34x</span>
|
|
@@ -409,16 +323,10 @@
|
|
|
409
323
|
<span class="cline-any cline-yes">2x</span>
|
|
410
324
|
<span class="cline-any cline-neutral"> </span>
|
|
411
325
|
<span class="cline-any cline-yes">2x</span>
|
|
412
|
-
<span class="cline-any cline-neutral"> </span>
|
|
413
326
|
<span class="cline-any cline-yes">2x</span>
|
|
414
|
-
<span class="cline-any cline-yes">1x</span>
|
|
415
|
-
<span class="cline-any cline-neutral"> </span>
|
|
416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
417
|
-
<span class="cline-any cline-yes">1x</span>
|
|
418
|
-
<span class="cline-any cline-yes">1x</span>
|
|
419
|
-
<span class="cline-any cline-yes">1x</span>
|
|
420
327
|
<span class="cline-any cline-neutral"> </span>
|
|
421
|
-
<span class="cline-any cline-yes">
|
|
328
|
+
<span class="cline-any cline-yes">2x</span>
|
|
329
|
+
<span class="cline-any cline-yes">2x</span>
|
|
422
330
|
<span class="cline-any cline-neutral"> </span>
|
|
423
331
|
<span class="cline-any cline-neutral"> </span>
|
|
424
332
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -431,7 +339,6 @@
|
|
|
431
339
|
<span class="cline-any cline-neutral"> </span>
|
|
432
340
|
<span class="cline-any cline-neutral"> </span>
|
|
433
341
|
<span class="cline-any cline-yes">1x</span>
|
|
434
|
-
<span class="cline-any cline-no"> </span>
|
|
435
342
|
<span class="cline-any cline-neutral"> </span>
|
|
436
343
|
<span class="cline-any cline-neutral"> </span>
|
|
437
344
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -443,18 +350,12 @@
|
|
|
443
350
|
<span class="cline-any cline-neutral"> </span>
|
|
444
351
|
<span class="cline-any cline-yes">2x</span>
|
|
445
352
|
<span class="cline-any cline-neutral"> </span>
|
|
446
|
-
<span class="cline-any cline-yes">2x</span>
|
|
447
|
-
<span class="cline-any cline-yes">1x</span>
|
|
448
353
|
<span class="cline-any cline-neutral"> </span>
|
|
449
354
|
<span class="cline-any cline-neutral"> </span>
|
|
450
|
-
<span class="cline-any cline-yes">1x</span>
|
|
451
355
|
<span class="cline-any cline-neutral"> </span>
|
|
452
356
|
<span class="cline-any cline-neutral"> </span>
|
|
453
|
-
<span class="cline-any cline-
|
|
454
|
-
<span class="cline-any cline-yes">
|
|
455
|
-
<span class="cline-any cline-neutral"> </span>
|
|
456
|
-
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-yes">1x</span>
|
|
357
|
+
<span class="cline-any cline-yes">2x</span>
|
|
358
|
+
<span class="cline-any cline-yes">2x</span>
|
|
458
359
|
<span class="cline-any cline-neutral"> </span>
|
|
459
360
|
<span class="cline-any cline-neutral"> </span>
|
|
460
361
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -463,7 +364,6 @@
|
|
|
463
364
|
<span class="cline-any cline-yes">1x</span>
|
|
464
365
|
<span class="cline-any cline-neutral"> </span>
|
|
465
366
|
<span class="cline-any cline-yes">1x</span>
|
|
466
|
-
<span class="cline-any cline-no"> </span>
|
|
467
367
|
<span class="cline-any cline-neutral"> </span>
|
|
468
368
|
<span class="cline-any cline-neutral"> </span>
|
|
469
369
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -475,65 +375,28 @@
|
|
|
475
375
|
<span class="cline-any cline-neutral"> </span>
|
|
476
376
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { processString } = require("@budibase/string-templates")
|
|
477
377
|
const CouchDB = require("../../db")
|
|
478
|
-
const {
|
|
479
|
-
|
|
378
|
+
const {
|
|
379
|
+
generateQueryID,
|
|
380
|
+
getQueryParams,
|
|
381
|
+
isProdAppID,
|
|
382
|
+
} = require("../../db/utils")
|
|
480
383
|
const { BaseQueryVerbs } = require("../../constants")
|
|
481
|
-
const
|
|
482
|
-
|
|
384
|
+
const { Thread, ThreadType } = require("../../threads")
|
|
385
|
+
|
|
386
|
+
const Runner = new Thread(ThreadType.QUERY, { timeoutMs: 10000 })
|
|
483
387
|
|
|
484
388
|
// simple function to append "readable" to all read queries
|
|
485
389
|
function enrichQueries(input) {
|
|
486
390
|
const wasArray = Array.isArray(input)
|
|
487
391
|
const queries = wasArray ? input : [input]
|
|
488
392
|
for (let query of queries) {
|
|
489
|
-
|
|
393
|
+
if (query.queryVerb === BaseQueryVerbs.READ) {
|
|
490
394
|
query.readable = true
|
|
491
395
|
}
|
|
492
396
|
}
|
|
493
397
|
return wasArray ? queries : queries[0]
|
|
494
398
|
}
|
|
495
399
|
|
|
496
|
-
function formatResponse(resp) {
|
|
497
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (typeof resp === "string") {
|
|
498
|
-
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
499
|
-
<span class="cstat-no" title="statement not covered" > resp = JSON.parse(resp)</span>
|
|
500
|
-
} catch (err) {
|
|
501
|
-
<span class="cstat-no" title="statement not covered" > resp = { response: resp }</span>
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
return resp
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
async function runAndTransform(
|
|
508
|
-
integration,
|
|
509
|
-
queryVerb,
|
|
510
|
-
enrichedQuery,
|
|
511
|
-
transformer
|
|
512
|
-
) {
|
|
513
|
-
let rows = formatResponse(await integration[queryVerb](enrichedQuery))
|
|
514
|
-
|
|
515
|
-
// transform as required
|
|
516
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (transformer) {
|
|
517
|
-
const runner = <span class="cstat-no" title="statement not covered" >new ScriptRunner(transformer, { data: rows })</span>
|
|
518
|
-
<span class="cstat-no" title="statement not covered" > rows = runner.execute()</span>
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
// needs to an array for next step
|
|
522
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (!Array.isArray(rows)) {
|
|
523
|
-
<span class="cstat-no" title="statement not covered" > rows = [rows]</span>
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
// map into JSON if just raw primitive here
|
|
527
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (rows.find(row => typeof row !== "object")) {
|
|
528
|
-
<span class="cstat-no" title="statement not covered" > rows = rows.map(<span class="fstat-no" title="function not covered" >va</span>lue => (<span class="cstat-no" title="statement not covered" >{ value })</span>)</span>
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
// get all the potential fields in the schema
|
|
532
|
-
let keys = rows.flatMap(Object.keys)
|
|
533
|
-
|
|
534
|
-
return { rows, keys }
|
|
535
|
-
}
|
|
536
|
-
|
|
537
400
|
exports.fetch = async function (ctx) {
|
|
538
401
|
const db = new CouchDB(ctx.appId)
|
|
539
402
|
|
|
@@ -549,7 +412,7 @@ exports.save = async function (ctx) {
|
|
|
549
412
|
const db = new CouchDB(ctx.appId)
|
|
550
413
|
const query = ctx.request.body
|
|
551
414
|
|
|
552
|
-
|
|
415
|
+
if (!query._id) {
|
|
553
416
|
query._id = generateQueryID(query.datasourceId)
|
|
554
417
|
}
|
|
555
418
|
|
|
@@ -573,7 +436,9 @@ async function enrichQueryFields(fields, parameters = <span class="branch-0 cbra
|
|
|
573
436
|
<span class="cstat-no" title="statement not covered" > enrichedQuery[key] = await enrichQueryFields(fields[key], parameters)</span>
|
|
574
437
|
} else <span class="cstat-no" title="statement not covered" >if (typeof fields[key] === "string") {</span>
|
|
575
438
|
// enrich string value as normal
|
|
576
|
-
<span class="cstat-no" title="statement not covered" > enrichedQuery[key] = await processString(fields[key], parameters
|
|
439
|
+
<span class="cstat-no" title="statement not covered" > enrichedQuery[key] = await processString(fields[key], parameters, {</span>
|
|
440
|
+
noHelpers: true,
|
|
441
|
+
})
|
|
577
442
|
} else {
|
|
578
443
|
<span class="cstat-no" title="statement not covered" > enrichedQuery[key] = fields[key]</span>
|
|
579
444
|
}
|
|
@@ -603,10 +468,9 @@ exports.find = async function (ctx) {
|
|
|
603
468
|
const db = new CouchDB(ctx.appId)
|
|
604
469
|
const query = enrichQueries(await db.get(ctx.params.queryId))
|
|
605
470
|
// remove properties that could be dangerous in real app
|
|
606
|
-
if (
|
|
471
|
+
if (isProdAppID(ctx.appId)) {
|
|
607
472
|
delete query.fields
|
|
608
473
|
delete query.parameters
|
|
609
|
-
delete query.schema
|
|
610
474
|
}
|
|
611
475
|
ctx.body = query
|
|
612
476
|
}
|
|
@@ -615,31 +479,24 @@ exports.preview = async function (ctx) {
|
|
|
615
479
|
const db = new CouchDB(ctx.appId)
|
|
616
480
|
|
|
617
481
|
const datasource = await db.get(ctx.request.body.datasourceId)
|
|
618
|
-
|
|
619
|
-
const Integration = integrations[datasource.source]
|
|
620
|
-
|
|
621
|
-
if (!Integration) {
|
|
622
|
-
ctx.throw(400, "Integration type does not exist.")
|
|
623
|
-
}
|
|
624
482
|
|
|
625
483
|
const { fields, parameters, queryVerb, transformer } = ctx.request.body
|
|
626
484
|
const enrichedQuery = await enrichQueryFields(fields, parameters)
|
|
627
|
-
const integration = new Integration(datasource.config)
|
|
628
485
|
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
486
|
+
try {
|
|
487
|
+
const { rows, keys } = await Runner.run({
|
|
488
|
+
datasource,
|
|
489
|
+
queryVerb,
|
|
490
|
+
query: enrichedQuery,
|
|
491
|
+
transformer,
|
|
492
|
+
})
|
|
635
493
|
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
<span class="cstat-no" title="statement not covered" > integration.end()</span>
|
|
494
|
+
ctx.body = {
|
|
495
|
+
rows,
|
|
496
|
+
schemaFields: [...new Set(keys)],
|
|
497
|
+
}
|
|
498
|
+
} catch (err) {
|
|
499
|
+
ctx.throw(400, err)
|
|
643
500
|
}
|
|
644
501
|
}
|
|
645
502
|
|
|
@@ -648,30 +505,23 @@ exports.execute = async function (ctx) {
|
|
|
648
505
|
|
|
649
506
|
const query = await db.get(ctx.params.queryId)
|
|
650
507
|
const datasource = await db.get(query.datasourceId)
|
|
651
|
-
|
|
652
|
-
const Integration = integrations[datasource.source]
|
|
653
|
-
|
|
654
|
-
if (!Integration) {
|
|
655
|
-
ctx.throw(400, "Integration type does not exist.")
|
|
656
|
-
}
|
|
657
508
|
|
|
658
509
|
const enrichedQuery = await enrichQueryFields(
|
|
659
510
|
query.fields,
|
|
660
511
|
ctx.request.body.parameters
|
|
661
512
|
)
|
|
662
|
-
const integration = new Integration(datasource.config)
|
|
663
513
|
|
|
664
514
|
// call the relevant CRUD method on the integration class
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
515
|
+
try {
|
|
516
|
+
const { rows } = await Runner.run({
|
|
517
|
+
datasource,
|
|
518
|
+
queryVerb: query.queryVerb,
|
|
519
|
+
query: enrichedQuery,
|
|
520
|
+
transformer: query.transformer,
|
|
521
|
+
})
|
|
522
|
+
ctx.body = rows
|
|
523
|
+
} catch (err) {
|
|
524
|
+
ctx.throw(400, err)
|
|
675
525
|
}
|
|
676
526
|
}
|
|
677
527
|
|
|
@@ -688,7 +538,7 @@ exports.destroy = async function (ctx) {
|
|
|
688
538
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
689
539
|
Code coverage generated by
|
|
690
540
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
691
|
-
at
|
|
541
|
+
at Fri Nov 26 2021 18:59:43 GMT+0000 (Coordinated Universal Time)
|
|
692
542
|
</div>
|
|
693
543
|
</div>
|
|
694
544
|
<script src="../../prettify.js"></script>
|
|
@@ -23,28 +23,28 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">87.
|
|
26
|
+
<span class="strong">87.03% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
28
|
<span class='fraction'>47/54</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">63.
|
|
33
|
+
<span class="strong">63.63% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
35
|
<span class='fraction'>14/22</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">71.
|
|
40
|
+
<span class="strong">71.42% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
42
|
<span class='fraction'>5/7</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">88.
|
|
47
|
+
<span class="strong">88.67% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
49
|
<span class='fraction'>47/53</span>
|
|
50
50
|
</div>
|
|
@@ -283,13 +283,13 @@ async function updateRolesOnUserTable(db, roleId, updateOption) {
|
|
|
283
283
|
const indexOf = constraints.inclusion.indexOf(roleId)
|
|
284
284
|
if (remove && indexOf !== -1) {
|
|
285
285
|
constraints.inclusion.splice(indexOf, 1)
|
|
286
|
-
} else
|
|
286
|
+
} else if (!remove && indexOf === -1) {
|
|
287
287
|
constraints.inclusion.push(roleId)
|
|
288
288
|
}
|
|
289
289
|
break
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
|
-
|
|
292
|
+
if (updated) {
|
|
293
293
|
await db.put(table)
|
|
294
294
|
}
|
|
295
295
|
}
|
|
@@ -305,9 +305,9 @@ exports.find = async function (ctx) {
|
|
|
305
305
|
exports.save = async function (ctx) {
|
|
306
306
|
const db = new CouchDB(ctx.appId)
|
|
307
307
|
let { _id, name, inherits, permissionId } = ctx.request.body
|
|
308
|
-
|
|
308
|
+
if (!_id) {
|
|
309
309
|
_id = generateRoleID()
|
|
310
|
-
} else <span class="cstat-no" title="statement not covered" >if (isBuiltin(_id)) {</span>
|
|
310
|
+
} else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (isBuiltin(_id)) {</span>
|
|
311
311
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot update builtin roles.")</span>
|
|
312
312
|
}
|
|
313
313
|
const role = new Role(_id, name)
|
|
@@ -358,7 +358,7 @@ exports.destroy = async function (ctx) {
|
|
|
358
358
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
359
359
|
Code coverage generated by
|
|
360
360
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
361
|
-
at
|
|
361
|
+
at Fri Nov 26 2021 18:59:43 GMT+0000 (Coordinated Universal Time)
|
|
362
362
|
</div>
|
|
363
363
|
</div>
|
|
364
364
|
<script src="../../prettify.js"></script>
|