@budibase/server 1.0.49-alpha.9 → 1.0.49

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 (379) hide show
  1. package/__mocks__/arangojs.ts +1 -1
  2. package/__mocks__/aws-sdk.ts +4 -4
  3. package/__mocks__/mongodb.ts +5 -4
  4. package/__mocks__/mssql.ts +3 -3
  5. package/__mocks__/node-fetch.ts +1 -2
  6. package/__mocks__/pg.ts +5 -3
  7. package/builder/assets/{index.ad5370ae.js → index.2c37968e.js} +246 -249
  8. package/builder/assets/index.39e01193.css +1 -0
  9. package/builder/assets/{vendor.d526bfe8.js → vendor.f9faf6ab.js} +12 -12
  10. package/builder/index.html +3 -3
  11. package/coverage/clover.xml +2827 -3117
  12. package/coverage/coverage-final.json +101 -106
  13. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/application.js.html +152 -257
  16. package/coverage/lcov-report/api/controllers/auth.js.html +13 -22
  17. package/coverage/lcov-report/api/controllers/automation.js.html +69 -39
  18. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -8
  20. package/coverage/lcov-report/api/controllers/component.js.html +16 -13
  21. package/coverage/lcov-report/api/controllers/datasource.js.html +51 -81
  22. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  23. package/coverage/lcov-report/{utilities/usageQuota/usageQuoteReset.js.html → api/controllers/hosting.js.html} +48 -36
  24. package/coverage/lcov-report/api/controllers/index.html +76 -76
  25. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
  27. package/coverage/lcov-report/api/controllers/metadata.js.html +21 -6
  28. package/coverage/lcov-report/api/controllers/permission.js.html +19 -19
  29. package/coverage/lcov-report/api/controllers/query/index.html +10 -10
  30. package/coverage/lcov-report/api/controllers/query/index.js.html +35 -38
  31. package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
  32. package/coverage/lcov-report/api/controllers/role.js.html +16 -16
  33. package/coverage/lcov-report/api/controllers/routing.js.html +10 -7
  34. package/coverage/lcov-report/api/controllers/row/external.js.html +141 -48
  35. package/coverage/lcov-report/api/controllers/row/index.html +40 -55
  36. package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
  37. package/coverage/lcov-report/api/controllers/row/internal.js.html +226 -118
  38. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +34 -52
  39. package/coverage/lcov-report/api/controllers/row/utils.js.html +62 -47
  40. package/coverage/lcov-report/api/controllers/screen.js.html +21 -15
  41. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  42. package/coverage/lcov-report/api/controllers/table/external.js.html +34 -25
  43. package/coverage/lcov-report/api/controllers/table/index.html +43 -58
  44. package/coverage/lcov-report/api/controllers/table/index.js.html +82 -58
  45. package/coverage/lcov-report/api/controllers/table/internal.js.html +66 -81
  46. package/coverage/lcov-report/api/controllers/table/utils.js.html +110 -218
  47. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  48. package/coverage/lcov-report/api/controllers/user.js.html +50 -47
  49. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  50. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  51. package/coverage/lcov-report/api/controllers/view/index.js.html +33 -27
  52. package/coverage/lcov-report/api/controllers/view/utils.js.html +20 -35
  53. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  54. package/coverage/lcov-report/api/controllers/webhook.js.html +28 -34
  55. package/coverage/lcov-report/api/index.html +1 -1
  56. package/coverage/lcov-report/api/index.js.html +8 -8
  57. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/{migrations.js.html → hosting.js.html} +14 -17
  69. package/coverage/lcov-report/api/routes/index.html +18 -18
  70. package/coverage/lcov-report/api/routes/index.js.html +3 -3
  71. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/static.js.html +2 -17
  82. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  84. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  86. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  87. package/coverage/lcov-report/automations/actions.js.html +24 -24
  88. package/coverage/lcov-report/automations/automationUtils.js.html +10 -7
  89. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  90. package/coverage/lcov-report/automations/index.html +18 -18
  91. package/coverage/lcov-report/automations/index.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  93. package/coverage/lcov-report/automations/steps/createRow.js.html +22 -13
  94. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  95. package/coverage/lcov-report/automations/steps/deleteRow.js.html +20 -11
  96. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  97. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  98. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  99. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  100. package/coverage/lcov-report/automations/steps/index.html +13 -13
  101. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  102. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  103. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  104. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  105. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  106. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  107. package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
  108. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  109. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  110. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  113. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  114. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  118. package/coverage/lcov-report/automations/triggers.js.html +55 -61
  119. package/coverage/lcov-report/automations/utils.js.html +42 -54
  120. package/coverage/lcov-report/constants/index.html +5 -5
  121. package/coverage/lcov-report/constants/index.js.html +26 -53
  122. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  123. package/coverage/lcov-report/constants/screens.js.html +4 -4
  124. package/coverage/lcov-report/db/client.js.html +18 -18
  125. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  126. package/coverage/lcov-report/db/index.html +15 -15
  127. package/coverage/lcov-report/db/index.js.html +3 -3
  128. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +37 -25
  129. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  130. package/coverage/lcov-report/db/linkedRows/index.js.html +96 -51
  131. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +42 -42
  132. package/coverage/lcov-report/db/newid.js.html +4 -4
  133. package/coverage/lcov-report/db/utils.js.html +87 -87
  134. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  135. package/coverage/lcov-report/events/index.html +1 -1
  136. package/coverage/lcov-report/events/index.js.html +5 -5
  137. package/coverage/lcov-report/events/utils.js.html +3 -3
  138. package/coverage/lcov-report/index.html +120 -135
  139. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  140. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  141. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  142. package/coverage/lcov-report/middleware/authorized.js.html +65 -173
  143. package/coverage/lcov-report/middleware/builder.js.html +10 -10
  144. package/coverage/lcov-report/middleware/currentapp.js.html +83 -95
  145. package/coverage/lcov-report/middleware/index.html +38 -38
  146. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  147. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  148. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  149. package/coverage/lcov-report/middleware/usageQuota.js.html +53 -281
  150. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  151. package/coverage/lcov-report/threads/automation.js.html +24 -30
  152. package/coverage/lcov-report/threads/index.html +26 -26
  153. package/coverage/lcov-report/threads/index.js.html +10 -10
  154. package/coverage/lcov-report/threads/query.js.html +24 -39
  155. package/coverage/lcov-report/threads/utils.js.html +14 -14
  156. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  157. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  158. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  159. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  160. package/coverage/lcov-report/utilities/global.js.html +49 -58
  161. package/coverage/lcov-report/utilities/index.html +37 -37
  162. package/coverage/lcov-report/utilities/index.js.html +73 -43
  163. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  164. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  165. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  166. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  167. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
  168. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +103 -97
  169. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +27 -75
  170. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  171. package/coverage/lcov-report/utilities/security.js.html +8 -8
  172. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  173. package/coverage/lcov-report/utilities/users.js.html +9 -9
  174. package/coverage/lcov-report/utilities/workerRequests.js.html +112 -43
  175. package/coverage/lcov.info +4431 -5013
  176. package/dist/api/controllers/application.js +60 -90
  177. package/dist/api/controllers/auth.js +5 -8
  178. package/dist/api/controllers/automation.js +19 -14
  179. package/dist/api/controllers/cloud.js +3 -2
  180. package/dist/api/controllers/component.js +4 -3
  181. package/dist/api/controllers/datasource.js +10 -20
  182. package/dist/api/controllers/deploy/Deployment.js +6 -3
  183. package/dist/api/controllers/deploy/index.js +13 -12
  184. package/dist/api/controllers/dev.js +5 -5
  185. package/dist/api/controllers/hosting.js +30 -0
  186. package/dist/api/controllers/layout.js +3 -3
  187. package/dist/api/controllers/metadata.js +4 -4
  188. package/dist/api/controllers/permission.js +4 -4
  189. package/dist/api/controllers/query/import/index.js +6 -4
  190. package/dist/api/controllers/query/index.js +10 -11
  191. package/dist/api/controllers/role.js +5 -5
  192. package/dist/api/controllers/routing.js +6 -5
  193. package/dist/api/controllers/row/ExternalRequest.js +67 -90
  194. package/dist/api/controllers/row/external.js +22 -14
  195. package/dist/api/controllers/row/internal.js +93 -55
  196. package/dist/api/controllers/row/internalSearch.js +17 -23
  197. package/dist/api/controllers/row/utils.js +14 -13
  198. package/dist/api/controllers/screen.js +7 -5
  199. package/dist/api/controllers/static/index.js +12 -61
  200. package/dist/api/controllers/table/external.js +10 -7
  201. package/dist/api/controllers/table/index.js +13 -16
  202. package/dist/api/controllers/table/internal.js +16 -22
  203. package/dist/api/controllers/table/utils.js +35 -62
  204. package/dist/api/controllers/user.js +20 -18
  205. package/dist/api/controllers/view/index.js +10 -8
  206. package/dist/api/controllers/view/utils.js +4 -9
  207. package/dist/api/controllers/webhook.js +8 -10
  208. package/dist/api/routes/hosting.js +11 -0
  209. package/dist/api/routes/index.js +2 -2
  210. package/dist/api/routes/static.js +1 -2
  211. package/dist/api/routes/tests/utilities/TestFunctions.js +17 -37
  212. package/dist/app.js +5 -35
  213. package/dist/automations/automationUtils.js +3 -2
  214. package/dist/automations/steps/createRow.js +5 -3
  215. package/dist/automations/steps/deleteRow.js +4 -1
  216. package/dist/automations/steps/updateRow.js +1 -1
  217. package/dist/automations/triggers.js +25 -27
  218. package/dist/automations/utils.js +5 -10
  219. package/dist/constants/index.js +0 -7
  220. package/dist/db/linkedRows/LinkController.js +7 -3
  221. package/dist/db/linkedRows/index.js +27 -16
  222. package/dist/db/linkedRows/linkUtils.js +6 -6
  223. package/dist/db/views/staticViews.js +10 -9
  224. package/dist/definitions/datasource.js +0 -1
  225. package/dist/environment.js +1 -4
  226. package/dist/integrations/base/sql.js +14 -56
  227. package/dist/integrations/index.js +0 -3
  228. package/dist/integrations/utils.js +9 -60
  229. package/dist/middleware/authorized.js +30 -57
  230. package/dist/middleware/builder.js +2 -2
  231. package/dist/middleware/currentapp.js +37 -41
  232. package/dist/middleware/usageQuota.js +15 -82
  233. package/dist/package.json +5 -8
  234. package/dist/tests/utilities/TestConfiguration.js +50 -80
  235. package/dist/threads/automation.js +11 -13
  236. package/dist/threads/query.js +11 -15
  237. package/dist/tsconfig.tsbuildinfo +1 -1
  238. package/dist/utilities/fileSystem/index.js +3 -4
  239. package/dist/utilities/global.js +12 -15
  240. package/dist/utilities/index.js +17 -7
  241. package/dist/utilities/routing/index.js +5 -5
  242. package/dist/utilities/rowProcessor/index.js +17 -23
  243. package/dist/utilities/rowProcessor/utils.js +4 -14
  244. package/dist/utilities/{usageQuota/index.js → usageQuota.js} +31 -45
  245. package/dist/utilities/users.js +3 -3
  246. package/dist/utilities/workerRequests.js +24 -4
  247. package/nodemon.json +1 -1
  248. package/package.json +6 -9
  249. package/scripts/integrations/postgres/init.sql +6 -11
  250. package/scripts/likeCypress.ts +1 -1
  251. package/src/api/controllers/application.js +50 -85
  252. package/src/api/controllers/auth.js +5 -8
  253. package/src/api/controllers/automation.js +23 -13
  254. package/src/api/controllers/cloud.js +3 -2
  255. package/src/api/controllers/component.js +4 -3
  256. package/src/api/controllers/datasource.js +11 -21
  257. package/src/api/controllers/deploy/Deployment.js +7 -3
  258. package/src/api/controllers/deploy/index.js +13 -20
  259. package/src/api/controllers/dev.js +5 -5
  260. package/src/api/controllers/hosting.js +22 -0
  261. package/src/api/controllers/layout.js +3 -3
  262. package/src/api/controllers/metadata.js +9 -4
  263. package/src/api/controllers/permission.js +4 -4
  264. package/src/api/controllers/query/import/index.ts +6 -4
  265. package/src/api/controllers/query/import/tests/index.spec.js +1 -2
  266. package/src/api/controllers/query/index.js +10 -11
  267. package/src/api/controllers/role.js +5 -5
  268. package/src/api/controllers/routing.js +6 -5
  269. package/src/api/controllers/row/ExternalRequest.ts +43 -67
  270. package/src/api/controllers/row/external.js +58 -27
  271. package/src/api/controllers/row/internal.js +90 -54
  272. package/src/api/controllers/row/internalSearch.js +17 -23
  273. package/src/api/controllers/row/utils.js +18 -13
  274. package/src/api/controllers/screen.js +7 -5
  275. package/src/api/controllers/static/index.js +12 -65
  276. package/src/api/controllers/table/external.js +10 -7
  277. package/src/api/controllers/table/index.js +28 -20
  278. package/src/api/controllers/table/internal.js +19 -24
  279. package/src/api/controllers/table/utils.js +42 -78
  280. package/src/api/controllers/user.js +20 -19
  281. package/src/api/controllers/view/index.js +10 -8
  282. package/src/api/controllers/view/utils.js +4 -9
  283. package/src/api/controllers/webhook.js +8 -10
  284. package/src/api/routes/hosting.js +13 -0
  285. package/src/api/routes/index.js +2 -2
  286. package/src/api/routes/static.js +0 -5
  287. package/src/api/routes/tests/application.spec.js +2 -2
  288. package/src/api/routes/tests/auth.spec.js +2 -1
  289. package/src/api/routes/tests/automation.spec.js +0 -1
  290. package/src/api/routes/tests/hosting.spec.js +36 -0
  291. package/src/api/routes/tests/misc.spec.js +1 -0
  292. package/src/api/routes/tests/routing.spec.js +12 -21
  293. package/src/api/routes/tests/row.spec.js +4 -7
  294. package/src/api/routes/tests/utilities/TestFunctions.js +17 -39
  295. package/src/app.ts +5 -18
  296. package/src/automations/automationUtils.js +3 -2
  297. package/src/automations/steps/createRow.js +5 -2
  298. package/src/automations/steps/deleteRow.js +4 -1
  299. package/src/automations/steps/updateRow.js +1 -1
  300. package/src/automations/triggers.js +31 -33
  301. package/src/automations/utils.js +5 -9
  302. package/src/constants/index.js +0 -9
  303. package/src/db/linkedRows/LinkController.js +7 -3
  304. package/src/db/linkedRows/index.js +31 -16
  305. package/src/db/linkedRows/linkUtils.js +6 -6
  306. package/src/db/tests/linkController.spec.js +1 -0
  307. package/src/db/tests/linkTests.spec.js +6 -5
  308. package/src/db/views/staticViews.js +10 -8
  309. package/src/definitions/common.ts +0 -3
  310. package/src/definitions/datasource.ts +0 -3
  311. package/src/environment.js +1 -4
  312. package/src/integrations/base/sql.ts +21 -69
  313. package/src/integrations/index.ts +0 -3
  314. package/src/integrations/tests/sql.spec.js +0 -16
  315. package/src/integrations/utils.ts +12 -75
  316. package/src/middleware/authorized.js +30 -66
  317. package/src/middleware/builder.js +2 -2
  318. package/src/middleware/currentapp.js +46 -50
  319. package/src/middleware/tests/authorized.spec.js +6 -13
  320. package/src/middleware/tests/currentapp.spec.js +0 -6
  321. package/src/middleware/tests/usageQuota.spec.js +24 -18
  322. package/src/middleware/usageQuota.js +17 -93
  323. package/src/tests/utilities/TestConfiguration.js +55 -82
  324. package/src/threads/automation.js +15 -17
  325. package/src/threads/query.js +12 -17
  326. package/src/utilities/fileSystem/index.js +3 -4
  327. package/src/utilities/global.js +12 -15
  328. package/src/utilities/index.js +17 -7
  329. package/src/utilities/routing/index.js +5 -5
  330. package/src/utilities/rowProcessor/index.js +27 -25
  331. package/src/utilities/rowProcessor/utils.js +7 -23
  332. package/src/utilities/usageQuota.js +73 -0
  333. package/src/utilities/users.js +3 -3
  334. package/src/utilities/workerRequests.js +27 -4
  335. package/tsconfig.json +1 -2
  336. package/builder/assets/index.83c0944f.css +0 -1
  337. package/coverage/lcov-report/api/controllers/migrations.js.html +0 -119
  338. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +0 -548
  339. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +0 -599
  340. package/coverage/lcov-report/utilities/usageQuota/index.html +0 -141
  341. package/coverage/lcov-report/utilities/usageQuota/index.js.html +0 -359
  342. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +0 -305
  343. package/dist/api/controllers/migrations.js +0 -21
  344. package/dist/api/controllers/row/staticFormula.js +0 -147
  345. package/dist/api/controllers/table/bulkFormula.js +0 -159
  346. package/dist/api/routes/migrations.js +0 -9
  347. package/dist/integrations/googlesheets.js +0 -340
  348. package/dist/migrations/functions/appUrls.js +0 -46
  349. package/dist/migrations/functions/quotas1.js +0 -50
  350. package/dist/migrations/functions/usageQuotas/index.js +0 -20
  351. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -29
  352. package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
  353. package/dist/migrations/functions/userEmailViewCasing.js +0 -24
  354. package/dist/migrations/index.js +0 -62
  355. package/dist/utilities/usageQuota/rows.js +0 -78
  356. package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
  357. package/src/api/controllers/migrations.js +0 -13
  358. package/src/api/controllers/row/staticFormula.js +0 -156
  359. package/src/api/controllers/table/bulkFormula.js +0 -173
  360. package/src/api/routes/migrations.js +0 -14
  361. package/src/api/routes/tests/static.spec.js +0 -98
  362. package/src/integrations/googlesheets.ts +0 -353
  363. package/src/migrations/functions/appUrls.ts +0 -34
  364. package/src/migrations/functions/quotas1.ts +0 -20
  365. package/src/migrations/functions/tests/appUrls.spec.js +0 -29
  366. package/src/migrations/functions/tests/quotas1.spec.js +0 -27
  367. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +0 -25
  368. package/src/migrations/functions/usageQuotas/index.ts +0 -8
  369. package/src/migrations/functions/usageQuotas/syncApps.ts +0 -18
  370. package/src/migrations/functions/usageQuotas/syncRows.ts +0 -22
  371. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +0 -37
  372. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +0 -43
  373. package/src/migrations/functions/userEmailViewCasing.ts +0 -13
  374. package/src/migrations/index.ts +0 -56
  375. package/src/module.d.ts +0 -3
  376. package/src/utilities/tests/usageQuota/usageQuota.spec.js +0 -72
  377. package/src/utilities/usageQuota/index.js +0 -93
  378. package/src/utilities/usageQuota/rows.js +0 -75
  379. package/src/utilities/usageQuota/usageQuoteReset.js +0 -18
