@budibase/worker 2.2.12-alpha.1 → 2.2.12

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.
Files changed (134) hide show
  1. package/coverage/clover.xml +1238 -1291
  2. package/coverage/coverage-final.json +77 -81
  3. package/coverage/lcov-report/index.html +73 -73
  4. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +26 -26
  5. package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +212 -155
  6. package/coverage/lcov-report/src/api/controllers/global/email.ts.html +4 -4
  7. package/coverage/lcov-report/src/api/controllers/global/index.html +39 -39
  8. package/coverage/lcov-report/src/api/controllers/global/license.ts.html +7 -7
  9. package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +76 -76
  10. package/coverage/lcov-report/src/api/controllers/global/self.ts.html +14 -14
  11. package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +53 -53
  12. package/coverage/lcov-report/src/api/controllers/global/users.ts.html +27 -27
  13. package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +6 -6
  14. package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +4 -4
  15. package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +3 -3
  16. package/coverage/lcov-report/src/api/controllers/system/index.html +1 -1
  17. package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +4 -4
  18. package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +4 -4
  19. package/coverage/lcov-report/src/api/controllers/system/status.ts.html +4 -4
  20. package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +5 -5
  21. package/coverage/lcov-report/src/api/index.html +1 -1
  22. package/coverage/lcov-report/src/api/index.ts.html +23 -23
  23. package/coverage/lcov-report/src/api/routes/global/auth.ts.html +11 -11
  24. package/coverage/lcov-report/src/api/routes/global/configs.ts.html +16 -16
  25. package/coverage/lcov-report/src/api/routes/global/email.ts.html +10 -10
  26. package/coverage/lcov-report/src/api/routes/global/index.html +1 -1
  27. package/coverage/lcov-report/src/api/routes/global/license.ts.html +7 -7
  28. package/coverage/lcov-report/src/api/routes/global/roles.ts.html +7 -7
  29. package/coverage/lcov-report/src/api/routes/global/self.ts.html +8 -8
  30. package/coverage/lcov-report/src/api/routes/global/templates.ts.html +11 -11
  31. package/coverage/lcov-report/src/api/routes/global/users.ts.html +16 -16
  32. package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +9 -9
  33. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  34. package/coverage/lcov-report/src/api/routes/index.ts.html +19 -19
  35. package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +7 -7
  36. package/coverage/lcov-report/src/api/routes/system/environment.ts.html +6 -6
  37. package/coverage/lcov-report/src/api/routes/system/index.html +1 -1
  38. package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +7 -7
  39. package/coverage/lcov-report/src/api/routes/system/restore.ts.html +6 -6
  40. package/coverage/lcov-report/src/api/routes/system/status.ts.html +6 -6
  41. package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +7 -7
  42. package/coverage/lcov-report/src/api/routes/validation/index.html +1 -1
  43. package/coverage/lcov-report/src/api/routes/validation/index.ts.html +2 -2
  44. package/coverage/lcov-report/src/api/routes/validation/users.ts.html +13 -13
  45. package/coverage/lcov-report/src/constants/index.html +9 -9
  46. package/coverage/lcov-report/src/constants/index.ts.html +49 -73
  47. package/coverage/lcov-report/src/constants/templates/index.html +19 -19
  48. package/coverage/lcov-report/src/constants/templates/index.ts.html +39 -39
  49. package/coverage/lcov-report/src/db/index.html +1 -1
  50. package/coverage/lcov-report/src/db/index.ts.html +8 -8
  51. package/coverage/lcov-report/src/environment.ts.html +22 -37
  52. package/coverage/lcov-report/src/index.html +15 -15
  53. package/coverage/lcov-report/src/index.ts.html +43 -40
  54. package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +4 -4
  55. package/coverage/lcov-report/src/middleware/index.html +1 -1
  56. package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +3 -3
  57. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  58. package/coverage/lcov-report/src/migrations/index.html +1 -1
  59. package/coverage/lcov-report/src/migrations/index.ts.html +17 -17
  60. package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +6 -6
  61. package/coverage/lcov-report/src/sdk/accounts/index.html +1 -1
  62. package/coverage/lcov-report/src/sdk/accounts/index.ts.html +2 -2
  63. package/coverage/lcov-report/src/sdk/index.html +1 -1
  64. package/coverage/lcov-report/src/sdk/index.ts.html +4 -4
  65. package/coverage/lcov-report/src/sdk/users/events.ts.html +46 -46
  66. package/coverage/lcov-report/src/sdk/users/index.html +15 -15
  67. package/coverage/lcov-report/src/sdk/users/index.ts.html +2 -2
  68. package/coverage/lcov-report/src/sdk/users/users.ts.html +97 -148
  69. package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +80 -104
  70. package/coverage/lcov-report/src/tests/api/accounts.ts.html +6 -6
  71. package/coverage/lcov-report/src/tests/api/auth.ts.html +7 -7
  72. package/coverage/lcov-report/src/tests/api/base.ts.html +4 -4
  73. package/coverage/lcov-report/src/tests/api/configs.ts.html +8 -8
  74. package/coverage/lcov-report/src/tests/api/email.ts.html +5 -5
  75. package/coverage/lcov-report/src/tests/api/environment.ts.html +5 -5
  76. package/coverage/lcov-report/src/tests/api/index.html +11 -71
  77. package/coverage/lcov-report/src/tests/api/index.ts.html +28 -61
  78. package/coverage/lcov-report/src/tests/api/migrations.ts.html +6 -6
  79. package/coverage/lcov-report/src/tests/api/restore.ts.html +5 -5
  80. package/coverage/lcov-report/src/tests/api/self.ts.html +6 -6
  81. package/coverage/lcov-report/src/tests/api/status.ts.html +5 -5
  82. package/coverage/lcov-report/src/tests/api/tenants.ts.html +5 -5
  83. package/coverage/lcov-report/src/tests/api/users.ts.html +16 -16
  84. package/coverage/lcov-report/src/tests/controllers.ts.html +6 -6
  85. package/coverage/lcov-report/src/tests/index.html +10 -10
  86. package/coverage/lcov-report/src/tests/index.ts.html +9 -9
  87. package/coverage/lcov-report/src/tests/mocks/{email.ts.html → email.js.html} +5 -5
  88. package/coverage/lcov-report/src/tests/mocks/index.html +2 -2
  89. package/coverage/lcov-report/src/tests/mocks/index.ts.html +7 -7
  90. package/coverage/lcov-report/src/tests/structures/configs.ts.html +10 -10
  91. package/coverage/lcov-report/src/tests/structures/groups.ts.html +15 -15
  92. package/coverage/lcov-report/src/tests/structures/index.html +16 -16
  93. package/coverage/lcov-report/src/tests/structures/index.ts.html +11 -11
  94. package/coverage/lcov-report/src/tests/structures/users.ts.html +11 -11
  95. package/coverage/lcov-report/src/utilities/appService.ts.html +10 -10
  96. package/coverage/lcov-report/src/utilities/email.ts.html +15 -15
  97. package/coverage/lcov-report/src/utilities/fileSystem.ts.html +4 -4
  98. package/coverage/lcov-report/src/utilities/index.html +1 -1
  99. package/coverage/lcov-report/src/utilities/index.ts.html +2 -2
  100. package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
  101. package/coverage/lcov-report/src/utilities/templates.ts.html +6 -6
  102. package/coverage/lcov-report/src/utilities/users.ts.html +3 -3
  103. package/coverage/lcov.info +1779 -1949
  104. package/jest.config.ts +0 -2
  105. package/package.json +6 -7
  106. package/src/api/controllers/global/configs.ts +131 -112
  107. package/src/api/controllers/global/users.ts +1 -1
  108. package/src/api/routes/global/license.ts +1 -1
  109. package/src/api/routes/global/tests/license.spec.ts +2 -0
  110. package/src/api/routes/global/tests/roles.spec.ts +5 -66
  111. package/src/api/routes/global/tests/templates.spec.ts +9 -89
  112. package/src/api/routes/global/tests/users.spec.ts +2 -2
  113. package/src/constants/index.ts +5 -13
  114. package/src/environment.ts +0 -5
  115. package/src/index.ts +2 -1
  116. package/src/sdk/users/users.ts +1 -18
  117. package/src/tests/TestConfiguration.ts +1 -9
  118. package/src/tests/api/index.ts +1 -12
  119. package/src/tests/jestSetup.ts +1 -3
  120. package/src/tests/mocks/{email.ts → email.js} +1 -1
  121. package/src/tests/mocks/index.ts +3 -3
  122. package/src/tests/structures/configs.ts +2 -2
  123. package/src/tests/structures/groups.ts +1 -1
  124. package/src/tests/structures/users.ts +1 -1
  125. package/tsconfig.json +1 -0
  126. package/coverage/lcov-report/src/tests/api/groups.ts.html +0 -163
  127. package/coverage/lcov-report/src/tests/api/license.ts.html +0 -136
  128. package/coverage/lcov-report/src/tests/api/roles.ts.html +0 -181
  129. package/coverage/lcov-report/src/tests/api/templates.ts.html +0 -175
  130. package/src/api/routes/global/tests/groups.spec.ts +0 -58
  131. package/src/tests/api/groups.ts +0 -26
  132. package/src/tests/api/license.ts +0 -17
  133. package/src/tests/api/roles.ts +0 -32
  134. package/src/tests/api/templates.ts +0 -30
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">68.33% </span>
26
+ <span class="strong">69.27% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>123/180</span>
28
+ <span class='fraction'>133/192</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">67.02% </span>
33
+ <span class="strong">61.95% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>63/94</span>
35
+ <span class='fraction'>57/92</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">67.06% </span>
47
+ <span class="strong">68.15% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>112/167</span>
49
+ <span class='fraction'>122/179</span>
50
50
  </div>
