@budibase/server 0.9.188 → 0.9.190-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/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.7d405e74.css +1 -0
- package/builder/assets/index.edea4fa5.js +1316 -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 +1507 -1081
- package/coverage/coverage-final.json +93 -89
- 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 +64 -13
- 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 +232 -28
- 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 +91 -91
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +3 -3
- 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 +53 -209
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +3 -3
- 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 +2 -2
- 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 +545 -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 +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/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 +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/static.js.html +2 -2
- package/coverage/lcov-report/api/routes/table.js.html +35 -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 +42 -12
- 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 +1 -1
- 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 +3 -3
- package/coverage/lcov-report/db/utils.js.html +57 -57
- 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 +11 -8
- package/coverage/lcov-report/middleware/builder.js.html +16 -7
- package/coverage/lcov-report/middleware/currentapp.js.html +6 -6
- 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 +1 -1
- 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 +26 -11
- package/coverage/lcov-report/utilities/index.html +48 -48
- package/coverage/lcov-report/utilities/index.js.html +47 -14
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +30 -9
- 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 +1 -1
- 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 +2495 -1737
- package/dist/api/controllers/application.js +15 -1
- 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 +30 -58
- package/dist/api/controllers/row/ExternalRequest.js +78 -34
- 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 +150 -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/table.js +7 -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 +5 -0
- 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 +353 -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 +347 -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 +12 -7
- 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 +13 -8
- package/scripts/dev/manage.js +1 -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 -1
- 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 +29 -81
- package/src/api/controllers/row/ExternalRequest.ts +91 -36
- 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 +155 -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/table.js +11 -0
- 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 +0 -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 +10 -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 +377 -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 +458 -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">44.44% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>48/108</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">19.44% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>7/36</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">50% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>8/
|
|
42
|
+
<span class='fraction'>8/16</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">43.92% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>47/107</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 low'></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>
|
|
@@ -204,7 +204,75 @@
|
|
|
204
204
|
<a name='L145'></a><a href='#L145'>145</a>
|
|
205
205
|
<a name='L146'></a><a href='#L146'>146</a>
|
|
206
206
|
<a name='L147'></a><a href='#L147'>147</a>
|
|
207
|
-
<a name='L148'></a><a href='#L148'>148</a
|
|
207
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
208
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
209
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
210
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
211
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
212
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
213
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
214
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
215
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
216
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
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>
|
|
269
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
270
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
271
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
272
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
273
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
274
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
275
|
+
<a name='L216'></a><a href='#L216'>216</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
|
|
208
276
|
<span class="cline-any cline-neutral"> </span>
|
|
209
277
|
<span class="cline-any cline-neutral"> </span>
|
|
210
278
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -215,6 +283,7 @@
|
|
|
215
283
|
<span class="cline-any cline-yes">33x</span>
|
|
216
284
|
<span class="cline-any cline-yes">33x</span>
|
|
217
285
|
<span class="cline-any cline-yes">33x</span>
|
|
286
|
+
<span class="cline-any cline-yes">33x</span>
|
|
218
287
|
<span class="cline-any cline-neutral"> </span>
|
|
219
288
|
<span class="cline-any cline-yes">33x</span>
|
|
220
289
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -256,6 +325,10 @@
|
|
|
256
325
|
<span class="cline-any cline-no"> </span>
|
|
257
326
|
<span class="cline-any cline-neutral"> </span>
|
|
258
327
|
<span class="cline-any cline-no"> </span>
|
|
328
|
+
<span class="cline-any cline-no"> </span>
|
|
329
|
+
<span class="cline-any cline-no"> </span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-no"> </span>
|
|
259
332
|
<span class="cline-any cline-neutral"> </span>
|
|
260
333
|
<span class="cline-any cline-neutral"> </span>
|
|
261
334
|
<span class="cline-any cline-yes">33x</span>
|
|
@@ -292,6 +365,8 @@
|
|
|
292
365
|
<span class="cline-any cline-neutral"> </span>
|
|
293
366
|
<span class="cline-any cline-neutral"> </span>
|
|
294
367
|
<span class="cline-any cline-yes">23x</span>
|
|
368
|
+
<span class="cline-any cline-yes">23x</span>
|
|
369
|
+
<span class="cline-any cline-no"> </span>
|
|
295
370
|
<span class="cline-any cline-no"> </span>
|
|
296
371
|
<span class="cline-any cline-no"> </span>
|
|
297
372
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -309,6 +384,8 @@
|
|
|
309
384
|
<span class="cline-any cline-neutral"> </span>
|
|
310
385
|
<span class="cline-any cline-yes">23x</span>
|
|
311
386
|
<span class="cline-any cline-yes">23x</span>
|
|
387
|
+
<span class="cline-any cline-no"> </span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
312
389
|
<span class="cline-any cline-yes">23x</span>
|
|
313
390
|
<span class="cline-any cline-neutral"> </span>
|
|
314
391
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -317,9 +394,17 @@
|
|
|
317
394
|
<span class="cline-any cline-neutral"> </span>
|
|
318
395
|
<span class="cline-any cline-neutral"> </span>
|
|
319
396
|
<span class="cline-any cline-yes">1x</span>
|
|
397
|
+
<span class="cline-any cline-neutral"> </span>
|
|
398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
399
|
+
<span class="cline-any cline-yes">1x</span>
|
|
320
400
|
<span class="cline-any cline-yes">1x</span>
|
|
321
401
|
<span class="cline-any cline-neutral"> </span>
|
|
322
402
|
<span class="cline-any cline-neutral"> </span>
|
|
403
|
+
<span class="cline-any cline-neutral"> </span>
|
|
404
|
+
<span class="cline-any cline-neutral"> </span>
|
|
405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
406
|
+
<span class="cline-any cline-neutral"> </span>
|
|
407
|
+
<span class="cline-any cline-neutral"> </span>
|
|
323
408
|
<span class="cline-any cline-yes">1x</span>
|
|
324
409
|
<span class="cline-any cline-neutral"> </span>
|
|
325
410
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -341,6 +426,23 @@
|
|
|
341
426
|
<span class="cline-any cline-neutral"> </span>
|
|
342
427
|
<span class="cline-any cline-neutral"> </span>
|
|
343
428
|
<span class="cline-any cline-neutral"> </span>
|
|
429
|
+
<span class="cline-any cline-neutral"> </span>
|
|
430
|
+
<span class="cline-any cline-no"> </span>
|
|
431
|
+
<span class="cline-any cline-no"> </span>
|
|
432
|
+
<span class="cline-any cline-no"> </span>
|
|
433
|
+
<span class="cline-any cline-neutral"> </span>
|
|
434
|
+
<span class="cline-any cline-neutral"> </span>
|
|
435
|
+
<span class="cline-any cline-neutral"> </span>
|
|
436
|
+
<span class="cline-any cline-no"> </span>
|
|
437
|
+
<span class="cline-any cline-no"> </span>
|
|
438
|
+
<span class="cline-any cline-neutral"> </span>
|
|
439
|
+
<span class="cline-any cline-no"> </span>
|
|
440
|
+
<span class="cline-any cline-no"> </span>
|
|
441
|
+
<span class="cline-any cline-neutral"> </span>
|
|
442
|
+
<span class="cline-any cline-no"> </span>
|
|
443
|
+
<span class="cline-any cline-no"> </span>
|
|
444
|
+
<span class="cline-any cline-neutral"> </span>
|
|
445
|
+
<span class="cline-any cline-neutral"> </span>
|
|
344
446
|
<span class="cline-any cline-yes">33x</span>
|
|
345
447
|
<span class="cline-any cline-no"> </span>
|
|
346
448
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -349,6 +451,40 @@
|
|
|
349
451
|
<span class="cline-any cline-no"> </span>
|
|
350
452
|
<span class="cline-any cline-no"> </span>
|
|
351
453
|
<span class="cline-any cline-neutral"> </span>
|
|
454
|
+
<span class="cline-any cline-neutral"> </span>
|
|
455
|
+
<span class="cline-any cline-no"> </span>
|
|
456
|
+
<span class="cline-any cline-no"> </span>
|
|
457
|
+
<span class="cline-any cline-no"> </span>
|
|
458
|
+
<span class="cline-any cline-neutral"> </span>
|
|
459
|
+
<span class="cline-any cline-no"> </span>
|
|
460
|
+
<span class="cline-any cline-no"> </span>
|
|
461
|
+
<span class="cline-any cline-neutral"> </span>
|
|
462
|
+
<span class="cline-any cline-no"> </span>
|
|
463
|
+
<span class="cline-any cline-no"> </span>
|
|
464
|
+
<span class="cline-any cline-neutral"> </span>
|
|
465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
466
|
+
<span class="cline-any cline-neutral"> </span>
|
|
467
|
+
<span class="cline-any cline-no"> </span>
|
|
468
|
+
<span class="cline-any cline-no"> </span>
|
|
469
|
+
<span class="cline-any cline-no"> </span>
|
|
470
|
+
<span class="cline-any cline-no"> </span>
|
|
471
|
+
<span class="cline-any cline-no"> </span>
|
|
472
|
+
<span class="cline-any cline-no"> </span>
|
|
473
|
+
<span class="cline-any cline-no"> </span>
|
|
474
|
+
<span class="cline-any cline-neutral"> </span>
|
|
475
|
+
<span class="cline-any cline-neutral"> </span>
|
|
476
|
+
<span class="cline-any cline-neutral"> </span>
|
|
477
|
+
<span class="cline-any cline-neutral"> </span>
|
|
478
|
+
<span class="cline-any cline-neutral"> </span>
|
|
479
|
+
<span class="cline-any cline-no"> </span>
|
|
480
|
+
<span class="cline-any cline-no"> </span>
|
|
481
|
+
<span class="cline-any cline-no"> </span>
|
|
482
|
+
<span class="cline-any cline-neutral"> </span>
|
|
483
|
+
<span class="cline-any cline-neutral"> </span>
|
|
484
|
+
<span class="cline-any cline-neutral"> </span>
|
|
485
|
+
<span class="cline-any cline-neutral"> </span>
|
|
486
|
+
<span class="cline-any cline-neutral"> </span>
|
|
487
|
+
<span class="cline-any cline-neutral"> </span>
|
|
352
488
|
<span class="cline-any cline-no"> </span>
|
|
353
489
|
<span class="cline-any cline-neutral"> </span>
|
|
354
490
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
|
|
@@ -360,8 +496,9 @@ const {
|
|
|
360
496
|
BudibaseInternalDB,
|
|
361
497
|
getTableParams,
|
|
362
498
|
} = require("../../db/utils")
|
|
499
|
+
const { BuildSchemaErrors, InvalidColumns } = require("../../constants")
|
|
363
500
|
const { integrations } = require("../../integrations")
|
|
364
|
-
const {
|
|
501
|
+
const { getDatasourceAndQuery } = require("./row/utils")
|
|
365
502
|
|
|
366
503
|
exports.fetch = async function (ctx) {
|
|
367
504
|
const database = new CouchDB(ctx.appId)
|
|
@@ -396,13 +533,17 @@ exports.buildSchemaFromDb = <span class="fstat-no" title="function not covered"
|
|
|
396
533
|
const db = <span class="cstat-no" title="statement not covered" >new CouchDB(ctx.appId)</span>
|
|
397
534
|
const datasource = <span class="cstat-no" title="statement not covered" >await db.get(ctx.params.datasourceId)</span>
|
|
398
535
|
|
|
399
|
-
const tables = <span class="cstat-no" title="statement not covered" >await buildSchemaHelper(datasource)</span>
|
|
536
|
+
const { tables, error } = <span class="cstat-no" title="statement not covered" >await buildSchemaHelper(datasource)</span>
|
|
400
537
|
<span class="cstat-no" title="statement not covered" > datasource.entities = tables</span>
|
|
401
538
|
|
|
402
|
-
const
|
|
403
|
-
<span class="cstat-no" title="statement not covered" > datasource._rev =
|
|
539
|
+
const dbResp = <span class="cstat-no" title="statement not covered" >await db.put(datasource)</span>
|
|
540
|
+
<span class="cstat-no" title="statement not covered" > datasource._rev = dbResp.rev</span>
|
|
404
541
|
|
|
405
|
-
<span class="cstat-no" title="statement not covered" >
|
|
542
|
+
const response = <span class="cstat-no" title="statement not covered" >{ datasource }</span>
|
|
543
|
+
<span class="cstat-no" title="statement not covered" > if (error) {</span>
|
|
544
|
+
<span class="cstat-no" title="statement not covered" > response.error = error</span>
|
|
545
|
+
}
|
|
546
|
+
<span class="cstat-no" title="statement not covered" > ctx.body = response</span>
|
|
406
547
|
}
|
|
407
548
|
|
|
408
549
|
exports.update = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
|
|
@@ -424,7 +565,7 @@ exports.update = <span class="fstat-no" title="function not covered" >as</span>y
|
|
|
424
565
|
|
|
425
566
|
<span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
|
|
426
567
|
<span class="cstat-no" title="statement not covered" > ctx.message = "Datasource saved successfully."</span>
|
|
427
|
-
<span class="cstat-no" title="statement not covered" > ctx.body = datasource</span>
|
|
568
|
+
<span class="cstat-no" title="statement not covered" > ctx.body = { datasource }</span>
|
|
428
569
|
}
|
|
429
570
|
|
|
430
571
|
exports.save = async function (ctx) {
|
|
@@ -438,33 +579,45 @@ exports.save = async function (ctx) {
|
|
|
438
579
|
...ctx.request.body.datasource,
|
|
439
580
|
}
|
|
440
581
|
|
|
582
|
+
let schemaError = null
|
|
441
583
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (fetchSchema) {
|
|
442
|
-
|
|
584
|
+
const { tables, error } = <span class="cstat-no" title="statement not covered" >await buildSchemaHelper(datasource)</span>
|
|
585
|
+
<span class="cstat-no" title="statement not covered" > schemaError = error</span>
|
|
443
586
|
<span class="cstat-no" title="statement not covered" > datasource.entities = tables</span>
|
|
444
587
|
}
|
|
445
588
|
|
|
446
|
-
const
|
|
447
|
-
datasource._rev =
|
|
589
|
+
const dbResp = await db.put(datasource)
|
|
590
|
+
datasource._rev = dbResp.rev
|
|
448
591
|
|
|
449
592
|
// Drain connection pools when configuration is changed
|
|
450
|
-
|
|
593
|
+
if (datasource.source) {
|
|
451
594
|
const source = integrations[datasource.source]
|
|
452
595
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (source && source.pool) {
|
|
453
596
|
<span class="cstat-no" title="statement not covered" > await source.pool.end()</span>
|
|
454
597
|
}
|
|
455
598
|
}
|
|
456
599
|
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
600
|
+
const response = { datasource }
|
|
601
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (schemaError) {
|
|
602
|
+
<span class="cstat-no" title="statement not covered" > response.error = schemaError</span>
|
|
603
|
+
}
|
|
604
|
+
ctx.body = response
|
|
460
605
|
}
|
|
461
606
|
|
|
462
607
|
exports.destroy = async function (ctx) {
|
|
463
608
|
const db = new CouchDB(ctx.appId)
|
|
464
609
|
|
|
465
610
|
// Delete all queries for the datasource
|
|
466
|
-
const
|
|
467
|
-
|
|
611
|
+
const queries = await db.allDocs(
|
|
612
|
+
getQueryParams(ctx.params.datasourceId, null)
|
|
613
|
+
)
|
|
614
|
+
await db.bulkDocs(
|
|
615
|
+
queries.rows.map(row => ({
|
|
616
|
+
_id: row.id,
|
|
617
|
+
_rev: row.value.rev,
|
|
618
|
+
_deleted: true,
|
|
619
|
+
}))
|
|
620
|
+
)
|
|
468
621
|
|
|
469
622
|
// delete the datasource
|
|
470
623
|
await db.remove(ctx.params.datasourceId, ctx.params.revId)
|
|
@@ -482,12 +635,29 @@ exports.find = async function (ctx) {
|
|
|
482
635
|
exports.query = async function (ctx) {
|
|
483
636
|
const queryJson = ctx.request.body
|
|
484
637
|
try {
|
|
485
|
-
ctx.body = await
|
|
638
|
+
ctx.body = await getDatasourceAndQuery(ctx.appId, queryJson)
|
|
486
639
|
} catch (err) {
|
|
487
640
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, err)</span>
|
|
488
641
|
}
|
|
489
642
|
}
|
|
490
643
|
|
|
644
|
+
function <span class="fstat-no" title="function not covered" >getErrorTables(</span>errors, errorType) {
|
|
645
|
+
<span class="cstat-no" title="statement not covered" > return Object.entries(errors)</span>
|
|
646
|
+
.filter(<span class="fstat-no" title="function not covered" >en</span>try => <span class="cstat-no" title="statement not covered" >entry[1] === errorType)</span>
|
|
647
|
+
.map(<span class="fstat-no" title="function not covered" >([</span>name]) => <span class="cstat-no" title="statement not covered" >name)</span>
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
function <span class="fstat-no" title="function not covered" >updateError(</span>error, newError, tables) {
|
|
651
|
+
<span class="cstat-no" title="statement not covered" > if (!error) {</span>
|
|
652
|
+
<span class="cstat-no" title="statement not covered" > error = ""</span>
|
|
653
|
+
}
|
|
654
|
+
<span class="cstat-no" title="statement not covered" > if (error.length > 0) {</span>
|
|
655
|
+
<span class="cstat-no" title="statement not covered" > error += "\n"</span>
|
|
656
|
+
}
|
|
657
|
+
<span class="cstat-no" title="statement not covered" > error += `${newError} ${tables.join(", ")}`</span>
|
|
658
|
+
<span class="cstat-no" title="statement not covered" > return error</span>
|
|
659
|
+
}
|
|
660
|
+
|
|
491
661
|
const buildSchemaHelper = <span class="fstat-no" title="function not covered" >as</span>ync datasource => {
|
|
492
662
|
const Connector = <span class="cstat-no" title="statement not covered" >integrations[datasource.source]</span>
|
|
493
663
|
|
|
@@ -496,7 +666,41 @@ const buildSchemaHelper = <span class="fstat-no" title="function not covered" >a
|
|
|
496
666
|
<span class="cstat-no" title="statement not covered" > await connector.buildSchema(datasource._id, datasource.entities)</span>
|
|
497
667
|
<span class="cstat-no" title="statement not covered" > datasource.entities = connector.tables</span>
|
|
498
668
|
|
|
499
|
-
|
|
669
|
+
// make sure they all have a display name selected
|
|
670
|
+
<span class="cstat-no" title="statement not covered" > for (let entity of Object.values(datasource.entities)) {</span>
|
|
671
|
+
<span class="cstat-no" title="statement not covered" > if (entity.primaryDisplay) {</span>
|
|
672
|
+
<span class="cstat-no" title="statement not covered" > continue</span>
|
|
673
|
+
}
|
|
674
|
+
const notAutoColumn = <span class="cstat-no" title="statement not covered" >Object.values(entity.schema).find(</span>
|
|
675
|
+
<span class="fstat-no" title="function not covered" > sc</span>hema => <span class="cstat-no" title="statement not covered" >!schema.autocolumn</span>
|
|
676
|
+
)
|
|
677
|
+
<span class="cstat-no" title="statement not covered" > if (notAutoColumn) {</span>
|
|
678
|
+
<span class="cstat-no" title="statement not covered" > entity.primaryDisplay = notAutoColumn.name</span>
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
const errors = <span class="cstat-no" title="statement not covered" >connector.schemaErrors</span>
|
|
683
|
+
let error = <span class="cstat-no" title="statement not covered" >null</span>
|
|
684
|
+
<span class="cstat-no" title="statement not covered" > if (errors && Object.keys(errors).length > 0) {</span>
|
|
685
|
+
const noKey = <span class="cstat-no" title="statement not covered" >getErrorTables(errors, BuildSchemaErrors.NO_KEY)</span>
|
|
686
|
+
const invalidCol = <span class="cstat-no" title="statement not covered" >getErrorTables(errors, BuildSchemaErrors.INVALID_COLUMN)</span>
|
|
687
|
+
<span class="cstat-no" title="statement not covered" > if (noKey.length) {</span>
|
|
688
|
+
<span class="cstat-no" title="statement not covered" > error = updateError(</span>
|
|
689
|
+
error,
|
|
690
|
+
"No primary key constraint found for the following:",
|
|
691
|
+
noKey
|
|
692
|
+
)
|
|
693
|
+
}
|
|
694
|
+
<span class="cstat-no" title="statement not covered" > if (invalidCol.length) {</span>
|
|
695
|
+
const invalidCols = <span class="cstat-no" title="statement not covered" >Object.values(InvalidColumns).join(", ")</span>
|
|
696
|
+
<span class="cstat-no" title="statement not covered" > error = updateError(</span>
|
|
697
|
+
error,
|
|
698
|
+
`Cannot use columns ${invalidCols} found in following:`,
|
|
699
|
+
invalidCol
|
|
700
|
+
)
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
<span class="cstat-no" title="statement not covered" > return { tables: connector.tables, error }</span>
|
|
500
704
|
}
|
|
501
705
|
</pre></td></tr></table></pre>
|
|
502
706
|
|
|
@@ -505,7 +709,7 @@ const buildSchemaHelper = <span class="fstat-no" title="function not covered" >a
|
|
|
505
709
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
506
710
|
Code coverage generated by
|
|
507
711
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
508
|
-
at Thu Nov
|
|
712
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
509
713
|
</div>
|
|
510
714
|
</div>
|
|
511
715
|
<script src="../../prettify.js"></script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">28.12% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>18/64</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">28.
|
|
47
|
+
<span class="strong">28.57% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>18/63</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -176,7 +176,11 @@
|
|
|
176
176
|
<a name='L117'></a><a href='#L117'>117</a>
|
|
177
177
|
<a name='L118'></a><a href='#L118'>118</a>
|
|
178
178
|
<a name='L119'></a><a href='#L119'>119</a>
|
|
179
|
-
<a name='L120'></a><a href='#L120'>120</a
|
|
179
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
180
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
181
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
182
|
+
<a name='L123'></a><a href='#L123'>123</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
|
|
183
|
+
<span class="cline-any cline-yes">23x</span>
|
|
180
184
|
<span class="cline-any cline-yes">23x</span>
|
|
181
185
|
<span class="cline-any cline-yes">23x</span>
|
|
182
186
|
<span class="cline-any cline-yes">23x</span>
|
|
@@ -203,6 +207,7 @@
|
|
|
203
207
|
<span class="cline-any cline-neutral"> </span>
|
|
204
208
|
<span class="cline-any cline-no"> </span>
|
|
205
209
|
<span class="cline-any cline-no"> </span>
|
|
210
|
+
<span class="cline-any cline-no"> </span>
|
|
206
211
|
<span class="cline-any cline-neutral"> </span>
|
|
207
212
|
<span class="cline-any cline-no"> </span>
|
|
208
213
|
<span class="cline-any cline-no"> </span>
|
|
@@ -285,6 +290,7 @@
|
|
|
285
290
|
<span class="cline-any cline-no"> </span>
|
|
286
291
|
<span class="cline-any cline-no"> </span>
|
|
287
292
|
<span class="cline-any cline-no"> </span>
|
|
293
|
+
<span class="cline-any cline-no"> </span>
|
|
288
294
|
<span class="cline-any cline-neutral"> </span>
|
|
289
295
|
<span class="cline-any cline-neutral"> </span>
|
|
290
296
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -303,6 +309,7 @@ const { request } = require("../../utilities/workerRequests")
|
|
|
303
309
|
const { clearLock } = require("../../utilities/redis")
|
|
304
310
|
const { Replication } = require("@budibase/auth").db
|
|
305
311
|
const { DocumentTypes } = require("../../db/utils")
|
|
312
|
+
const { app: appCache } = require("@budibase/auth/cache")
|
|
306
313
|
|
|
307
314
|
async function <span class="fstat-no" title="function not covered" >redirect(</span>ctx, method, path = <span class="branch-0 cbranch-no" title="branch not covered" >"global")</span> {
|
|
308
315
|
const { devPath } = <span class="cstat-no" title="statement not covered" >ctx.params</span>
|
|
@@ -321,7 +328,8 @@ async function <span class="fstat-no" title="function not covered" >redirect(</s
|
|
|
321
328
|
)
|
|
322
329
|
)
|
|
323
330
|
<span class="cstat-no" title="statement not covered" > if (response.status !== 200) {</span>
|
|
324
|
-
<span class="cstat-no" title="statement not covered" >
|
|
331
|
+
const err = <span class="cstat-no" title="statement not covered" >await response.text()</span>
|
|
332
|
+
<span class="cstat-no" title="statement not covered" > ctx.throw(400, err)</span>
|
|
325
333
|
}
|
|
326
334
|
const cookie = <span class="cstat-no" title="statement not covered" >response.headers.get("set-cookie")</span>
|
|
327
335
|
<span class="cstat-no" title="statement not covered" > if (cookie) {</span>
|
|
@@ -403,6 +411,7 @@ exports.revert = <span class="fstat-no" title="function not covered" >as</span>y
|
|
|
403
411
|
<span class="cstat-no" title="statement not covered" > appDoc.appId = appId</span>
|
|
404
412
|
<span class="cstat-no" title="statement not covered" > appDoc.instance._id = appId</span>
|
|
405
413
|
<span class="cstat-no" title="statement not covered" > await db.put(appDoc)</span>
|
|
414
|
+
<span class="cstat-no" title="statement not covered" > await appCache.invalidateAppMetadata(appId)</span>
|
|
406
415
|
<span class="cstat-no" title="statement not covered" > ctx.body = {</span>
|
|
407
416
|
message: "Reverted changes successfully.",
|
|
408
417
|
}
|
|
@@ -421,7 +430,7 @@ exports.getBudibaseVersion = <span class="fstat-no" title="function not covered"
|
|
|
421
430
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
422
431
|
Code coverage generated by
|
|
423
432
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
424
|
-
at Thu Nov
|
|
433
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
425
434
|
</div>
|
|
426
435
|
</div>
|
|
427
436
|
<script src="../../prettify.js"></script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">93.33% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>14/15</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">75% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>3/4</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">93.33% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>14/15</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
<span class="cline-any cline-yes">1x</span>
|
|
92
92
|
<span class="cline-any cline-yes">1x</span>
|
|
93
93
|
<span class="cline-any cline-yes">1x</span>
|
|
94
|
-
<span class="cline-any cline-
|
|
94
|
+
<span class="cline-any cline-yes">1x</span>
|
|
95
95
|
<span class="cline-any cline-neutral"> </span>
|
|
96
96
|
<span class="cline-any cline-yes">1x</span>
|
|
97
97
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -112,8 +112,8 @@ exports.fetchUrls = async ctx => {
|
|
|
112
112
|
const db = new CouchDB(appId)
|
|
113
113
|
const settings = await getScopedConfig(db, { type: Configs.SETTINGS })
|
|
114
114
|
let appUrl = "http://localhost:10000/app"
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
if (settings && settings["platformUrl"]) {
|
|
116
|
+
appUrl = checkSlashesInUrl(`${settings["platformUrl"]}/app`)
|
|
117
117
|
}
|
|
118
118
|
ctx.body = {
|
|
119
119
|
app: appUrl,
|
|
@@ -130,7 +130,7 @@ exports.getDeployedApps = <span class="fstat-no" title="function not covered" >a
|
|
|
130
130
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
131
131
|
Code coverage generated by
|
|
132
132
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
133
|
-
at Thu Nov
|
|
133
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
134
134
|
</div>
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../../prettify.js"></script>
|