@budibase/server 0.9.171 → 0.9.173-alpha.2

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 (261) hide show
  1. package/__mocks__/{mysql.ts → mysql2.ts} +0 -0
  2. package/builder/assets/{index.dbc6728e.css → index.7469e1e4.css} +2 -2
  3. package/builder/assets/{index.cf0febb9.js → index.8a8f7849.js} +34 -34
  4. package/builder/assets/{vendor.54435e8f.js → vendor.278a305c.js} +1 -1
  5. package/builder/index.html +3 -3
  6. package/coverage/clover.xml +973 -849
  7. package/coverage/coverage-final.json +47 -46
  8. package/coverage/lcov-report/api/controllers/analytics.js.html +21 -9
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/application.js.html +186 -84
  11. package/coverage/lcov-report/api/controllers/auth.js.html +37 -10
  12. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/backup.js.html +6 -9
  14. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/dev.js.html +41 -17
  18. package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/index.html +71 -71
  20. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/permission.js.html +7 -4
  24. package/coverage/lcov-report/api/controllers/query.js.html +129 -24
  25. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/index.html +5 -5
  29. package/coverage/lcov-report/api/controllers/row/index.js.html +15 -15
  30. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/screen.js.html +9 -9
  34. package/coverage/lcov-report/api/controllers/script.js.html +12 -57
  35. package/coverage/lcov-report/api/controllers/table/index.html +28 -28
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +16 -37
  37. package/coverage/lcov-report/api/controllers/table/utils.js.html +279 -33
  38. package/coverage/lcov-report/api/controllers/templates.js.html +49 -13
  39. package/coverage/lcov-report/api/controllers/user.js.html +3 -3
  40. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.html +19 -19
  42. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/utils.js.html +8 -8
  44. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +54 -15
  45. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  46. package/coverage/lcov-report/api/index.html +1 -1
  47. package/coverage/lcov-report/api/index.js.html +3 -3
  48. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/application.js.html +5 -2
  51. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/dev.js.html +26 -11
  59. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/index.html +9 -9
  61. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/query.js.html +9 -3
  67. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  78. package/coverage/lcov-report/automations/actions.js.html +31 -10
  79. package/coverage/lcov-report/automations/automationUtils.js.html +14 -86
  80. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  81. package/coverage/lcov-report/automations/index.html +37 -37
  82. package/coverage/lcov-report/automations/index.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/bash.js.html +10 -7
  84. package/coverage/lcov-report/automations/steps/createRow.js.html +2 -2
  85. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/deleteRow.js.html +8 -5
  87. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/executeQuery.js.html +10 -7
  89. package/coverage/lcov-report/automations/steps/executeScript.js.html +10 -7
  90. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/index.html +57 -57
  92. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +10 -7
  94. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -7
  95. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +10 -7
  96. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/updateRow.js.html +14 -14
  99. package/coverage/lcov-report/automations/steps/utils.js.html +10 -10
  100. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  101. package/coverage/lcov-report/automations/thread.js.html +54 -12
  102. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  111. package/coverage/lcov-report/automations/utils.js.html +28 -28
  112. package/coverage/lcov-report/constants/index.html +1 -1
  113. package/coverage/lcov-report/constants/index.js.html +5 -2
  114. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  115. package/coverage/lcov-report/constants/screens.js.html +2 -2
  116. package/coverage/lcov-report/db/client.js.html +1 -1
  117. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  118. package/coverage/lcov-report/db/index.html +1 -1
  119. package/coverage/lcov-report/db/index.js.html +1 -1
  120. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +12 -12
  121. package/coverage/lcov-report/db/linkedRows/index.html +18 -18
  122. package/coverage/lcov-report/db/linkedRows/index.js.html +47 -26
  123. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  124. package/coverage/lcov-report/db/newid.js.html +2 -2
  125. package/coverage/lcov-report/db/utils.js.html +17 -17
  126. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  127. package/coverage/lcov-report/events/index.html +1 -1
  128. package/coverage/lcov-report/events/index.js.html +1 -1
  129. package/coverage/lcov-report/events/utils.js.html +1 -1
  130. package/coverage/lcov-report/index.html +107 -107
  131. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  132. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  133. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  134. package/coverage/lcov-report/middleware/authorized.js.html +2 -2
  135. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  136. package/coverage/lcov-report/middleware/currentapp.js.html +52 -25
  137. package/coverage/lcov-report/middleware/index.html +15 -15
  138. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  139. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  140. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  141. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  142. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  143. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  144. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  145. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  146. package/coverage/lcov-report/utilities/global.js.html +27 -27
  147. package/coverage/lcov-report/utilities/index.html +32 -17
  148. package/coverage/lcov-report/utilities/index.js.html +4 -4
  149. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +29 -8
  150. package/coverage/lcov-report/utilities/queue/index.html +15 -15
  151. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  152. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  153. package/coverage/lcov-report/utilities/rowProcessor/index.html +14 -14
  154. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +38 -8
  155. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  156. package/coverage/lcov-report/utilities/scriptRunner.js.html +143 -0
  157. package/coverage/lcov-report/utilities/security.js.html +1 -1
  158. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  159. package/coverage/lcov-report/utilities/users.js.html +1 -1
  160. package/coverage/lcov-report/utilities/workerRequests.js.html +19 -19
  161. package/coverage/lcov.info +1692 -1452
  162. package/dist/api/controllers/analytics.js +4 -0
  163. package/dist/api/controllers/application.js +185 -171
  164. package/dist/api/controllers/auth.js +12 -2
  165. package/dist/api/controllers/backup.js +4 -4
  166. package/dist/api/controllers/deploy/index.js +3 -16
  167. package/dist/api/controllers/dev.js +17 -11
  168. package/dist/api/controllers/permission.js +1 -0
  169. package/dist/api/controllers/query.js +26 -8
  170. package/dist/api/controllers/row/ExternalRequest.js +46 -5
  171. package/dist/api/controllers/script.js +4 -16
  172. package/dist/api/controllers/table/index.js +5 -10
  173. package/dist/api/controllers/table/utils.js +83 -10
  174. package/dist/api/controllers/templates.js +18 -3
  175. package/dist/api/controllers/view/viewBuilder.js +15 -1
  176. package/dist/api/routes/application.js +1 -0
  177. package/dist/api/routes/dev.js +8 -4
  178. package/dist/api/routes/query.js +3 -1
  179. package/dist/api/routes/tests/utilities/TestFunctions.js +7 -9
  180. package/dist/automations/actions.js +9 -3
  181. package/dist/automations/automationUtils.js +8 -29
  182. package/dist/automations/steps/bash.js +2 -1
  183. package/dist/automations/steps/createRow.js +1 -1
  184. package/dist/automations/steps/deleteRow.js +2 -1
  185. package/dist/automations/steps/executeQuery.js +2 -1
  186. package/dist/automations/steps/executeScript.js +2 -1
  187. package/dist/automations/steps/outgoingWebhook.js +2 -1
  188. package/dist/automations/steps/queryRows.js +2 -1
  189. package/dist/automations/steps/sendSmtpEmail.js +2 -1
  190. package/dist/automations/steps/updateRow.js +6 -2
  191. package/dist/automations/thread.js +14 -3
  192. package/dist/constants/index.js +1 -0
  193. package/dist/db/linkedRows/index.js +9 -6
  194. package/dist/integrations/base/sql.js +4 -4
  195. package/dist/integrations/mysql.js +1 -1
  196. package/dist/integrations/utils.js +17 -1
  197. package/dist/middleware/currentapp.js +8 -2
  198. package/dist/package.json +7 -6
  199. package/dist/tests/utilities/TestConfiguration.js +34 -19
  200. package/dist/tests/utilities/controllers.js +1 -0
  201. package/dist/tsconfig.tsbuildinfo +1 -1
  202. package/dist/utilities/fileSystem/index.js +49 -33
  203. package/dist/utilities/global.js +1 -1
  204. package/dist/utilities/queue/inMemoryQueue.js +6 -0
  205. package/dist/utilities/rowProcessor/index.js +8 -0
  206. package/dist/utilities/scriptRunner.js +19 -0
  207. package/package.json +8 -7
  208. package/scripts/jestSetup.js +2 -0
  209. package/src/api/controllers/analytics.js +4 -0
  210. package/src/api/controllers/application.js +43 -9
  211. package/src/api/controllers/auth.js +12 -3
  212. package/src/api/controllers/backup.js +4 -5
  213. package/src/api/controllers/deploy/index.js +3 -18
  214. package/src/api/controllers/dev.js +16 -8
  215. package/src/api/controllers/permission.js +1 -0
  216. package/src/api/controllers/query.js +46 -11
  217. package/src/api/controllers/row/ExternalRequest.ts +53 -4
  218. package/src/api/controllers/script.js +4 -19
  219. package/src/api/controllers/table/index.js +5 -12
  220. package/src/api/controllers/table/utils.js +94 -12
  221. package/src/api/controllers/templates.js +17 -5
  222. package/src/api/controllers/view/tests/__snapshots__/viewBuilder.spec.js.snap +1 -1
  223. package/src/api/controllers/view/viewBuilder.js +14 -1
  224. package/src/api/routes/application.js +1 -0
  225. package/src/api/routes/dev.js +9 -4
  226. package/src/api/routes/query.js +3 -1
  227. package/src/api/routes/tests/auth.spec.js +1 -2
  228. package/src/api/routes/tests/permissions.spec.js +3 -0
  229. package/src/api/routes/tests/query.spec.js +2 -2
  230. package/src/api/routes/tests/routing.spec.js +24 -8
  231. package/src/api/routes/tests/user.spec.js +1 -1
  232. package/src/api/routes/tests/utilities/TestFunctions.js +7 -9
  233. package/src/api/routes/tests/webhook.spec.js +4 -1
  234. package/src/automations/actions.js +10 -3
  235. package/src/automations/automationUtils.js +7 -31
  236. package/src/automations/steps/bash.js +2 -1
  237. package/src/automations/steps/createRow.js +1 -1
  238. package/src/automations/steps/deleteRow.js +2 -1
  239. package/src/automations/steps/executeQuery.js +2 -1
  240. package/src/automations/steps/executeScript.js +2 -1
  241. package/src/automations/steps/outgoingWebhook.js +2 -1
  242. package/src/automations/steps/queryRows.js +2 -1
  243. package/src/automations/steps/sendSmtpEmail.js +2 -1
  244. package/src/automations/steps/updateRow.js +6 -6
  245. package/src/automations/thread.js +17 -3
  246. package/src/constants/index.js +1 -0
  247. package/src/db/linkedRows/index.js +14 -7
  248. package/src/integrations/base/sql.ts +11 -3
  249. package/src/integrations/mysql.ts +1 -1
  250. package/src/integrations/tests/mongo.spec.js +10 -6
  251. package/src/integrations/tests/mysql.spec.js +1 -1
  252. package/src/integrations/utils.ts +18 -0
  253. package/src/middleware/currentapp.js +11 -2
  254. package/src/middleware/tests/currentapp.spec.js +3 -3
  255. package/src/tests/utilities/TestConfiguration.js +47 -19
  256. package/src/tests/utilities/controllers.js +1 -0
  257. package/src/utilities/fileSystem/index.js +65 -43
  258. package/src/utilities/global.js +1 -1
  259. package/src/utilities/queue/inMemoryQueue.js +7 -0
  260. package/src/utilities/rowProcessor/index.js +10 -0
  261. package/src/utilities/scriptRunner.js +21 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">78.48% </span>