@@ -23,30 +23,30 @@
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">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>40/44</span>
28
+ <span class='fraction'>34/34</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">89.28% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>28/32</span>
35
+ <span class='fraction'>25/28</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">83.33% </span>
40
+ <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/6</span>
42
+ <span class='fraction'>4/4</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">93.02% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>40/43</span>
49
+ <span class='fraction'>34/34</span>
50
50
  </div>
51
51
 
52
52
 
@@ -127,43 +127,7 @@
127
127
  <a name='L68'></a><a href='#L68'>68</a>
128
128
  <a name='L69'></a><a href='#L69'>69</a>
129
129
  <a name='L70'></a><a href='#L70'>70</a>
130
- <a name='L71'></a><a href='#L71'>71</a>
131
- <a name='L72'></a><a href='#L72'>72</a>
132
- <a name='L73'></a><a href='#L73'>73</a>
133
- <a name='L74'></a><a href='#L74'>74</a>
134
- <a name='L75'></a><a href='#L75'>75</a>
135
- <a name='L76'></a><a href='#L76'>76</a>
136
- <a name='L77'></a><a href='#L77'>77</a>
137
- <a name='L78'></a><a href='#L78'>78</a>
138
- <a name='L79'></a><a href='#L79'>79</a>
139
- <a name='L80'></a><a href='#L80'>80</a>
140
- <a name='L81'></a><a href='#L81'>81</a>
141
- <a name='L82'></a><a href='#L82'>82</a>
142
- <a name='L83'></a><a href='#L83'>83</a>
143
- <a name='L84'></a><a href='#L84'>84</a>
144
- <a name='L85'></a><a href='#L85'>85</a>
145
- <a name='L86'></a><a href='#L86'>86</a>
146
- <a name='L87'></a><a href='#L87'>87</a>
147
- <a name='L88'></a><a href='#L88'>88</a>
148
- <a name='L89'></a><a href='#L89'>89</a>
149
- <a name='L90'></a><a href='#L90'>90</a>
150
- <a name='L91'></a><a href='#L91'>91</a>
151
- <a name='L92'></a><a href='#L92'>92</a>
152
- <a name='L93'></a><a href='#L93'>93</a>
153
- <a name='L94'></a><a href='#L94'>94</a>
154
- <a name='L95'></a><a href='#L95'>95</a>
155
- <a name='L96'></a><a href='#L96'>96</a>
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>
166
- <a name='L107'></a><a href='#L107'>107</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
130
+ <a name='L71'></a><a href='#L71'>71</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
167
131
  <span class="cline-any cline-neutral">&nbsp;</span>