51
51
 
52
52
 
@@ -484,24 +484,37 @@
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></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>
490
- <span class="cline-any cline-yes">18x</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-neutral">&nbsp;</span>
493
- <span class="cline-any cline-neutral">&nbsp;</span>
494
- <span class="cline-any cline-neutral">&nbsp;</span>
495
- <span class="cline-any cline-neutral">&nbsp;</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
487
+ <a name='L422'></a><a href='#L422'>422</a>
488
+ <a name='L423'></a><a href='#L423'>423</a>
489
+ <a name='L424'></a><a href='#L424'>424</a>
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>
497
510
  <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-yes">18x</span>
499
- <span class="cline-any cline-yes">18x</span>
500
511
  <span class="cline-any cline-neutral">&nbsp;</span>
501
512
  <span class="cline-any cline-neutral">&nbsp;</span>
502
513
  <span class="cline-any cline-neutral">&nbsp;</span>
503
514
  <span class="cline-any cline-neutral">&nbsp;</span>
504
515
  <span class="cline-any cline-neutral">&nbsp;</span>
516
+ <span class="cline-any cline-yes">17x</span>
517
+ <span class="cline-any cline-yes">17x</span>
505
518
  <span class="cline-any cline-neutral">&nbsp;</span>
506
519
  <span class="cline-any cline-neutral">&nbsp;</span>