26
+ <span class="strong">77.74% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>3041/3875</span>
28
+ <span class='fraction'>3108/3998</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">59.4% </span>
33
+ <span class="strong">58.88% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>856/1441</span>
35
+ <span class='fraction'>892/1515</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">74.68% </span>
40
+ <span class="strong">74.78% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>407/545</span>
42
+ <span class='fraction'>421/563</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">78.74% </span>
47
+ <span class="strong">78.02% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>3003/3814</span>
49
+ <span class='fraction'>3070/3935</span>
50
50
  </div>
51
51
 
52
52
 
@@ -89,17 +89,17 @@
89
89
 
90
90
  <tr>
91
91
  <td class="file medium" data-value="api/controllers"><a href="api/controllers/index.html">api/controllers</a></td>
92
- <td data-value="78.71" class="pic medium">
92
+ <td data-value="78.18" class="pic medium">
93
93
  <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
94
94
  </td>
95
- <td data-value="78.71" class="pct medium">78.71%</td>
96
- <td data-value="996" class="abs medium">784/996</td>
97
- <td data-value="55.67" class="pct medium">55.67%</td>
98
- <td data-value="300" class="abs medium">167/300</td>
99
- <td data-value="77.14" class="pct medium">77.14%</td>
100
- <td data-value="140" class="abs medium">108/140</td>
101
- <td data-value="78.92" class="pct medium">78.92%</td>
102
- <td data-value="982" class="abs medium">775/982</td>
95
+ <td data-value="78.18" class="pct medium">78.18%</td>
96
+ <td data-value="1031" class="abs medium">806/1031</td>
97
+ <td data-value="55.31" class="pct medium">55.31%</td>
98
+ <td data-value="320" class="abs medium">177/320</td>
99
+ <td data-value="77.4" class="pct medium">77.4%</td>
100
+ <td data-value="146" class="abs medium">113/146</td>
101
+ <td data-value="78.42" class="pct medium">78.42%</td>
102
+ <td data-value="1015" class="abs medium">796/1015</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
@@ -109,8 +109,8 @@
109
109
  </td>