168
132
  <span class="cline-any cline-neutral">&nbsp;</span>
169
133
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -174,100 +138,64 @@
174
138
  <span class="cline-any cline-yes">24x</span>
175
139
  <span class="cline-any cline-yes">24x</span>
176
140
  <span class="cline-any cline-yes">24x</span>
177
- <span class="cline-any cline-yes">24x</span>
178
- <span class="cline-any cline-yes">24x</span>
179
141
  <span class="cline-any cline-neutral">&nbsp;</span>
180
142
  <span class="cline-any cline-neutral">&nbsp;</span>
181
- <span class="cline-any cline-yes">155x</span>
143
+ <span class="cline-any cline-yes">7x</span>
182
144
  <span class="cline-any cline-neutral">&nbsp;</span>
183
145
  <span class="cline-any cline-neutral">&nbsp;</span>
184
146
  <span class="cline-any cline-yes">24x</span>
185
147
  <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-yes">2338x</span>
186
149
  <span class="cline-any cline-neutral">&nbsp;</span>
187
150
  <span class="cline-any cline-neutral">&nbsp;</span>
151
+ <span class="cline-any cline-yes">160x</span>
152
+ <span class="cline-any cline-yes">1x</span>
188
153
  <span class="cline-any cline-neutral">&nbsp;</span>
