@budibase/worker 2.1.22-alpha.5 → 2.1.22-alpha.7

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 (171) hide show
  1. package/__mocks__/oauth.ts +57 -0
  2. package/coverage/clover.xml +1255 -1174
  3. package/coverage/coverage-final.json +77 -72
  4. package/coverage/lcov-report/index.html +96 -96
  5. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +110 -98
  6. package/coverage/lcov-report/src/api/controllers/global/configs.js.html +52 -52
  7. package/coverage/lcov-report/src/api/controllers/global/email.js.html +4 -4
  8. package/coverage/lcov-report/src/api/controllers/global/index.html +38 -38
  9. package/coverage/lcov-report/src/api/controllers/global/license.ts.html +7 -7
  10. package/coverage/lcov-report/src/api/controllers/global/roles.js.html +10 -10
  11. package/coverage/lcov-report/src/api/controllers/global/self.ts.html +59 -59
  12. package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +11 -11
  13. package/coverage/lcov-report/src/api/controllers/global/users.ts.html +75 -69
  14. package/coverage/lcov-report/src/api/controllers/global/workspaces.js.html +7 -7
  15. package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +4 -4
  16. package/coverage/lcov-report/src/api/controllers/system/{environment.js.html → environment.ts.html} +21 -18
  17. package/coverage/lcov-report/src/api/controllers/system/index.html +63 -63
  18. package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +23 -23
  19. package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +22 -22
  20. package/coverage/lcov-report/src/api/controllers/system/{status.js.html → status.ts.html} +29 -26
  21. package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +34 -163
  22. package/coverage/lcov-report/src/api/index.html +11 -11
  23. package/coverage/lcov-report/src/api/index.ts.html +113 -44
  24. package/coverage/lcov-report/src/api/routes/global/auth.js.html +38 -89
  25. package/coverage/lcov-report/src/api/routes/global/configs.js.html +26 -26
  26. package/coverage/lcov-report/src/api/routes/global/email.js.html +11 -11
  27. package/coverage/lcov-report/src/api/routes/global/index.html +11 -11
  28. package/coverage/lcov-report/src/api/routes/global/license.ts.html +6 -6
  29. package/coverage/lcov-report/src/api/routes/global/roles.js.html +7 -7
  30. package/coverage/lcov-report/src/api/routes/global/self.ts.html +8 -8
  31. package/coverage/lcov-report/src/api/routes/global/templates.ts.html +13 -13
  32. package/coverage/lcov-report/src/api/routes/global/users.js.html +17 -17
  33. package/coverage/lcov-report/src/api/routes/global/workspaces.js.html +10 -10
  34. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  35. package/coverage/lcov-report/src/api/routes/index.ts.html +19 -19
  36. package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +7 -7
  37. package/coverage/lcov-report/src/api/routes/system/{environment.js.html → environment.ts.html} +11 -11
  38. package/coverage/lcov-report/src/api/routes/system/index.html +4 -4
  39. package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +7 -7
  40. package/coverage/lcov-report/src/api/routes/system/restore.ts.html +6 -6
  41. package/coverage/lcov-report/src/api/routes/system/{status.js.html → status.ts.html} +11 -11
  42. package/coverage/lcov-report/src/api/routes/system/{tenants.js.html → tenants.ts.html} +20 -17
  43. package/coverage/lcov-report/src/api/routes/validation/index.html +1 -1
  44. package/coverage/lcov-report/src/api/routes/validation/index.ts.html +2 -2
  45. package/coverage/lcov-report/src/api/routes/validation/users.ts.html +13 -13
  46. package/coverage/lcov-report/src/constants/index.html +10 -10
  47. package/coverage/lcov-report/src/constants/{index.js.html → index.ts.html} +103 -124
  48. package/coverage/lcov-report/src/constants/templates/index.html +1 -1
  49. package/coverage/lcov-report/src/constants/templates/index.js.html +12 -12
  50. package/coverage/lcov-report/src/db/index.html +1 -1
  51. package/coverage/lcov-report/src/db/index.ts.html +8 -8
  52. package/coverage/lcov-report/src/environment.ts.html +15 -15
  53. package/coverage/lcov-report/src/index.html +1 -1
  54. package/coverage/lcov-report/src/index.ts.html +40 -40
  55. package/coverage/lcov-report/src/middleware/cloudRestricted.js.html +23 -23
  56. package/coverage/lcov-report/src/middleware/index.html +21 -21
  57. package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +3 -3
  58. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  59. package/coverage/lcov-report/src/migrations/index.html +1 -1
  60. package/coverage/lcov-report/src/migrations/index.ts.html +17 -17
  61. package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +6 -6
  62. package/coverage/lcov-report/src/sdk/accounts/index.html +1 -1
  63. package/coverage/lcov-report/src/sdk/accounts/index.ts.html +2 -2
  64. package/coverage/lcov-report/src/sdk/index.html +1 -1
  65. package/coverage/lcov-report/src/sdk/index.ts.html +4 -4
  66. package/coverage/lcov-report/src/sdk/users/events.ts.html +43 -43
  67. package/coverage/lcov-report/src/sdk/users/index.html +19 -19
  68. package/coverage/lcov-report/src/sdk/users/index.ts.html +2 -2
  69. package/coverage/lcov-report/src/sdk/users/users.ts.html +99 -99
  70. package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +275 -128
  71. package/coverage/lcov-report/src/tests/api/accounts.ts.html +12 -21
  72. package/coverage/lcov-report/src/tests/api/auth.ts.html +11 -20
  73. package/coverage/lcov-report/src/tests/api/base.ts.html +133 -0
  74. package/coverage/lcov-report/src/tests/api/configs.ts.html +44 -23
  75. package/coverage/lcov-report/src/tests/api/email.ts.html +9 -18
  76. package/coverage/lcov-report/src/tests/api/environment.ts.html +130 -0
  77. package/coverage/lcov-report/src/tests/api/index.html +106 -16
  78. package/coverage/lcov-report/src/tests/api/index.ts.html +62 -17
  79. package/coverage/lcov-report/src/tests/{structures/accounts.ts.html → api/migrations.ts.html} +31 -37
  80. package/coverage/lcov-report/src/tests/api/restore.ts.html +127 -0
  81. package/coverage/lcov-report/src/tests/api/self.ts.html +31 -16
  82. package/coverage/lcov-report/src/tests/api/status.ts.html +121 -0
  83. package/coverage/lcov-report/src/tests/api/tenants.ts.html +130 -0
  84. package/coverage/lcov-report/src/tests/api/users.ts.html +121 -25
  85. package/coverage/lcov-report/src/tests/controllers.js.html +2 -2
  86. package/coverage/lcov-report/src/tests/index.html +21 -21
  87. package/coverage/lcov-report/src/tests/index.ts.html +21 -9
  88. package/coverage/lcov-report/src/tests/mocks/email.js.html +2 -2
  89. package/coverage/lcov-report/src/tests/mocks/index.html +1 -1
  90. package/coverage/lcov-report/src/tests/mocks/index.ts.html +4 -4
  91. package/coverage/lcov-report/src/tests/structures/configs.js.html +14 -14
  92. package/coverage/lcov-report/src/tests/structures/groups.ts.html +2 -2
  93. package/coverage/lcov-report/src/tests/structures/index.html +9 -24
  94. package/coverage/lcov-report/src/tests/structures/index.ts.html +21 -15
  95. package/coverage/lcov-report/src/tests/structures/users.ts.html +13 -10
  96. package/coverage/lcov-report/src/utilities/appService.js.html +14 -14
  97. package/coverage/lcov-report/src/utilities/{email.js.html → email.ts.html} +172 -73
  98. package/coverage/lcov-report/src/utilities/fileSystem.js.html +4 -4
  99. package/coverage/lcov-report/src/utilities/index.html +23 -23
  100. package/coverage/lcov-report/src/utilities/index.js.html +2 -2
  101. package/coverage/lcov-report/src/utilities/{redis.js.html → redis.ts.html} +63 -48
  102. package/coverage/lcov-report/src/utilities/{templates.js.html → templates.ts.html} +41 -41
  103. package/coverage/lcov-report/src/utilities/users.js.html +8 -8
  104. package/coverage/lcov.info +2058 -1820
  105. package/jest.config.ts +1 -0
  106. package/package.json +8 -6
  107. package/scripts/localdomain.js +33 -7
  108. package/src/api/controllers/global/auth.ts +35 -31
  109. package/src/api/controllers/global/configs.js +17 -17
  110. package/src/api/controllers/global/self.ts +2 -2
  111. package/src/api/controllers/global/users.ts +3 -1
  112. package/src/api/controllers/system/{environment.js → environment.ts} +3 -2
  113. package/src/api/controllers/system/{status.js → status.ts} +4 -3
  114. package/src/api/controllers/system/tenants.ts +8 -51
  115. package/src/api/index.ts +29 -6
  116. package/src/api/routes/global/auth.js +22 -39
  117. package/src/api/routes/global/configs.js +9 -9
  118. package/src/api/routes/global/templates.ts +2 -2
  119. package/src/api/routes/global/tests/auth.spec.ts +134 -64
  120. package/src/api/routes/global/tests/configs.spec.ts +34 -35
  121. package/src/api/routes/global/tests/email.spec.ts +4 -3
  122. package/src/api/routes/global/tests/license.spec.ts +31 -0
  123. package/src/api/routes/global/tests/realEmail.spec.ts +2 -3
  124. package/src/api/routes/global/tests/roles.spec.ts +27 -0
  125. package/src/api/routes/global/tests/self.spec.ts +3 -4
  126. package/src/api/routes/global/tests/templates.spec.ts +35 -0
  127. package/src/api/routes/global/tests/users.spec.ts +51 -43
  128. package/src/api/routes/global/tests/workspaces.spec.ts +29 -0
  129. package/src/api/routes/system/environment.ts +8 -0
  130. package/src/api/routes/system/status.ts +8 -0
  131. package/src/api/routes/system/tenants.ts +13 -0
  132. package/src/api/routes/system/tests/accounts.spec.ts +5 -6
  133. package/src/api/routes/system/tests/environment.spec.ts +29 -0
  134. package/src/api/routes/system/tests/migrations.spec.ts +63 -0
  135. package/src/api/routes/system/tests/restore.spec.ts +36 -0
  136. package/src/api/routes/system/tests/status.spec.ts +48 -0
  137. package/src/api/routes/system/tests/tenants.spec.ts +61 -0
  138. package/src/constants/{index.js → index.ts} +57 -64
  139. package/src/constants/templates/index.js +2 -2
  140. package/src/middleware/cloudRestricted.js +2 -2
  141. package/src/middleware/tests/tenancy.spec.ts +73 -0
  142. package/src/tests/TestConfiguration.ts +97 -48
  143. package/src/tests/api/accounts.ts +5 -8
  144. package/src/tests/api/auth.ts +3 -6
  145. package/src/tests/api/base.ts +16 -0
  146. package/src/tests/api/configs.ts +15 -8
  147. package/src/tests/api/email.ts +3 -6
  148. package/src/tests/api/environment.ts +15 -0
  149. package/src/tests/api/index.ts +15 -0
  150. package/src/tests/api/migrations.ts +22 -0
  151. package/src/tests/api/restore.ts +14 -0
  152. package/src/tests/api/self.ts +11 -6
  153. package/src/tests/api/status.ts +12 -0
  154. package/src/tests/api/tenants.ts +15 -0
  155. package/src/tests/api/users.ts +38 -6
  156. package/src/tests/index.ts +4 -0
  157. package/src/tests/jestSetup.ts +7 -1
  158. package/src/tests/structures/configs.js +6 -6
  159. package/src/tests/structures/index.ts +4 -2
  160. package/src/tests/structures/users.ts +1 -0
  161. package/src/utilities/appService.js +3 -3
  162. package/src/utilities/{email.js → email.ts} +78 -45
  163. package/src/utilities/{redis.js → redis.ts} +29 -24
  164. package/src/utilities/templates.ts +49 -0
  165. package/tsconfig.build.json +3 -3
  166. package/__mocks__/node-fetch.ts +0 -1
  167. package/src/api/routes/system/environment.js +0 -8
  168. package/src/api/routes/system/status.js +0 -8
  169. package/src/api/routes/system/tenants.js +0 -12
  170. package/src/tests/structures/accounts.ts +0 -24
  171. package/src/utilities/templates.js +0 -49
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">57.69% </span>
26
+ <span class="strong">64.51% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>90/156</span>
28
+ <span class='fraction'>100/155</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">37.2% </span>
40
+ <span class="strong">48.83% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>16/43</span>
42
+ <span class='fraction'>21/43</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">53.65% </span>
47
+ <span class="strong">61.47% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>66/123</span>
49
+ <span class='fraction'>75/122</span>
50
50
  </div>