110
110
  <td data-value="52.76" class="pct medium">52.76%</td>
111
111
  <td data-value="597" class="abs medium">315/597</td>
112
- <td data-value="33.47" class="pct low">33.47%</td>
113
- <td data-value="245" class="abs low">82/245</td>
112
+ <td data-value="33.88" class="pct low">33.88%</td>
113
+ <td data-value="245" class="abs low">83/245</td>
114
114
  <td data-value="43.18" class="pct low">43.18%</td>
115
115
  <td data-value="88" class="abs low">38/88</td>
116
116
  <td data-value="52.82" class="pct medium">52.82%</td>
@@ -118,78 +118,78 @@
118
118
  </tr>
119
119
 
120
120
  <tr>
121
- <td class="file high" data-value="api/controllers/table"><a href="api/controllers/table/index.html">api/controllers/table</a></td>
122
- <td data-value="85.71" class="pic high">
123
- <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
121
+ <td class="file medium" data-value="api/controllers/table"><a href="api/controllers/table/index.html">api/controllers/table</a></td>
122
+ <td data-value="72.77" class="pic medium">
123
+ <div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
124
124
  </td>
125
- <td data-value="85.71" class="pct high">85.71%</td>
126
- <td data-value="189" class="abs high">162/189</td>
127
- <td data-value="68.89" class="pct medium">68.89%</td>
128
- <td data-value="90" class="abs medium">62/90</td>
129
- <td data-value="77.78" class="pct medium">77.78%</td>
130
- <td data-value="27" class="abs medium">21/27</td>
131
- <td data-value="87.91" class="pct high">87.91%</td>
132
- <td data-value="182" class="abs high">160/182</td>
125
+ <td data-value="72.77" class="pct medium">72.77%</td>
126
+ <td data-value="235" class="abs medium">171/235</td>
127
+ <td data-value="54.17" class="pct medium">54.17%</td>
128
+ <td data-value="120" class="abs medium">65/120</td>
129
+ <td data-value="69.7" class="pct medium">69.7%</td>
130
+ <td data-value="33" class="abs medium">23/33</td>
131
+ <td data-value="74.45" class="pct medium">74.45%</td>
132
+ <td data-value="227" class="abs medium">169/227</td>
133
133
  </tr>
