@budibase/worker 2.2.25 → 2.2.27-alpha.0
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/coverage/clover.xml +1393 -1364
- package/coverage/coverage-final.json +83 -77
- package/coverage/lcov-report/index.html +133 -133
- package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +52 -52
- package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +161 -218
- package/coverage/lcov-report/src/api/controllers/global/email.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/global/events.ts.html +136 -0
- package/coverage/lcov-report/src/api/controllers/global/index.html +85 -70
- package/coverage/lcov-report/src/api/controllers/global/license.ts.html +16 -16
- package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +77 -77
- package/coverage/lcov-report/src/api/controllers/global/self.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +54 -54
- package/coverage/lcov-report/src/api/controllers/global/users.ts.html +82 -43
- package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/system/index.html +11 -11
- package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/system/status.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +7 -7
- package/coverage/lcov-report/src/api/index.html +1 -1
- package/coverage/lcov-report/src/api/index.ts.html +37 -25
- package/coverage/lcov-report/src/api/routes/global/auth.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/global/configs.ts.html +25 -25
- package/coverage/lcov-report/src/api/routes/global/email.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/global/events.ts.html +109 -0
- package/coverage/lcov-report/src/api/routes/global/index.html +37 -22
- package/coverage/lcov-report/src/api/routes/global/license.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/global/roles.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/global/self.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/global/templates.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/global/users.ts.html +62 -20
- package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/index.html +7 -7
- package/coverage/lcov-report/src/api/routes/index.ts.html +29 -23
- package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/system/environment.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/system/index.html +15 -15
- package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/system/restore.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/system/status.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/validation/index.html +3 -3
- package/coverage/lcov-report/src/api/routes/validation/index.ts.html +2 -2
- package/coverage/lcov-report/src/api/routes/validation/users.ts.html +14 -14
- package/coverage/lcov-report/src/constants/index.html +17 -17
- package/coverage/lcov-report/src/constants/index.ts.html +77 -53
- package/coverage/lcov-report/src/constants/templates/index.html +19 -19
- package/coverage/lcov-report/src/constants/templates/index.ts.html +42 -42
- package/coverage/lcov-report/src/db/index.html +3 -3
- package/coverage/lcov-report/src/db/index.ts.html +10 -10
- package/coverage/lcov-report/src/environment.ts.html +44 -29
- package/coverage/lcov-report/src/index.html +27 -27
- package/coverage/lcov-report/src/index.ts.html +55 -55
- package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +5 -5
- package/coverage/lcov-report/src/middleware/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +9 -9
- package/coverage/lcov-report/src/migrations/functions/index.html +11 -11
- package/coverage/lcov-report/src/migrations/index.html +15 -15
- package/coverage/lcov-report/src/migrations/index.ts.html +27 -27
- package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +13 -13
- package/coverage/lcov-report/src/sdk/accounts/index.html +13 -13
- package/coverage/lcov-report/src/sdk/accounts/index.ts.html +2 -2
- package/coverage/lcov-report/src/sdk/index.html +5 -5
- package/coverage/lcov-report/src/sdk/index.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/users/events.ts.html +82 -58
- package/coverage/lcov-report/src/sdk/users/index.html +29 -29
- package/coverage/lcov-report/src/sdk/users/index.ts.html +2 -2
- package/coverage/lcov-report/src/sdk/users/users.ts.html +176 -119
- package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +119 -95
- package/coverage/lcov-report/src/tests/api/accounts.ts.html +7 -7
- package/coverage/lcov-report/src/tests/api/auth.ts.html +8 -8
- package/coverage/lcov-report/src/tests/api/base.ts.html +5 -5
- package/coverage/lcov-report/src/tests/api/configs.ts.html +9 -9
- package/coverage/lcov-report/src/tests/api/email.ts.html +6 -6
- package/coverage/lcov-report/src/tests/api/environment.ts.html +6 -6
- package/coverage/lcov-report/src/tests/api/groups.ts.html +163 -0
- package/coverage/lcov-report/src/tests/api/index.html +91 -31
- package/coverage/lcov-report/src/tests/api/index.ts.html +62 -29
- package/coverage/lcov-report/src/tests/api/license.ts.html +136 -0
- package/coverage/lcov-report/src/tests/api/migrations.ts.html +8 -8
- package/coverage/lcov-report/src/tests/api/restore.ts.html +7 -7
- package/coverage/lcov-report/src/tests/api/roles.ts.html +181 -0
- package/coverage/lcov-report/src/tests/api/self.ts.html +7 -7
- package/coverage/lcov-report/src/tests/api/status.ts.html +6 -6
- package/coverage/lcov-report/src/tests/api/templates.ts.html +175 -0
- package/coverage/lcov-report/src/tests/api/tenants.ts.html +10 -10
- package/coverage/lcov-report/src/tests/api/users.ts.html +28 -25
- package/coverage/lcov-report/src/tests/controllers.ts.html +14 -14
- package/coverage/lcov-report/src/tests/index.html +34 -34
- package/coverage/lcov-report/src/tests/index.ts.html +19 -55
- package/coverage/lcov-report/src/tests/mocks/{email.js.html → email.ts.html} +5 -5
- package/coverage/lcov-report/src/tests/mocks/index.html +6 -6
- package/coverage/lcov-report/src/tests/mocks/index.ts.html +10 -10
- package/coverage/lcov-report/src/tests/structures/configs.ts.html +11 -11
- package/coverage/lcov-report/src/tests/structures/groups.ts.html +15 -15
- package/coverage/lcov-report/src/tests/structures/index.html +25 -25
- package/coverage/lcov-report/src/tests/structures/index.ts.html +17 -17
- package/coverage/lcov-report/src/tests/structures/users.ts.html +16 -16
- package/coverage/lcov-report/src/utilities/appService.ts.html +45 -18
- package/coverage/lcov-report/src/utilities/email.ts.html +28 -28
- package/coverage/lcov-report/src/utilities/fileSystem.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/index.html +27 -27
- package/coverage/lcov-report/src/utilities/index.ts.html +2 -2
- package/coverage/lcov-report/src/utilities/redis.ts.html +20 -20
- package/coverage/lcov-report/src/utilities/templates.ts.html +6 -6
- package/coverage/lcov-report/src/utilities/users.ts.html +3 -3
- package/coverage/lcov.info +2777 -2582
- package/jest.config.ts +7 -2
- package/package.json +10 -7
- package/scripts/dev/manage.js +2 -2
- package/src/api/controllers/global/auth.ts +1 -1
- package/src/api/controllers/global/configs.ts +112 -131
- package/src/api/controllers/global/events.ts +17 -0
- package/src/api/controllers/global/users.ts +14 -1
- package/src/api/index.ts +4 -0
- package/src/api/routes/global/auth.ts +1 -1
- package/src/api/routes/global/configs.ts +7 -7
- package/src/api/routes/global/email.ts +1 -1
- package/src/api/routes/global/events.ts +8 -0
- package/src/api/routes/global/license.ts +1 -1
- package/src/api/routes/global/roles.ts +1 -1
- package/src/api/routes/global/self.ts +1 -1
- package/src/api/routes/global/templates.ts +1 -1
- package/src/api/routes/global/tests/groups.spec.ts +58 -0
- package/src/api/routes/global/tests/license.spec.ts +0 -2
- package/src/api/routes/global/tests/roles.spec.ts +66 -5
- package/src/api/routes/global/tests/templates.spec.ts +81 -9
- package/src/api/routes/global/tests/users.spec.ts +2 -2
- package/src/api/routes/global/users.ts +15 -1
- package/src/api/routes/global/workspaces.ts +1 -1
- package/src/api/routes/index.ts +2 -0
- package/src/api/routes/system/accounts.ts +1 -1
- package/src/api/routes/system/environment.ts +1 -1
- package/src/api/routes/system/migrations.ts +1 -1
- package/src/api/routes/system/restore.ts +1 -1
- package/src/api/routes/system/status.ts +1 -1
- package/src/api/routes/system/tenants.ts +1 -1
- package/src/api/routes/system/tests/environment.spec.ts +1 -1
- package/src/constants/index.ts +13 -5
- package/src/db/index.ts +1 -1
- package/src/environment.ts +6 -1
- package/src/index.ts +5 -5
- package/src/middleware/cloudRestricted.ts +1 -1
- package/src/sdk/users/events.ts +8 -0
- package/src/sdk/users/users.ts +23 -4
- package/src/tests/TestConfiguration.ts +11 -3
- package/src/tests/api/groups.ts +26 -0
- package/src/tests/api/index.ts +12 -1
- package/src/tests/api/license.ts +17 -0
- package/src/tests/api/roles.ts +32 -0
- package/src/tests/api/templates.ts +30 -0
- package/src/tests/api/users.ts +2 -1
- package/src/tests/index.ts +6 -18
- package/src/tests/jestEnv.ts +11 -0
- package/src/tests/jestSetup.ts +3 -15
- package/src/tests/mocks/{email.js → email.ts} +1 -1
- package/src/tests/mocks/index.ts +4 -4
- package/src/tests/structures/configs.ts +2 -2
- package/src/tests/structures/groups.ts +1 -1
- package/src/tests/structures/index.ts +4 -4
- package/src/tests/structures/users.ts +1 -1
- package/src/utilities/appService.ts +12 -3
- package/tsconfig.json +2 -2
|
@@ -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">67.97% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>121/178</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">68.47% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>63/92</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">77.41% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>24/31</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">66.86% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>111/166</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -484,38 +484,18 @@
|
|
|
484
484
|
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
485
|
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
486
|
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
-
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
-
<
|
|
489
|
-
<
|
|
490
|
-
<a name='L425'></a><a href='#L425'>425</a>
|
|
491
|
-
<a name='L426'></a><a href='#L426'>426</a>
|
|
492
|
-
<a name='L427'></a><a href='#L427'>427</a>
|
|
493
|
-
<a name='L428'></a><a href='#L428'>428</a>
|
|
494
|
-
<a name='L429'></a><a href='#L429'>429</a>
|
|
495
|
-
<a name='L430'></a><a href='#L430'>430</a>
|
|
496
|
-
<a name='L431'></a><a href='#L431'>431</a>
|
|
497
|
-
<a name='L432'></a><a href='#L432'>432</a>
|
|
498
|
-
<a name='L433'></a><a href='#L433'>433</a>
|
|
499
|
-
<a name='L434'></a><a href='#L434'>434</a>
|
|
500
|
-
<a name='L435'></a><a href='#L435'>435</a>
|
|
501
|
-
<a name='L436'></a><a href='#L436'>436</a>
|
|
502
|
-
<a name='L437'></a><a href='#L437'>437</a>
|
|
503
|
-
<a name='L438'></a><a href='#L438'>438</a>
|
|
504
|
-
<a name='L439'></a><a href='#L439'>439</a>
|
|
505
|
-
<a name='L440'></a><a href='#L440'>440</a>
|
|
506
|
-
<a name='L441'></a><a href='#L441'>441</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
|
|
507
|
-
<span class="cline-any cline-yes">17x</span>
|
|
508
|
-
<span class="cline-any cline-yes">17x</span>
|
|
509
|
-
<span class="cline-any cline-yes">17x</span>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
|
|
488
|
+
<span class="cline-any cline-yes">18x</span>
|
|
489
|
+
<span class="cline-any cline-yes">18x</span>
|
|
510
490
|
<span class="cline-any cline-neutral"> </span>
|
|
511
491
|
<span class="cline-any cline-neutral"> </span>
|
|
512
492
|
<span class="cline-any cline-neutral"> </span>
|
|
513
493
|
<span class="cline-any cline-neutral"> </span>
|
|
514
494
|
<span class="cline-any cline-neutral"> </span>
|
|
515
495
|
<span class="cline-any cline-neutral"> </span>
|
|
516
|
-
<span class="cline-any cline-yes">17x</span>
|
|
517
|
-
<span class="cline-any cline-yes">17x</span>
|
|
518
496
|
<span class="cline-any cline-neutral"> </span>
|
|
497
|
+
<span class="cline-any cline-yes">18x</span>
|
|
498
|
+
<span class="cline-any cline-yes">18x</span>
|
|
519
499
|
<span class="cline-any cline-neutral"> </span>
|
|
520
500
|
<span class="cline-any cline-neutral"> </span>
|
|
521
501
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -525,8 +505,14 @@
|
|
|
525
505
|
<span class="cline-any cline-neutral"> </span>
|
|
526
506
|
<span class="cline-any cline-neutral"> </span>
|
|
527
507
|
<span class="cline-any cline-neutral"> </span>
|
|
528
|
-
<span class="cline-any cline-
|
|
529
|
-
<span class="cline-any cline-
|
|
508
|
+
<span class="cline-any cline-neutral"> </span>
|
|
509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
510
|
+
<span class="cline-any cline-neutral"> </span>
|
|
511
|
+
<span class="cline-any cline-neutral"> </span>
|
|
512
|
+
<span class="cline-any cline-neutral"> </span>
|
|
513
|
+
<span class="cline-any cline-yes">18x</span>
|
|
514
|
+
<span class="cline-any cline-neutral"> </span>
|
|
515
|
+
<span class="cline-any cline-yes">18x</span>
|
|
530
516
|
<span class="cline-any cline-yes">41x</span>
|
|
531
517
|
<span class="cline-any cline-neutral"> </span>
|
|
532
518
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -535,31 +521,20 @@
|
|
|
535
521
|
<span class="cline-any cline-neutral"> </span>
|
|
536
522
|
<span class="cline-any cline-neutral"> </span>
|
|
537
523
|
<span class="cline-any cline-yes">41x</span>
|
|
538
|
-
<span class="cline-any cline-yes">41x</span>
|
|
539
524
|
<span class="cline-any cline-yes">35x</span>
|
|
540
|
-
<span class="cline-any cline-neutral"> </span>
|
|
541
|
-
<span class="cline-any cline-yes">14x</span>
|
|
542
525
|
<span class="cline-any cline-yes">14x</span>
|
|
543
|
-
<span class="cline-any cline-
|
|
544
|
-
<span class="cline-any cline-neutral"> </span>
|
|
545
|
-
<span class="cline-any cline-yes">4x</span>
|
|
526
|
+
<span class="cline-any cline-yes">21x</span>
|
|
546
527
|
<span class="cline-any cline-yes">4x</span>
|
|
547
528
|
<span class="cline-any cline-yes">4x</span>
|
|
548
529
|
<span class="cline-any cline-yes">2x</span>
|
|
549
530
|
<span class="cline-any cline-neutral"> </span>
|
|
550
|
-
<span class="cline-any cline-yes">
|
|
551
|
-
<span class="cline-any cline-neutral"> </span>
|
|
552
|
-
<span class="cline-any cline-neutral"> </span>
|
|
553
|
-
<span class="cline-any cline-yes">6x</span>
|
|
531
|
+
<span class="cline-any cline-yes">17x</span>
|
|
554
532
|
<span class="cline-any cline-yes">6x</span>
|
|
555
533
|
<span class="cline-any cline-yes">6x</span>
|
|
556
534
|
<span class="cline-any cline-yes">4x</span>
|
|
557
535
|
<span class="cline-any cline-neutral"> </span>
|
|
558
|
-
<span class="cline-any cline-yes">6x</span>
|
|
559
|
-
<span class="cline-any cline-neutral"> </span>
|
|
560
|
-
<span class="cline-any cline-neutral"> </span>
|
|
561
|
-
<span class="cline-any cline-neutral"> </span>
|
|
562
536
|
<span class="cline-any cline-yes">11x</span>
|
|
537
|
+
<span class="cline-any cline-neutral"> </span>
|
|
563
538
|
<span class="cline-any cline-yes">11x</span>
|
|
564
539
|
<span class="cline-any cline-yes">11x</span>
|
|
565
540
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -580,27 +555,18 @@
|
|
|
580
555
|
<span class="cline-any cline-neutral"> </span>
|
|
581
556
|
<span class="cline-any cline-yes">1x</span>
|
|
582
557
|
<span class="cline-any cline-neutral"> </span>
|
|
583
|
-
<span class="cline-any cline-yes">11x</span>
|
|
584
|
-
<span class="cline-any cline-neutral"> </span>
|
|
585
558
|
<span class="cline-any cline-neutral"> </span>
|
|
586
559
|
<span class="cline-any cline-neutral"> </span>
|
|
587
560
|
<span class="cline-any cline-yes">6x</span>
|
|
588
|
-
<span class="cline-any cline-neutral"> </span>
|
|
589
561
|
<span class="cline-any cline-yes">1x</span>
|
|
590
|
-
<span class="cline-any cline-yes">
|
|
591
|
-
<span class="cline-any cline-neutral"> </span>
|
|
592
|
-
<span class="cline-any cline-neutral"> </span>
|
|
593
|
-
<span class="cline-any cline-yes">2x</span>
|
|
562
|
+
<span class="cline-any cline-yes">5x</span>
|
|
594
563
|
<span class="cline-any cline-yes">2x</span>
|
|
595
564
|
<span class="cline-any cline-yes">2x</span>
|
|
596
565
|
<span class="cline-any cline-yes">1x</span>
|
|
597
566
|
<span class="cline-any cline-yes">1x</span>
|
|
598
567
|
<span class="cline-any cline-yes">1x</span>
|
|
599
568
|
<span class="cline-any cline-neutral"> </span>
|
|
600
|
-
<span class="cline-any cline-yes">
|
|
601
|
-
<span class="cline-any cline-neutral"> </span>
|
|
602
|
-
<span class="cline-any cline-neutral"> </span>
|
|
603
|
-
<span class="cline-any cline-yes">2x</span>
|
|
569
|
+
<span class="cline-any cline-yes">3x</span>
|
|
604
570
|
<span class="cline-any cline-yes">2x</span>
|
|
605
571
|
<span class="cline-any cline-yes">2x</span>
|
|
606
572
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -613,11 +579,8 @@
|
|
|
613
579
|
<span class="cline-any cline-neutral"> </span>
|
|
614
580
|
<span class="cline-any cline-yes">1x</span>
|
|
615
581
|
<span class="cline-any cline-neutral"> </span>
|
|
616
|
-
<span class="cline-any cline-yes">2x</span>
|
|
617
|
-
<span class="cline-any cline-neutral"> </span>
|
|
618
|
-
<span class="cline-any cline-neutral"> </span>
|
|
619
|
-
<span class="cline-any cline-neutral"> </span>
|
|
620
582
|
<span class="cline-any cline-yes">1x</span>
|
|
583
|
+
<span class="cline-any cline-neutral"> </span>
|
|
621
584
|
<span class="cline-any cline-yes">1x</span>
|
|
622
585
|
<span class="cline-any cline-yes">1x</span>
|
|
623
586
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -642,15 +605,13 @@
|
|
|
642
605
|
<span class="cline-any cline-neutral"> </span>
|
|
643
606
|
<span class="cline-any cline-yes">1x</span>
|
|
644
607
|
<span class="cline-any cline-neutral"> </span>
|
|
645
|
-
<span class="cline-any cline-yes">1x</span>
|
|
646
|
-
<span class="cline-any cline-neutral"> </span>
|
|
647
608
|
<span class="cline-any cline-neutral"> </span>
|
|
648
609
|
<span class="cline-any cline-neutral"> </span>
|
|
649
610
|
<span class="cline-any cline-neutral"> </span>
|
|
650
611
|
<span class="cline-any cline-yes">41x</span>
|
|
651
612
|
<span class="cline-any cline-neutral"> </span>
|
|
652
613
|
<span class="cline-any cline-neutral"> </span>
|
|
653
|
-
<span class="cline-any cline-yes">
|
|
614
|
+
<span class="cline-any cline-yes">40x</span>
|
|
654
615
|
<span class="cline-any cline-yes">41x</span>
|
|
655
616
|
<span class="cline-any cline-yes">41x</span>
|
|
656
617
|
<span class="cline-any cline-yes">41x</span>
|
|
@@ -692,7 +653,7 @@
|
|
|
692
653
|
<span class="cline-any cline-neutral"> </span>
|
|
693
654
|
<span class="cline-any cline-neutral"> </span>
|
|
694
655
|
<span class="cline-any cline-neutral"> </span>
|
|
695
|
-
<span class="cline-any cline-yes">
|
|
656
|
+
<span class="cline-any cline-yes">36x</span>
|
|
696
657
|
<span class="cline-any cline-no"> </span>
|
|
697
658
|
<span class="cline-any cline-no"> </span>
|
|
698
659
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -709,7 +670,7 @@
|
|
|
709
670
|
<span class="cline-any cline-neutral"> </span>
|
|
710
671
|
<span class="cline-any cline-neutral"> </span>
|
|
711
672
|
<span class="cline-any cline-neutral"> </span>
|
|
712
|
-
<span class="cline-any cline-yes">
|
|
673
|
+
<span class="cline-any cline-yes">54x</span>
|
|
713
674
|
<span class="cline-any cline-yes">36x</span>
|
|
714
675
|
<span class="cline-any cline-neutral"> </span>
|
|
715
676
|
<span class="cline-any cline-yes">36x</span>
|
|
@@ -742,7 +703,7 @@
|
|
|
742
703
|
<span class="cline-any cline-neutral"> </span>
|
|
743
704
|
<span class="cline-any cline-neutral"> </span>
|
|
744
705
|
<span class="cline-any cline-neutral"> </span>
|
|
745
|
-
<span class="cline-any cline-yes">
|
|
706
|
+
<span class="cline-any cline-yes">18x</span>
|
|
746
707
|
<span class="cline-any cline-no"> </span>
|
|
747
708
|
<span class="cline-any cline-no"> </span>
|
|
748
709
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -764,7 +725,7 @@
|
|
|
764
725
|
<span class="cline-any cline-neutral"> </span>
|
|
765
726
|
<span class="cline-any cline-neutral"> </span>
|
|
766
727
|
<span class="cline-any cline-neutral"> </span>
|
|
767
|
-
<span class="cline-any cline-yes">
|
|
728
|
+
<span class="cline-any cline-yes">18x</span>
|
|
768
729
|
<span class="cline-any cline-no"> </span>
|
|
769
730
|
<span class="cline-any cline-neutral"> </span>
|
|
770
731
|
<span class="cline-any cline-no"> </span>
|
|
@@ -791,51 +752,50 @@
|
|
|
791
752
|
<span class="cline-any cline-neutral"> </span>
|
|
792
753
|
<span class="cline-any cline-neutral"> </span>
|
|
793
754
|
<span class="cline-any cline-neutral"> </span>
|
|
794
|
-
<span class="cline-any cline-no"> </span>
|
|
795
755
|
<span class="cline-any cline-neutral"> </span>
|
|
796
756
|
<span class="cline-any cline-no"> </span>
|
|
757
|
+
<span class="cline-any cline-no"> </span>
|
|
797
758
|
<span class="cline-any cline-neutral"> </span>
|
|
798
759
|
<span class="cline-any cline-neutral"> </span>
|
|
799
|
-
<span class="cline-any cline-no"> </span>
|
|
800
760
|
<span class="cline-any cline-neutral"> </span>
|
|
801
761
|
<span class="cline-any cline-neutral"> </span>
|
|
802
762
|
<span class="cline-any cline-neutral"> </span>
|
|
803
|
-
<span class="cline-any cline-no"> </span>
|
|
804
|
-
<span class="cline-any cline-no"> </span>
|
|
805
763
|
<span class="cline-any cline-neutral"> </span>
|
|
806
764
|
<span class="cline-any cline-neutral"> </span>
|
|
807
765
|
<span class="cline-any cline-no"> </span>
|
|
808
|
-
<span class="cline-any cline-no"> </span>
|
|
809
766
|
<span class="cline-any cline-neutral"> </span>
|
|
810
767
|
<span class="cline-any cline-no"> </span>
|
|
811
768
|
<span class="cline-any cline-neutral"> </span>
|
|
812
769
|
<span class="cline-any cline-neutral"> </span>
|
|
813
770
|
<span class="cline-any cline-no"> </span>
|
|
814
771
|
<span class="cline-any cline-neutral"> </span>
|
|
815
|
-
<span class="cline-any cline-no"> </span>
|
|
816
|
-
<span class="cline-any cline-neutral"> </span>
|
|
817
772
|
<span class="cline-any cline-neutral"> </span>
|
|
818
773
|
<span class="cline-any cline-neutral"> </span>
|
|
819
|
-
<span class="cline-any cline-yes">17x</span>
|
|
820
774
|
<span class="cline-any cline-no"> </span>
|
|
821
775
|
<span class="cline-any cline-no"> </span>
|
|
822
776
|
<span class="cline-any cline-neutral"> </span>
|
|
777
|
+
<span class="cline-any cline-neutral"> </span>
|
|
823
778
|
<span class="cline-any cline-no"> </span>
|
|
824
779
|
<span class="cline-any cline-no"> </span>
|
|
825
780
|
<span class="cline-any cline-neutral"> </span>
|
|
826
|
-
<span class="cline-any cline-neutral"> </span>
|
|
827
781
|
<span class="cline-any cline-no"> </span>
|
|
782
|
+
<span class="cline-any cline-neutral"> </span>
|
|
783
|
+
<span class="cline-any cline-neutral"> </span>
|
|
828
784
|
<span class="cline-any cline-no"> </span>
|
|
829
785
|
<span class="cline-any cline-neutral"> </span>
|
|
830
786
|
<span class="cline-any cline-no"> </span>
|
|
831
787
|
<span class="cline-any cline-neutral"> </span>
|
|
832
788
|
<span class="cline-any cline-neutral"> </span>
|
|
833
789
|
<span class="cline-any cline-neutral"> </span>
|
|
790
|
+
<span class="cline-any cline-yes">18x</span>
|
|
834
791
|
<span class="cline-any cline-no"> </span>
|
|
835
792
|
<span class="cline-any cline-no"> </span>
|
|
836
793
|
<span class="cline-any cline-neutral"> </span>
|
|
837
794
|
<span class="cline-any cline-no"> </span>
|
|
795
|
+
<span class="cline-any cline-no"> </span>
|
|
838
796
|
<span class="cline-any cline-neutral"> </span>
|
|
797
|
+
<span class="cline-any cline-no"> </span>
|
|
798
|
+
<span class="cline-any cline-no"> </span>
|
|
839
799
|
<span class="cline-any cline-neutral"> </span>
|
|
840
800
|
<span class="cline-any cline-no"> </span>
|
|
841
801
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -855,14 +815,16 @@
|
|
|
855
815
|
<span class="cline-any cline-neutral"> </span>
|
|
856
816
|
<span class="cline-any cline-neutral"> </span>
|
|
857
817
|
<span class="cline-any cline-neutral"> </span>
|
|
818
|
+
<span class="cline-any cline-neutral"> </span>
|
|
858
819
|
<span class="cline-any cline-no"> </span>
|
|
859
820
|
<span class="cline-any cline-no"> </span>
|
|
860
|
-
<span class="cline-any cline-neutral"> </span>
|
|
861
821
|
<span class="cline-any cline-no"> </span>
|
|
862
822
|
<span class="cline-any cline-neutral"> </span>
|
|
863
823
|
<span class="cline-any cline-neutral"> </span>
|
|
824
|
+
<span class="cline-any cline-neutral"> </span>
|
|
864
825
|
<span class="cline-any cline-no"> </span>
|
|
865
826
|
<span class="cline-any cline-neutral"> </span>
|
|
827
|
+
<span class="cline-any cline-neutral"> </span>
|
|
866
828
|
<span class="cline-any cline-no"> </span>
|
|
867
829
|
<span class="cline-any cline-neutral"> </span>
|
|
868
830
|
<span class="cline-any cline-no"> </span>
|
|
@@ -871,7 +833,7 @@
|
|
|
871
833
|
<span class="cline-any cline-neutral"> </span>
|
|
872
834
|
<span class="cline-any cline-neutral"> </span>
|
|
873
835
|
<span class="cline-any cline-neutral"> </span>
|
|
874
|
-
<span class="cline-any cline-yes">
|
|
836
|
+
<span class="cline-any cline-yes">54x</span>
|
|
875
837
|
<span class="cline-any cline-yes">36x</span>
|
|
876
838
|
<span class="cline-any cline-yes">36x</span>
|
|
877
839
|
<span class="cline-any cline-yes">36x</span>
|
|
@@ -883,7 +845,7 @@
|
|
|
883
845
|
<span class="cline-any cline-neutral"> </span>
|
|
884
846
|
<span class="cline-any cline-neutral"> </span>
|
|
885
847
|
<span class="cline-any cline-neutral"> </span>
|
|
886
|
-
<span class="cline-any cline-yes">
|
|
848
|
+
<span class="cline-any cline-yes">18x</span>
|
|
887
849
|
<span class="cline-any cline-yes">4x</span>
|
|
888
850
|
<span class="cline-any cline-yes">4x</span>
|
|
889
851
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -891,7 +853,7 @@
|
|
|
891
853
|
<span class="cline-any cline-yes">4x</span>
|
|
892
854
|
<span class="cline-any cline-neutral"> </span>
|
|
893
855
|
<span class="cline-any cline-neutral"> </span>
|
|
894
|
-
<span class="cline-any cline-
|
|
856
|
+
<span class="cline-any cline-neutral"> </span>
|
|
895
857
|
<span class="cline-any cline-yes">4x</span>
|
|
896
858
|
<span class="cline-any cline-yes">4x</span>
|
|
897
859
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -952,6 +914,7 @@ import {
|
|
|
952
914
|
objectStore,
|
|
953
915
|
tenancy,
|
|
954
916
|
db as dbCore,
|
|
917
|
+
env as coreEnv,
|
|
955
918
|
} from "@budibase/backend-core"
|
|
956
919
|
import { checkAnyUserExists } from "../../../utilities/users"
|
|
957
920
|
import {
|
|
@@ -962,127 +925,106 @@ import {
|
|
|
962
925
|
GoogleConfig,
|
|
963
926
|
OIDCConfig,
|
|
964
927
|
SettingsConfig,
|
|
965
|
-
|
|
928
|
+
isGoogleConfig,
|
|
929
|
+
isOIDCConfig,
|
|
930
|
+
isSettingsConfig,
|
|
931
|
+
isSMTPConfig,
|
|
932
|
+
Ctx,
|
|
933
|
+
UserCtx,
|
|
966
934
|
} from "@budibase/types"
|
|
967
935
|
|
|
968
936
|
const getEventFns = async (db: Database, config: ConfigDoc) => {
|
|
969
937
|
const fns = []
|
|
970
|
-
const type = config.type
|
|
971
938
|
|
|
972
939
|
let existing
|
|
973
940
|
if (config._id) {
|
|
974
941
|
existing = await db.get(config._id)
|
|
975
942
|
}
|
|
976
943
|
|
|
977
|
-
const ssoType = type as SSOType
|
|
978
944
|
if (!existing) {
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
945
|
+
if (isSMTPConfig(config)) {
|
|
946
|
+
fns.push(events.email.SMTPCreated)
|
|
947
|
+
} else if (isGoogleConfig(config)) {
|
|
948
|
+
fns.push(() => events.auth.SSOCreated(ConfigType.GOOGLE))
|
|
949
|
+
if (config.config.activated) {
|
|
950
|
+
fns.push(() => events.auth.SSOActivated(ConfigType.GOOGLE))
|
|
983
951
|
}
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
fns.push(() => events.auth.SSOActivated(ssoType))
|
|
989
|
-
}
|
|
990
|
-
break
|
|
952
|
+
} else if (isOIDCConfig(config)) {
|
|
953
|
+
fns.push(() => events.auth.SSOCreated(ConfigType.OIDC))
|
|
954
|
+
if (config.config.configs[0].activated) {
|
|
955
|
+
fns.push(() => events.auth.SSOActivated(ConfigType.OIDC))
|
|
991
956
|
}
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
}
|
|
998
|
-
break
|
|
957
|
+
} else if (isSettingsConfig(config)) {
|
|
958
|
+
// company
|
|
959
|
+
const company = config.config.company
|
|
960
|
+
if (company && company !== "Budibase") {
|
|
961
|
+
fns.push(events.org.nameUpdated)
|
|
999
962
|
}
|
|
1000
|
-
case ConfigType.SETTINGS: {
|
|
1001
|
-
// company
|
|
1002
|
-
const settingsCfg = config as SettingsConfig
|
|
1003
|
-
const company = settingsCfg.config.company
|
|
1004
|
-
if (company && company !== "Budibase") {
|
|
1005
|
-
fns.push(events.org.nameUpdated)
|
|
1006
|
-
}
|
|
1007
963
|
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
964
|
+
// logo
|
|
965
|
+
const logoUrl = config.config.logoUrl
|
|
966
|
+
if (logoUrl) {
|
|
967
|
+
fns.push(events.org.logoUpdated)
|
|
968
|
+
}
|
|
1013
969
|
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
}
|
|
1023
|
-
break
|
|
970
|
+
// platform url
|
|
971
|
+
const platformUrl = config.config.platformUrl
|
|
972
|
+
if (
|
|
973
|
+
platformUrl &&
|
|
974
|
+
platformUrl !== "http://localhost:10000" &&
|
|
975
|
+
env.SELF_HOSTED
|
|
976
|
+
) {
|
|
977
|
+
fns.push(events.org.platformURLUpdated)
|
|
1024
978
|
}
|
|
1025
979
|
}
|
|
1026
980
|
} else {
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
981
|
+
if (isSMTPConfig(config)) {
|
|
982
|
+
fns.push(events.email.SMTPUpdated)
|
|
983
|
+
} else if (isGoogleConfig(config)) {
|
|
984
|
+
fns.push(() => events.auth.SSOUpdated(ConfigType.GOOGLE))
|
|
985
|
+
if (!existing.config.activated && config.config.activated) {
|
|
986
|
+
fns.push(() => events.auth.SSOActivated(ConfigType.GOOGLE))
|
|
987
|
+
} else if (existing.config.activated && !config.config.activated) {
|
|
988
|
+
fns.push(() => events.auth.SSODeactivated(ConfigType.GOOGLE))
|
|
1031
989
|
}
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
990
|
+
} else if (isOIDCConfig(config)) {
|
|
991
|
+
fns.push(() => events.auth.SSOUpdated(ConfigType.OIDC))
|
|
992
|
+
if (
|
|
993
|
+
!existing.config.configs[0].activated &&
|
|
994
|
+
config.config.configs[0].activated
|
|
995
|
+
) {
|
|
996
|
+
fns.push(() => events.auth.SSOActivated(ConfigType.OIDC))
|
|
997
|
+
} else if (
|
|
998
|
+
existing.config.configs[0].activated &&
|
|
999
|
+
!config.config.configs[0].activated
|
|
1000
|
+
) {
|
|
1001
|
+
fns.push(() => events.auth.SSODeactivated(ConfigType.OIDC))
|
|
1041
1002
|
}
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
) {
|
|
1049
|
-
fns.push(() => events.auth.SSOActivated(ssoType))
|
|
1050
|
-
} else if (
|
|
1051
|
-
existing.config.configs[0].activated &&
|
|
1052
|
-
!oidcCfg.config.configs[0].activated
|
|
1053
|
-
) {
|
|
1054
|
-
fns.push(() => events.auth.SSODeactivated(ssoType))
|
|
1055
|
-
}
|
|
1056
|
-
break
|
|
1003
|
+
} else if (isSettingsConfig(config)) {
|
|
1004
|
+
// company
|
|
1005
|
+
const existingCompany = existing.config.company
|
|
1006
|
+
const company = config.config.company
|
|
1007
|
+
if (company && company !== "Budibase" && existingCompany !== company) {
|
|
1008
|
+
fns.push(events.org.nameUpdated)
|
|
1057
1009
|
}
|
|
1058
|
-
case ConfigType.SETTINGS: {
|
|
1059
|
-
// company
|
|
1060
|
-
const settingsCfg = config as SettingsConfig
|
|
1061
|
-
const existingCompany = existing.config.company
|
|
1062
|
-
const company = settingsCfg.config.company
|
|
1063
|
-
if (company && company !== "Budibase" && existingCompany !== company) {
|
|
1064
|
-
fns.push(events.org.nameUpdated)
|
|
1065
|
-
}
|
|
1066
1010
|
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1011
|
+
// logo
|
|
1012
|
+
const existingLogoUrl = existing.config.logoUrl
|
|
1013
|
+
const logoUrl = config.config.logoUrl
|
|
1014
|
+
if (logoUrl && existingLogoUrl !== logoUrl) {
|
|
1015
|
+
fns.push(events.org.logoUpdated)
|
|
1016
|
+
}
|
|
1073
1017
|
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
}
|
|
1085
|
-
break
|
|
1018
|
+
// platform url
|
|
1019
|
+
const existingPlatformUrl = existing.config.platformUrl
|
|
1020
|
+
const platformUrl = config.config.platformUrl
|
|
1021
|
+
if (
|
|
1022
|
+
platformUrl &&
|
|
1023
|
+
platformUrl !== "http://localhost:10000" &&
|
|
1024
|
+
existingPlatformUrl !== platformUrl &&
|
|
1025
|
+
env.SELF_HOSTED
|
|
1026
|
+
) {
|
|
1027
|
+
fns.push(events.org.platformURLUpdated)
|
|
1086
1028
|
}
|
|
1087
1029
|
}
|
|
1088
1030
|
}
|
|
@@ -1090,7 +1032,7 @@ const getEventFns = async (db: Database, config: ConfigDoc) => {
|
|
|
1090
1032
|
return fns
|
|
1091
1033
|
}
|
|
1092
1034
|
|
|
1093
|
-
export async function save(ctx:
|
|
1035
|
+
export async function save(ctx: UserCtx) {
|
|
1094
1036
|
const db = tenancy.getGlobalDB()
|
|
1095
1037
|
const { type, workspace, user, config } = ctx.request.body
|
|
1096
1038
|
let eventFns = await getEventFns(db, ctx.request.body)
|
|
@@ -1132,7 +1074,7 @@ export async function save(ctx: BBContext) {
|
|
|
1132
1074
|
}
|
|
1133
1075
|
}
|
|
1134
1076
|
|
|
1135
|
-
export async function <span class="fstat-no" title="function not covered" >fetch(</span>ctx:
|
|
1077
|
+
export async function <span class="fstat-no" title="function not covered" >fetch(</span>ctx: UserCtx) {
|
|
1136
1078
|
const db = <span class="cstat-no" title="statement not covered" >tenancy.getGlobalDB()</span>
|
|
1137
1079
|
const response = <span class="cstat-no" title="statement not covered" >await db.allDocs(</span>
|
|
1138
1080
|
dbCore.getConfigParams(
|
|
@@ -1142,18 +1084,18 @@ export async function <span class="fstat-no" title="function not covered" >fetch
|
|
|
1142
1084
|
}
|
|
1143
1085
|
)
|
|
1144
1086
|
)
|
|
1145
|
-
<span class="cstat-no" title="statement not covered" > ctx.body = response.rows.map(<span class="fstat-no" title="function not covered" >row
|
|
1087
|
+
<span class="cstat-no" title="statement not covered" > ctx.body = response.rows.map(<span class="fstat-no" title="function not covered" >row => <span class="cstat-no" title="statement not covered" >r</span>ow.doc)</span></span>
|
|
1146
1088
|
}
|
|
1147
1089
|
|
|
1148
1090
|
/**
|
|
1149
1091
|
* Gets the most granular config for a particular configuration type.
|
|
1150
1092
|
* The hierarchy is type -> workspace -> user.
|
|
1151
1093
|
*/
|
|
1152
|
-
export async function find(ctx:
|
|
1094
|
+
export async function find(ctx: UserCtx) {
|
|
1153
1095
|
const db = tenancy.getGlobalDB()
|
|
1154
1096
|
|
|
1155
1097
|
const { userId, workspaceId } = ctx.query
|
|
1156
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (workspaceId && <span class="branch-1 cbranch-no" title="branch not covered" >userId)</span>
|
|
1098
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (workspaceId && <span class="branch-1 cbranch-no" title="branch not covered" >userId) {</span>
|
|
1157
1099
|
const workspace = <span class="cstat-no" title="statement not covered" >await db.get(workspaceId as string)</span>
|
|
1158
1100
|
const userInWorkspace = <span class="cstat-no" title="statement not covered" >workspace.users.some(</span>
|
|
1159
1101
|
<span class="fstat-no" title="function not covered" > (w</span>orkspaceUser: any) => <span class="cstat-no" title="statement not covered" >workspaceUser === userId</span>
|
|
@@ -1182,18 +1124,18 @@ export async function find(ctx: BBContext) {
|
|
|
1182
1124
|
}
|
|
1183
1125
|
}
|
|
1184
1126
|
|
|
1185
|
-
export async function <span class="fstat-no" title="function not covered" >publicOidc(</span>ctx:
|
|
1127
|
+
export async function <span class="fstat-no" title="function not covered" >publicOidc(</span>ctx: Ctx) {
|
|
1186
1128
|
const db = <span class="cstat-no" title="statement not covered" >tenancy.getGlobalDB()</span>
|
|
1187
1129
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1188
1130
|
// Find the config with the most granular scope based on context
|
|
1189
|
-
const oidcConfig = <span class="cstat-no" title="statement not covered" >await dbCore.getScopedFullConfig(db, {</span>
|
|
1131
|
+
const oidcConfig: OIDCConfig = <span class="cstat-no" title="statement not covered" >await dbCore.getScopedFullConfig(db, {</span>
|
|
1190
1132
|
type: ConfigType.OIDC,
|
|
1191
1133
|
})
|
|
1192
1134
|
|
|
1193
1135
|
<span class="cstat-no" title="statement not covered" > if (!oidcConfig) {</span>
|
|
1194
1136
|
<span class="cstat-no" title="statement not covered" > ctx.body = {}</span>
|
|
1195
1137
|
} else {
|
|
1196
|
-
<span class="cstat-no" title="statement not covered" > ctx.body = oidcConfig.config.configs.map(<span class="fstat-no" title="function not covered" >
|
|
1138
|
+
<span class="cstat-no" title="statement not covered" > ctx.body = oidcConfig.config.configs.map(<span class="fstat-no" title="function not covered" >config => (<span class="cstat-no" title="statement not covered" >{</span></span></span>
|
|
1197
1139
|
logo: config.logo,
|
|
1198
1140
|
name: config.name,
|
|
1199
1141
|
uuid: config.uuid,
|
|
@@ -1204,7 +1146,7 @@ export async function <span class="fstat-no" title="function not covered" >publi
|
|
|
1204
1146
|
}
|
|
1205
1147
|
}
|
|
1206
1148
|
|
|
1207
|
-
export async function <span class="fstat-no" title="function not covered" >publicSettings(</span>ctx:
|
|
1149
|
+
export async function <span class="fstat-no" title="function not covered" >publicSettings(</span>ctx: Ctx) {
|
|
1208
1150
|
const db = <span class="cstat-no" title="statement not covered" >tenancy.getGlobalDB()</span>
|
|
1209
1151
|
|
|
1210
1152
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
@@ -1229,6 +1171,16 @@ export async function <span class="fstat-no" title="function not covered" >publi
|
|
|
1229
1171
|
} else {
|
|
1230
1172
|
<span class="cstat-no" title="statement not covered" > config = publicConfig</span>
|
|
1231
1173
|
}
|
|
1174
|
+
|
|
1175
|
+
// enrich the logo url
|
|
1176
|
+
// empty url means deleted
|
|
1177
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (config.config.logoUrl && config.config.logoUrl !== "") {</span>
|
|
1178
|
+
<span class="cstat-no" title="statement not covered" > config.config.logoUrl = objectStore.getGlobalFileUrl(</span>
|
|
1179
|
+
"settings",
|
|
1180
|
+
"logoUrl",
|
|
1181
|
+
config.config.logoUrlEtag
|
|
1182
|
+
)
|
|
1183
|
+
}
|
|
1232
1184
|
|
|
1233
1185
|
// google button flag
|
|
1234
1186
|
<span class="cstat-no" title="statement not covered" > if (googleConfig && googleConfig.config) {</span>
|
|
@@ -1256,28 +1208,17 @@ export async function <span class="fstat-no" title="function not covered" >publi
|
|
|
1256
1208
|
}
|
|
1257
1209
|
}
|
|
1258
1210
|
|
|
1259
|
-
export async function <span class="fstat-no" title="function not covered" >upload(</span>ctx:
|
|
1260
|
-
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.request.files == null || ctx.request.files.file
|
|
1211
|
+
export async function <span class="fstat-no" title="function not covered" >upload(</span>ctx: UserCtx) {
|
|
1212
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.request.files == null || Array.isArray(ctx.request.files.file)) {</span>
|
|
1261
1213
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "One file must be uploaded.")</span>
|
|
1262
1214
|
}
|
|
1263
|
-
const file = <span class="cstat-no" title="statement not covered" >ctx.request.files.file</span>
|
|
1215
|
+
const file = <span class="cstat-no" title="statement not covered" >ctx.request.files.file </span>as any
|
|
1264
1216
|
const { type, name } = <span class="cstat-no" title="statement not covered" >ctx.params</span>
|
|
1265
1217
|
|
|
1266
|
-
let bucket
|
|
1267
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1268
|
-
<span class="cstat-no" title="statement not covered" > bucket = objectStore.ObjectStoreBuckets.GLOBAL</span>
|
|
1269
|
-
} else {
|
|
1270
|
-
<span class="cstat-no" title="statement not covered" > bucket = objectStore.ObjectStoreBuckets.GLOBAL_CLOUD</span>
|
|
1271
|
-
}
|
|
1218
|
+
let bucket = <span class="cstat-no" title="statement not covered" >coreEnv.GLOBAL_BUCKET_NAME</span>
|
|
1219
|
+
const key = <span class="cstat-no" title="statement not covered" >objectStore.getGlobalFileS3Key(type, name)</span>
|
|
1272
1220
|
|
|
1273
|
-
|
|
1274
|
-
<span class="cstat-no" title="statement not covered" > if (env.MULTI_TENANCY) {</span>
|
|
1275
|
-
<span class="cstat-no" title="statement not covered" > key = `${tenancy.getTenantId()}/${type}/${name}`</span>
|
|
1276
|
-
} else {
|
|
1277
|
-
<span class="cstat-no" title="statement not covered" > key = `${type}/${name}`</span>
|
|
1278
|
-
}
|
|
1279
|
-
|
|
1280
|
-
<span class="cstat-no" title="statement not covered" > await objectStore.upload({</span>
|
|
1221
|
+
const result = <span class="cstat-no" title="statement not covered" >await objectStore.upload({</span>
|
|
1281
1222
|
bucket,
|
|
1282
1223
|
filename: key,
|
|
1283
1224
|
path: file.path,
|
|
@@ -1294,24 +1235,26 @@ export async function <span class="fstat-no" title="function not covered" >uploa
|
|
|
1294
1235
|
config: {},
|
|
1295
1236
|
}
|
|
1296
1237
|
}
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1300
|
-
|
|
1301
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1238
|
+
|
|
1239
|
+
// save the Etag for cache bursting
|
|
1240
|
+
const etag = <span class="cstat-no" title="statement not covered" >result.ETag</span>
|
|
1241
|
+
<span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (etag) {</span>
|
|
1242
|
+
<span class="cstat-no" title="statement not covered" > cfgStructure.config[`${name}Etag`] = etag.replace(/"/g, "")</span>
|
|
1302
1243
|
}
|
|
1303
1244
|
|
|
1304
|
-
|
|
1305
|
-
|
|
1245
|
+
// save the file key
|
|
1246
|
+
<span class="cstat-no" title="statement not covered" > cfgStructure.config[`${name}`] = key</span>
|
|
1247
|
+
|
|
1248
|
+
// write back to db
|
|
1306
1249
|
<span class="cstat-no" title="statement not covered" > await db.put(cfgStructure)</span>
|
|
1307
1250
|
|
|
1308
1251
|
<span class="cstat-no" title="statement not covered" > ctx.body = {</span>
|
|
1309
1252
|
message: "File has been uploaded and url stored to config.",
|
|
1310
|
-
url,
|
|
1253
|
+
url: objectStore.getGlobalFileUrl(type, name, etag),
|
|
1311
1254
|
}
|
|
1312
1255
|
}
|
|
1313
1256
|
|
|
1314
|
-
export async function destroy(ctx:
|
|
1257
|
+
export async function destroy(ctx: UserCtx) {
|
|
1315
1258
|
const db = tenancy.getGlobalDB()
|
|
1316
1259
|
const { id, rev } = ctx.params
|
|
1317
1260
|
try {
|
|
@@ -1323,7 +1266,7 @@ export async function destroy(ctx: BBContext) {
|
|
|
1323
1266
|
}
|
|
1324
1267
|
}
|
|
1325
1268
|
|
|
1326
|
-
export async function configChecklist(ctx:
|
|
1269
|
+
export async function configChecklist(ctx: Ctx) {
|
|
1327
1270
|
const db = tenancy.getGlobalDB()
|
|
1328
1271
|
const tenantId = tenancy.getTenantId()
|
|
1329
1272
|
|
|
@@ -1390,7 +1333,7 @@ export async function configChecklist(ctx: BBContext) {
|
|
|
1390
1333
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1391
1334
|
Code coverage generated by
|
|
1392
1335
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1393
|
-
at
|
|
1336
|
+
at Sun Feb 05 2023 23:25:59 GMT+0000 (Coordinated Universal Time)
|
|
1394
1337
|
</div>
|
|
1395
1338
|
<script src="../../../../prettify.js"></script>
|
|
1396
1339
|
<script>
|