51
51
 
52
52
 
@@ -335,49 +335,57 @@
335
335
  <a name='L270'></a><a href='#L270'>270</a>
336
336
  <a name='L271'></a><a href='#L271'>271</a>
337
337
  <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">7x</span>
339
- <span class="cline-any cline-yes">7x</span>
340
- <span class="cline-any cline-yes">7x</span>
341
- <span class="cline-any cline-yes">7x</span>
342
- <span class="cline-any cline-yes">7x</span>
343
- <span class="cline-any cline-yes">7x</span>
344
- <span class="cline-any cline-yes">7x</span>
345
- <span class="cline-any cline-yes">7x</span>
346
- <span class="cline-any cline-yes">7x</span>
347
- <span class="cline-any cline-yes">7x</span>
348
- <span class="cline-any cline-yes">7x</span>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">17x</span>
343
+ <span class="cline-any cline-yes">17x</span>
349
344
  <span class="cline-any cline-neutral">&nbsp;</span>
350
345
  <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-yes">7x</span>
352
- <span class="cline-any cline-no">&nbsp;</span>
353
346
  <span class="cline-any cline-neutral">&nbsp;</span>
354
347
  <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-yes">7x</span>
356
- <span class="cline-any cline-yes">2x</span>
357
348
  <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-yes">17x</span>
