@budibase/server 1.0.98-alpha.3 → 1.0.99

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 (227) hide show
  1. package/builder/assets/index.44b5c19a.js +1291 -0
  2. package/builder/assets/{index.64ecb83d.css → index.7c8961b4.css} +1 -1
  3. package/builder/assets/{vendor.8e34a169.js → vendor.a7c6ad0a.js} +1 -1
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +282 -277
  6. package/coverage/coverage-final.json +13 -13
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/application.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/index.html +5 -5
  18. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/permission.js.html +7 -7
  23. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  24. package/coverage/lcov-report/api/controllers/query/index.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/query/validation.js.html +2 -2
  26. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/index.html +10 -10
  30. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/internal.js.html +7 -19
  32. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +6 -6
  35. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  47. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  49. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  50. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  51. package/coverage/lcov-report/api/index.html +1 -1
  52. package/coverage/lcov-report/api/index.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/analytics.js.html +3 -3
  54. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/index.html +1 -1
  65. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/table.js.html +2 -2
  79. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  82. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  85. package/coverage/lcov-report/automations/actions.js.html +1 -1
  86. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  87. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  88. package/coverage/lcov-report/automations/index.html +1 -1
  89. package/coverage/lcov-report/automations/index.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/index.html +1 -1
  99. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  104. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  105. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  106. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  107. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  112. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  114. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  115. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  116. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  117. package/coverage/lcov-report/automations/utils.js.html +1 -1
  118. package/coverage/lcov-report/constants/index.html +1 -1
  119. package/coverage/lcov-report/constants/index.js.html +1 -1
  120. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  121. package/coverage/lcov-report/constants/screens.js.html +1 -1
  122. package/coverage/lcov-report/db/client.js.html +1 -1
  123. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  124. package/coverage/lcov-report/db/index.html +1 -1
  125. package/coverage/lcov-report/db/index.js.html +1 -1
  126. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  127. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  128. package/coverage/lcov-report/db/linkedRows/index.js.html +10 -10
  129. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +7 -7
  130. package/coverage/lcov-report/db/newid.js.html +2 -2
  131. package/coverage/lcov-report/db/utils.js.html +2 -2
  132. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  133. package/coverage/lcov-report/events/index.html +1 -1
  134. package/coverage/lcov-report/events/index.js.html +1 -1
  135. package/coverage/lcov-report/events/utils.js.html +1 -1
  136. package/coverage/lcov-report/index.html +21 -21
  137. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  138. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  139. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  140. package/coverage/lcov-report/middleware/authorized.js.html +75 -15
  141. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  142. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  143. package/coverage/lcov-report/middleware/index.html +15 -15
  144. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  145. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  146. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  147. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  148. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  149. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  150. package/coverage/lcov-report/threads/automation.js.html +1 -1
  151. package/coverage/lcov-report/threads/index.html +1 -1
  152. package/coverage/lcov-report/threads/index.js.html +1 -1
  153. package/coverage/lcov-report/threads/query.js.html +1 -1
  154. package/coverage/lcov-report/threads/utils.js.html +1 -1
  155. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  156. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  157. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  158. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  159. package/coverage/lcov-report/utilities/global.js.html +1 -1
  160. package/coverage/lcov-report/utilities/index.html +1 -1
  161. package/coverage/lcov-report/utilities/index.js.html +1 -1
  162. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  163. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  164. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  166. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  167. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +12 -12
  168. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +8 -8
  169. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  170. package/coverage/lcov-report/utilities/security.js.html +1 -1
  171. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  172. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  173. package/coverage/lcov-report/utilities/usageQuota/index.js.html +1 -1
  174. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  175. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  176. package/coverage/lcov-report/utilities/users.js.html +1 -1
  177. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  178. package/coverage/lcov.info +459 -440
  179. package/dist/api/controllers/permission.js +3 -4
  180. package/dist/api/controllers/query/import/index.js +1 -2
  181. package/dist/api/controllers/query/import/sources/base/index.js +1 -12
  182. package/dist/api/controllers/query/import/sources/curl.js +2 -2
  183. package/dist/api/controllers/row/internal.js +1 -2
  184. package/dist/api/routes/analytics.js +2 -2
  185. package/dist/api/routes/table.js +1 -1
  186. package/dist/definitions/datasource.js +0 -1
  187. package/dist/integrations/base/sql.js +9 -16
  188. package/dist/integrations/dynamodb.js +1 -3
  189. package/dist/integrations/index.js +0 -3
  190. package/dist/integrations/rest.js +1 -2
  191. package/dist/middleware/authorized.js +24 -7
  192. package/dist/package.json +4 -7
  193. package/dist/tsconfig.tsbuildinfo +1 -1
  194. package/package.json +5 -8
  195. package/scripts/dev/manage.js +1 -2
  196. package/specs/openapi.json +23 -3
  197. package/specs/openapi.yaml +20 -4
  198. package/specs/resources/query.js +27 -5
  199. package/src/api/controllers/permission.js +3 -3
  200. package/src/api/controllers/query/import/index.ts +1 -2
  201. package/src/api/controllers/query/import/sources/base/index.ts +2 -12
  202. package/src/api/controllers/query/import/sources/curl.ts +2 -2
  203. package/src/api/controllers/query/import/tests/index.spec.js +0 -43
  204. package/src/api/controllers/row/internal.js +1 -5
  205. package/src/api/routes/analytics.js +2 -2
  206. package/src/api/routes/table.js +1 -1
  207. package/src/api/routes/tests/misc.spec.js +2 -2
  208. package/src/definitions/datasource.ts +0 -1
  209. package/src/definitions/openapi.ts +483 -473
  210. package/src/integrations/base/sql.ts +9 -14
  211. package/src/integrations/dynamodb.ts +1 -3
  212. package/src/integrations/index.ts +0 -3
  213. package/src/integrations/rest.ts +1 -2
  214. package/src/integrations/tests/sql.spec.js +0 -51
  215. package/src/middleware/authorized.js +26 -6
  216. package/builder/assets/index.47d835a9.js +0 -1292
  217. package/dist/api/controllers/query/import/sources/openapi3.js +0 -174
  218. package/dist/api/controllers/query/import/sources/tests/openapi3/data/crud/crud.json +0 -253
  219. package/dist/api/controllers/query/import/sources/tests/openapi3/data/petstore/petstore.json +0 -1225
  220. package/dist/integrations/firebase.js +0 -192
  221. package/src/api/controllers/query/import/sources/openapi3.ts +0 -205
  222. package/src/api/controllers/query/import/sources/tests/openapi3/data/crud/crud.json +0 -253
  223. package/src/api/controllers/query/import/sources/tests/openapi3/data/crud/crud.yaml +0 -153
  224. package/src/api/controllers/query/import/sources/tests/openapi3/data/petstore/petstore.json +0 -1225
  225. package/src/api/controllers/query/import/sources/tests/openapi3/data/petstore/petstore.yaml +0 -804
  226. package/src/api/controllers/query/import/sources/tests/openapi3/openapi3.spec.js +0 -240
  227. package/src/integrations/firebase.ts +0 -205
