@budibase/server 0.9.185-alpha.1 → 0.9.185-alpha.13
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 +1 -1
- package/builder/assets/bb-space-man.5be51a45.svg +290 -0
- package/builder/assets/index.4a7c5636.css +1 -0
- package/builder/assets/index.dc495306.js +1317 -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 +689 -598
- package/coverage/coverage-final.json +89 -87
- 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 +43 -13
- package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
- 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 +129 -21
- 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 +83 -83
- 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 +48 -210
- 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 +2 -2
- package/coverage/lcov-report/api/controllers/row/index.html +10 -10
- 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 +2 -2
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +11 -11
- package/coverage/lcov-report/api/controllers/table/index.js.html +3 -3
- package/coverage/lcov-report/api/controllers/table/internal.js.html +2 -2
- package/coverage/lcov-report/api/controllers/table/utils.js.html +8 -8
- package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
- package/coverage/lcov-report/api/controllers/user.js.html +33 -18
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +9 -9
- package/coverage/lcov-report/api/controllers/view/index.js.html +5 -5
- 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 +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/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 +3 -3
- package/coverage/lcov-report/automations/bullboard.js.html +71 -20
- package/coverage/lcov-report/automations/index.html +33 -48
- 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 +25 -4
- 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 +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- 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 +83 -68
- 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 +4 -4
- 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 +21 -21
- 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} +83 -32
- package/coverage/lcov-report/threads/index.html +141 -0
- package/coverage/lcov-report/threads/index.js.html +260 -0
- package/coverage/lcov-report/threads/query.js.html +269 -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 +2 -2
- package/coverage/lcov-report/utilities/global.js.html +2 -2
- package/coverage/lcov-report/utilities/index.html +21 -21
- package/coverage/lcov-report/utilities/index.js.html +12 -9
- 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 +1136 -972
- package/dist/api/controllers/application.js +11 -1
- package/dist/api/controllers/datasource.js +31 -7
- package/dist/api/controllers/deploy/index.js +2 -0
- package/dist/api/controllers/dev.js +4 -1
- package/dist/api/controllers/query.js +27 -57
- package/dist/api/controllers/user.js +10 -6
- package/dist/api/routes/query.js +1 -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 +6 -0
- package/dist/integrations/base/IntegrationBase.js +2 -0
- package/dist/integrations/base/sql.js +36 -8
- package/dist/integrations/mysql.js +3 -1
- package/dist/integrations/utils.js +7 -1
- package/dist/middleware/builder.js +4 -1
- package/dist/package.json +7 -6
- package/dist/{automations/thread.js → threads/automation.js} +23 -7
- package/dist/threads/index.js +58 -0
- package/dist/threads/query.js +61 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/index.js +1 -0
- package/dist/utilities/queue/inMemoryQueue.js +8 -0
- package/dist/utilities/scriptRunner.js +4 -1
- package/package.json +8 -7
- package/scripts/likeCypress.ts +33 -0
- package/src/api/controllers/application.js +11 -1
- package/src/api/controllers/datasource.js +45 -9
- package/src/api/controllers/deploy/index.js +2 -0
- package/src/api/controllers/dev.js +4 -1
- package/src/api/controllers/query.js +26 -80
- package/src/api/controllers/user.js +15 -10
- package/src/api/routes/query.js +1 -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 +7 -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 +2 -1
- package/src/integrations/base/sql.ts +38 -9
- package/src/integrations/couchdb.ts +2 -1
- package/src/integrations/dynamodb.ts +2 -1
- package/src/integrations/elasticsearch.ts +2 -1
- package/src/integrations/mongodb.ts +2 -1
- package/src/integrations/mysql.ts +1 -1
- package/src/integrations/rest.ts +2 -1
- package/src/integrations/s3.ts +2 -1
- package/src/integrations/utils.ts +6 -1
- package/src/middleware/builder.js +4 -1
- package/src/{automations/thread.js → threads/automation.js} +24 -7
- package/src/threads/index.js +60 -0
- package/src/threads/query.js +63 -0
- package/src/utilities/index.js +1 -0
- package/src/utilities/queue/inMemoryQueue.js +7 -0
- package/src/utilities/scriptRunner.js +4 -1
- package/tsconfig.json +1 -1
- package/builder/assets/index.4feb6e69.js +0 -201
- package/builder/assets/index.a79ec0ef.css +0 -29
- package/builder/assets/vendor.278a305c.js +0 -9
- package/builder/assets/vendor.d75d5eb7.css +0 -1
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">30.
|
|
33
|
+
<span class="strong">30.76% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
35
|
<span class='fraction'>4/13</span>
|
|
36
36
|
</div>
|
|
@@ -181,7 +181,7 @@ exports.endUserPing = <span class="fstat-no" title="function not covered" >as</s
|
|
|
181
181
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
182
182
|
Code coverage generated by
|
|
183
183
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
184
|
-
at Mon Nov
|
|
184
|
+
at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
|
|
185
185
|
</div>
|
|
186
186
|
</div>
|
|
187
187
|
<script src="../../prettify.js"></script>
|
|
@@ -205,7 +205,7 @@ exports.update = async function (ctx) {
|
|
|
205
205
|
|
|
206
206
|
try {
|
|
207
207
|
const mainDoc = await getBuilderMainDoc()
|
|
208
|
-
|
|
208
|
+
if (mainDoc.apiKeys == null) {
|
|
209
209
|
mainDoc.apiKeys = {}
|
|
210
210
|
}
|
|
211
211
|
mainDoc.apiKeys[key] = value
|
|
@@ -226,7 +226,7 @@ exports.update = async function (ctx) {
|
|
|
226
226
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
227
227
|
Code coverage generated by
|
|
228
228
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
229
|
-
at Mon Nov
|
|
229
|
+
at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
|
|
230
230
|
</div>
|
|
231
231
|
</div>
|
|
232
232
|
<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">78.
|
|
26
|
+
<span class="strong">78.49% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>146/186</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">56.94% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>41/72</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">79.34% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>146/184</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -464,7 +464,17 @@
|
|
|
464
464
|
<a name='L405'></a><a href='#L405'>405</a>
|
|
465
465
|
<a name='L406'></a><a href='#L406'>406</a>
|
|
466
466
|
<a name='L407'></a><a href='#L407'>407</a>
|
|
467
|
-
<a name='L408'></a><a href='#L408'>408</a
|
|
467
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
468
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
469
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
470
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
471
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
472
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
473
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
474
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
475
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
476
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
477
|
+
<a name='L418'></a><a href='#L418'>418</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
|
|
468
478
|
<span class="cline-any cline-yes">33x</span>
|
|
469
479
|
<span class="cline-any cline-yes">33x</span>
|
|
470
480
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -511,6 +521,8 @@
|
|
|
511
521
|
<span class="cline-any cline-yes">33x</span>
|
|
512
522
|
<span class="cline-any cline-yes">33x</span>
|
|
513
523
|
<span class="cline-any cline-yes">33x</span>
|
|
524
|
+
<span class="cline-any cline-yes">33x</span>
|
|
525
|
+
<span class="cline-any cline-yes">33x</span>
|
|
514
526
|
<span class="cline-any cline-neutral"> </span>
|
|
515
527
|
<span class="cline-any cline-yes">33x</span>
|
|
516
528
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -722,6 +734,7 @@
|
|
|
722
734
|
<span class="cline-any cline-neutral"> </span>
|
|
723
735
|
<span class="cline-any cline-yes">178x</span>
|
|
724
736
|
<span class="cline-any cline-yes">178x</span>
|
|
737
|
+
<span class="cline-any cline-yes">178x</span>
|
|
725
738
|
<span class="cline-any cline-neutral"> </span>
|
|
726
739
|
<span class="cline-any cline-neutral"> </span>
|
|
727
740
|
<span class="cline-any cline-yes">33x</span>
|
|
@@ -783,8 +796,12 @@
|
|
|
783
796
|
<span class="cline-any cline-neutral"> </span>
|
|
784
797
|
<span class="cline-any cline-neutral"> </span>
|
|
785
798
|
<span class="cline-any cline-neutral"> </span>
|
|
799
|
+
<span class="cline-any cline-yes">11x</span>
|
|
800
|
+
<span class="cline-any cline-no"> </span>
|
|
801
|
+
<span class="cline-any cline-neutral"> </span>
|
|
786
802
|
<span class="cline-any cline-neutral"> </span>
|
|
787
803
|
<span class="cline-any cline-yes">11x</span>
|
|
804
|
+
<span class="cline-any cline-yes">11x</span>
|
|
788
805
|
<span class="cline-any cline-neutral"> </span>
|
|
789
806
|
<span class="cline-any cline-yes">11x</span>
|
|
790
807
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -855,6 +872,9 @@
|
|
|
855
872
|
<span class="cline-any cline-neutral"> </span>
|
|
856
873
|
<span class="cline-any cline-yes">5x</span>
|
|
857
874
|
<span class="cline-any cline-neutral"> </span>
|
|
875
|
+
<span class="cline-any cline-yes">5x</span>
|
|
876
|
+
<span class="cline-any cline-yes">5x</span>
|
|
877
|
+
<span class="cline-any cline-neutral"> </span>
|
|
858
878
|
<span class="cline-any cline-neutral"> </span>
|
|
859
879
|
<span class="cline-any cline-yes">33x</span>
|
|
860
880
|
<span class="cline-any cline-yes">178x</span>
|
|
@@ -918,6 +938,8 @@ const {
|
|
|
918
938
|
} = require("../../utilities/fileSystem/clientLibrary")
|
|
919
939
|
const { getTenantId, isMultiTenant } = require("@budibase/auth/tenancy")
|
|
920
940
|
const { syncGlobalUsers } = require("./user")
|
|
941
|
+
const { app: appCache } = require("@budibase/auth/cache")
|
|
942
|
+
const { cleanupAutomations } = require("../../automations/utils")
|
|
921
943
|
|
|
922
944
|
const URL_REGEX_SLASH = /\/|\\/g
|
|
923
945
|
|
|
@@ -1019,10 +1041,10 @@ exports.fetch = async ctx => {
|
|
|
1019
1041
|
const apps = await getAllApps(CouchDB, { dev, all })
|
|
1020
1042
|
|
|
1021
1043
|
// get the locks for all the dev apps
|
|
1022
|
-
|
|
1044
|
+
if (dev || <span class="branch-1 cbranch-no" title="branch not covered" >all)</span> {
|
|
1023
1045
|
const locks = await getAllLocks()
|
|
1024
1046
|
for (let app of apps) {
|
|
1025
|
-
|
|
1047
|
+
if (app.status !== "development") {
|
|
1026
1048
|
continue
|
|
1027
1049
|
}
|
|
1028
1050
|
const lock = <span class="cstat-no" title="statement not covered" >locks.find(<span class="fstat-no" title="function not covered" >lo</span>ck => <span class="cstat-no" title="statement not covered" >lock.appId === app.appId)</span></span>
|
|
@@ -1118,7 +1140,7 @@ exports.create = async ctx => {
|
|
|
1118
1140
|
|
|
1119
1141
|
// Only create the default home screens and layout if we aren't importing
|
|
1120
1142
|
// an app
|
|
1121
|
-
|
|
1143
|
+
if (useTemplate !== "true") {
|
|
1122
1144
|
await createEmptyAppPackage(ctx, newApplication)
|
|
1123
1145
|
}
|
|
1124
1146
|
|
|
@@ -1127,6 +1149,7 @@ exports.create = async ctx => {
|
|
|
1127
1149
|
await createApp(appId)
|
|
1128
1150
|
}
|
|
1129
1151
|
|
|
1152
|
+
await appCache.invalidateAppMetadata(appId, newApplication)
|
|
1130
1153
|
ctx.status = 200
|
|
1131
1154
|
ctx.body = newApplication
|
|
1132
1155
|
}
|
|
@@ -1190,8 +1213,12 @@ exports.delete = async ctx => {
|
|
|
1190
1213
|
if (!env.isTest() && !ctx.query.unpublish) {
|
|
1191
1214
|
await deleteApp(ctx.params.appId)
|
|
1192
1215
|
}
|
|
1216
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.query && <span class="branch-1 cbranch-no" title="branch not covered" >ctx.query.unpublish)</span> {
|
|
1217
|
+
<span class="cstat-no" title="statement not covered" > await cleanupAutomations(ctx.params.appId)</span>
|
|
1218
|
+
}
|
|
1193
1219
|
// make sure the app/role doesn't stick around after the app has been deleted
|
|
1194
1220
|
await removeAppFromUserRoles(ctx, ctx.params.appId)
|
|
1221
|
+
await appCache.invalidateAppMetadata(ctx.params.appId)
|
|
1195
1222
|
|
|
1196
1223
|
ctx.status = 200
|
|
1197
1224
|
ctx.body = result
|
|
@@ -1252,7 +1279,7 @@ const updateAppPackage = async (ctx, appPackage, appId) => {
|
|
|
1252
1279
|
const application = await db.get(DocumentTypes.APP_METADATA)
|
|
1253
1280
|
|
|
1254
1281
|
const newAppPackage = { ...application, ...appPackage, url }
|
|
1255
|
-
|
|
1282
|
+
if (appPackage._rev !== application._rev) {
|
|
1256
1283
|
newAppPackage._rev = application._rev
|
|
1257
1284
|
}
|
|
1258
1285
|
|
|
@@ -1260,7 +1287,10 @@ const updateAppPackage = async (ctx, appPackage, appId) => {
|
|
|
1260
1287
|
// Redis, shouldn't ever store it
|
|
1261
1288
|
delete newAppPackage.lockedBy
|
|
1262
1289
|
|
|
1263
|
-
|
|
1290
|
+
const response = await db.put(newAppPackage)
|
|
1291
|
+
// remove any cached metadata, so that it will be updated
|
|
1292
|
+
await appCache.invalidateAppMetadata(appId)
|
|
1293
|
+
return response
|
|
1264
1294
|
}
|
|
1265
1295
|
|
|
1266
1296
|
const createEmptyAppPackage = async (ctx, app) => {
|
|
@@ -1285,7 +1315,7 @@ const createEmptyAppPackage = async (ctx, app) => {
|
|
|
1285
1315
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1286
1316
|
Code coverage generated by
|
|
1287
1317
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1288
|
-
at Mon Nov
|
|
1318
|
+
at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
|
|
1289
1319
|
</div>
|
|
1290
1320
|
</div>
|
|
1291
1321
|
<script src="../../prettify.js"></script>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">85.
|
|
26
|
+
<span class="strong">85.18% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
28
|
<span class='fraction'>23/27</span>
|
|
29
29
|
</div>
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">85.
|
|
47
|
+
<span class="strong">85.18% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
49
|
<span class='fraction'>23/27</span>
|
|
50
50
|
</div>
|
|
@@ -186,7 +186,7 @@ exports.fetchSelf = async ctx => {
|
|
|
186
186
|
// this shouldn't be returned by the app self
|
|
187
187
|
delete user.roles
|
|
188
188
|
|
|
189
|
-
|
|
189
|
+
if (appId) {
|
|
190
190
|
const db = new CouchDB(appId)
|
|
191
191
|
// remove the full roles structure
|
|
192
192
|
delete user.roles
|
|
@@ -205,7 +205,7 @@ exports.fetchSelf = async ctx => {
|
|
|
205
205
|
<span class="cstat-no" title="statement not covered" > response = {}</span>
|
|
206
206
|
}
|
|
207
207
|
// user has a role of some sort, return them
|
|
208
|
-
else
|
|
208
|
+
else if (err.status === 404) {
|
|
209
209
|
const metadata = {
|
|
210
210
|
...user,
|
|
211
211
|
_id: userId,
|
|
@@ -213,12 +213,12 @@ exports.fetchSelf = async ctx => {
|
|
|
213
213
|
const dbResp = await db.put(metadata)
|
|
214
214
|
user._rev = dbResp.rev
|
|
215
215
|
response = user
|
|
216
|
-
} else {
|
|
216
|
+
} else <span class="missing-if-branch" title="else path not taken" >E</span>{
|
|
217
217
|
<span class="cstat-no" title="statement not covered" > response = user</span>
|
|
218
218
|
}
|
|
219
219
|
ctx.body = response
|
|
220
220
|
}
|
|
221
|
-
} else {
|
|
221
|
+
} else <span class="missing-if-branch" title="else path not taken" >E</span>{
|
|
222
222
|
<span class="cstat-no" title="statement not covered" > ctx.body = user</span>
|
|
223
223
|
}
|
|
224
224
|
}
|
|
@@ -229,7 +229,7 @@ exports.fetchSelf = async ctx => {
|
|
|
229
229
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
230
230
|
Code coverage generated by
|
|
231
231
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
232
|
-
at Mon Nov
|
|
232
|
+
at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
|
|
233
233
|
</div>
|
|
234
234
|
</div>
|
|
235
235
|
<script src="../../prettify.js"></script>
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">71.
|
|
33
|
+
<span class="strong">71.87% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
35
|
<span class='fraction'>23/32</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">92.
|
|
40
|
+
<span class="strong">92.85% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
42
|
<span class='fraction'>13/14</span>
|
|
43
43
|
</div>
|
|
@@ -736,7 +736,7 @@ exports.test = async function (ctx) {
|
|
|
736
736
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
737
737
|
Code coverage generated by
|
|
738
738
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
739
|
-
at Mon Nov
|
|
739
|
+
at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
|
|
740
740
|
</div>
|
|
741
741
|
</div>
|
|
742
742
|
<script src="../../prettify.js"></script>
|
|
@@ -91,7 +91,7 @@ exports.exportAppDump = async function (ctx) {
|
|
|
91
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
92
92
|
Code coverage generated by
|
|
93
93
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
94
|
-
at Mon Nov
|
|
94
|
+
at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
<script src="../../prettify.js"></script>
|
|
@@ -397,7 +397,7 @@ exports.importApps = <span class="fstat-no" title="function not covered" >as</sp
|
|
|
397
397
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
398
398
|
Code coverage generated by
|
|
399
399
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
400
|
-
at Mon Nov
|
|
400
|
+
at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
|
|
401
401
|
</div>
|
|
402
402
|
</div>
|
|
403
403
|
<script src="../../prettify.js"></script>
|
|
@@ -114,11 +114,11 @@
|
|
|
114
114
|
<span class="cline-any cline-yes">1x</span>
|
|
115
115
|
<span class="cline-any cline-yes">1x</span>
|
|
116
116
|
<span class="cline-any cline-yes">1x</span>
|
|
117
|
-
<span class="cline-any cline-yes">
|
|
117
|
+
<span class="cline-any cline-yes">46x</span>
|
|
118
118
|
<span class="cline-any cline-yes">1x</span>
|
|
119
119
|
<span class="cline-any cline-neutral"> </span>
|
|
120
|
-
<span class="cline-any cline-yes">
|
|
121
|
-
<span class="cline-any cline-yes">
|
|
120
|
+
<span class="cline-any cline-yes">45x</span>
|
|
121
|
+
<span class="cline-any cline-yes">45x</span>
|
|
122
122
|
<span class="cline-any cline-neutral"> </span>
|
|
123
123
|
<span class="cline-any cline-neutral"> </span>
|
|
124
124
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -169,7 +169,7 @@ exports.fetchAppComponentDefinitions = async function (ctx) {
|
|
|
169
169
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
170
170
|
Code coverage generated by
|
|
171
171
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
172
|
-
at Mon Nov
|
|
172
|
+
at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
|
|
173
173
|
</div>
|
|
174
174
|
</div>
|
|
175
175
|
<script src="../../prettify.js"></script>
|
|
@@ -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'>48/
|
|
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'>7/
|
|
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>
|
|
@@ -236,7 +236,43 @@
|
|
|
236
236
|
<a name='L177'></a><a href='#L177'>177</a>
|
|
237
237
|
<a name='L178'></a><a href='#L178'>178</a>
|
|
238
238
|
<a name='L179'></a><a href='#L179'>179</a>
|
|
239
|
-
<a name='L180'></a><a href='#L180'>180</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>
|
|
240
276
|
<span class="cline-any cline-neutral"> </span>
|
|
241
277
|
<span class="cline-any cline-neutral"> </span>
|
|
242
278
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -358,9 +394,17 @@
|
|
|
358
394
|
<span class="cline-any cline-neutral"> </span>
|
|
359
395
|
<span class="cline-any cline-neutral"> </span>
|
|
360
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>
|
|
361
400
|
<span class="cline-any cline-yes">1x</span>
|
|
362
401
|
<span class="cline-any cline-neutral"> </span>
|
|
363
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>
|
|
364
408
|
<span class="cline-any cline-yes">1x</span>
|
|
365
409
|
<span class="cline-any cline-neutral"> </span>
|
|
366
410
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -382,6 +426,23 @@
|
|
|
382
426
|
<span class="cline-any cline-neutral"> </span>
|
|
383
427
|
<span class="cline-any cline-neutral"> </span>
|
|
384
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>
|
|
385
446
|
<span class="cline-any cline-yes">33x</span>
|
|
386
447
|
<span class="cline-any cline-no"> </span>
|
|
387
448
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -413,6 +474,17 @@
|
|
|
413
474
|
<span class="cline-any cline-neutral"> </span>
|
|
414
475
|
<span class="cline-any cline-neutral"> </span>
|
|
415
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>
|
|
416
488
|
<span class="cline-any cline-no"> </span>
|
|
417
489
|
<span class="cline-any cline-neutral"> </span>
|
|
418
490
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../db")
|
|
@@ -424,7 +496,7 @@ const {
|
|
|
424
496
|
BudibaseInternalDB,
|
|
425
497
|
getTableParams,
|
|
426
498
|
} = require("../../db/utils")
|
|
427
|
-
const { BuildSchemaErrors } = require("../../constants")
|
|
499
|
+
const { BuildSchemaErrors, InvalidColumns } = require("../../constants")
|
|
428
500
|
const { integrations } = require("../../integrations")
|
|
429
501
|
const { getDatasourceAndQuery } = require("./row/utils")
|
|
430
502
|
|
|
@@ -518,7 +590,7 @@ exports.save = async function (ctx) {
|
|
|
518
590
|
datasource._rev = dbResp.rev
|
|
519
591
|
|
|
520
592
|
// Drain connection pools when configuration is changed
|
|
521
|
-
|
|
593
|
+
if (datasource.source) {
|
|
522
594
|
const source = integrations[datasource.source]
|
|
523
595
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (source && source.pool) {
|
|
524
596
|
<span class="cstat-no" title="statement not covered" > await source.pool.end()</span>
|
|
@@ -536,8 +608,16 @@ exports.destroy = async function (ctx) {
|
|
|
536
608
|
const db = new CouchDB(ctx.appId)
|
|
537
609
|
|
|
538
610
|
// Delete all queries for the datasource
|
|
539
|
-
const
|
|
540
|
-
|
|
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
|
+
)
|
|
541
621
|
|
|
542
622
|
// delete the datasource
|
|
543
623
|
await db.remove(ctx.params.datasourceId, ctx.params.revId)
|
|
@@ -561,6 +641,23 @@ exports.query = async function (ctx) {
|
|
|
561
641
|
}
|
|
562
642
|
}
|
|
563
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
|
+
|
|
564
661
|
const buildSchemaHelper = <span class="fstat-no" title="function not covered" >as</span>ync datasource => {
|
|
565
662
|
const Connector = <span class="cstat-no" title="statement not covered" >integrations[datasource.source]</span>
|
|
566
663
|
|
|
@@ -585,12 +682,23 @@ const buildSchemaHelper = <span class="fstat-no" title="function not covered" >a
|
|
|
585
682
|
const errors = <span class="cstat-no" title="statement not covered" >connector.schemaErrors</span>
|
|
586
683
|
let error = <span class="cstat-no" title="statement not covered" >null</span>
|
|
587
684
|
<span class="cstat-no" title="statement not covered" > if (errors && Object.keys(errors).length > 0) {</span>
|
|
588
|
-
const
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
<span class="cstat-no" title="statement not covered" >
|
|
592
|
-
|
|
593
|
-
|
|
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
|
+
}
|
|
594
702
|
}
|
|
595
703
|
<span class="cstat-no" title="statement not covered" > return { tables: connector.tables, error }</span>
|
|
596
704
|
}
|
|
@@ -601,7 +709,7 @@ const buildSchemaHelper = <span class="fstat-no" title="function not covered" >a
|
|
|
601
709
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
602
710
|
Code coverage generated by
|
|
603
711
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
604
|
-
at Mon Nov
|
|
712
|
+
at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
|
|
605
713
|
</div>
|
|
606
714
|
</div>
|
|
607
715
|
<script src="../../prettify.js"></script>
|