189
154
  <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-neutral">&nbsp;</span>
191
- <span class="cline-any cline-neutral">&nbsp;</span>
192
- <span class="cline-any cline-yes">24x</span>
193
- <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-yes">156x</span>
195
- <span class="cline-any cline-yes">156x</span>
196
- <span class="cline-any cline-yes">156x</span>
197
- <span class="cline-any cline-yes">28x</span>
198
- <span class="cline-any cline-neutral">&nbsp;</span>
199
- <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-yes">128x</span>
202
- <span class="cline-any cline-yes">3x</span>
203
- <span class="cline-any cline-neutral">&nbsp;</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-yes">24x</span>
207
- <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-yes">159x</span>
156
+ <span class="cline-any cline-yes">1x</span>
208
157
  <span class="cline-any cline-neutral">&nbsp;</span>
209
158
  <span class="cline-any cline-neutral">&nbsp;</span>
210
159
  <span class="cline-any cline-neutral">&nbsp;</span>
211
160
  <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-yes">158x</span>
212
162
  <span class="cline-any cline-neutral">&nbsp;</span>
213
- <span class="cline-any cline-yes">3x</span>
214
- <span class="cline-any cline-yes">3x</span>
163
+ <span class="cline-any cline-yes">158x</span>
215
164
  <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-yes">158x</span>