350
+ <span class="cline-any cline-yes">17x</span>
351
+ <span class="cline-any cline-yes">17x</span>
352
+ <span class="cline-any cline-yes">17x</span>
353
+ <span class="cline-any cline-yes">17x</span>
358
354
  <span class="cline-any cline-neutral">&nbsp;</span>
355
+ <span class="cline-any cline-yes">17x</span>
356
+ <span class="cline-any cline-yes">17x</span>
357
+ <span class="cline-any cline-yes">17x</span>
359
358
  <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-yes">17x</span>
360
360
  <span class="cline-any cline-no">&nbsp;</span>
361
+ <span class="cline-any cline-neutral">&nbsp;</span>
362
+ <span class="cline-any cline-neutral">&nbsp;</span>
363
+ <span class="cline-any cline-yes">17x</span>
364
+ <span class="cline-any cline-yes">3x</span>
365
+ <span class="cline-any cline-neutral">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-neutral">&nbsp;</span>
368
+ <span class="cline-any cline-yes">1x</span>
361
369
  <span class="cline-any cline-no">&nbsp;</span>
362
370
  <span class="cline-any cline-no">&nbsp;</span>
363
371
  <span class="cline-any cline-neutral">&nbsp;</span>
364
372
  <span class="cline-any cline-neutral">&nbsp;</span>