@@ -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 Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
124
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
125
125
  </div>
126
126
  </div>
127
127
  <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">90.9% </span>
26
+ <span class="strong">88% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>40/44</span>
28
+ <span class='fraction'>44/50</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">87.5% </span>
33
+ <span class="strong">82.97% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>28/32</span>
35
+ <span class='fraction'>39/47</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">93.02% </span>
47
+ <span class="strong">89.79% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>40/43</span>
49
+ <span class='fraction'>44/49</span>
50
50
  </div>
51
51
 
52
52
 
@@ -163,7 +163,27 @@
163
163
  <a name='L104'></a><a href='#L104'>104</a>
164
164
  <a name='L105'></a><a href='#L105'>105</a>
165
165
  <a name='L106'></a><a href='#L106'>106</a>
166
- <a name='L107'></a><a href='#L107'>107</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
166
+ <a name='L107'></a><a href='#L107'>107</a>
167
+ <a name='L108'></a><a href='#L108'>108</a>
168
+ <a name='L109'></a><a href='#L109'>109</a>
169
+ <a name='L110'></a><a href='#L110'>110</a>
170
+ <a name='L111'></a><a href='#L111'>111</a>
171
+ <a name='L112'></a><a href='#L112'>112</a>
172
+ <a name='L113'></a><a href='#L113'>113</a>
173
+ <a name='L114'></a><a href='#L114'>114</a>
174
+ <a name='L115'></a><a href='#L115'>115</a>
175
+ <a name='L116'></a><a href='#L116'>116</a>
176
+ <a name='L117'></a><a href='#L117'>117</a>
177
+ <a name='L118'></a><a href='#L118'>118</a>
178
+ <a name='L119'></a><a href='#L119'>119</a>
179
+ <a name='L120'></a><a href='#L120'>120</a>
180
+ <a name='L121'></a><a href='#L121'>121</a>
181
+ <a name='L122'></a><a href='#L122'>122</a>
182
+ <a name='L123'></a><a href='#L123'>123</a>
183
+ <a name='L124'></a><a href='#L124'>124</a>
184
+ <a name='L125'></a><a href='#L125'>125</a>
185
+ <a name='L126'></a><a href='#L126'>126</a>
186
+ <a name='L127'></a><a href='#L127'>127</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
167
187
  <span class="cline-any cline-neutral">&nbsp;</span>
