@budibase/worker 2.3.16 → 2.3.17-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/__mocks__/node-fetch.ts +23 -0
  2. package/jest-testcontainers-config.js +8 -0
  3. package/jest.config.ts +3 -2
  4. package/package.json +8 -6
  5. package/src/api/routes/global/tests/auth.spec.ts +30 -22
  6. package/src/api/routes/global/tests/configs.spec.ts +114 -94
  7. package/src/api/routes/global/tests/roles.spec.ts +19 -14
  8. package/src/api/routes/global/tests/users.spec.ts +33 -34
  9. package/src/ddApm.ts +7 -0
  10. package/src/elasticApm.ts +10 -0
  11. package/src/index.ts +6 -7
  12. package/src/sdk/users/users.ts +0 -1
  13. package/src/tests/TestConfiguration.ts +41 -11
  14. package/src/tests/api/auth.ts +7 -3
  15. package/src/tests/api/configs.ts +2 -2
  16. package/src/tests/api/users.ts +2 -2
  17. package/src/tests/jestSetup.ts +9 -2
  18. package/src/tests/structures/index.ts +0 -2
  19. package/coverage/clover.xml +0 -2199
  20. package/coverage/coverage-final.json +0 -84
  21. package/coverage/lcov-report/base.css +0 -224
  22. package/coverage/lcov-report/block-navigation.js +0 -87
  23. package/coverage/lcov-report/favicon.png +0 -0
  24. package/coverage/lcov-report/index.html +0 -431
  25. package/coverage/lcov-report/prettify.css +0 -1
  26. package/coverage/lcov-report/prettify.js +0 -2
  27. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  28. package/coverage/lcov-report/sorter.js +0 -196
  29. package/coverage/lcov-report/src/api/controllers/global/auth.ts.html +0 -934
  30. package/coverage/lcov-report/src/api/controllers/global/configs.ts.html +0 -1348
  31. package/coverage/lcov-report/src/api/controllers/global/email.ts.html +0 -196
  32. package/coverage/lcov-report/src/api/controllers/global/events.ts.html +0 -136
  33. package/coverage/lcov-report/src/api/controllers/global/index.html +0 -251
  34. package/coverage/lcov-report/src/api/controllers/global/license.ts.html +0 -187
  35. package/coverage/lcov-report/src/api/controllers/global/roles.ts.html +0 -283
  36. package/coverage/lcov-report/src/api/controllers/global/self.ts.html +0 -577
  37. package/coverage/lcov-report/src/api/controllers/global/templates.ts.html +0 -316
  38. package/coverage/lcov-report/src/api/controllers/global/users.ts.html +0 -838
  39. package/coverage/lcov-report/src/api/controllers/global/workspaces.ts.html +0 -244
  40. package/coverage/lcov-report/src/api/controllers/system/accounts.ts.html +0 -148
  41. package/coverage/lcov-report/src/api/controllers/system/environment.ts.html +0 -124
  42. package/coverage/lcov-report/src/api/controllers/system/index.html +0 -191
  43. package/coverage/lcov-report/src/api/controllers/system/migrations.ts.html +0 -124
  44. package/coverage/lcov-report/src/api/controllers/system/restore.ts.html +0 -124
  45. package/coverage/lcov-report/src/api/controllers/system/status.ts.html +0 -133
  46. package/coverage/lcov-report/src/api/controllers/system/tenants.ts.html +0 -154
  47. package/coverage/lcov-report/src/api/index.html +0 -116
  48. package/coverage/lcov-report/src/api/index.ts.html +0 -595
  49. package/coverage/lcov-report/src/api/routes/global/auth.ts.html +0 -349
  50. package/coverage/lcov-report/src/api/routes/global/configs.ts.html +0 -457
  51. package/coverage/lcov-report/src/api/routes/global/email.ts.html +0 -193
  52. package/coverage/lcov-report/src/api/routes/global/events.ts.html +0 -109
  53. package/coverage/lcov-report/src/api/routes/global/index.html +0 -251
  54. package/coverage/lcov-report/src/api/routes/global/license.ts.html +0 -124
  55. package/coverage/lcov-report/src/api/routes/global/roles.ts.html +0 -133
  56. package/coverage/lcov-report/src/api/routes/global/self.ts.html +0 -139
  57. package/coverage/lcov-report/src/api/routes/global/templates.ts.html +0 -196
  58. package/coverage/lcov-report/src/api/routes/global/users.ts.html +0 -475
  59. package/coverage/lcov-report/src/api/routes/global/workspaces.ts.html +0 -196
  60. package/coverage/lcov-report/src/api/routes/index.html +0 -116
  61. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -202
  62. package/coverage/lcov-report/src/api/routes/system/accounts.ts.html +0 -142
  63. package/coverage/lcov-report/src/api/routes/system/environment.ts.html +0 -109
  64. package/coverage/lcov-report/src/api/routes/system/index.html +0 -191
  65. package/coverage/lcov-report/src/api/routes/system/migrations.ts.html +0 -142
  66. package/coverage/lcov-report/src/api/routes/system/restore.ts.html +0 -109
  67. package/coverage/lcov-report/src/api/routes/system/status.ts.html +0 -109
  68. package/coverage/lcov-report/src/api/routes/system/tenants.ts.html +0 -124
  69. package/coverage/lcov-report/src/api/routes/validation/index.html +0 -131
  70. package/coverage/lcov-report/src/api/routes/validation/index.ts.html +0 -88
  71. package/coverage/lcov-report/src/api/routes/validation/users.ts.html +0 -235
  72. package/coverage/lcov-report/src/constants/index.html +0 -116
  73. package/coverage/lcov-report/src/constants/index.ts.html +0 -637
  74. package/coverage/lcov-report/src/constants/templates/index.html +0 -116
  75. package/coverage/lcov-report/src/constants/templates/index.ts.html +0 -316
  76. package/coverage/lcov-report/src/db/index.html +0 -116
  77. package/coverage/lcov-report/src/db/index.ts.html +0 -115
  78. package/coverage/lcov-report/src/environment.ts.html +0 -388
  79. package/coverage/lcov-report/src/index.html +0 -131
  80. package/coverage/lcov-report/src/index.ts.html +0 -394
  81. package/coverage/lcov-report/src/middleware/cloudRestricted.ts.html +0 -139
  82. package/coverage/lcov-report/src/middleware/index.html +0 -116
  83. package/coverage/lcov-report/src/migrations/functions/globalInfoSyncUsers.ts.html +0 -145
  84. package/coverage/lcov-report/src/migrations/functions/index.html +0 -116
  85. package/coverage/lcov-report/src/migrations/index.html +0 -116
  86. package/coverage/lcov-report/src/migrations/index.ts.html +0 -271
  87. package/coverage/lcov-report/src/sdk/accounts/accounts.ts.html +0 -262
  88. package/coverage/lcov-report/src/sdk/accounts/index.html +0 -131
  89. package/coverage/lcov-report/src/sdk/accounts/index.ts.html +0 -88
  90. package/coverage/lcov-report/src/sdk/index.html +0 -116
  91. package/coverage/lcov-report/src/sdk/index.ts.html +0 -106
  92. package/coverage/lcov-report/src/sdk/users/events.ts.html +0 -601
  93. package/coverage/lcov-report/src/sdk/users/index.html +0 -146
  94. package/coverage/lcov-report/src/sdk/users/index.ts.html +0 -88
  95. package/coverage/lcov-report/src/sdk/users/users.ts.html +0 -1999
  96. package/coverage/lcov-report/src/tests/TestConfiguration.ts.html +0 -1075
  97. package/coverage/lcov-report/src/tests/api/accounts.ts.html +0 -160
  98. package/coverage/lcov-report/src/tests/api/auth.ts.html +0 -220
  99. package/coverage/lcov-report/src/tests/api/base.ts.html +0 -133
  100. package/coverage/lcov-report/src/tests/api/configs.ts.html +0 -226
  101. package/coverage/lcov-report/src/tests/api/email.ts.html +0 -148
  102. package/coverage/lcov-report/src/tests/api/environment.ts.html +0 -130
  103. package/coverage/lcov-report/src/tests/api/groups.ts.html +0 -163
  104. package/coverage/lcov-report/src/tests/api/index.html +0 -356
  105. package/coverage/lcov-report/src/tests/api/index.ts.html +0 -238
  106. package/coverage/lcov-report/src/tests/api/license.ts.html +0 -136
  107. package/coverage/lcov-report/src/tests/api/migrations.ts.html +0 -151
  108. package/coverage/lcov-report/src/tests/api/restore.ts.html +0 -127
  109. package/coverage/lcov-report/src/tests/api/roles.ts.html +0 -181
  110. package/coverage/lcov-report/src/tests/api/self.ts.html +0 -163
  111. package/coverage/lcov-report/src/tests/api/status.ts.html +0 -121
  112. package/coverage/lcov-report/src/tests/api/templates.ts.html +0 -175
  113. package/coverage/lcov-report/src/tests/api/tenants.ts.html +0 -130
  114. package/coverage/lcov-report/src/tests/api/users.ts.html +0 -514
  115. package/coverage/lcov-report/src/tests/controllers.ts.html +0 -100
  116. package/coverage/lcov-report/src/tests/index.html +0 -146
  117. package/coverage/lcov-report/src/tests/index.ts.html +0 -103
  118. package/coverage/lcov-report/src/tests/mocks/email.ts.html +0 -115
  119. package/coverage/lcov-report/src/tests/mocks/index.html +0 -131
  120. package/coverage/lcov-report/src/tests/mocks/index.ts.html +0 -106
  121. package/coverage/lcov-report/src/tests/structures/configs.ts.html +0 -313
  122. package/coverage/lcov-report/src/tests/structures/groups.ts.html +0 -118
  123. package/coverage/lcov-report/src/tests/structures/index.html +0 -161
  124. package/coverage/lcov-report/src/tests/structures/index.ts.html +0 -151
  125. package/coverage/lcov-report/src/tests/structures/users.ts.html +0 -196
  126. package/coverage/lcov-report/src/utilities/appService.ts.html +0 -208
  127. package/coverage/lcov-report/src/utilities/email.ts.html +0 -850
  128. package/coverage/lcov-report/src/utilities/fileSystem.ts.html +0 -100
  129. package/coverage/lcov-report/src/utilities/index.html +0 -206
  130. package/coverage/lcov-report/src/utilities/index.ts.html +0 -112
  131. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -424
  132. package/coverage/lcov-report/src/utilities/templates.ts.html +0 -232
  133. package/coverage/lcov-report/src/utilities/users.ts.html +0 -133
  134. package/coverage/lcov.info +0 -4187