166
+ <span class="cline-any cline-yes">158x</span>
167
+ <span class="cline-any cline-yes">158x</span>
168
+ <span class="cline-any cline-yes">122x</span>
169
+ <span class="cline-any cline-yes">36x</span>
170
+ <span class="cline-any cline-yes">29x</span>
216
171
  <span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-yes">3x</span>
218
172
  <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-yes">3x</span>
220
173
  <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-no">&nbsp;</span>
222
- <span class="cline-any cline-no">&nbsp;</span>
223
- <span class="cline-any cline-no">&nbsp;</span>
174
+ <span class="cline-any cline-yes">7x</span>
175
+ <span class="cline-any cline-yes">7x</span>
224
176
  <span class="cline-any cline-neutral">&nbsp;</span>
225
177
  <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-yes">3x</span>
178
+ <span class="cline-any cline-yes">7x</span>
179
+ <span class="cline-any cline-yes">7x</span>
180
+ <span class="cline-any cline-yes">7x</span>
227
181
  <span class="cline-any cline-yes">3x</span>
228
182
  <span class="cline-any cline-neutral">&nbsp;</span>
229
183
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-neutral">&nbsp;</span>
231
- <span class="cline-any cline-yes">24x</span>
232
- <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-yes">2338x</span>
234
- <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-neutral">&nbsp;</span>
236
- <span class="cline-any cline-yes">162x</span>
184
+ <span class="cline-any cline-yes">7x</span>
237
185
  <span class="cline-any cline-yes">1x</span>