134
134
 
135
135
  <tr>
136
136
  <td class="file medium" data-value="api/controllers/view"><a href="api/controllers/view/index.html">api/controllers/view</a></td>
137
- <td data-value="73.96" class="pic medium">
137
+ <td data-value="73.14" class="pic medium">
138
138
  <div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
139
139
  </td>
140
- <td data-value="73.96" class="pct medium">73.96%</td>
141
- <td data-value="169" class="abs medium">125/169</td>
142
- <td data-value="63.01" class="pct medium">63.01%</td>
143
- <td data-value="73" class="abs medium">46/73</td>
144
- <td data-value="85" class="pct high">85%</td>
145
- <td data-value="20" class="abs high">17/20</td>
146
- <td data-value="74.25" class="pct medium">74.25%</td>
147
- <td data-value="167" class="abs medium">124/167</td>
140
+ <td data-value="73.14" class="pct medium">73.14%</td>
141
+ <td data-value="175" class="abs medium">128/175</td>
142
+ <td data-value="62.34" class="pct medium">62.34%</td>
143
+ <td data-value="77" class="abs medium">48/77</td>
144
+ <td data-value="80.95" class="pct high">80.95%</td>
145
+ <td data-value="21" class="abs high">17/21</td>
146
+ <td data-value="73.41" class="pct medium">73.41%</td>
147
+ <td data-value="173" class="abs medium">127/173</td>
148
148
  </tr>
149
149
 
150
150
  <tr>
151
151
  <td class="file high" data-value="api/routes"><a href="api/routes/index.html">api/routes</a></td>
152
- <td data-value="97.4" class="pic high">
152
+ <td data-value="97.42" class="pic high">
153
153
  <div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div>
154
154
  </td>
155
- <td data-value="97.4" class="pct high">97.4%</td>
156
- <td data-value="269" class="abs high">262/269</td>
155
+ <td data-value="97.42" class="pct high">97.42%</td>
156
+ <td data-value="271" class="abs high">264/271</td>
157
157
  <td data-value="63.64" class="pct medium">63.64%</td>
158
158
  <td data-value="11" class="abs medium">7/11</td>
159
159
  <td data-value="100" class="pct high">100%</td>
160
- <td data-value="11" class="abs high">11/11</td>
161
- <td data-value="97.4" class="pct high">97.4%</td>
162
- <td data-value="269" class="abs high">262/269</td>
160
+ <td data-value="12" class="abs high">12/12</td>
161
+ <td data-value="97.42" class="pct high">97.42%</td>
162
+ <td data-value="271" class="abs high">264/271</td>
163
163
  </tr>
164
164
 
165
165
  <tr>
166
166
  <td class="file high" data-value="automations"><a href="automations/index.html">automations</a></td>
167
- <td data-value="83.94" class="pic high">
168
- <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
167
+ <td data-value="86.51" class="pic high">
168
+ <div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
169
169
  </td>