168
188
  <span class="cline-any cline-neutral">&nbsp;</span>
169
189
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -171,6 +191,7 @@
171
191
  <span class="cline-any cline-neutral">&nbsp;</span>
172
192
  <span class="cline-any cline-neutral">&nbsp;</span>
173
193
  <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
195
  <span class="cline-any cline-yes">25x</span>
175
196
  <span class="cline-any cline-yes">25x</span>
176
197
  <span class="cline-any cline-yes">25x</span>
@@ -247,14 +268,24 @@
247
268
  <span class="cline-any cline-neutral">&nbsp;</span>
248
269
  <span class="cline-any cline-neutral">&nbsp;</span>
249
270
  <span class="cline-any cline-yes">181x</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-yes">181x</span>
274
+ <span class="cline-any cline-neutral">&nbsp;</span>
275
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
276
  <span class="cline-any cline-yes">181x</span>
251
277
  <span class="cline-any cline-yes">181x</span>
252
278
  <span class="cline-any cline-yes">69x</span>
279
+ <span class="cline-any cline-yes">69x</span>
280
+ <span class="cline-any cline-no">&nbsp;</span>
281
+ <span class="cline-any cline-neutral">&nbsp;</span>
253
282
  <span class="cline-any cline-neutral">&nbsp;</span>
254
283
  <span class="cline-any cline-neutral">&nbsp;</span>
255
284
  <span class="cline-any cline-neutral">&nbsp;</span>
256
285
  <span class="cline-any cline-yes">181x</span>
257
- <span class="cline-any cline-yes">181x</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>
258
289
  <span class="cline-any cline-yes">1x</span>
259
290
  <span class="cline-any cline-neutral">&nbsp;</span>
260
291
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -263,10 +294,19 @@
263
294
  <span class="cline-any cline-yes">3x</span>
264
295
  <span class="cline-any cline-neutral">&nbsp;</span>
265
296
  <span class="cline-any cline-neutral">&nbsp;</span>
297
+ <span class="cline-any cline-yes">177x</span>
266
298
  <span class="cline-any cline-neutral">&nbsp;</span>
267
299
  <span class="cline-any cline-yes">177x</span>