238
- <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-yes">161x</span>
241
186
  <span class="cline-any cline-yes">1x</span>
242
187
  <span class="cline-any cline-neutral">&nbsp;</span>
243
- <span class="cline-any cline-neutral">&nbsp;</span>
244
- <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-neutral">&nbsp;</span>
246
- <span class="cline-any cline-yes">160x</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-yes">160x</span>
250
- <span class="cline-any cline-yes">160x</span>
251
- <span class="cline-any cline-yes">160x</span>
252
- <span class="cline-any cline-yes">55x</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-yes">160x</span>
257
- <span class="cline-any cline-yes">160x</span>
258
188
  <span class="cline-any cline-yes">1x</span>
189
+ <span class="cline-any cline-yes">6x</span>
190
+ <span class="cline-any cline-yes">6x</span>
259
191
  <span class="cline-any cline-neutral">&nbsp;</span>
260
192
  <span class="cline-any cline-neutral">&nbsp;</span>
261
193
  <span class="cline-any cline-neutral">&nbsp;</span>
262
- <span class="cline-any cline-yes">159x</span>
263
- <span class="cline-any cline-yes">3x</span>
264
- <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-yes">4x</span>
195
+ <span class="cline-any cline-yes">4x</span>
265
196
  <span class="cline-any cline-neutral">&nbsp;</span>