507
520
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -514,6 +527,7 @@
514
527
  <span class="cline-any cline-neutral">&nbsp;</span>
515
528
  <span class="cline-any cline-yes">41x</span>
516
529
  <span class="cline-any cline-yes">41x</span>
530
+ <span class="cline-any cline-yes">41x</span>
517
531
  <span class="cline-any cline-neutral">&nbsp;</span>
518
532
  <span class="cline-any cline-neutral">&nbsp;</span>
519
533
  <span class="cline-any cline-yes">41x</span>
@@ -521,22 +535,33 @@
521
535
  <span class="cline-any cline-neutral">&nbsp;</span>
522
536
  <span class="cline-any cline-neutral">&nbsp;</span>
523
537
  <span class="cline-any cline-yes">41x</span>
538
+ <span class="cline-any cline-yes">41x</span>
524
539
  <span class="cline-any cline-yes">35x</span>
540
+ <span class="cline-any cline-neutral">&nbsp;</span>
525
541
  <span class="cline-any cline-yes">14x</span>
526
- <span class="cline-any cline-yes">21x</span>
542
+ <span class="cline-any cline-yes">14x</span>
543
+ <span class="cline-any cline-neutral">&nbsp;</span>
544
+ <span class="cline-any cline-neutral">&nbsp;</span>
545
+ <span class="cline-any cline-yes">4x</span>
527
546
  <span class="cline-any cline-yes">4x</span>
528
547
  <span class="cline-any cline-yes">4x</span>
529
548
  <span class="cline-any cline-yes">2x</span>
530
549
  <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-yes">17x</span>
550
+ <span class="cline-any cline-yes">4x</span>
551
+ <span class="cline-any cline-neutral">&nbsp;</span>
552
+ <span class="cline-any cline-neutral">&nbsp;</span>
553
+ <span class="cline-any cline-yes">6x</span>
532
554
  <span class="cline-any cline-yes">6x</span>
533
555
  <span class="cline-any cline-yes">6x</span>
534
556
  <span class="cline-any cline-yes">4x</span>
535
557
  <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-yes">11x</span>
558
+ <span class="cline-any cline-yes">6x</span>
559
+ <span class="cline-any cline-neutral">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span>
537
561
  <span class="cline-any cline-neutral">&nbsp;</span>
538
562
  <span class="cline-any cline-yes">11x</span>
539
563
  <span class="cline-any cline-yes">11x</span>
564
+ <span class="cline-any cline-yes">11x</span>
540
565
  <span class="cline-any cline-yes">1x</span>
541
566
  <span class="cline-any cline-neutral">&nbsp;</span>
542
567
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -555,18 +580,27 @@
555
580
  <span class="cline-any cline-neutral">&nbsp;</span>
556
581
  <span class="cline-any cline-yes">1x</span>
557
582
  <span class="cline-any cline-neutral">&nbsp;</span>
583
+ <span class="cline-any cline-yes">11x</span>
584
+ <span class="cline-any cline-neutral">&nbsp;</span>
558
585
  <span class="cline-any cline-neutral">&nbsp;</span>
559
586
  <span class="cline-any cline-neutral">&nbsp;</span>
560
587
  <span class="cline-any cline-yes">6x</span>
588
+ <span class="cline-any cline-neutral">&nbsp;</span>
561
589
  <span class="cline-any cline-yes">1x</span>
562
- <span class="cline-any cline-yes">5x</span>
590
+ <span class="cline-any cline-yes">1x</span>
591
+ <span class="cline-any cline-neutral">&nbsp;</span>
592
+ <span class="cline-any cline-neutral">&nbsp;</span>
593
+ <span class="cline-any cline-yes">2x</span>
563
594
  <span class="cline-any cline-yes">2x</span>
564
595
  <span class="cline-any cline-yes">2x</span>
565
596
  <span class="cline-any cline-yes">1x</span>
566
597
  <span class="cline-any cline-yes">1x</span>
567
598
  <span class="cline-any cline-yes">1x</span>
568
599
  <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-yes">3x</span>
600
+ <span class="cline-any cline-yes">2x</span>
601
+ <span class="cline-any cline-neutral">&nbsp;</span>
602
+ <span class="cline-any cline-neutral">&nbsp;</span>
603
+ <span class="cline-any cline-yes">2x</span>
570
604
  <span class="cline-any cline-yes">2x</span>
571
605
  <span class="cline-any cline-yes">2x</span>
572
606
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -579,12 +613,15 @@
579
613
  <span class="cline-any cline-neutral">&nbsp;</span>
580
614
  <span class="cline-any cline-yes">1x</span>
581
615
  <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-yes">1x</span>
616
+ <span class="cline-any cline-yes">2x</span>
617
+ <span class="cline-any cline-neutral">&nbsp;</span>
618
+ <span class="cline-any cline-neutral">&nbsp;</span>
583
619
  <span class="cline-any cline-neutral">&nbsp;</span>
584
620
  <span class="cline-any cline-yes">1x</span>
585
621
  <span class="cline-any cline-yes">1x</span>
586
622
  <span class="cline-any cline-yes">1x</span>
587
623
  <span class="cline-any cline-yes">1x</span>
624
+ <span class="cline-any cline-yes">1x</span>
588
625
  <span class="cline-any cline-neutral">&nbsp;</span>
589
626
  <span class="cline-any cline-neutral">&nbsp;</span>