170
- <td data-value="83.94" class="pct high">83.94%</td>
171
- <td data-value="249" class="abs high">209/249</td>
172
- <td data-value="73.53" class="pct medium">73.53%</td>
173
- <td data-value="102" class="abs medium">75/102</td>
174
- <td data-value="82.76" class="pct high">82.76%</td>
175
- <td data-value="29" class="abs high">24/29</td>
176
- <td data-value="83.94" class="pct high">83.94%</td>
177
- <td data-value="249" class="abs high">209/249</td>
170
+ <td data-value="86.51" class="pct high">86.51%</td>
171
+ <td data-value="252" class="abs high">218/252</td>
172
+ <td data-value="77.36" class="pct medium">77.36%</td>
173
+ <td data-value="106" class="abs medium">82/106</td>
174
+ <td data-value="93.1" class="pct high">93.1%</td>
175
+ <td data-value="29" class="abs high">27/29</td>
176
+ <td data-value="86.51" class="pct high">86.51%</td>
177
+ <td data-value="252" class="abs high">218/252</td>
178
178
  </tr>
179
179
 
180
180
  <tr>
181
181
  <td class="file medium" data-value="automations/steps"><a href="automations/steps/index.html">automations/steps</a></td>
182
- <td data-value="72.84" class="pic medium">
183
- <div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
182
+ <td data-value="74.27" class="pic medium">
183
+ <div class="chart"><div class="cover-fill" style="width: 74%"></div><div class="cover-empty" style="width: 26%"></div></div>
184
184
  </td>
185
- <td data-value="72.84" class="pct medium">72.84%</td>
186
- <td data-value="232" class="abs medium">169/232</td>
187
- <td data-value="69.41" class="pct medium">69.41%</td>
188
- <td data-value="85" class="abs medium">59/85</td>
189
- <td data-value="50" class="pct medium">50%</td>
190
- <td data-value="20" class="abs medium">10/20</td>
191
- <td data-value="72.84" class="pct medium">72.84%</td>
192
- <td data-value="232" class="abs medium">169/232</td>
185
+ <td data-value="74.27" class="pct medium">74.27%</td>
186
+ <td data-value="241" class="abs medium">179/241</td>
187
+ <td data-value="70.11" class="pct medium">70.11%</td>
188
+ <td data-value="87" class="abs medium">61/87</td>
189
+ <td data-value="55" class="pct medium">55%</td>
190
+ <td data-value="20" class="abs medium">11/20</td>
191
+ <td data-value="74.27" class="pct medium">74.27%</td>
192
+ <td data-value="241" class="abs medium">179/241</td>
193
193
  </tr>
194
194
 
195
195
  <tr>
@@ -239,17 +239,17 @@
239
239
 
240
240
  <tr>
241
241
  <td class="file high" data-value="db/linkedRows"><a href="db/linkedRows/index.html">db/linkedRows</a></td>
242
- <td data-value="96.13" class="pic high">
242
+ <td data-value="96.46" class="pic high">
243
243
  <div class="chart"><div class="cover-fill" style="width: 96%"></div><div class="cover-empty" style="width: 4%"></div></div>
244
244
  </td>
245
- <td data-value="96.13" class="pct high">96.13%</td>
246
- <td data-value="310" class="abs high">298/310</td>
247
- <td data-value="86.57" class="pct high">86.57%</td>
248
- <td data-value="134" class="abs high">116/134</td>
249
- <td data-value="94.92" class="pct high">94.92%</td>
250
- <td data-value="59" class="abs high">56/59</td>
251
- <td data-value="96.31" class="pct high">96.31%</td>
252
- <td data-value="298" class="abs high">287/298</td>
245
+ <td data-value="96.46" class="pct high">96.46%</td>
246
+ <td data-value="311" class="abs high">300/311</td>
247
+ <td data-value="86.03" class="pct high">86.03%</td>
248
+ <td data-value="136" class="abs high">117/136</td>
249
+ <td data-value="95" class="pct high">95%</td>
250
+ <td data-value="60" class="abs high">57/60</td>
251
+ <td data-value="96.67" class="pct high">96.67%</td>
252
+ <td data-value="300" class="abs high">290/300</td>
253
253
  </tr>
254
254
 
255
255
  <tr>
@@ -284,47 +284,47 @@
284
284
 
285
285
  <tr>
286
286
  <td class="file high" data-value="middleware"><a href="middleware/index.html">middleware</a></td>
287
- <td data-value="89.76" class="pic high">
287
+ <td data-value="89.9" class="pic high">
288
288
  <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
289
289
  </td>
290
- <td data-value="89.76" class="pct high">89.76%</td>
291
- <td data-value="205" class="abs high">184/205</td>
292
- <td data-value="78.95" class="pct medium">78.95%</td>
293
- <td data-value="133" class="abs medium">105/133</td>
290
+ <td data-value="89.9" class="pct high">89.9%</td>
291
+ <td data-value="208" class="abs high">187/208</td>
292
+ <td data-value="79.86" class="pct medium">79.86%</td>
293
+ <td data-value="139" class="abs medium">111/139</td>
294
294
  <td data-value="100" class="pct high">100%</td>