@@ -1,595 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for src/api/index.ts</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">src/api</a> index.ts</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">93.75% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>30/32</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">77.77% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>7/9</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">60% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>3/5</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">96.66% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>29/30</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">18x</span>
237
- <span class="cline-any cline-yes">18x</span>
238
- <span class="cline-any cline-yes">18x</span>
239
- <span class="cline-any cline-yes">18x</span>
240
- <span class="cline-any cline-yes">18x</span>
241
- <span class="cline-any cline-yes">18x</span>
242
- <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-neutral">&nbsp;</span>
244
- <span class="cline-any cline-yes">18x</span>
245
- <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-neutral">&nbsp;</span>
249
- <span class="cline-any cline-neutral">&nbsp;</span>
250
- <span class="cline-any cline-neutral">&nbsp;</span>
251
- <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-neutral">&nbsp;</span>
257
- <span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-neutral">&nbsp;</span>
259
- <span class="cline-any cline-neutral">&nbsp;</span>
260
- <span class="cline-any cline-neutral">&nbsp;</span>
261
- <span class="cline-any cline-neutral">&nbsp;</span>
262
- <span class="cline-any cline-neutral">&nbsp;</span>
263
- <span class="cline-any cline-neutral">&nbsp;</span>
264
- <span class="cline-any cline-neutral">&nbsp;</span>
265
- <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-neutral">&nbsp;</span>
268
- <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-neutral">&nbsp;</span>
271
- <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-neutral">&nbsp;</span>
273
- <span class="cline-any cline-neutral">&nbsp;</span>
274
- <span class="cline-any cline-neutral">&nbsp;</span>
275
- <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-neutral">&nbsp;</span>
280
- <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-neutral">&nbsp;</span>
283
- <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-neutral">&nbsp;</span>
285
- <span class="cline-any cline-neutral">&nbsp;</span>
286
- <span class="cline-any cline-neutral">&nbsp;</span>
287
- <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span>
293
- <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-neutral">&nbsp;</span>
295
- <span class="cline-any cline-neutral">&nbsp;</span>
296
- <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-neutral">&nbsp;</span>
298
- <span class="cline-any cline-neutral">&nbsp;</span>
299
- <span class="cline-any cline-neutral">&nbsp;</span>
300
- <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-neutral">&nbsp;</span>
303
- <span class="cline-any cline-neutral">&nbsp;</span>
304
- <span class="cline-any cline-neutral">&nbsp;</span>
305
- <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-yes">18x</span>
307
- <span class="cline-any cline-neutral">&nbsp;</span>
308
- <span class="cline-any cline-neutral">&nbsp;</span>
309
- <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-neutral">&nbsp;</span>
312
- <span class="cline-any cline-neutral">&nbsp;</span>
313
- <span class="cline-any cline-neutral">&nbsp;</span>
314
- <span class="cline-any cline-neutral">&nbsp;</span>
315
- <span class="cline-any cline-neutral">&nbsp;</span>
316
- <span class="cline-any cline-neutral">&nbsp;</span>
317
- <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-neutral">&nbsp;</span>
319
- <span class="cline-any cline-neutral">&nbsp;</span>
320
- <span class="cline-any cline-neutral">&nbsp;</span>
321
- <span class="cline-any cline-neutral">&nbsp;</span>
322
- <span class="cline-any cline-neutral">&nbsp;</span>
323
- <span class="cline-any cline-neutral">&nbsp;</span>
324
- <span class="cline-any cline-neutral">&nbsp;</span>
325
- <span class="cline-any cline-neutral">&nbsp;</span>
326
- <span class="cline-any cline-neutral">&nbsp;</span>
327
- <span class="cline-any cline-neutral">&nbsp;</span>
328
- <span class="cline-any cline-neutral">&nbsp;</span>
329
- <span class="cline-any cline-neutral">&nbsp;</span>
330
- <span class="cline-any cline-neutral">&nbsp;</span>
331
- <span class="cline-any cline-neutral">&nbsp;</span>
332
- <span class="cline-any cline-neutral">&nbsp;</span>
333
- <span class="cline-any cline-neutral">&nbsp;</span>
334
- <span class="cline-any cline-neutral">&nbsp;</span>
335
- <span class="cline-any cline-neutral">&nbsp;</span>
336
- <span class="cline-any cline-neutral">&nbsp;</span>
337
- <span class="cline-any cline-neutral">&nbsp;</span>
338
- <span class="cline-any cline-neutral">&nbsp;</span>
339
- <span class="cline-any cline-neutral">&nbsp;</span>
340
- <span class="cline-any cline-neutral">&nbsp;</span>
341
- <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-yes">18x</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
- <span class="cline-any cline-yes">18x</span>
347
- <span class="cline-any cline-yes">18x</span>
348
- <span class="cline-any cline-neutral">&nbsp;</span>
349
- <span class="cline-any cline-neutral">&nbsp;</span>
350
- <span class="cline-any cline-neutral">&nbsp;</span>
351
- <span class="cline-any cline-neutral">&nbsp;</span>
352
- <span class="cline-any cline-neutral">&nbsp;</span>
353
- <span class="cline-any cline-neutral">&nbsp;</span>
354
- <span class="cline-any cline-neutral">&nbsp;</span>
355
- <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-neutral">&nbsp;</span>
357
- <span class="cline-any cline-neutral">&nbsp;</span>
358
- <span class="cline-any cline-neutral">&nbsp;</span>
359
- <span class="cline-any cline-neutral">&nbsp;</span>
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-neutral">&nbsp;</span>
364
- <span class="cline-any cline-neutral">&nbsp;</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-yes">123x</span>
368
- <span class="cline-any cline-yes">24x</span>
369
- <span class="cline-any cline-neutral">&nbsp;</span>
370
- <span class="cline-any cline-yes">99x</span>
371
- <span class="cline-any cline-neutral">&nbsp;</span>
372
- <span class="cline-any cline-neutral">&nbsp;</span>
373
- <span class="cline-any cline-neutral">&nbsp;</span>
374
- <span class="cline-any cline-yes">2x</span>
375
- <span class="cline-any cline-neutral">&nbsp;</span>
376
- <span class="cline-any cline-yes">97x</span>
377
- <span class="cline-any cline-neutral">&nbsp;</span>
378
- <span class="cline-any cline-neutral">&nbsp;</span>
379
- <span class="cline-any cline-neutral">&nbsp;</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span>
381
- <span class="cline-any cline-yes">18x</span>
382
- <span class="cline-any cline-yes">121x</span>
383
- <span class="cline-any cline-yes">121x</span>
384
- <span class="cline-any cline-neutral">&nbsp;</span>
385
- <span class="cline-any cline-yes">14x</span>
386
- <span class="cline-any cline-yes">14x</span>
387
- <span class="cline-any cline-yes">14x</span>
388
- <span class="cline-any cline-yes">14x</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-yes">14x</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-yes">18x</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-neutral">&nbsp;</span>
400
- <span class="cline-any cline-yes">18x</span>
401
- <span class="cline-any cline-yes">306x</span>
402
- <span class="cline-any cline-yes">306x</span>
403
- <span class="cline-any cline-neutral">&nbsp;</span>
404
- <span class="cline-any cline-neutral">&nbsp;</span>
405
- <span class="cline-any cline-yes">18x</span>
406
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import Router from "@koa/router"
407
- const compress = require("koa-compress")
408
- const zlib = require("zlib")
409
- import { routes } from "./routes"
410
- import { middleware as pro } from "@budibase/pro"
411
- import { errors, auth, middleware } from "@budibase/backend-core"
412
- import { APIError } from "@budibase/types"
413
- &nbsp;
414
- const PUBLIC_ENDPOINTS = [
415
- // deprecated single tenant sso callback
416
- {
417
- route: "/api/admin/auth/google/callback",
418
- method: "GET",
419
- },
420
- // deprecated single tenant sso callback
421
- {
422
- route: "/api/admin/auth/oidc/callback",
423
- method: "GET",
424
- },
425
- {
426
- // this covers all of the POST auth routes
427
- route: "/api/global/auth/:tenantId",
428
- method: "POST",
429
- },
430
- {
431
- // this covers all of the GET auth routes
432
- route: "/api/global/auth/:tenantId",
433
- method: "GET",
434
- },
435
- {
436
- // this covers all of the public config routes
437
- route: "/api/global/configs/public",
438
- method: "GET",
439
- },
440
- {
441
- route: "/api/global/configs/checklist",
442
- method: "GET",
443
- },
444
- {
445
- route: "/api/global/users/init",
446
- method: "POST",
447
- },
448
- {
449
- route: "/api/global/users/invite/accept",
450
- method: "POST",
451
- },
452
- {
453
- route: "/api/system/environment",
454
- method: "GET",
455
- },
456
- {
457
- route: "/api/system/status",
458
- method: "GET",
459
- },
460
- // TODO: This should be an internal api
461
- {
462
- route: "/api/global/users/tenant/:id",
463
- method: "GET",
464
- },
465
- // TODO: This should be an internal api
466
- {
467
- route: "/api/system/restored",
468
- method: "POST",
469
- },
470
- {
471
- route: "/api/global/users/invite",
472
- method: "GET",
473
- },
474
- ]
475
- &nbsp;
476
- const NO_TENANCY_ENDPOINTS = [
477
- // system endpoints are not specific to any tenant
478
- {
479
- route: "/api/system",
480
- method: "ALL",
481
- },
482
- // tenant is determined in request body
483
- // used for creating the tenant
484
- {
485
- route: "/api/global/users/init",
486
- method: "POST",
487
- },
488
- // deprecated single tenant sso callback
489
- {
490
- route: "/api/admin/auth/google/callback",
491
- method: "GET",
492
- },
493
- // deprecated single tenant sso callback
494
- {
495
- route: "/api/admin/auth/oidc/callback",
496
- method: "GET",
497
- },
498
- // tenant is determined from code in redis
499
- {
500
- route: "/api/global/users/invite/accept",
501
- method: "POST",
502
- },
503
- // global user search - no tenancy
504
- // :id is user id
505
- // TODO: this should really be `/api/system/users/:id`
506
- {
507
- route: "/api/global/users/tenant/:id",
508
- method: "GET",
509
- },
510
- ]
511
- &nbsp;
512
- // most public endpoints are gets, but some are posts
513
- // add them all to be safe
514
- const NO_CSRF_ENDPOINTS = [...PUBLIC_ENDPOINTS]
515
- &nbsp;
516
- const router: Router = new Router()
517
- router
518
- .use(
519
- compress({
520
- threshold: 2048,
521
- gzip: {
522
- flush: zlib.constants.Z_SYNC_FLUSH,
523
- },
524
- deflate: {
525
- flush: zlib.constants.Z_SYNC_FLUSH,
526
- },
527
- br: false,
528
- })
529
- )
530
- .use("/health", <span class="fstat-no" title="function not covered" >ctx =&gt; (<span class="cstat-no" title="statement not covered" >c</span>tx.status = 200))</span>
531
- .use(auth.buildAuthMiddleware(PUBLIC_ENDPOINTS))
532
- .use(auth.buildTenancyMiddleware(PUBLIC_ENDPOINTS, NO_TENANCY_ENDPOINTS))
533
- .use(auth.buildCsrfMiddleware({ noCsrfPatterns: NO_CSRF_ENDPOINTS }))
534
- .use(pro.licensing())
535
- // for now no public access is allowed to worker (bar health check)
536
- .use((ctx, next) =&gt; {
537
- if (ctx.publicEndpoint) {
538
- return next()
539
- }
540
- if (
541
- (!ctx.isAuthenticated || (ctx.user &amp;&amp; !ctx.user.budibaseAccess)) &amp;&amp;
542
- !ctx.internal
543
- ) {
544
- ctx.throw(403, "Unauthorized - no public worker access")
545
- }
546
- return next()
547
- })
548
- .use(middleware.auditLog)
549
- &nbsp;
550
- // error handling middleware - TODO: This could be moved to backend-core
551
- router.use(async (ctx, next) =&gt; {
552
- try {
553
- await next()
554
- } catch (err: any) {
555
- ctx.log.error(err)
556
- ctx.status = err.status || <span class="branch-1 cbranch-no" title="branch not covered" >err.statusCode </span>|| <span class="branch-2 cbranch-no" title="branch not covered" >500</span>
557
- const error = errors.getPublicError(err)
558
- const body: APIError = {
559
- message: err.message,
560
- status: ctx.status,
561
- error,
562
- }
563
- ctx.body = body
564
- }
565
- })
566
- &nbsp;
567
- router.get("/health", <span class="fstat-no" title="function not covered" >ctx =&gt; (<span class="cstat-no" title="statement not covered" >c</span>tx.status = 200))</span>
568
- &nbsp;
569
- // authenticated routes
570
- for (let route of routes) {
571
- router.use(route.routes())
572
- router.use(route.allowedMethods())
573
- }
574
- &nbsp;
575
- export default router
576
- &nbsp;</pre></td></tr></table></pre>
577
-
578
- <div class='push'></div><!-- for sticky footer -->
579
- </div><!-- /wrapper -->
580
- <div class='footer quiet pad2 space-top1 center small'>
581
- Code coverage generated by
582
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
583
- at Wed Feb 15 2023 15:06:34 GMT+0000 (Coordinated Universal Time)
584
- </div>
585
- <script src="../../prettify.js"></script>
586
- <script>
587
- window.onload = function () {
588
- prettyPrint();
589
- };
590
- </script>
591
- <script src="../../sorter.js"></script>
592
- <script src="../../block-navigation.js"></script>
593
- </body>
594
- </html>
595
-