590
627
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -605,13 +642,15 @@
605
642
  <span class="cline-any cline-neutral">&nbsp;</span>
606
643
  <span class="cline-any cline-yes">1x</span>
607
644
  <span class="cline-any cline-neutral">&nbsp;</span>
645
+ <span class="cline-any cline-yes">1x</span>
646
+ <span class="cline-any cline-neutral">&nbsp;</span>
608
647
  <span class="cline-any cline-neutral">&nbsp;</span>
609
648
  <span class="cline-any cline-neutral">&nbsp;</span>
610
649
  <span class="cline-any cline-neutral">&nbsp;</span>
611
650
  <span class="cline-any cline-yes">41x</span>
612
651
  <span class="cline-any cline-neutral">&nbsp;</span>
613
652
  <span class="cline-any cline-neutral">&nbsp;</span>
614
- <span class="cline-any cline-yes">18x</span>
653
+ <span class="cline-any cline-yes">17x</span>
615
654
  <span class="cline-any cline-yes">41x</span>
616
655
  <span class="cline-any cline-yes">41x</span>
617
656
  <span class="cline-any cline-yes">41x</span>
@@ -653,7 +692,7 @@
653
692
  <span class="cline-any cline-neutral">&nbsp;</span>
654
693
  <span class="cline-any cline-neutral">&nbsp;</span>
655
694
  <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-yes">18x</span>
695
+ <span class="cline-any cline-yes">17x</span>
657
696
  <span class="cline-any cline-no">&nbsp;</span>
658
697
  <span class="cline-any cline-no">&nbsp;</span>
659
698
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -670,7 +709,7 @@
670
709
  <span class="cline-any cline-neutral">&nbsp;</span>
671
710
  <span class="cline-any cline-neutral">&nbsp;</span>
672
711
  <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-yes">18x</span>
712
+ <span class="cline-any cline-yes">17x</span>
674
713
  <span class="cline-any cline-yes">36x</span>
675
714
  <span class="cline-any cline-neutral">&nbsp;</span>
676
715
  <span class="cline-any cline-yes">36x</span>
@@ -703,7 +742,7 @@
703
742
  <span class="cline-any cline-neutral">&nbsp;</span>
704
743
  <span class="cline-any cline-neutral">&nbsp;</span>
705
744
  <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-yes">18x</span>
745
+ <span class="cline-any cline-yes">17x</span>
707
746
  <span class="cline-any cline-no">&nbsp;</span>
708
747
  <span class="cline-any cline-no">&nbsp;</span>
709
748
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -725,7 +764,7 @@
725
764
  <span class="cline-any cline-neutral">&nbsp;</span>
726
765
  <span class="cline-any cline-neutral">&nbsp;</span>
727
766
  <span class="cline-any cline-neutral">&nbsp;</span>
728
- <span class="cline-any cline-yes">18x</span>
767
+ <span class="cline-any cline-yes">17x</span>
729
768
  <span class="cline-any cline-no">&nbsp;</span>
730
769
  <span class="cline-any cline-neutral">&nbsp;</span>
731
770
  <span class="cline-any cline-no">&nbsp;</span>
@@ -752,50 +791,51 @@
752
791
  <span class="cline-any cline-neutral">&nbsp;</span>
753
792
  <span class="cline-any cline-neutral">&nbsp;</span>
754
793
  <span class="cline-any cline-neutral">&nbsp;</span>
755
- <span class="cline-any cline-neutral">&nbsp;</span>
756
794
  <span class="cline-any cline-no">&nbsp;</span>
757
- <span class="cline-any cline-no">&nbsp;</span>
758
- <span class="cline-any cline-neutral">&nbsp;</span>
759
795
  <span class="cline-any cline-neutral">&nbsp;</span>
796
+ <span class="cline-any cline-no">&nbsp;</span>
760
797
  <span class="cline-any cline-neutral">&nbsp;</span>
761
798
  <span class="cline-any cline-neutral">&nbsp;</span>
799
+ <span class="cline-any cline-no">&nbsp;</span>
762
800
  <span class="cline-any cline-neutral">&nbsp;</span>
763
801
  <span class="cline-any cline-neutral">&nbsp;</span>
764
802
  <span class="cline-any cline-neutral">&nbsp;</span>
765
803
  <span class="cline-any cline-no">&nbsp;</span>
766
- <span class="cline-any cline-neutral">&nbsp;</span>
767
804
  <span class="cline-any cline-no">&nbsp;</span>
768
805
  <span class="cline-any cline-neutral">&nbsp;</span>
769
806
  <span class="cline-any cline-neutral">&nbsp;</span>
770
807
  <span class="cline-any cline-no">&nbsp;</span>
808
+ <span class="cline-any cline-no">&nbsp;</span>
771
809
  <span class="cline-any cline-neutral">&nbsp;</span>
810
+ <span class="cline-any cline-no">&nbsp;</span>
772
811
  <span class="cline-any cline-neutral">&nbsp;</span>
773
812
  <span class="cline-any cline-neutral">&nbsp;</span>
774
813
  <span class="cline-any cline-no">&nbsp;</span>
814
+ <span class="cline-any cline-neutral">&nbsp;</span>
775
815
  <span class="cline-any cline-no">&nbsp;</span>
776
816
  <span class="cline-any cline-neutral">&nbsp;</span>
777
817
  <span class="cline-any cline-neutral">&nbsp;</span>
818
+ <span class="cline-any cline-neutral">&nbsp;</span>
819
+ <span class="cline-any cline-yes">17x</span>
778
820
  <span class="cline-any cline-no">&nbsp;</span>