365
- <span class="cline-any cline-no">&nbsp;</span>
373
+ <span class="cline-any cline-yes">1x</span>
366
374
  <span class="cline-any cline-no">&nbsp;</span>
367
375
  <span class="cline-any cline-neutral">&nbsp;</span>
368
376
  <span class="cline-any cline-neutral">&nbsp;</span>
369
377
  <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-no">&nbsp;</span>
378
+ <span class="cline-any cline-yes">1x</span>
371
379
  <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-no">&nbsp;</span>
380
+ <span class="cline-any cline-yes">1x</span>
373
381
  <span class="cline-any cline-neutral">&nbsp;</span>
374
382
  <span class="cline-any cline-neutral">&nbsp;</span>
375
- <span class="cline-any cline-no">&nbsp;</span>
383
+ <span class="cline-any cline-yes">1x</span>
376
384
  <span class="cline-any cline-no">&nbsp;</span>
377
385
  <span class="cline-any cline-neutral">&nbsp;</span>
378
386
  <span class="cline-any cline-neutral">&nbsp;</span>
379
387
  <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-yes">7x</span>
388
+ <span class="cline-any cline-yes">17x</span>
381
389
  <span class="cline-any cline-no">&nbsp;</span>
382
390
  <span class="cline-any cline-neutral">&nbsp;</span>
383
391
  <span class="cline-any cline-no">&nbsp;</span>
@@ -390,13 +398,13 @@
390
398
  <span class="cline-any cline-neutral">&nbsp;</span>
391
399
  <span class="cline-any cline-neutral">&nbsp;</span>
392
400
  <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-yes">7x</span>
401
+ <span class="cline-any cline-yes">17x</span>
394
402
  <span class="cline-any cline-no">&nbsp;</span>
395
403
  <span class="cline-any cline-no">&nbsp;</span>
396
404
  <span class="cline-any cline-no">&nbsp;</span>
397
405
  <span class="cline-any cline-neutral">&nbsp;</span>
398
406
  <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-yes">7x</span>
407
+ <span class="cline-any cline-yes">17x</span>
400
408
  <span class="cline-any cline-no">&nbsp;</span>
401
409
  <span class="cline-any cline-no">&nbsp;</span>
402
410
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -408,7 +416,7 @@
408
416
  <span class="cline-any cline-neutral">&nbsp;</span>
409
417
  <span class="cline-any cline-neutral">&nbsp;</span>
410
418
  <span class="cline-any cline-neutral">&nbsp;</span>
411
- <span class="cline-any cline-yes">7x</span>
419
+ <span class="cline-any cline-yes">17x</span>
412
420
  <span class="cline-any cline-yes">2x</span>
413
421
  <span class="cline-any cline-yes">2x</span>
414
422
  <span class="cline-any cline-yes">2x</span>
@@ -439,7 +447,7 @@
439
447
  <span class="cline-any cline-neutral">&nbsp;</span>
440
448
  <span class="cline-any cline-neutral">&nbsp;</span>
441
449
  <span class="cline-any cline-neutral">&nbsp;</span>
442
- <span class="cline-any cline-yes">7x</span>
450
+ <span class="cline-any cline-yes">17x</span>
443
451
  <span class="cline-any cline-yes">1x</span>
444
452
  <span class="cline-any cline-yes">1x</span>
445
453
  <span class="cline-any cline-yes">1x</span>
@@ -459,14 +467,14 @@
459
467
  <span class="cline-any cline-neutral">&nbsp;</span>
460
468
  <span class="cline-any cline-neutral">&nbsp;</span>
461
469
  <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-yes">7x</span>
470
+ <span class="cline-any cline-yes">17x</span>
463
471
  <span class="cline-any cline-yes">1x</span>
464
472
  <span class="cline-any cline-yes">1x</span>
465
473
  <span class="cline-any cline-neutral">&nbsp;</span>
466
474
  <span class="cline-any cline-yes">1x</span>