266
197
  <span class="cline-any cline-neutral">&nbsp;</span>
267
- <span class="cline-any cline-yes">156x</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-yes">129x</span>
198
+ <span class="cline-any cline-yes">4x</span>
271
199
  <span class="cline-any cline-neutral">&nbsp;</span>
272
200
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const {
273
201
  getUserRoleHierarchy,
@@ -280,60 +208,11 @@ const {
280
208
  } = require("@budibase/backend-core/permissions")
281
209
  const builderMiddleware = require("./builder")
282
210
  const { isWebhookEndpoint } = require("./utils")
283
- const { buildCsrfMiddleware } = require("@budibase/backend-core/auth")
284
- const { getAppId } = require("@budibase/backend-core/context")
285
211
  &nbsp;
286
212
  function hasResource(ctx) {
287
213
  return ctx.resourceId != null
288
214
  }
289
215
  &nbsp;
290
- const csrf = buildCsrfMiddleware()
291
- &nbsp;
292
- /**
293
- * Apply authorization to the requested resource:
294
- * - If this is a builder resource the user must be a builder.
295
- * - Builders can access all resources.
296
- * - Otherwise the user must have the required role.
297
- */
298
- const checkAuthorized = async (ctx, resourceRoles, permType, permLevel) =&gt; {
299
- // check if this is a builder api and the user is not a builder
300
- const isBuilder = ctx.user &amp;&amp; ctx.user.builder &amp;&amp; ctx.user.builder.global
301
- const isBuilderApi = permType === PermissionTypes.BUILDER
302
- if (isBuilderApi &amp;&amp; !isBuilder) {
303
- return ctx.throw(403, "Not Authorized")
304
- }
305
- &nbsp;
306
- // check for resource authorization
307
- if (!isBuilder) {
308
- await checkAuthorizedResource(ctx, resourceRoles, permType, permLevel)
309
- }
310
- }
311
- &nbsp;
312
- const checkAuthorizedResource = async (
313
- ctx,
314
- resourceRoles,
315
- permType,
316
- permLevel
317
- ) =&gt; {
318
- // get the user's roles
319
- const roleId = ctx.roleId || BUILTIN_ROLE_IDS.PUBLIC
320
- const userRoles = await getUserRoleHierarchy(roleId, {
321
- idOnly: false,
322
- })
323
- const permError = "User does not have permission"
324
- // check if the user has the required role
325
- <span class="missing-if-branch" title="if path not taken" >I</span>if (resourceRoles.length &gt; 0) {
326
- // deny access if the user doesn't have the required resource role
327
- const found = <span class="cstat-no" title="statement not covered" >userRoles.find(<span class="fstat-no" title="function not covered" >ro</span>le =&gt; <span class="cstat-no" title="statement not covered" >resourceRoles.indexOf(role._id) !== -1)</span></span>
328
- <span class="cstat-no" title="statement not covered" > if (!found) {</span>
329
- <span class="cstat-no" title="statement not covered" > ctx.throw(403, permError)</span>
330
- }
331
- // fallback to the base permissions when no resource roles are found
332
- } else if (!doesHaveBasePermission(permType, permLevel, userRoles)) {
333
- ctx.throw(403, permError)
334
- }
335
- }
336
- &nbsp;
337
216
  module.exports =
338
217
  (permType, permLevel = null) =&gt;
339
218
  async (ctx, next) =&gt; {
@@ -351,29 +230,42 @@ module.exports =
351
230
  // to find API endpoints which are builder focused
352
231
  await builderMiddleware(ctx, permType)
353
232
  &nbsp;
354
- // get the resource roles
355
- let resourceRoles = []
356
- const appId = getAppId()
357
- if (appId &amp;&amp; hasResource(ctx)) {
358
- resourceRoles = await getRequiredResourceRole(permLevel, ctx)
359
- }
360
- &nbsp;
361
- // if the resource is public, proceed
362
- const isPublicResource = resourceRoles.includes(BUILTIN_ROLE_IDS.PUBLIC)
363
- if (isPublicResource) {
233
+ const isAuthed = ctx.isAuthenticated
234
+ // builders for now have permission to do anything
235
+ let isBuilder = ctx.user &amp;&amp; ctx.user.builder &amp;&amp; ctx.user.builder.global
236
+ const isBuilderApi = permType === PermissionTypes.BUILDER
237
+ if (isBuilder) {
364
238
  return next()
239
+ } else if (isBuilderApi &amp;&amp; !isBuilder) {
240
+ return ctx.throw(403, "Not Authorized")
365
241
  }
366
242
  &nbsp;
367
- // check authenticated
368
- if (!ctx.isAuthenticated) {
369
- return ctx.throw(403, "Session not authenticated")
243
+ // need to check this first, in-case public access, don't check authed until last
244
+ const roleId = ctx.roleId || BUILTIN_ROLE_IDS.PUBLIC
245
+ const hierarchy = await getUserRoleHierarchy(ctx.appId, roleId, {
246
+ idOnly: false,
247
+ })
248
+ const permError = "User does not have permission"
249
+ let possibleRoleIds = []
250
+ if (hasResource(ctx)) {
251
+ possibleRoleIds = await getRequiredResourceRole(ctx.appId, permLevel, ctx)
252
+ }
253
+ // check if we found a role, if not fallback to base permissions
254
+ if (possibleRoleIds.length &gt; 0) {
255
+ const found = hierarchy.find(
256
+ role =&gt; possibleRoleIds.indexOf(role._id) !== -1
257
+ )
258
+ return found ? next() : <span class="branch-1 cbranch-no" title="branch not covered" >ctx.throw(403, permError)</span>
259
+ } else if (!doesHaveBasePermission(permType, permLevel, hierarchy)) {
260
+ ctx.throw(403, permError)
370
261
  }
371
262
  &nbsp;
372
- // check authorized
373
- await checkAuthorized(ctx, resourceRoles, permType, permLevel)
263
+ // if they are not authed, then anything using the authorized middleware will fail
264
+ if (!isAuthed) {
265
+ ctx.throw(403, "Session not authenticated")
266
+ }
374
267
  &nbsp;
375
- // csrf protection
376
- return csrf(ctx, next)
268
+ return next()
377
269
  }
378
270
  &nbsp;</pre></td></tr></table></pre>
379
271
 
@@ -382,7 +274,7 @@ module.exports =
382
274
  <div class='footer quiet pad2 space-top1 center small'>
383
275
  Code coverage generated by
384
276
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
385
- at Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
277
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
386
278
  </div>
387
279
  </div>
388
280
  <script src="../prettify.js"></script>
@@ -196,17 +196,17 @@
196
196
  <span class="cline-any cline-neutral">&nbsp;</span>
197
197
  <span class="cline-any cline-neutral">&nbsp;</span>
198
198
  <span class="cline-any cline-yes">24x</span>
199
- <span class="cline-any cline-yes">160x</span>
199
+ <span class="cline-any cline-yes">158x</span>
200
200
  <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-yes">160x</span>
201
+ <span class="cline-any cline-yes">158x</span>
202
202
  <span class="cline-any cline-yes">5x</span>
203
203
  <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-yes">155x</span>
205
- <span class="cline-any cline-yes">155x</span>
206
- <span class="cline-any cline-yes">155x</span>
204
+ <span class="cline-any cline-yes">153x</span>
205
+ <span class="cline-any cline-yes">153x</span>
206
+ <span class="cline-any cline-yes">153x</span>
207
207
  <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-yes">155x</span>
209
- <span class="cline-any cline-yes">154x</span>
208
+ <span class="cline-any cline-yes">153x</span>
209
+ <span class="cline-any cline-yes">152x</span>
210
210
  <span class="cline-any cline-neutral">&nbsp;</span>
211
211
  <span class="cline-any cline-neutral">&nbsp;</span>
212
212
  <span class="cline-any cline-yes">1x</span>
@@ -220,7 +220,7 @@ const {
220
220
  checkDebounce,
221
221
  setDebounce,
222
222
  } = require("../utilities/redis")
223
- const { getDB } = require("@budibase/backend-core/db")
223
+ const CouchDB = require("../db")
224
224
  const { DocumentTypes } = require("../db/utils")
225
225
  const { PermissionTypes } = require("@budibase/backend-core/permissions")
226
226
  const { app: appCache } = require("@budibase/backend-core/cache")
@@ -263,7 +263,7 @@ async function updateAppUpdatedAt(ctx) {
263
263
  <span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.method === "GET" || (await checkDebounce(appId))) {
264
264
  <span class="cstat-no" title="statement not covered" > return</span>
265
265
  }
266
- const db = getDB(appId)
266
+ const db = new CouchDB(appId)
267
267
  const metadata = await db.get(DocumentTypes.APP_METADATA)
268
268
  metadata.updatedAt = new Date().toISOString()
269
269
  const response = await db.put(metadata)
@@ -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 Thu Feb 03 2022 20:58:15 GMT+0000 (Coordinated Universal Time)
301
+ at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
302
302
  </div>
303
303
  </div>
304
304
  <script src="../prettify.js"></script>