779
821
  <span class="cline-any cline-no">&nbsp;</span>
780
822
  <span class="cline-any cline-neutral">&nbsp;</span>
781
823
  <span class="cline-any cline-no">&nbsp;</span>
824
+ <span class="cline-any cline-no">&nbsp;</span>
782
825
  <span class="cline-any cline-neutral">&nbsp;</span>
783
826
  <span class="cline-any cline-neutral">&nbsp;</span>
784
827
  <span class="cline-any cline-no">&nbsp;</span>
828
+ <span class="cline-any cline-no">&nbsp;</span>
785
829
  <span class="cline-any cline-neutral">&nbsp;</span>
786
830
  <span class="cline-any cline-no">&nbsp;</span>
787
831
  <span class="cline-any cline-neutral">&nbsp;</span>
788
832
  <span class="cline-any cline-neutral">&nbsp;</span>
789
833
  <span class="cline-any cline-neutral">&nbsp;</span>
790
- <span class="cline-any cline-yes">18x</span>
791
834
  <span class="cline-any cline-no">&nbsp;</span>
792
835
  <span class="cline-any cline-no">&nbsp;</span>
793
836
  <span class="cline-any cline-neutral">&nbsp;</span>
794
837
  <span class="cline-any cline-no">&nbsp;</span>
795
- <span class="cline-any cline-no">&nbsp;</span>
796
838
  <span class="cline-any cline-neutral">&nbsp;</span>
797
- <span class="cline-any cline-no">&nbsp;</span>
798
- <span class="cline-any cline-no">&nbsp;</span>
799
839
  <span class="cline-any cline-neutral">&nbsp;</span>
800
840
  <span class="cline-any cline-no">&nbsp;</span>
801
841
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -815,16 +855,14 @@
815
855
  <span class="cline-any cline-neutral">&nbsp;</span>
816
856
  <span class="cline-any cline-neutral">&nbsp;</span>
817
857
  <span class="cline-any cline-neutral">&nbsp;</span>
818
- <span class="cline-any cline-neutral">&nbsp;</span>
819
- <span class="cline-any cline-no">&nbsp;</span>
820
858
  <span class="cline-any cline-no">&nbsp;</span>
821
859
  <span class="cline-any cline-no">&nbsp;</span>
822
860
  <span class="cline-any cline-neutral">&nbsp;</span>
861
+ <span class="cline-any cline-no">&nbsp;</span>
823
862
  <span class="cline-any cline-neutral">&nbsp;</span>
824
863
  <span class="cline-any cline-neutral">&nbsp;</span>
825
864
  <span class="cline-any cline-no">&nbsp;</span>
826
865
  <span class="cline-any cline-neutral">&nbsp;</span>
827
- <span class="cline-any cline-neutral">&nbsp;</span>
828
866
  <span class="cline-any cline-no">&nbsp;</span>
829
867
  <span class="cline-any cline-neutral">&nbsp;</span>
830
868
  <span class="cline-any cline-no">&nbsp;</span>
@@ -833,7 +871,7 @@
833
871
  <span class="cline-any cline-neutral">&nbsp;</span>
834
872
  <span class="cline-any cline-neutral">&nbsp;</span>
835
873
  <span class="cline-any cline-neutral">&nbsp;</span>
836
- <span class="cline-any cline-yes">18x</span>
874
+ <span class="cline-any cline-yes">17x</span>
837
875
  <span class="cline-any cline-yes">36x</span>
838
876
  <span class="cline-any cline-yes">36x</span>
839
877
  <span class="cline-any cline-yes">36x</span>
@@ -845,7 +883,7 @@
845
883
  <span class="cline-any cline-neutral">&nbsp;</span>
846
884
  <span class="cline-any cline-neutral">&nbsp;</span>
847
885
  <span class="cline-any cline-neutral">&nbsp;</span>
848
- <span class="cline-any cline-yes">18x</span>
886
+ <span class="cline-any cline-yes">17x</span>
849
887
  <span class="cline-any cline-yes">4x</span>
850
888
  <span class="cline-any cline-yes">4x</span>
851
889
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -914,7 +952,6 @@ import {
914
952
  objectStore,
915
953
  tenancy,
916
954
  db as dbCore,
917
- env as coreEnv,
918
955
  } from "@budibase/backend-core"
919
956
  import { checkAnyUserExists } from "../../../utilities/users"