467
475
  <span class="cline-any cline-neutral">&nbsp;</span>
468
476
  <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-yes">7x</span>
477
+ <span class="cline-any cline-yes">17x</span>
470
478
  <span class="cline-any cline-no">&nbsp;</span>
471
479
  <span class="cline-any cline-no">&nbsp;</span>
472
480
  <span class="cline-any cline-no">&nbsp;</span>
@@ -484,7 +492,7 @@
484
492
  <span class="cline-any cline-no">&nbsp;</span>
485
493
  <span class="cline-any cline-neutral">&nbsp;</span>
486
494
  <span class="cline-any cline-neutral">&nbsp;</span>
487
- <span class="cline-any cline-yes">7x</span>
495
+ <span class="cline-any cline-yes">17x</span>
488
496
  <span class="cline-any cline-no">&nbsp;</span>
489
497
  <span class="cline-any cline-no">&nbsp;</span>
490
498
  <span class="cline-any cline-no">&nbsp;</span>
@@ -496,7 +504,7 @@
496
504
  <span class="cline-any cline-neutral">&nbsp;</span>
497
505
  <span class="cline-any cline-neutral">&nbsp;</span>
498
506
  <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-yes">7x</span>
507
+ <span class="cline-any cline-yes">17x</span>
500
508
  <span class="cline-any cline-no">&nbsp;</span>
501
509
  <span class="cline-any cline-neutral">&nbsp;</span>
502
510
  <span class="cline-any cline-no">&nbsp;</span>
@@ -517,7 +525,7 @@
517
525
  <span class="cline-any cline-neutral">&nbsp;</span>
518
526
  <span class="cline-any cline-neutral">&nbsp;</span>
519
527
  <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-yes">7x</span>
528
+ <span class="cline-any cline-yes">17x</span>
521
529
  <span class="cline-any cline-no">&nbsp;</span>
522
530
  <span class="cline-any cline-neutral">&nbsp;</span>
523
531
  <span class="cline-any cline-no">&nbsp;</span>
@@ -544,108 +552,112 @@
544
552
  <span class="cline-any cline-neutral">&nbsp;</span>
545
553
  <span class="cline-any cline-neutral">&nbsp;</span>
546
554
  <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-yes">7x</span>
548
- <span class="cline-any cline-yes">2x</span>
549
- <span class="cline-any cline-yes">2x</span>
555
+ <span class="cline-any cline-yes">17x</span>
556
+ <span class="cline-any cline-yes">3x</span>
557
+ <span class="cline-any cline-yes">3x</span>
550
558
  <span class="cline-any cline-neutral">&nbsp;</span>
551
559
  <span class="cline-any cline-neutral">&nbsp;</span>
552
560
  <span class="cline-any cline-neutral">&nbsp;</span>
553
561
  <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-yes">2x</span>
555
- <span class="cline-any cline-yes">2x</span>
562
+ <span class="cline-any cline-yes">3x</span>
563
+ <span class="cline-any cline-yes">3x</span>
556
564
  <span class="cline-any cline-neutral">&nbsp;</span>
557
565
  <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-yes">2x</span>
566
+ <span class="cline-any cline-yes">3x</span>
559
567
  <span class="cline-any cline-neutral">&nbsp;</span>
560
568
  <span class="cline-any cline-neutral">&nbsp;</span>
561
569
  <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-yes">2x</span>
570
+ <span class="cline-any cline-yes">3x</span>
563
571
  <span class="cline-any cline-neutral">&nbsp;</span>
564
572
  <span class="cline-any cline-neutral">&nbsp;</span>
565
573
  <span class="cline-any cline-neutral">&nbsp;</span>
566
574
  <span class="cline-any cline-neutral">&nbsp;</span>
567
575
  <span class="cline-any cline-neutral">&nbsp;</span>
568
576
  <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-yes">7x</span>
570
- <span class="cline-any cline-yes">1x</span>
571
- <span class="cline-any cline-yes">1x</span>
577
+ <span class="cline-any cline-yes">17x</span>
578
+ <span class="cline-any cline-yes">2x</span>
579
+ <span class="cline-any cline-yes">2x</span>
572
580
  <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-yes">1x</span>
581
+ <span class="cline-any cline-yes">2x</span>
574
582
  <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-yes">1x</span>
576
- <span class="cline-any cline-yes">1x</span>
583
+ <span class="cline-any cline-yes">2x</span>
584
+ <span class="cline-any cline-yes">2x</span>
577
585
  <span class="cline-any cline-neutral">&nbsp;</span>
578
586
  <span class="cline-any cline-neutral">&nbsp;</span>
579
587
  <span class="cline-any cline-neutral">&nbsp;</span>
580
588
  <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-yes">1x</span>
589
+ <span class="cline-any cline-yes">2x</span>
582
590
  <span class="cline-any cline-neutral">&nbsp;</span>
583
591
  <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-yes">1x</span>