295
295
  <td data-value="27" class="abs high">27/27</td>
296
- <td data-value="89.66" class="pct high">89.66%</td>
297
- <td data-value="203" class="abs high">182/203</td>
296
+ <td data-value="89.81" class="pct high">89.81%</td>
297
+ <td data-value="206" class="abs high">185/206</td>
298
298
  </tr>
299
299
 
300
300
  <tr>
301
301
  <td class="file medium" data-value="utilities"><a href="utilities/index.html">utilities</a></td>
302
- <td data-value="75" class="pic medium">
303
- <div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
302
+ <td data-value="72.57" class="pic medium">
303
+ <div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
304
304
  </td>
305
- <td data-value="75" class="pct medium">75%</td>
306
- <td data-value="276" class="abs medium">207/276</td>
307
- <td data-value="56.19" class="pct medium">56.19%</td>
308
- <td data-value="105" class="abs medium">59/105</td>
309
- <td data-value="69.09" class="pct medium">69.09%</td>
310
- <td data-value="55" class="abs medium">38/55</td>
311
- <td data-value="74.91" class="pct medium">74.91%</td>
312
- <td data-value="271" class="abs medium">203/271</td>
305
+ <td data-value="72.57" class="pct medium">72.57%</td>
306
+ <td data-value="288" class="abs medium">209/288</td>
307
+ <td data-value="55.24" class="pct medium">55.24%</td>
308
+ <td data-value="105" class="abs medium">58/105</td>
309
+ <td data-value="66.67" class="pct medium">66.67%</td>
310
+ <td data-value="57" class="abs medium">38/57</td>
311
+ <td data-value="72.44" class="pct medium">72.44%</td>
312
+ <td data-value="283" class="abs medium">205/283</td>
313
313
  </tr>
314
314
 
315
315
  <tr>
316
316
  <td class="file high" data-value="utilities/queue"><a href="utilities/queue/index.html">utilities/queue</a></td>
317
- <td data-value="89.47" class="pic high">
318
- <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
317
+ <td data-value="90" class="pic high">
318
+ <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
319
319
  </td>
320
- <td data-value="89.47" class="pct high">89.47%</td>
321
- <td data-value="19" class="abs high">17/19</td>
320
+ <td data-value="90" class="pct high">90%</td>
321
+ <td data-value="20" class="abs high">18/20</td>
322
322
  <td data-value="57.14" class="pct medium">57.14%</td>
323
323
  <td data-value="7" class="abs medium">4/7</td>
324
- <td data-value="83.33" class="pct high">83.33%</td>
325
- <td data-value="6" class="abs high">5/6</td>
326
- <td data-value="89.47" class="pct high">89.47%</td>
327
- <td data-value="19" class="abs high">17/19</td>
324
+ <td data-value="85.71" class="pct high">85.71%</td>
325
+ <td data-value="7" class="abs high">6/7</td>
326
+ <td data-value="90" class="pct high">90%</td>
327
+ <td data-value="20" class="abs high">18/20</td>
328
328
  </tr>
329
329
 
330
330
  <tr>
@@ -344,17 +344,17 @@
344
344
 
345
345
  <tr>
346
346
  <td class="file medium" data-value="utilities/rowProcessor"><a href="utilities/rowProcessor/index.html">utilities/rowProcessor</a></td>
347
- <td data-value="77.17" class="pic medium">
347
+ <td data-value="77.32" class="pic medium">
348
348
  <div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
349
349
  </td>
350
- <td data-value="77.17" class="pct medium">77.17%</td>
351
- <td data-value="92" class="abs medium">71/92</td>
352
- <td data-value="58.57" class="pct medium">58.57%</td>
353
- <td data-value="70" class="abs medium">41/70</td>
350
+ <td data-value="77.32" class="pct medium">77.32%</td>
351
+ <td data-value="97" class="abs medium">75/97</td>
352
+ <td data-value="60.53" class="pct medium">60.53%</td>
353
+ <td data-value="76" class="abs medium">46/76</td>
354
354
  <td data-value="83.33" class="pct high">83.33%</td>
355
355
  <td data-value="12" class="abs high">10/12</td>
356
- <td data-value="77.78" class="pct medium">77.78%</td>
357
- <td data-value="90" class="abs medium">70/90</td>
356
+ <td data-value="77.89" class="pct medium">77.89%</td>
357
+ <td data-value="95" class="abs medium">74/95</td>
358
358
  </tr>
359
359
 
360
360
  </tbody>
@@ -365,7 +365,7 @@
365
365
  <div class='footer quiet pad2 space-top1 center small'>
366
366
  Code coverage generated by
367
367
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
368
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
368
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
369
369
  </div>
370
370
  </div>