920
957
  import {
@@ -925,106 +962,127 @@ import {
925
962
  GoogleConfig,
926
963
  OIDCConfig,
927
964
  SettingsConfig,
928
- isGoogleConfig,
929
- isOIDCConfig,
930
- isSettingsConfig,
931
- isSMTPConfig,
932
- Ctx,
933
- UserCtx,
965
+ BBContext,
934
966
  } from "@budibase/types"
935
967
  &nbsp;
936
968
  const getEventFns = async (db: Database, config: ConfigDoc) =&gt; {
937
969
  const fns = []
970
+ const type = config.type
938
971
  &nbsp;
939
972
  let existing
940
973
  if (config._id) {
941
974
  existing = await db.get(config._id)
942
975
  }
943
976
  &nbsp;
977
+ const ssoType = type as SSOType
944
978
  if (!existing) {
945
- if (isSMTPConfig(config)) {
946
- fns.push(events.email.SMTPCreated)
947
- } else if (isGoogleConfig(config)) {
948
- fns.push(() =&gt; events.auth.SSOCreated(ConfigType.GOOGLE))
949
- if (config.config.activated) {
950
- fns.push(() =&gt; events.auth.SSOActivated(ConfigType.GOOGLE))
979
+ switch (config.type) {
980
+ case ConfigType.SMTP: {
981
+ fns.push(events.email.SMTPCreated)
982
+ break
951
983
  }
952
- } else if (isOIDCConfig(config)) {
953
- fns.push(() =&gt; events.auth.SSOCreated(ConfigType.OIDC))
954
- if (config.config.configs[0].activated) {
955
- fns.push(() =&gt; events.auth.SSOActivated(ConfigType.OIDC))
984
+ case ConfigType.GOOGLE: {
985
+ const googleCfg = config as GoogleConfig
986
+ fns.push(() =&gt; events.auth.SSOCreated(ssoType))
987
+ if (googleCfg.config.activated) {
988
+ fns.push(() =&gt; events.auth.SSOActivated(ssoType))
989
+ }
990
+ break
956
991
  }
957
- } else if (isSettingsConfig(config)) {
958
- // company
959
- const company = config.config.company
960
- if (company &amp;&amp; company !== "Budibase") {
961
- fns.push(events.org.nameUpdated)
992
+ case ConfigType.OIDC: {
993
+ const oidcCfg = config as OIDCConfig
994
+ fns.push(() =&gt; events.auth.SSOCreated(ssoType))
995
+ if (oidcCfg.config.configs[0].activated) {
996
+ fns.push(() =&gt; events.auth.SSOActivated(ssoType))
997
+ }
998
+ break
962
999
  }
1000
+ case ConfigType.SETTINGS: {
1001
+ // company
1002
+ const settingsCfg = config as SettingsConfig
1003
+ const company = settingsCfg.config.company
1004
+ if (company &amp;&amp; company !== "Budibase") {
1005
+ fns.push(events.org.nameUpdated)
1006
+ }
963
1007
  &nbsp;
964
- // logo
965
- const logoUrl = config.config.logoUrl
966
- if (logoUrl) {
967
- fns.push(events.org.logoUpdated)
968
- }
1008
+ // logo
1009
+ const logoUrl = settingsCfg.config.logoUrl
1010
+ if (logoUrl) {
1011
+ fns.push(events.org.logoUpdated)
1012
+ }
969
1013
  &nbsp;
970
- // platform url
971
- const platformUrl = config.config.platformUrl
972
- if (
973
- platformUrl &amp;&amp;
974
- platformUrl !== "http://localhost:10000" &amp;&amp;
975
- env.SELF_HOSTED
976
- ) {
977
- fns.push(events.org.platformURLUpdated)
1014
+ // platform url
1015
+ const platformUrl = settingsCfg.config.platformUrl
1016
+ if (
1017
+ platformUrl &amp;&amp;
1018
+ platformUrl !== "http://localhost:10000" &amp;&amp;
1019
+ env.SELF_HOSTED
1020
+ ) {
1021
+ fns.push(events.org.platformURLUpdated)
1022
+ }
1023
+ break
978
1024
  }
979
1025
  }
980
1026
  } else {
981
- if (isSMTPConfig(config)) {
982
- fns.push(events.email.SMTPUpdated)
983
- } else if (isGoogleConfig(config)) {
984
- fns.push(() =&gt; events.auth.SSOUpdated(ConfigType.GOOGLE))
985
- if (!existing.config.activated &amp;&amp; config.config.activated) {
986
- fns.push(() =&gt; events.auth.SSOActivated(ConfigType.GOOGLE))
987
- } else if (existing.config.activated &amp;&amp; !config.config.activated) {
988
- fns.push(() =&gt; events.auth.SSODeactivated(ConfigType.GOOGLE))
1027
+ switch (config.type) {
1028
+ case ConfigType.SMTP: {
1029
+ fns.push(events.email.SMTPUpdated)
1030
+ break
989
1031
  }
990
- } else if (isOIDCConfig(config)) {
991
- fns.push(() =&gt; events.auth.SSOUpdated(ConfigType.OIDC))
992
- if (
993
- !existing.config.configs[0].activated &amp;&amp;
994
- config.config.configs[0].activated
995
- ) {
996
- fns.push(() =&gt; events.auth.SSOActivated(ConfigType.OIDC))
997
- } else if (
998
- existing.config.configs[0].activated &amp;&amp;
999
- !config.config.configs[0].activated
1000
- ) {
1001
- fns.push(() =&gt; events.auth.SSODeactivated(ConfigType.OIDC))
1032
+ case ConfigType.GOOGLE: {
1033
+ const googleCfg = config as GoogleConfig
1034
+ fns.push(() =&gt; events.auth.SSOUpdated(ssoType))
1035
+ if (!existing.config.activated &amp;&amp; googleCfg.config.activated) {
1036
+ fns.push(() =&gt; events.auth.SSOActivated(ssoType))
1037
+ } else if (existing.config.activated &amp;&amp; !googleCfg.config.activated) {
1038
+ fns.push(() =&gt; events.auth.SSODeactivated(ssoType))
1039
+ }
1040
+ break
1002
1041
  }
1003
- } else if (isSettingsConfig(config)) {
1004
- // company
1005
- const existingCompany = existing.config.company
1006
- const company = config.config.company
1007
- if (company &amp;&amp; company !== "Budibase" &amp;&amp; existingCompany !== company) {
1008
- fns.push(events.org.nameUpdated)
1042
+ case ConfigType.OIDC: {
1043
+ const oidcCfg = config as OIDCConfig
1044
+ fns.push(() =&gt; events.auth.SSOUpdated(ssoType))
1045
+ if (
1046
+ !existing.config.configs[0].activated &amp;&amp;
1047
+ oidcCfg.config.configs[0].activated
1048
+ ) {
1049
+ fns.push(() =&gt; events.auth.SSOActivated(ssoType))
1050
+ } else if (
1051
+ existing.config.configs[0].activated &amp;&amp;
1052
+ !oidcCfg.config.configs[0].activated
1053
+ ) {
1054
+ fns.push(() =&gt; events.auth.SSODeactivated(ssoType))
1055
+ }
1056
+ break
1009
1057
  }
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 &amp;&amp; company !== "Budibase" &amp;&amp; existingCompany !== company) {
1064
+ fns.push(events.org.nameUpdated)
1065
+ }
1010
1066
  &nbsp;
1011
- // logo
1012
- const existingLogoUrl = existing.config.logoUrl
1013
- const logoUrl = config.config.logoUrl
1014
- if (logoUrl &amp;&amp; existingLogoUrl !== logoUrl) {
1015
- fns.push(events.org.logoUpdated)
1016
- }
1067
+ // logo
1068
+ const existingLogoUrl = existing.config.logoUrl
1069
+ const logoUrl = settingsCfg.config.logoUrl
1070
+ if (logoUrl &amp;&amp; existingLogoUrl !== logoUrl) {
1071
+ fns.push(events.org.logoUpdated)
1072
+ }
1017
1073
  &nbsp;
1018
- // platform url
1019
- const existingPlatformUrl = existing.config.platformUrl
1020
- const platformUrl = config.config.platformUrl
1021
- if (
1022
- platformUrl &amp;&amp;
1023
- platformUrl !== "http://localhost:10000" &amp;&amp;
1024
- existingPlatformUrl !== platformUrl &amp;&amp;
1025
- env.SELF_HOSTED
1026
- ) {
1027
- fns.push(events.org.platformURLUpdated)
1074
+ // platform url
1075
+ const existingPlatformUrl = existing.config.platformUrl
1076
+ const platformUrl = settingsCfg.config.platformUrl
1077
+ if (
1078
+ platformUrl &amp;&amp;
1079
+ platformUrl !== "http://localhost:10000" &amp;&amp;
1080
+ existingPlatformUrl !== platformUrl &amp;&amp;
1081
+ env.SELF_HOSTED
1082
+ ) {
1083
+ fns.push(events.org.platformURLUpdated)
1084
+ }
1085
+ break
1028
1086
  }
1029
1087
  }
1030
1088
  }
@@ -1032,7 +1090,7 @@ const getEventFns = async (db: Database, config: ConfigDoc) =&gt; {
1032
1090
  return fns
1033
1091
  }
1034
1092
  &nbsp;
1035
- export async function save(ctx: UserCtx) {
1093
+ export async function save(ctx: BBContext) {
1036
1094
  const db = tenancy.getGlobalDB()
1037
1095
  const { type, workspace, user, config } = ctx.request.body
1038
1096
  let eventFns = await getEventFns(db, ctx.request.body)
@@ -1074,7 +1132,7 @@ export async function save(ctx: UserCtx) {
1074
1132
  }
1075
1133
  }
1076
1134
  &nbsp;
1077
- export async function <span class="fstat-no" title="function not covered" >fetch(</span>ctx: UserCtx) {
1135
+ export async function <span class="fstat-no" title="function not covered" >fetch(</span>ctx: BBContext) {
1078
1136
  const db = <span class="cstat-no" title="statement not covered" >tenancy.getGlobalDB()</span>
1079
1137
  const response = <span class="cstat-no" title="statement not covered" >await db.allDocs(</span>
1080
1138
  dbCore.getConfigParams(
@@ -1091,7 +1149,7 @@ export async function <span class="fstat-no" title="function not covered" >fetch
1091
1149
  * Gets the most granular config for a particular configuration type.
1092
1150
  * The hierarchy is type -&gt; workspace -&gt; user.
1093
1151
  */
1094
- export async function find(ctx: UserCtx) {
1152
+ export async function find(ctx: BBContext) {
1095
1153
  const db = tenancy.getGlobalDB()
1096
1154
  &nbsp;
1097
1155
  const { userId, workspaceId } = ctx.query
@@ -1124,18 +1182,18 @@ export async function find(ctx: UserCtx) {
1124
1182
  }
1125
1183
  }
1126
1184
  &nbsp;
1127
- export async function <span class="fstat-no" title="function not covered" >publicOidc(</span>ctx: Ctx) {
1185
+ export async function <span class="fstat-no" title="function not covered" >publicOidc(</span>ctx: BBContext) {
1128
1186
  const db = <span class="cstat-no" title="statement not covered" >tenancy.getGlobalDB()</span>
1129
1187
  <span class="cstat-no" title="statement not covered" > try {</span>
1130
1188
  // Find the config with the most granular scope based on context
1131
- const oidcConfig: OIDCConfig = <span class="cstat-no" title="statement not covered" >await dbCore.getScopedFullConfig(db, {</span>
1189
+ const oidcConfig = <span class="cstat-no" title="statement not covered" >await dbCore.getScopedFullConfig(db, {</span>
1132
1190
  type: ConfigType.OIDC,
1133
1191
  })
1134
1192
  &nbsp;
1135
1193
  <span class="cstat-no" title="statement not covered" > if (!oidcConfig) {</span>
1136
1194
  <span class="cstat-no" title="statement not covered" > ctx.body = {}</span>
1137
1195
  } else {
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>=&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
1196
+ <span class="cstat-no" title="statement not covered" > ctx.body = oidcConfig.config.configs.map(<span class="fstat-no" title="function not covered" >(c</span>onfig: any) =&gt; (<span class="cstat-no" title="statement not covered" >{</span></span>
1139
1197
  logo: config.logo,
1140
1198
  name: config.name,
1141
1199
  uuid: config.uuid,
@@ -1146,7 +1204,7 @@ export async function <span class="fstat-no" title="function not covered" >publi
1146
1204
  }
1147
1205
  }
1148
1206
  &nbsp;
1149
- export async function <span class="fstat-no" title="function not covered" >publicSettings(</span>ctx: Ctx) {
1207
+ export async function <span class="fstat-no" title="function not covered" >publicSettings(</span>ctx: BBContext) {
1150
1208
  const db = <span class="cstat-no" title="statement not covered" >tenancy.getGlobalDB()</span>
1151
1209
  &nbsp;
1152
1210
  <span class="cstat-no" title="statement not covered" > try {</span>
@@ -1171,16 +1229,6 @@ export async function <span class="fstat-no" title="function not covered" >publi
1171
1229
  } else {
1172
1230
  <span class="cstat-no" title="statement not covered" > config = publicConfig</span>
1173
1231
  }
1174
- &nbsp;
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 !== "") {</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
- }
1184
1232
  &nbsp;
1185
1233
  // google button flag
1186
1234
  <span class="cstat-no" title="statement not covered" > if (googleConfig &amp;&amp; googleConfig.config) {</span>
@@ -1208,17 +1256,28 @@ export async function <span class="fstat-no" title="function not covered" >publi
1208
1256
  }
1209
1257
  }
1210
1258
  &nbsp;
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>
1259
+ export async function <span class="fstat-no" title="function not covered" >upload(</span>ctx: BBContext) {
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.length &gt; 1) {</span>
1213
1261
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "One file must be uploaded.")</span>
1214
1262
  }
1215
- const file = <span class="cstat-no" title="statement not covered" >ctx.request.files.file as any</span>
1263
+ const file = <span class="cstat-no" title="statement not covered" >ctx.request.files.file</span>
1216
1264
  const { type, name } = <span class="cstat-no" title="statement not covered" >ctx.params</span>
1217
1265
  &nbsp;
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>
1266
+ let bucket
1267
+ <span class="cstat-no" title="statement not covered" > if (env.SELF_HOSTED) {</span>
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
+ }
1220
1272
  &nbsp;
1221
- const result = <span class="cstat-no" title="statement not covered" >await objectStore.upload({</span>
1273
+ let key
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
+ &nbsp;
1280
+ <span class="cstat-no" title="statement not covered" > await objectStore.upload({</span>
1222
1281
  bucket,
1223
1282
  filename: key,
1224
1283
  path: file.path,
@@ -1235,26 +1294,24 @@ export async function <span class="fstat-no" title="function not covered" >uploa
1235
1294
  config: {},
1236
1295
  }
1237
1296
  }
1238
- &nbsp;
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>
1297
+ let url
1298
+ <span class="cstat-no" title="statement not covered" > if (env.SELF_HOSTED) {</span>
1299
+ <span class="cstat-no" title="statement not covered" > url = `/${bucket}/${key}`</span>
1300
+ } else {
1301
+ <span class="cstat-no" title="statement not covered" > url = `${env.CDN_URL}/${key}`</span>
1243
1302
  }
1244
1303
  &nbsp;
1245
- // save the file key
1246
- <span class="cstat-no" title="statement not covered" > cfgStructure.config[`${name}`] = key</span>
1247
- &nbsp;
1248
- // write back to db
1304
+ <span class="cstat-no" title="statement not covered" > cfgStructure.config[`${name}`] = url</span>
1305
+ // write back to db with url updated
1249
1306
  <span class="cstat-no" title="statement not covered" > await db.put(cfgStructure)</span>
1250
1307
  &nbsp;
1251
1308
  <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
1252
1309
  message: "File has been uploaded and url stored to config.",
1253
- url: objectStore.getGlobalFileUrl(type, name, etag),
1310
+ url,
1254
1311
  }
1255
1312
  }
1256
1313
  &nbsp;
1257
- export async function destroy(ctx: UserCtx) {
1314
+ export async function destroy(ctx: BBContext) {
1258
1315
  const db = tenancy.getGlobalDB()
1259
1316
  const { id, rev } = ctx.params
1260
1317
  try {
@@ -1266,7 +1323,7 @@ export async function destroy(ctx: UserCtx) {
1266
1323
  }
1267
1324
  }
1268
1325
  &nbsp;
1269
- export async function configChecklist(ctx: Ctx) {
1326
+ export async function configChecklist(ctx: BBContext) {
1270
1327
  const db = tenancy.getGlobalDB()
1271
1328
  const tenantId = tenancy.getTenantId()
1272
1329
  &nbsp;
@@ -1333,7 +1390,7 @@ export async function configChecklist(ctx: Ctx) {
1333
1390
  <div class='footer quiet pad2 space-top1 center small'>
1334
1391
  Code coverage generated by
1335
1392
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1336
- at Mon Jan 09 2023 08:30:59 GMT+0000 (Coordinated Universal Time)
1393
+ at Mon Jan 09 2023 15:36:03 GMT+0000 (Coordinated Universal Time)
1337
1394
  </div>
1338
1395
  <script src="../../../../prettify.js"></script>
1339
1396
  <script>