268
300
  <span class="cline-any cline-neutral">&nbsp;</span>
269
301
  <span class="cline-any cline-neutral">&nbsp;</span>
302
+ <span class="cline-any cline-yes">27x</span>
303
+ <span class="cline-any cline-no">&nbsp;</span>
304
+ <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-yes">27x</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</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>
270
310
  <span class="cline-any cline-yes">150x</span>
271
311
  <span class="cline-any cline-neutral">&nbsp;</span>
272
312
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
@@ -276,6 +316,7 @@
276
316
  } = require("@budibase/backend-core/roles")
277
317
  const {
278
318
  PermissionTypes,
319
+ PermissionLevels,
279
320
  doesHaveBasePermission,
280
321
  } = require("@budibase/backend-core/permissions")
281
322
  const builderMiddleware = require("./builder")
@@ -335,7 +376,7 @@ const checkAuthorizedResource = async (
335
376
  }
336
377
  &nbsp;
337
378
  module.exports =
338
- (permType, permLevel = null) =&gt;
379
+ (permType, permLevel = null, opts = { schema: false }) =&gt;
339
380
  async (ctx, next) =&gt; {
340
381
  // webhooks don't need authentication, each webhook unique
341
382
  // also internal requests (between services) don't need authorized
@@ -352,15 +393,25 @@ module.exports =
352
393
  await builderMiddleware(ctx, permType)
353
394
  &nbsp;
354
395
  // get the resource roles
355
- let resourceRoles = []
396
+ let resourceRoles = [],
397
+ otherLevelRoles
398
+ const otherLevel =
399
+ permLevel === PermissionLevels.READ
400
+ ? PermissionLevels.WRITE
401
+ : PermissionLevels.READ
356
402
  const appId = getAppId()
357
403
  if (appId &amp;&amp; hasResource(ctx)) {
358
404
  resourceRoles = await getRequiredResourceRole(permLevel, ctx)
405
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (opts &amp;&amp; opts.schema) {
406
+ <span class="cstat-no" title="statement not covered" > otherLevelRoles = await getRequiredResourceRole(otherLevel, ctx)</span>
407
+ }
359
408
  }
360
409
  &nbsp;
361
410
  // if the resource is public, proceed
362
- const isPublicResource = resourceRoles.includes(BUILTIN_ROLE_IDS.PUBLIC)
363
- if (isPublicResource) {
411
+ if (
412
+ resourceRoles.includes(BUILTIN_ROLE_IDS.PUBLIC) ||
413
+ (otherLevelRoles &amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >otherLevelRoles.includes(BUILTIN_ROLE_IDS.PUBLIC))</span>
414
+ ) {
364
415
  return next()
365
416
  }
366
417
  &nbsp;
@@ -369,8 +420,17 @@ module.exports =
369
420
  return ctx.throw(403, "Session not authenticated")
370
421
  }
371
422
  &nbsp;
372
- // check authorized
373
- await checkAuthorized(ctx, resourceRoles, permType, permLevel)
423
+ try {
424
+ // check authorized
425
+ await checkAuthorized(ctx, resourceRoles, permType, permLevel)
426
+ } catch (err) {
427
+ // this is a schema, check if
428
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (opts &amp;&amp; opts.schema &amp;&amp; <span class="branch-2 cbranch-no" title="branch not covered" >permLevel)</span> {
429
+ <span class="cstat-no" title="statement not covered" > await checkAuthorized(ctx, otherLevelRoles, permType, otherLevel)</span>
430
+ } else {
431
+ throw err
432
+ }
433
+ }
374
434
  &nbsp;
375
435
  // csrf protection
376
436
  return csrf(ctx, next)
@@ -382,7 +442,7 @@ module.exports =
382
442
  <div class='footer quiet pad2 space-top1 center small'>
383
443
  Code coverage generated by
384
444
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
385
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
445
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
386
446
  </div>
387
447
  </div>
388
448
  <script src="../prettify.js"></script>
@@ -298,7 +298,7 @@ module.exports = async (ctx, permType) =&gt; {
298
298
  <div class='footer quiet pad2 space-top1 center small'>
299
299
  Code coverage generated by
300
300
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
301
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
301
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
302
302
  </div>
303
303
  </div>
304
304
  <script src="../prettify.js"></script>
@@ -412,7 +412,7 @@ module.exports = async (ctx, next) =&gt; {
412
412
  <div class='footer quiet pad2 space-top1 center small'>
413
413
  Code coverage generated by
414
414
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
415
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
415
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
416
416
  </div>
417
417
  </div>
418
418
  <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.56% </span>
26
+ <span class="strong">81.25% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>230/282</span>
28
+ <span class='fraction'>234/288</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">70.21% </span>
33
+ <span class="strong">70.44% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>132/188</span>
35
+ <span class='fraction'>143/203</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">82.43% </span>
47
+ <span class="strong">82.1% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>230/279</span>
49
+ <span class='fraction'>234/285</span>
50
50
  </div>
51
51
 
52
52
 
@@ -89,17 +89,17 @@
89
89
 
90
90
  <tr>
91
91
  <td class="file high" data-value="authorized.js"><a href="authorized.js.html">authorized.js</a></td>
92
- <td data-value="90.9" class="pic high">
93
- <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
92
+ <td data-value="88" class="pic high">
93
+ <div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
94
94
  </td>
95
- <td data-value="90.9" class="pct high">90.9%</td>
96
- <td data-value="44" class="abs high">40/44</td>
97
- <td data-value="87.5" class="pct high">87.5%</td>
98
- <td data-value="32" class="abs high">28/32</td>
95
+ <td data-value="88" class="pct high">88%</td>
96
+ <td data-value="50" class="abs high">44/50</td>
97
+ <td data-value="82.97" class="pct high">82.97%</td>
98
+ <td data-value="47" class="abs high">39/47</td>
99
99
  <td data-value="83.33" class="pct high">83.33%</td>
100
100
  <td data-value="6" class="abs high">5/6</td>
101
- <td data-value="93.02" class="pct high">93.02%</td>
102
- <td data-value="43" class="abs high">40/43</td>
101
+ <td data-value="89.79" class="pct high">89.79%</td>
102
+ <td data-value="49" class="abs high">44/49</td>
103
103
  </tr>
104
104
 
105
105
  <tr>
@@ -230,7 +230,7 @@
230
230
  <div class='footer quiet pad2 space-top1 center small'>
231
231
  Code coverage generated by
232
232
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
233
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
233
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
234
234
  </div>
235
235
  </div>
236
236
  <script src="../prettify.js"></script>
@@ -148,7 +148,7 @@ module.exports.params = schema =&gt; {
148
148
  <div class='footer quiet pad2 space-top1 center small'>
149
149
  Code coverage generated by
150
150
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
151
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
151
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
152
152
  </div>
153
153
  </div>
154
154
  <script src="../prettify.js"></script>
@@ -127,7 +127,7 @@ module.exports = function ({ requiresAppId } = <span class="branch-0 cbranch-no"
127
127
  <div class='footer quiet pad2 space-top1 center small'>
128
128
  Code coverage generated by
129
129
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
130
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
130
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
131
131
  </div>
132
132
  </div>
133
133
  <script src="../prettify.js"></script>
@@ -247,7 +247,7 @@ module.exports.bodySubResource = (main, sub) =&gt; {
247
247
  <div class='footer quiet pad2 space-top1 center small'>
248
248
  Code coverage generated by
249
249
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
250
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
250
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
251
251
  </div>
252
252
  </div>
253
253
  <script src="../prettify.js"></script>
@@ -94,7 +94,7 @@ module.exports = async (ctx, next) =&gt; {
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
97
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../prettify.js"></script>
@@ -556,7 +556,7 @@ const POST_CREATE = {
556
556
  <div class='footer quiet pad2 space-top1 center small'>
557
557
  Code coverage generated by
558
558
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
559
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
559
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
560
560
  </div>
561
561
  </div>
562
562
  <script src="../prettify.js"></script>
@@ -85,7 +85,7 @@ exports.isWebhookEndpoint = ctx =&gt; {
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
88
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
88
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
89
89
  </div>
90
90
  </div>
91
91
  <script src="../prettify.js"></script>
@@ -487,7 +487,7 @@ module.exports = (input, callback) =&gt; {
487
487
  <div class='footer quiet pad2 space-top1 center small'>
488
488
  Code coverage generated by
489
489
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
490
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
490
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
491
491
  </div>
492
492
  </div>
493
493
  <script src="../prettify.js"></script>
@@ -140,7 +140,7 @@
140
140
  <div class='footer quiet pad2 space-top1 center small'>
141
141
  Code coverage generated by
142
142
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
143
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
143
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
144
144
  </div>
145
145
  </div>
146
146
  <script src="../prettify.js"></script>
@@ -262,7 +262,7 @@ module.exports.ThreadType = ThreadType
262
262
  <div class='footer quiet pad2 space-top1 center small'>
263
263
  Code coverage generated by
264
264
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
265
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
265
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
266
266
  </div>
267
267
  </div>
268
268
  <script src="../prettify.js"></script>
@@ -985,7 +985,7 @@ module.exports = (input, callback) =&gt; {
985
985
  <div class='footer quiet pad2 space-top1 center small'>
986
986
  Code coverage generated by
987
987
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
988
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
988
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
989
989
  </div>
990
990
  </div>
991
991
  <script src="../prettify.js"></script>
@@ -298,7 +298,7 @@ exports.hasExtraData = response =&gt; {
298
298
  <div class='footer quiet pad2 space-top1 center small'>
299
299
  Code coverage generated by
300
300
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
301
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
301
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
302
302
  </div>
303
303
  </div>
304
304
  <script src="../prettify.js"></script>
@@ -109,7 +109,7 @@ const SALT_ROUNDS = <span class="cstat-no" title="statement not covered" >env.SA
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
112
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
112
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
113
113
  </div>
114
114
  </div>
115
115
  <script src="../prettify.js"></script>
@@ -94,7 +94,7 @@ module.exports.budibaseTempDir = budibaseTempDir
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
97
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../prettify.js"></script>
@@ -130,7 +130,7 @@ exports.resolve = <span class="fstat-no" title="function not covered" >fu</span>
130
130
  <div class='footer quiet pad2 space-top1 center small'>
131
131
  Code coverage generated by
132
132
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
133
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
133
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
134
134
  </div>
135
135
  </div>
136
136
  <script src="../prettify.js"></script>
@@ -496,7 +496,7 @@ module.exports = {
496
496
  <div class='footer quiet pad2 space-top1 center small'>
497
497
  Code coverage generated by
498
498
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
499
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
499
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
500
500
  </div>
501
501
  </div>
502
502
  <script src="../prettify.js"></script>
@@ -385,7 +385,7 @@ exports.getGlobalUsersFromMetadata = async users =&gt; {
385
385
  <div class='footer quiet pad2 space-top1 center small'>
386
386
  Code coverage generated by
387
387
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
388
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
388
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
389
389
  </div>
390
390
  </div>
391
391
  <script src="../prettify.js"></script>
@@ -245,7 +245,7 @@
245
245
  <div class='footer quiet pad2 space-top1 center small'>
246
246
  Code coverage generated by
247
247
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
248
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
248
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
249
249
  </div>
250
250
  </div>
251
251
  <script src="../prettify.js"></script>
@@ -547,7 +547,7 @@ exports.convertBookmark = bookmark =&gt; {
547
547
  <div class='footer quiet pad2 space-top1 center small'>
548
548
  Code coverage generated by
549
549
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
550
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
550
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
551
551
  </div>
552
552
  </div>
553
553
  <script src="../prettify.js"></script>
@@ -367,7 +367,7 @@ module.exports = InMemoryQueue
367
367
  <div class='footer quiet pad2 space-top1 center small'>
368
368
  Code coverage generated by
369
369
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
370
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
370
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
371
371
  </div>
372
372
  </div>
373
373
  <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 Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
98
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <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 Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
98
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
99
99
  </div>
100
100
  </div>
101
101
  <script src="../../prettify.js"></script>
@@ -139,7 +139,7 @@ exports.createRoutingView = createRoutingView
139
139
  <div class='footer quiet pad2 space-top1 center small'>
140
140
  Code coverage generated by
141
141
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
142
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
142
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
143
143
  </div>
144
144
  </div>
145
145
  <script src="../../prettify.js"></script>
@@ -110,7 +110,7 @@
110
110
  <div class='footer quiet pad2 space-top1 center small'>
111
111
  Code coverage generated by
112
112
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
113
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
113
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
114
114
  </div>
115
115
  </div>
116
116
  <script src="../../prettify.js"></script>
@@ -658,20 +658,20 @@
658
658
  <span class="cline-any cline-neutral">&nbsp;</span>
659
659
  <span class="cline-any cline-neutral">&nbsp;</span>
660
660
  <span class="cline-any cline-yes">40x</span>
661
- <span class="cline-any cline-yes">113x</span>
662
- <span class="cline-any cline-yes">113x</span>
663
- <span class="cline-any cline-yes">99x</span>
664
- <span class="cline-any cline-yes">99x</span>
661
+ <span class="cline-any cline-yes">107x</span>
662
+ <span class="cline-any cline-yes">107x</span>
663
+ <span class="cline-any cline-yes">93x</span>
664
+ <span class="cline-any cline-yes">93x</span>
665
665
  <span class="cline-any cline-neutral">&nbsp;</span>
666
666
  <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-yes">113x</span>
667
+ <span class="cline-any cline-yes">107x</span>
668
668
  <span class="cline-any cline-neutral">&nbsp;</span>
669
669
  <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-yes">113x</span>
670
+ <span class="cline-any cline-yes">107x</span>
671
671
  <span class="cline-any cline-neutral">&nbsp;</span>
672
672
  <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-yes">113x</span>
674
- <span class="cline-any cline-yes">322x</span>
673
+ <span class="cline-any cline-yes">107x</span>
674
+ <span class="cline-any cline-yes">310x</span>
675
675
  <span class="cline-any cline-yes">8x</span>
676
676
  <span class="cline-any cline-yes">8x</span>
677
677
  <span class="cline-any cline-yes">6x</span>
@@ -682,10 +682,10 @@
682
682
  <span class="cline-any cline-neutral">&nbsp;</span>
683
683
  <span class="cline-any cline-neutral">&nbsp;</span>
684
684
  <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-yes">113x</span>
686
- <span class="cline-any cline-yes">33x</span>
685
+ <span class="cline-any cline-yes">107x</span>
686
+ <span class="cline-any cline-yes">27x</span>
687
687
  <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-yes">113x</span>
688
+ <span class="cline-any cline-yes">107x</span>
689
689
  <span class="cline-any cline-neutral">&nbsp;</span>
690
690
  <span class="cline-any cline-neutral">&nbsp;</span>
691
691
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1081,7 +1081,7 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt
1081
1081
  <div class='footer quiet pad2 space-top1 center small'>
1082
1082
  Code coverage generated by
1083
1083
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
1084
- at Tue Mar 29 2022 06:59:21 GMT+0000 (Coordinated Universal Time)
1084
+ at Tue Mar 29 2022 09:23:07 GMT+0000 (Coordinated Universal Time)
1085
1085
  </div>
1086
1086
  </div>
1087
1087
  <script src="../../prettify.js"></script>