371
371
  <script src="prettify.js"></script>
@@ -64,7 +64,7 @@
64
64
  <div class='footer quiet pad2 space-top1 center small'>
65
65
  Code coverage generated by
66
66
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
67
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
67
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
68
68
  </div>
69
69
  </div>
70
70
  <script src="../../prettify.js"></script>
@@ -95,7 +95,7 @@
95
95
  <div class='footer quiet pad2 space-top1 center small'>
96
96
  Code coverage generated by
97
97
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
98
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
98
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../prettify.js"></script>
@@ -121,7 +121,7 @@ exports.middleware =
121
121
  <div class='footer quiet pad2 space-top1 center small'>
122
122
  Code coverage generated by
123
123
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
124
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
124
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
125
125
  </div>
126
126
  </div>
127
127
  <script src="../prettify.js"></script>
@@ -140,7 +140,7 @@
140
140
  <span class="cline-any cline-neutral">&nbsp;</span>
141
141
  <span class="cline-any cline-yes">24x</span>
142
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
- <span class="cline-any cline-yes">2177x</span>
143
+ <span class="cline-any cline-yes">2200x</span>
144
144
  <span class="cline-any cline-neutral">&nbsp;</span>
145
145
  <span class="cline-any cline-yes">150x</span>
146
146
  <span class="cline-any cline-yes">1x</span>
@@ -259,7 +259,7 @@ module.exports =
259
259
  <div class='footer quiet pad2 space-top1 center small'>
260
260
  Code coverage generated by
261
261
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
262
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
262
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
263
263
  </div>
264
264
  </div>
265
265
  <script src="../prettify.js"></script>