592
+ <span class="cline-any cline-yes">2x</span>
585
593
  <span class="cline-any cline-neutral">&nbsp;</span>
586
594
  <span class="cline-any cline-neutral">&nbsp;</span>
587
595
  <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-yes">1x</span>
596
+ <span class="cline-any cline-yes">2x</span>
589
597
  <span class="cline-any cline-neutral">&nbsp;</span>
590
598
  <span class="cline-any cline-neutral">&nbsp;</span>
591
599
  <span class="cline-any cline-neutral">&nbsp;</span>
592
600
  <span class="cline-any cline-neutral">&nbsp;</span>
593
601
  <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-yes">7x</span>
602
+ <span class="cline-any cline-yes">17x</span>
595
603
  <span class="cline-any cline-yes">1x</span>
596
604
  <span class="cline-any cline-yes">1x</span>
597
605
  <span class="cline-any cline-neutral">&nbsp;</span>
598
606
  <span class="cline-any cline-yes">1x</span>
599
607
  <span class="cline-any cline-neutral">&nbsp;</span>
600
608
  <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-no">&nbsp;</span>
602
- <span class="cline-any cline-no">&nbsp;</span>
603
- <span class="cline-any cline-no">&nbsp;</span>
604
- <span class="cline-any cline-no">&nbsp;</span>
609
+ <span class="cline-any cline-yes">1x</span>
610
+ <span class="cline-any cline-yes">1x</span>
611
+ <span class="cline-any cline-yes">1x</span>
612
+ <span class="cline-any cline-yes">1x</span>
605
613
  <span class="cline-any cline-neutral">&nbsp;</span>
606
- <span class="cline-any cline-no">&nbsp;</span>
614
+ <span class="cline-any cline-yes">1x</span>
607
615
  <span class="cline-any cline-neutral">&nbsp;</span>
608
616
  <span class="cline-any cline-neutral">&nbsp;</span>
609
617
  <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const core = require("@budibase/backend-core")
611
- const { Configs, EmailTemplatePurpose } = require("../../../constants")
612
- const { sendEmail, isEmailConfigured } = require("../../../utilities/email")
613
- const { setCookie, getCookie, clearCookie, hash, platformLogout } = core.utils
614
- const { Cookies, Headers } = core.constants
615
- const { passport, ssoCallbackUrl, google, oidc } = core.auth
616
- const { checkResetPasswordCode } = require("../../../utilities/redis")
617
- const { getGlobalDB } = require("@budibase/backend-core/tenancy")
618
- const env = require("../../../environment")
619
- import { events, users as usersCore, context } from "@budibase/backend-core"
618
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import core from "@budibase/backend-core"
619
+ import {
620
+ events,
621
+ users as usersCore,
622
+ context,
623
+ tenancy,
624
+ } from "@budibase/backend-core"
625
+ import { Config, EmailTemplatePurpose } from "../../../constants"
626
+ import { sendEmail, isEmailConfigured } from "../../../utilities/email"
627
+ import { checkResetPasswordCode } from "../../../utilities/redis"
628
+ import env from "../../../environment"
620
629
  import sdk from "../../../sdk"
621
630
  import { User } from "@budibase/types"
631
+ const { setCookie, getCookie, clearCookie, hash, platformLogout } = core.utils
632
+ const { Cookie, Header } = core.constants
633
+ const { passport, ssoCallbackUrl, google, oidc } = core.auth
622
634
  &nbsp;
623
635
  export const googleCallbackUrl = <span class="fstat-no" title="function not covered" >async (c</span>onfig: any) =&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
624
- <span class="cstat-no" title="statement not covered" > return ssoCallbackUrl(getGlobalDB(), config, "google")</span>
636
+ <span class="cstat-no" title="statement not covered" > return ssoCallbackUrl(tenancy.getGlobalDB(), config, "google")</span>
625
637
  }
626
638
  &nbsp;
627
639
  export const oidcCallbackUrl = async (config: any) =&gt; {
628
- return ssoCallbackUrl(getGlobalDB(), config, "oidc")
640
+ return ssoCallbackUrl(tenancy.getGlobalDB(), config, "oidc")
629
641
  }
630
642
  &nbsp;
