@budibase/worker 2.1.22-alpha.6 → 2.1.22-alpha.8
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/coverage/clover.xml +326 -305
- package/coverage/coverage-final.json +13 -13
- package/coverage/lcov-report/index.html +34 -34
- package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +50 -38
- package/coverage/lcov-report/src/api/controllers/global/configs.js.html +18 -18
- package/coverage/lcov-report/src/api/controllers/global/email.js.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/index.html +10 -10
- package/coverage/lcov-report/src/api/controllers/global/license.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/roles.js.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/self.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/users.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/global/workspaces.js.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/status.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +1 -1
- package/coverage/lcov-report/src/api/index.html +1 -1
- package/coverage/lcov-report/src/api/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/auth.js.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/configs.js.html +10 -10
- package/coverage/lcov-report/src/api/routes/global/email.js.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/license.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/roles.js.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/self.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/templates.ts.html +3 -3
- package/coverage/lcov-report/src/api/routes/global/users.js.html +1 -1
- package/coverage/lcov-report/src/api/routes/global/workspaces.js.html +1 -1
- package/coverage/lcov-report/src/api/routes/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/environment.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/restore.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/status.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/validation/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/validation/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/validation/users.ts.html +1 -1
- package/coverage/lcov-report/src/constants/index.html +10 -10
- package/coverage/lcov-report/src/constants/{index.js.html → index.ts.html} +92 -113
- package/coverage/lcov-report/src/constants/templates/index.html +1 -1
- package/coverage/lcov-report/src/constants/templates/index.js.html +3 -3
- package/coverage/lcov-report/src/db/index.html +1 -1
- package/coverage/lcov-report/src/db/index.ts.html +1 -1
- package/coverage/lcov-report/src/environment.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/index.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/cloudRestricted.js.html +3 -3
- package/coverage/lcov-report/src/middleware/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
- package/coverage/lcov-report/src/migrations/index.html +1 -1
- package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/accounts/index.html +1 -1
- package/coverage/lcov-report/src/sdk/accounts/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/index.html +1 -1
- package/coverage/lcov-report/src/sdk/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/users/events.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/users/index.html +1 -1
- package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/users/users.ts.html +1 -1
- package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +31 -22
- package/coverage/lcov-report/src/tests/api/accounts.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/auth.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/base.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/configs.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/email.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/environment.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/index.html +1 -1
- package/coverage/lcov-report/src/tests/api/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/migrations.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/restore.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/self.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/status.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/tenants.ts.html +1 -1
- package/coverage/lcov-report/src/tests/api/users.ts.html +1 -1
- package/coverage/lcov-report/src/tests/controllers.js.html +1 -1
- package/coverage/lcov-report/src/tests/index.html +15 -15
- package/coverage/lcov-report/src/tests/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/mocks/email.js.html +1 -1
- package/coverage/lcov-report/src/tests/mocks/index.html +1 -1
- package/coverage/lcov-report/src/tests/mocks/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/structures/configs.js.html +7 -7
- package/coverage/lcov-report/src/tests/structures/groups.ts.html +1 -1
- package/coverage/lcov-report/src/tests/structures/index.html +1 -1
- package/coverage/lcov-report/src/tests/structures/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/structures/users.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/appService.js.html +4 -4
- package/coverage/lcov-report/src/utilities/{email.js.html → email.ts.html} +160 -61
- package/coverage/lcov-report/src/utilities/fileSystem.js.html +1 -1
- package/coverage/lcov-report/src/utilities/index.html +23 -23
- package/coverage/lcov-report/src/utilities/index.js.html +1 -1
- package/coverage/lcov-report/src/utilities/{redis.js.html → redis.ts.html} +53 -38
- package/coverage/lcov-report/src/utilities/{templates.js.html → templates.ts.html} +38 -38
- package/coverage/lcov-report/src/utilities/users.js.html +1 -1
- package/coverage/lcov.info +593 -529
- package/jest.config.ts +1 -0
- package/package.json +6 -6
- package/src/api/controllers/global/auth.ts +34 -30
- package/src/api/controllers/global/configs.js +17 -17
- package/src/api/controllers/global/self.ts +2 -2
- package/src/api/routes/global/configs.js +9 -9
- package/src/api/routes/global/templates.ts +2 -2
- package/src/api/routes/global/tests/configs.spec.ts +29 -29
- package/src/constants/{index.js → index.ts} +57 -64
- package/src/constants/templates/index.js +2 -2
- package/src/middleware/cloudRestricted.js +2 -2
- package/src/middleware/tests/tenancy.spec.ts +7 -7
- package/src/tests/TestConfiguration.ts +15 -12
- package/src/tests/structures/configs.js +6 -6
- package/src/utilities/appService.js +3 -3
- package/src/utilities/{email.js → email.ts} +78 -45
- package/src/utilities/{redis.js → redis.ts} +29 -24
- package/src/utilities/templates.ts +49 -0
- package/tsconfig.build.json +3 -3
- package/src/utilities/templates.js +0 -49
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">79.
|
|
26
|
+
<span class="strong">79.95% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>1627/2035</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.81% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>406/590</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">75.
|
|
40
|
+
<span class="strong">75.17% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>318/423</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">79.
|
|
47
|
+
<span class="strong">79.85% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>1483/1857</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -110,17 +110,17 @@
|
|
|
110
110
|
|
|
111
111
|
<tr>
|
|
112
112
|
<td class="file medium" data-value="src/api/controllers/global"><a href="src/api/controllers/global/index.html">src/api/controllers/global</a></td>
|
|
113
|
-
<td data-value="61.
|
|
113
|
+
<td data-value="61.27" class="pic medium">
|
|
114
114
|
<div class="chart"><div class="cover-fill" style="width: 61%"></div><div class="cover-empty" style="width: 39%"></div></div>
|
|
115
115
|
</td>
|
|
116
|
-
<td data-value="61.
|
|
117
|
-
<td data-value="
|
|
116
|
+
<td data-value="61.27" class="pct medium">61.27%</td>
|
|
117
|
+
<td data-value="692" class="abs medium">424/692</td>
|
|
118
118
|
<td data-value="54.3" class="pct medium">54.3%</td>
|
|
119
119
|
<td data-value="186" class="abs medium">101/186</td>
|
|
120
120
|
<td data-value="50" class="pct medium">50%</td>
|
|
121
121
|
<td data-value="136" class="abs medium">68/136</td>
|
|
122
|
-
<td data-value="59.
|
|
123
|
-
<td data-value="
|
|
122
|
+
<td data-value="59.21" class="pct medium">59.21%</td>
|
|
123
|
+
<td data-value="608" class="abs medium">360/608</td>
|
|
124
124
|
</tr>
|
|
125
125
|
|
|
126
126
|
<tr>
|
|
@@ -204,13 +204,13 @@
|
|
|
204
204
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
205
205
|
</td>
|
|
206
206
|
<td data-value="100" class="pct high">100%</td>
|
|
207
|
-
<td data-value="
|
|
207
|
+
<td data-value="39" class="abs high">39/39</td>
|
|
208
208
|
<td data-value="100" class="pct high">100%</td>
|
|
209
|
-
<td data-value="
|
|
209
|
+
<td data-value="10" class="abs high">10/10</td>
|
|
210
210
|
<td data-value="100" class="pct high">100%</td>
|
|
211
|
-
<td data-value="
|
|
211
|
+
<td data-value="5" class="abs high">5/5</td>
|
|
212
212
|
<td data-value="100" class="pct high">100%</td>
|
|
213
|
-
<td data-value="
|
|
213
|
+
<td data-value="39" class="abs high">39/39</td>
|
|
214
214
|
</tr>
|
|
215
215
|
|
|
216
216
|
<tr>
|
|
@@ -335,17 +335,17 @@
|
|
|
335
335
|
|
|
336
336
|
<tr>
|
|
337
337
|
<td class="file high" data-value="src/tests"><a href="src/tests/index.html">src/tests</a></td>
|
|
338
|
-
<td data-value="
|
|
339
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
338
|
+
<td data-value="92.62" class="pic high">
|
|
339
|
+
<div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
|
|
340
340
|
</td>
|
|
341
|
-
<td data-value="
|
|
342
|
-
<td data-value="
|
|
341
|
+
<td data-value="92.62" class="pct high">92.62%</td>
|
|
342
|
+
<td data-value="122" class="abs high">113/122</td>
|
|
343
343
|
<td data-value="75" class="pct medium">75%</td>
|
|
344
344
|
<td data-value="16" class="abs medium">12/16</td>
|
|
345
|
-
<td data-value="
|
|
346
|
-
<td data-value="
|
|
347
|
-
<td data-value="
|
|
348
|
-
<td data-value="
|
|
345
|
+
<td data-value="86.84" class="pct high">86.84%</td>
|
|
346
|
+
<td data-value="38" class="abs high">33/38</td>
|
|
347
|
+
<td data-value="92.5" class="pct high">92.5%</td>
|
|
348
|
+
<td data-value="120" class="abs high">111/120</td>
|
|
349
349
|
</tr>
|
|
350
350
|
|
|
351
351
|
<tr>
|
|
@@ -395,17 +395,17 @@
|
|
|
395
395
|
|
|
396
396
|
<tr>
|
|
397
397
|
<td class="file high" data-value="src/utilities"><a href="src/utilities/index.html">src/utilities</a></td>
|
|
398
|
-
<td data-value="
|
|
399
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
398
|
+
<td data-value="80.98" class="pic high">
|
|
399
|
+
<div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
|
|
400
400
|
</td>
|
|
401
|
-
<td data-value="
|
|
402
|
-
<td data-value="
|
|
403
|
-
<td data-value="
|
|
404
|
-
<td data-value="
|
|
401
|
+
<td data-value="80.98" class="pct high">80.98%</td>
|
|
402
|
+
<td data-value="163" class="abs high">132/163</td>
|
|
403
|
+
<td data-value="64.4" class="pct medium">64.4%</td>
|
|
404
|
+
<td data-value="118" class="abs medium">76/118</td>
|
|
405
405
|
<td data-value="95.65" class="pct high">95.65%</td>
|
|
406
406
|
<td data-value="23" class="abs high">22/23</td>
|
|
407
|
-
<td data-value="
|
|
408
|
-
<td data-value="
|
|
407
|
+
<td data-value="81.98" class="pct high">81.98%</td>
|
|
408
|
+
<td data-value="161" class="abs high">132/161</td>
|
|
409
409
|
</tr>
|
|
410
410
|
|
|
411
411
|
</tbody>
|
|
@@ -416,7 +416,7 @@
|
|
|
416
416
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
417
417
|
Code coverage generated by
|
|
418
418
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
419
|
-
at
|
|
419
|
+
at Fri Nov 18 2022 09:27:12 GMT+0000 (Coordinated Universal Time)
|
|
420
420
|
</div>
|
|
421
421
|
<script src="prettify.js"></script>
|
|
422
422
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">64.
|
|
26
|
+
<span class="strong">64.51% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>100/155</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">61.
|
|
47
|
+
<span class="strong">61.47% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>75/122</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -335,19 +335,27 @@
|
|
|
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
|
|
339
|
-
<
|
|
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>
|
|
340
343
|
<span class="cline-any cline-yes">17x</span>
|
|
344
|
+
<span class="cline-any cline-neutral"> </span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
349
|
<span class="cline-any cline-yes">17x</span>
|
|
342
350
|
<span class="cline-any cline-yes">17x</span>
|
|
343
351
|
<span class="cline-any cline-yes">17x</span>
|
|
344
352
|
<span class="cline-any cline-yes">17x</span>
|
|
345
353
|
<span class="cline-any cline-yes">17x</span>
|
|
354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
355
|
<span class="cline-any cline-yes">17x</span>
|
|
347
356
|
<span class="cline-any cline-yes">17x</span>
|
|
348
357
|
<span class="cline-any cline-yes">17x</span>
|
|
349
358
|
<span class="cline-any cline-neutral"> </span>
|
|
350
|
-
<span class="cline-any cline-neutral"> </span>
|
|
351
359
|
<span class="cline-any cline-yes">17x</span>
|
|
352
360
|
<span class="cline-any cline-no"> </span>
|
|
353
361
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -608,24 +616,28 @@
|
|
|
608
616
|
<span class="cline-any cline-neutral"> </span>
|
|
609
617
|
<span class="cline-any cline-neutral"> </span>
|
|
610
618
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import core from "@budibase/backend-core"
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
import {
|
|
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
|
|
|
623
635
|
export const googleCallbackUrl = <span class="fstat-no" title="function not covered" >async (c</span>onfig: any) =><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
|
|
|
627
639
|
export const oidcCallbackUrl = async (config: any) => {
|
|
628
|
-
return ssoCallbackUrl(getGlobalDB(), config, "oidc")
|
|
640
|
+
return ssoCallbackUrl(tenancy.getGlobalDB(), config, "oidc")
|
|
629
641
|
}
|
|
630
642
|
|
|
631
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> {
|
|
@@ -639,13 +651,13 @@ async function authInternal(ctx: any, user: any, err = <span class="branch-0 cbr
|
|
|
639
651
|
}
|
|
640
652
|
|
|
641
653
|
// set a cookie for browser access
|
|
642
|
-
setCookie(ctx, user.token,
|
|
654
|
+
setCookie(ctx, user.token, Cookie.Auth, { sign: false })
|
|
643
655
|
// set the token in a header as well for APIs
|
|
644
|
-
ctx.set(
|
|
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
659
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (!env.isTest()) {
|
|
648
|
-
<span class="cstat-no" title="statement not covered" > clearCookie(ctx,
|
|
660
|
+
<span class="cstat-no" title="statement not covered" > clearCookie(ctx, Cookie.CurrentApp)</span>
|
|
649
661
|
}
|
|
650
662
|
}
|
|
651
663
|
|
|
@@ -664,15 +676,15 @@ export const authenticate = <span class="fstat-no" title="function not covered"
|
|
|
664
676
|
|
|
665
677
|
export const setInitInfo = <span class="fstat-no" title="function not covered" >(c</span>tx: any) => {
|
|
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,
|
|
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
|
|
|
671
683
|
export const getInitInfo = <span class="fstat-no" title="function not covered" >(c</span>tx: any) => {
|
|
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,
|
|
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,
|
|
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) => {
|
|
|
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
|
-
|
|
765
|
+
Cookie.DatasourceAuth
|
|
754
766
|
)
|
|
755
767
|
|
|
756
768
|
<span class="cstat-no" title="statement not covered" > return handler.preAuth(passport, ctx, next)</span>
|
|
757
769
|
}
|
|
758
770
|
|
|
759
771
|
export const datasourceAuth = <span class="fstat-no" title="function not covered" >async (c</span>tx: any, next: any) =><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,
|
|
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) =><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
|
|
|
774
786
|
const config = <span class="cstat-no" title="statement not covered" >await core.db.getScopedConfig(db, {</span>
|
|
775
|
-
type:
|
|
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
|
|
|
792
804
|
export const googleAuth = <span class="fstat-no" title="function not covered" >async (c</span>tx: any, next: any) =><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
|
|
|
795
807
|
const config = <span class="cstat-no" title="statement not covered" >await core.db.getScopedConfig(db, {</span>
|
|
796
|
-
type:
|
|
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
|
|
|
819
831
|
export const oidcStrategyFactory = async (ctx: any, configId: any) => {
|
|
820
|
-
const db = getGlobalDB()
|
|
832
|
+
const db = tenancy.getGlobalDB()
|
|
821
833
|
const config = await core.db.getScopedConfig(db, {
|
|
822
|
-
type:
|
|
834
|
+
type: Config.OIDC,
|
|
823
835
|
group: ctx.query.group,
|
|
824
836
|
})
|
|
825
837
|
|
|
@@ -842,11 +854,11 @@ export const oidcPreAuth = async (ctx: any, next: any) => {
|
|
|
842
854
|
const { configId } = ctx.params
|
|
843
855
|
const strategy = await oidcStrategyFactory(ctx, configId)
|
|
844
856
|
|
|
845
|
-
setCookie(ctx, configId,
|
|
857
|
+
setCookie(ctx, configId, Cookie.OIDC_CONFIG)
|
|
846
858
|
|
|
847
|
-
const db = getGlobalDB()
|
|
859
|
+
const db = tenancy.getGlobalDB()
|
|
848
860
|
const config = await core.db.getScopedConfig(db, {
|
|
849
|
-
type:
|
|
861
|
+
type: Config.OIDC,
|
|
850
862
|
group: ctx.query.group,
|
|
851
863
|
})
|
|
852
864
|
|
|
@@ -864,7 +876,7 @@ export const oidcPreAuth = async (ctx: any, next: any) => {
|
|
|
864
876
|
}
|
|
865
877
|
|
|
866
878
|
export const oidcAuth = async (ctx: any, next: any) => {
|
|
867
|
-
const configId = getCookie(ctx,
|
|
879
|
+
const configId = getCookie(ctx, Cookie.OIDC_CONFIG)
|
|
868
880
|
const strategy = await oidcStrategyFactory(ctx, configId)
|
|
869
881
|
|
|
870
882
|
return passport.authenticate(
|
|
@@ -886,7 +898,7 @@ export const oidcAuth = async (ctx: any, next: any) => {
|
|
|
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
|
|
901
|
+
at Fri Nov 18 2022 09:27:12 GMT+0000 (Coordinated Universal Time)
|
|
890
902
|
</div>
|
|
891
903
|
<script src="../../../../prettify.js"></script>
|
|
892
904
|
<script>
|
|
@@ -939,7 +939,7 @@
|
|
|
939
939
|
getScopedFullConfig,
|
|
940
940
|
getAllApps,
|
|
941
941
|
} = require("@budibase/backend-core/db")
|
|
942
|
-
const {
|
|
942
|
+
const { Config } = require("../../../constants")
|
|
943
943
|
const email = require("../../../utilities/email")
|
|
944
944
|
const {
|
|
945
945
|
upload,
|
|
@@ -968,25 +968,25 @@ const getEventFns = async (db, config) => {
|
|
|
968
968
|
|
|
969
969
|
if (!existing) {
|
|
970
970
|
switch (config.type) {
|
|
971
|
-
case
|
|
971
|
+
case Config.SMTP: {
|
|
972
972
|
fns.push(events.email.SMTPCreated)
|
|
973
973
|
break
|
|
974
974
|
}
|
|
975
|
-
case
|
|
975
|
+
case Config.GOOGLE: {
|
|
976
976
|
fns.push(() => events.auth.SSOCreated(type))
|
|
977
977
|
if (config.config.activated) {
|
|
978
978
|
fns.push(() => events.auth.SSOActivated(type))
|
|
979
979
|
}
|
|
980
980
|
break
|
|
981
981
|
}
|
|
982
|
-
case
|
|
982
|
+
case Config.OIDC: {
|
|
983
983
|
fns.push(() => events.auth.SSOCreated(type))
|
|
984
984
|
if (config.config.configs[0].activated) {
|
|
985
985
|
fns.push(() => events.auth.SSOActivated(type))
|
|
986
986
|
}
|
|
987
987
|
break
|
|
988
988
|
}
|
|
989
|
-
case
|
|
989
|
+
case Config.SETTINGS: {
|
|
990
990
|
// company
|
|
991
991
|
const company = config.config.company
|
|
992
992
|
if (company && company !== "Budibase") {
|
|
@@ -1013,11 +1013,11 @@ const getEventFns = async (db, config) => {
|
|
|
1013
1013
|
}
|
|
1014
1014
|
} else {
|
|
1015
1015
|
switch (config.type) {
|
|
1016
|
-
case
|
|
1016
|
+
case Config.SMTP: {
|
|
1017
1017
|
fns.push(events.email.SMTPUpdated)
|
|
1018
1018
|
break
|
|
1019
1019
|
}
|
|
1020
|
-
case
|
|
1020
|
+
case Config.GOOGLE: {
|
|
1021
1021
|
fns.push(() => events.auth.SSOUpdated(type))
|
|
1022
1022
|
if (!existing.config.activated && config.config.activated) {
|
|
1023
1023
|
fns.push(() => events.auth.SSOActivated(type))
|
|
@@ -1026,7 +1026,7 @@ const getEventFns = async (db, config) => {
|
|
|
1026
1026
|
}
|
|
1027
1027
|
break
|
|
1028
1028
|
}
|
|
1029
|
-
case
|
|
1029
|
+
case Config.OIDC: {
|
|
1030
1030
|
fns.push(() => events.auth.SSOUpdated(type))
|
|
1031
1031
|
if (
|
|
1032
1032
|
!existing.config.configs[0].activated &&
|
|
@@ -1041,7 +1041,7 @@ const getEventFns = async (db, config) => {
|
|
|
1041
1041
|
}
|
|
1042
1042
|
break
|
|
1043
1043
|
}
|
|
1044
|
-
case
|
|
1044
|
+
case Config.SETTINGS: {
|
|
1045
1045
|
// company
|
|
1046
1046
|
const existingCompany = existing.config.company
|
|
1047
1047
|
const company = config.config.company
|
|
@@ -1090,7 +1090,7 @@ exports.save = async function (ctx) {
|
|
|
1090
1090
|
try {
|
|
1091
1091
|
// verify the configuration
|
|
1092
1092
|
switch (type) {
|
|
1093
|
-
case
|
|
1093
|
+
case Config.SMTP:
|
|
1094
1094
|
await email.verifyConfig(config)
|
|
1095
1095
|
break
|
|
1096
1096
|
}
|
|
@@ -1172,7 +1172,7 @@ exports.publicOidc = <span class="fstat-no" title="function not covered" >as</sp
|
|
|
1172
1172
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1173
1173
|
// Find the config with the most granular scope based on context
|
|
1174
1174
|
const oidcConfig = <span class="cstat-no" title="statement not covered" >await getScopedFullConfig(db, {</span>
|
|
1175
|
-
type:
|
|
1175
|
+
type: Config.OIDC,
|
|
1176
1176
|
})
|
|
1177
1177
|
|
|
1178
1178
|
<span class="cstat-no" title="statement not covered" > if (!oidcConfig) {</span>
|
|
@@ -1195,15 +1195,15 @@ exports.publicSettings = <span class="fstat-no" title="function not covered" >as
|
|
|
1195
1195
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1196
1196
|
// Find the config with the most granular scope based on context
|
|
1197
1197
|
const publicConfig = <span class="cstat-no" title="statement not covered" >await getScopedFullConfig(db, {</span>
|
|
1198
|
-
type:
|
|
1198
|
+
type: Config.SETTINGS,
|
|
1199
1199
|
})
|
|
1200
1200
|
|
|
1201
1201
|
const googleConfig = <span class="cstat-no" title="statement not covered" >await getScopedFullConfig(db, {</span>
|
|
1202
|
-
type:
|
|
1202
|
+
type: Config.GOOGLE,
|
|
1203
1203
|
})
|
|
1204
1204
|
|
|
1205
1205
|
const oidcConfig = <span class="cstat-no" title="statement not covered" >await getScopedFullConfig(db, {</span>
|
|
1206
|
-
type:
|
|
1206
|
+
type: Config.OIDC,
|
|
1207
1207
|
})
|
|
1208
1208
|
|
|
1209
1209
|
let config
|
|
@@ -1325,17 +1325,17 @@ exports.configChecklist = async function (ctx) {
|
|
|
1325
1325
|
|
|
1326
1326
|
// They have set up SMTP
|
|
1327
1327
|
const smtpConfig = await getScopedFullConfig(db, {
|
|
1328
|
-
type:
|
|
1328
|
+
type: Config.SMTP,
|
|
1329
1329
|
})
|
|
1330
1330
|
|
|
1331
1331
|
// They have set up Google Auth
|
|
1332
1332
|
const googleConfig = await getScopedFullConfig(db, {
|
|
1333
|
-
type:
|
|
1333
|
+
type: Config.GOOGLE,
|
|
1334
1334
|
})
|
|
1335
1335
|
|
|
1336
1336
|
// They have set up OIDC
|
|
1337
1337
|
const oidcConfig = await getScopedFullConfig(db, {
|
|
1338
|
-
type:
|
|
1338
|
+
type: Config.OIDC,
|
|
1339
1339
|
})
|
|
1340
1340
|
|
|
1341
1341
|
// They have set up an global user
|
|
@@ -1375,7 +1375,7 @@ exports.configChecklist = async function (ctx) {
|
|
|
1375
1375
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1376
1376
|
Code coverage generated by
|
|
1377
1377
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1378
|
-
at
|
|
1378
|
+
at Fri Nov 18 2022 09:27:12 GMT+0000 (Coordinated Universal Time)
|
|
1379
1379
|
</div>
|
|
1380
1380
|
<script src="../../../../prettify.js"></script>
|
|
1381
1381
|
<script>
|
|
@@ -178,7 +178,7 @@ exports.sendEmail = async ctx => {
|
|
|
178
178
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
179
179
|
Code coverage generated by
|
|
180
180
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
181
|
-
at
|
|
181
|
+
at Fri Nov 18 2022 09:27:12 GMT+0000 (Coordinated Universal Time)
|
|
182
182
|
</div>
|
|
183
183
|
<script src="../../../../prettify.js"></script>
|
|
184
184
|
<script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">61.
|
|
26
|
+
<span class="strong">61.27% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>424/692</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">59.
|
|
47
|
+
<span class="strong">59.21% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>360/608</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -80,17 +80,17 @@
|
|
|
80
80
|
</thead>
|
|
81
81
|
<tbody><tr>
|
|
82
82
|
<td class="file medium" data-value="auth.ts"><a href="auth.ts.html">auth.ts</a></td>
|
|
83
|
-
<td data-value="64.
|
|
83
|
+
<td data-value="64.51" class="pic medium">
|
|
84
84
|
<div class="chart"><div class="cover-fill" style="width: 64%"></div><div class="cover-empty" style="width: 36%"></div></div>
|
|
85
85
|
</td>
|
|
86
|
-
<td data-value="64.
|
|
87
|
-
<td data-value="
|
|
86
|
+
<td data-value="64.51" class="pct medium">64.51%</td>
|
|
87
|
+
<td data-value="155" class="abs medium">100/155</td>
|
|
88
88
|
<td data-value="36.36" class="pct low">36.36%</td>
|
|
89
89
|
<td data-value="22" class="abs low">8/22</td>
|
|
90
90
|
<td data-value="48.83" class="pct low">48.83%</td>
|
|
91
91
|
<td data-value="43" class="abs low">21/43</td>
|
|
92
|
-
<td data-value="61.
|
|
93
|
-
<td data-value="
|
|
92
|
+
<td data-value="61.47" class="pct medium">61.47%</td>
|
|
93
|
+
<td data-value="122" class="abs medium">75/122</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
96
|
<tr>
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
222
222
|
Code coverage generated by
|
|
223
223
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
224
|
-
at
|
|
224
|
+
at Fri Nov 18 2022 09:27:12 GMT+0000 (Coordinated Universal Time)
|
|
225
225
|
</div>
|
|
226
226
|
<script src="../../../../prettify.js"></script>
|
|
227
227
|
<script>
|
|
@@ -172,7 +172,7 @@ export const getQuotaUsage = <span class="fstat-no" title="function not covered"
|
|
|
172
172
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
173
173
|
Code coverage generated by
|
|
174
174
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
175
|
-
at
|
|
175
|
+
at Fri Nov 18 2022 09:27:12 GMT+0000 (Coordinated Universal Time)
|
|
176
176
|
</div>
|
|
177
177
|
<script src="../../../../prettify.js"></script>
|
|
178
178
|
<script>
|
|
@@ -274,7 +274,7 @@ exports.removeAppRole = <span class="fstat-no" title="function not covered" >as<
|
|
|
274
274
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
275
275
|
Code coverage generated by
|
|
276
276
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
277
|
-
at
|
|
277
|
+
at Fri Nov 18 2022 09:27:12 GMT+0000 (Coordinated Universal Time)
|
|
278
278
|
</div>
|
|
279
279
|
<script src="../../../../prettify.js"></script>
|
|
280
280
|
<script>
|
|
@@ -466,12 +466,12 @@ export async function <span class="fstat-no" title="function not covered" >fetch
|
|
|
466
466
|
}
|
|
467
467
|
|
|
468
468
|
const checkCurrentApp = (ctx: any) => {
|
|
469
|
-
const appCookie = getCookie(ctx, constants.
|
|
469
|
+
const appCookie = getCookie(ctx, constants.Cookie.CurrentApp)
|
|
470
470
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (appCookie && <span class="branch-1 cbranch-no" title="branch not covered" >!tenancy.isUserInAppTenant(appCookie.appId))</span> {
|
|
471
471
|
// there is a currentapp cookie from another tenant
|
|
472
472
|
// remove the cookie as this is incompatible with the builder
|
|
473
473
|
// due to builder and admin permissions being removed
|
|
474
|
-
<span class="cstat-no" title="statement not covered" > clearCookie(ctx, constants.
|
|
474
|
+
<span class="cstat-no" title="statement not covered" > clearCookie(ctx, constants.Cookie.CurrentApp)</span>
|
|
475
475
|
}
|
|
476
476
|
}
|
|
477
477
|
|
|
@@ -562,7 +562,7 @@ export async function updateSelf(ctx: any) {
|
|
|
562
562
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
563
563
|
Code coverage generated by
|
|
564
564
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
565
|
-
at
|
|
565
|
+
at Fri Nov 18 2022 09:27:12 GMT+0000 (Coordinated Universal Time)
|
|
566
566
|
</div>
|
|
567
567
|
<script src="../../../../prettify.js"></script>
|
|
568
568
|
<script>
|
|
@@ -301,7 +301,7 @@ export async function <span class="fstat-no" title="function not covered" >destr
|
|
|
301
301
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
302
302
|
Code coverage generated by
|
|
303
303
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
304
|
-
at
|
|
304
|
+
at Fri Nov 18 2022 09:27:12 GMT+0000 (Coordinated Universal Time)
|
|
305
305
|
</div>
|
|
306
306
|
<script src="../../../../prettify.js"></script>
|
|
307
307
|
<script>
|