@@ -289,7 +289,7 @@ module.exports = async (ctx, permType) =&gt; {
289
289
  <div class='footer quiet pad2 space-top1 center small'>
290
290
  Code coverage generated by
291
291
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
292
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
292
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
293
293
  </div>
294
294
  </div>
295
295
  <script src="../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">81.63% </span>
26
+ <span class="strong">82.69% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>40/49</span>
28
+ <span class='fraction'>43/52</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">73.53% </span>
33
+ <span class="strong">77.5% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>25/34</span>
35
+ <span class='fraction'>31/40</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">81.63% </span>
47
+ <span class="strong">82.69% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>40/49</span>
49
+ <span class='fraction'>43/52</span>
50
50
  </div>
51
51
 
52
52
 
@@ -153,7 +153,16 @@
153
153
  <a name='L94'></a><a href='#L94'>94</a>
154
154
  <a name='L95'></a><a href='#L95'>95</a>
155
155
  <a name='L96'></a><a href='#L96'>96</a>
156
- <a name='L97'></a><a href='#L97'>97</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
156
+ <a name='L97'></a><a href='#L97'>97</a>
157
+ <a name='L98'></a><a href='#L98'>98</a>
158
+ <a name='L99'></a><a href='#L99'>99</a>
159
+ <a name='L100'></a><a href='#L100'>100</a>
160
+ <a name='L101'></a><a href='#L101'>101</a>
161
+ <a name='L102'></a><a href='#L102'>102</a>
162
+ <a name='L103'></a><a href='#L103'>103</a>
163
+ <a name='L104'></a><a href='#L104'>104</a>
164
+ <a name='L105'></a><a href='#L105'>105</a>
165
+ <a name='L106'></a><a href='#L106'>106</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
157
166
  <span class="cline-any cline-yes">28x</span>
158
167
  <span class="cline-any cline-yes">28x</span>
159
168
  <span class="cline-any cline-yes">28x</span>
@@ -167,40 +176,49 @@
167
176
  <span class="cline-any cline-neutral">&nbsp;</span>
168
177
  <span class="cline-any cline-yes">28x</span>
169
178
  <span class="cline-any cline-neutral">&nbsp;</span>
170
- <span class="cline-any cline-yes">158x</span>
179
+ <span class="cline-any cline-yes">160x</span>
171
180
  <span class="cline-any cline-neutral">&nbsp;</span>
172
- <span class="cline-any cline-yes">158x</span>
173
- <span class="cline-any cline-yes">158x</span>
174
- <span class="cline-any cline-yes">158x</span>
181
+ <span class="cline-any cline-yes">160x</span>
182
+ <span class="cline-any cline-yes">160x</span>
183
+ <span class="cline-any cline-yes">160x</span>
175
184
  <span class="cline-any cline-neutral">&nbsp;</span>
176
185
  <span class="cline-any cline-no">&nbsp;</span>
177
186
  <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-yes">158x</span>
187
+ <span class="cline-any cline-yes">160x</span>
179
188
  <span class="cline-any cline-yes">1x</span>
180
189
  <span class="cline-any cline-neutral">&nbsp;</span>
181
190
  <span class="cline-any cline-neutral">&nbsp;</span>
182
- <span class="cline-any cline-yes">157x</span>
183
- <span class="cline-any cline-yes">152x</span>
184
- <span class="cline-any cline-yes">152x</span>
185
- <span class="cline-any cline-yes">152x</span>
191
+ <span class="cline-any cline-yes">159x</span>
192
+ <span class="cline-any cline-yes">153x</span>
193
+ <span class="cline-any cline-yes">153x</span>
194
+ <span class="cline-any cline-yes">153x</span>
186
195
  <span class="cline-any cline-no">&nbsp;</span>
187
196
  <span class="cline-any cline-no">&nbsp;</span>
188
197
  <span class="cline-any cline-neutral">&nbsp;</span>
189
198
  <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-yes">152x</span>
199
+ <span class="cline-any cline-yes">153x</span>
200
+ <span class="cline-any cline-neutral">&nbsp;</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-yes">159x</span>
204
+ <span class="cline-any cline-neutral">&nbsp;</span>
205
+ <span class="cline-any cline-neutral">&nbsp;</span>
206
+ <span class="cline-any cline-neutral">&nbsp;</span>
207
+ <span class="cline-any cline-yes">2x</span>
208
+ <span class="cline-any cline-yes">2x</span>
191
209
  <span class="cline-any cline-neutral">&nbsp;</span>
192
210
  <span class="cline-any cline-neutral">&nbsp;</span>
193
211
  <span class="cline-any cline-neutral">&nbsp;</span>
194
212
  <span class="cline-any cline-yes">157x</span>
195
213
  <span class="cline-any cline-yes">157x</span>
196
214
  <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-yes">5x</span>
198
- <span class="cline-any cline-yes">152x</span>
215
+ <span class="cline-any cline-yes">33x</span>
216
+ <span class="cline-any cline-yes">124x</span>
199
217
  <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-yes">152x</span>
201
- <span class="cline-any cline-yes">152x</span>
218
+ <span class="cline-any cline-yes">124x</span>
219
+ <span class="cline-any cline-yes">124x</span>
202
220
  <span class="cline-any cline-neutral">&nbsp;</span>
203
- <span class="cline-any cline-yes">152x</span>
221
+ <span class="cline-any cline-yes">124x</span>
204
222
  <span class="cline-any cline-neutral">&nbsp;</span>
205
223
  <span class="cline-any cline-neutral">&nbsp;</span>
206
224
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -254,7 +272,7 @@
254
272
  const { Cookies } = require("@budibase/auth").constants
255
273
  const { getRole } = require("@budibase/auth/roles")
256
274
  const { BUILTIN_ROLE_IDS } = require("@budibase/auth/roles")
257
- const { generateUserMetadataID } = require("../db/utils")
275
+ const { generateUserMetadataID, isDevAppID } = require("../db/utils")
258
276
  const { dbExists } = require("@budibase/auth/db")
259
277
  const { isUserInAppTenant } = require("@budibase/auth/tenancy")
260
278
  const { getCachedSelf } = require("../utilities/global")
@@ -285,6 +303,15 @@ module.exports = async (ctx, next) =&gt; {
285
303
  // if the request app ID wasn't set, update it with the cookie
286
304
  requestAppId = requestAppId || <span class="branch-1 cbranch-no" title="branch not covered" >appId</span>
287
305
  }
306
+ &nbsp;
307
+ // deny access to application preview
308
+ if (
309
+ isDevAppID(requestAppId) &amp;&amp;
310
+ (!ctx.user || !ctx.user.builder || !ctx.user.builder.global)
311
+ ) {
312
+ clearCookie(ctx, Cookies.CurrentApp)
313
+ return ctx.redirect("/")
314
+ }
288
315
  &nbsp;
289
316
  let appId,
290
317
  roleId = BUILTIN_ROLE_IDS.PUBLIC
@@ -296,7 +323,7 @@ module.exports = async (ctx, next) =&gt; {
296
323
  const globalUser = await getCachedSelf(ctx, requestAppId)
297
324
  appId = requestAppId
298
325
  // retrieving global user gets the right role
299
- roleId = globalUser.roleId || BUILTIN_ROLE_IDS.BASIC
326
+ roleId = globalUser.roleId || roleId
300
327
  }
301
328
  &nbsp;
302
329
  // nothing more to do
@@ -352,7 +379,7 @@ module.exports = async (ctx, next) =&gt; {
352
379
  <div class='footer quiet pad2 space-top1 center small'>
353
380
  Code coverage generated by
354
381
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
355
- at Wed Oct 20 2021 13:34:18 GMT+0000 (Coordinated Universal Time)
382
+ at Wed Oct 27 2021 08:59:08 GMT+0000 (Coordinated Universal Time)
356
383
  </div>
357
384
  </div>
358
385
  <script src="../prettify.js"></script>