631
- async function <span class="fstat-no" title="function not covered" >authInternal(</span>ctx: any, user: any, err = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span> info = <span class="branch-0 cbranch-no" title="branch not covered" >null)</span> {
632
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (err) {</span>
643
+ async function authInternal(ctx: any, user: any, err = <span class="branch-0 cbranch-no" title="branch not covered" >null,</span> info = <span class="branch-0 cbranch-no" title="branch not covered" >null)</span> {
644
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
633
645
  <span class="cstat-no" title="statement not covered" > console.error("Authentication error", err)</span>
634
646
  <span class="cstat-no" title="statement not covered" > return ctx.throw(403, info ? info : "Unauthorized")</span>
635
647
  }
636
648
  &nbsp;
637
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!user) {</span>
649
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!user) {
638
650
  <span class="cstat-no" title="statement not covered" > return ctx.throw(403, info ? info : "Unauthorized")</span>
639
651
  }
640
652
  &nbsp;
641
653
  // set a cookie for browser access
642
- <span class="cstat-no" title="statement not covered" > setCookie(ctx, user.token, Cookies.Auth, { sign: false })</span>
654
+ setCookie(ctx, user.token, Cookie.Auth, { sign: false })
643
655
  // set the token in a header as well for APIs
644
- <span class="cstat-no" title="statement not covered" > ctx.set(Headers.TOKEN, user.token)</span>
656
+ ctx.set(Header.TOKEN, user.token)
645
657
  // get rid of any app cookies on login
646
658
  // have to check test because this breaks cypress
647
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isTest()) {</span>
648
- <span class="cstat-no" title="statement not covered" > clearCookie(ctx, Cookies.CurrentApp)</span>
659
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isTest()) {
660
+ <span class="cstat-no" title="statement not covered" > clearCookie(ctx, Cookie.CurrentApp)</span>
649
661
  }
650
662
  }
651
663
  &nbsp;
@@ -664,15 +676,15 @@ export const authenticate = <span class="fstat-no" title="function not covered"
664
676
  &nbsp;
665
677
  export const setInitInfo = <span class="fstat-no" title="function not covered" >(c</span>tx: any) =&gt; {
666
678
  const initInfo = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
667
- <span class="cstat-no" title="statement not covered" > setCookie(ctx, initInfo, Cookies.Init)</span>
679
+ <span class="cstat-no" title="statement not covered" > setCookie(ctx, initInfo, Cookie.Init)</span>
668
680
  <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
669
681
  }
670
682
  &nbsp;
671
683
  export const getInitInfo = <span class="fstat-no" title="function not covered" >(c</span>tx: any) =&gt; {
672
684
  <span class="cstat-no" title="statement not covered" > try {</span>
673
- <span class="cstat-no" title="statement not covered" > ctx.body = getCookie(ctx, Cookies.Init) || {}</span>
685
+ <span class="cstat-no" title="statement not covered" > ctx.body = getCookie(ctx, Cookie.Init) || {}</span>
674
686
  } catch (err) {
675
- <span class="cstat-no" title="statement not covered" > clearCookie(ctx, Cookies.Init)</span>
687
+ <span class="cstat-no" title="statement not covered" > clearCookie(ctx, Cookie.Init)</span>
676
688
  <span class="cstat-no" title="statement not covered" > ctx.body = {}</span>
677
689
  }
678
690
  }
@@ -715,7 +727,7 @@ export const resetUpdate = async (ctx: any) =&gt; {
715
727
  const { resetCode, password } = ctx.request.body
716
728
  try {
717
729
  const { userId } = await checkResetPasswordCode(resetCode)
718
- const db = getGlobalDB()
730
+ const db = tenancy.getGlobalDB()
719
731
  const user = await db.get(userId)
720
732
  user.password = await hash(password)
721
733
  await db.put(user)
@@ -750,14 +762,14 @@ export const datasourcePreAuth = <span class="fstat-no" title="function not cove
750
762
  appId: ctx.query.appId,
751
763
  datasourceId: ctx.query.datasourceId,
752
764
  },
753
- Cookies.DatasourceAuth
765
+ Cookie.DatasourceAuth
754
766
  )
755
767
  &nbsp;
756
768
  <span class="cstat-no" title="statement not covered" > return handler.preAuth(passport, ctx, next)</span>
757
769
  }
758
770
  &nbsp;
759
771
  export const datasourceAuth = <span class="fstat-no" title="function not covered" >async (c</span>tx: any, next: any) =&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
760
- const authStateCookie = <span class="cstat-no" title="statement not covered" >getCookie(ctx, Cookies.DatasourceAuth)</span>
772
+ const authStateCookie = <span class="cstat-no" title="statement not covered" >getCookie(ctx, Cookie.DatasourceAuth)</span>
761
773
  const provider = <span class="cstat-no" title="statement not covered" >authStateCookie.provider</span>
762
774
  const middleware = <span class="cstat-no" title="statement not covered" >require(`@budibase/backend-core/middleware`)</span>
763
775
  const handler = <span class="cstat-no" title="statement not covered" >middleware.datasource[provider]</span>
@@ -769,10 +781,10 @@ export const datasourceAuth = <span class="fstat-no" title="function not covered
769
781
  * On a successful login, you will be redirected to the googleAuth callback route.
770
782
  */
771
783
  export const googlePreAuth = <span class="fstat-no" title="function not covered" >async (c</span>tx: any, next: any) =&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
772
- const db = <span class="cstat-no" title="statement not covered" >getGlobalDB()</span>
784
+ const db = <span class="cstat-no" title="statement not covered" >tenancy.getGlobalDB()</span>
773
785
  &nbsp;
774
786
  const config = <span class="cstat-no" title="statement not covered" >await core.db.getScopedConfig(db, {</span>
775
- type: Configs.GOOGLE,
787
+ type: Config.GOOGLE,
776
788
  workspace: ctx.query.workspace,
777
789
  })
778
790
  let callbackUrl = <span class="cstat-no" title="statement not covered" >await exports.googleCallbackUrl(config)</span>
@@ -790,10 +802,10 @@ export const googlePreAuth = <span class="fstat-no" title="function not covered"
790
802
  }
791
803
  &nbsp;
792
804
  export const googleAuth = <span class="fstat-no" title="function not covered" >async (c</span>tx: any, next: any) =&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
793
- const db = <span class="cstat-no" title="statement not covered" >getGlobalDB()</span>
805
+ const db = <span class="cstat-no" title="statement not covered" >tenancy.getGlobalDB()</span>
794
806
  &nbsp;
795
807
  const config = <span class="cstat-no" title="statement not covered" >await core.db.getScopedConfig(db, {</span>
796
- type: Configs.GOOGLE,
808
+ type: Config.GOOGLE,
797
809
  workspace: ctx.query.workspace,
798
810
  })
799
811
  const callbackUrl = <span class="cstat-no" title="statement not covered" >await exports.googleCallbackUrl(config)</span>
@@ -817,9 +829,9 @@ export const googleAuth = <span class="fstat-no" title="function not covered" >a
817
829
  }
818
830
  &nbsp;
819
831
  export const oidcStrategyFactory = async (ctx: any, configId: any) =&gt; {
820
- const db = getGlobalDB()
832
+ const db = tenancy.getGlobalDB()
821
833
  const config = await core.db.getScopedConfig(db, {
822
- type: Configs.OIDC,
834
+ type: Config.OIDC,
823
835
  group: ctx.query.group,
824
836
  })
825
837
  &nbsp;
@@ -842,11 +854,11 @@ export const oidcPreAuth = async (ctx: any, next: any) =&gt; {
842
854
  const { configId } = ctx.params
843
855
  const strategy = await oidcStrategyFactory(ctx, configId)
844
856
  &nbsp;
845
- setCookie(ctx, configId, Cookies.OIDC_CONFIG)
857
+ setCookie(ctx, configId, Cookie.OIDC_CONFIG)
846
858
  &nbsp;
847
- const db = getGlobalDB()
859
+ const db = tenancy.getGlobalDB()
848
860
  const config = await core.db.getScopedConfig(db, {
849
- type: Configs.OIDC,
861
+ type: Config.OIDC,
850
862
  group: ctx.query.group,
851
863
  })
852
864
  &nbsp;
@@ -864,18 +876,18 @@ export const oidcPreAuth = async (ctx: any, next: any) =&gt; {
864
876
  }
865
877
  &nbsp;
866
878
  export const oidcAuth = async (ctx: any, next: any) =&gt; {
867
- const configId = getCookie(ctx, Cookies.OIDC_CONFIG)
879
+ const configId = getCookie(ctx, Cookie.OIDC_CONFIG)
868
880
  const strategy = await oidcStrategyFactory(ctx, configId)
869
881
  &nbsp;
870
882
  return passport.authenticate(
871
883
  strategy,
872
884
  { successRedirect: "/", failureRedirect: "/error" },
873
- <span class="fstat-no" title="function not covered" > async (e</span>rr: any, user: any, info: any) =&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span>
874
- <span class="cstat-no" title="statement not covered" > await authInternal(ctx, user, err, info)</span>
875
- <span class="cstat-no" title="statement not covered" > await context.identity.doInUserContext(user, <span class="fstat-no" title="function not covered" >async () =</span>&gt;<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > {</span></span></span>
876
- <span class="cstat-no" title="statement not covered" > await events.auth.login("oidc")</span>
885
+ async (err: any, user: any, info: any) =&gt; {
886
+ await authInternal(ctx, user, err, info)
887
+ await context.identity.doInUserContext(user, async () =&gt; {
888
+ await events.auth.login("oidc")
877
889
  })
878
- <span class="cstat-no" title="statement not covered" > ctx.redirect("/")</span>
890
+ ctx.redirect("/")
879
891
  }
880
892
  )(ctx, next)
881
893
  }
@@ -886,7 +898,7 @@ export const oidcAuth = async (ctx: any, next: any) =&gt; {
886
898
  <div class='footer quiet pad2 space-top1 center small'>
887
899
  Code coverage generated by
888
900
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
889
- at Wed Nov 16 2022 12:02:15 GMT+0000 (Coordinated Universal Time)
901
+ at Thu Nov 17 2022 16:59:05 GMT+0000 (Coordinated Universal Time)
890
902
  </div>
891
903
  <script src="../../../../prettify.js"></script>
892
904
  <script>