@budibase/server 1.0.49 → 1.0.50-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. package/__mocks__/arangojs.ts +1 -1
  2. package/__mocks__/aws-sdk.ts +4 -4
  3. package/__mocks__/mongodb.ts +4 -5
  4. package/__mocks__/mssql.ts +3 -3
  5. package/__mocks__/node-fetch.ts +2 -1
  6. package/__mocks__/pg.ts +3 -5
  7. package/builder/assets/index.c0cc369d.css +6 -0
  8. package/builder/assets/{index.2c37968e.js → index.ff2bad21.js} +252 -249
  9. package/builder/assets/{vendor.f9faf6ab.js → vendor.5ad9695a.js} +202 -106
  10. package/builder/index.html +3 -3
  11. package/coverage/clover.xml +3105 -2814
  12. package/coverage/coverage-final.json +106 -101
  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 +257 -152
  16. package/coverage/lcov-report/api/controllers/auth.js.html +22 -13
  17. package/coverage/lcov-report/api/controllers/automation.js.html +39 -69
  18. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
  20. package/coverage/lcov-report/api/controllers/component.js.html +13 -16
  21. package/coverage/lcov-report/api/controllers/datasource.js.html +81 -51
  22. package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
  23. package/coverage/lcov-report/api/controllers/index.html +78 -78
  24. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
  26. package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
  27. package/coverage/lcov-report/api/controllers/migrations.js.html +119 -0
  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 +38 -35
  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 +7 -10
  34. package/coverage/lcov-report/api/controllers/row/external.js.html +48 -141
  35. package/coverage/lcov-report/api/controllers/row/index.html +55 -40
  36. package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
  37. package/coverage/lcov-report/api/controllers/row/internal.js.html +118 -226
  38. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +52 -34
  39. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +548 -0
  40. package/coverage/lcov-report/api/controllers/row/utils.js.html +47 -62
  41. package/coverage/lcov-report/api/controllers/screen.js.html +15 -21
  42. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  43. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +599 -0
  44. package/coverage/lcov-report/api/controllers/table/external.js.html +25 -34
  45. package/coverage/lcov-report/api/controllers/table/index.html +58 -43
  46. package/coverage/lcov-report/api/controllers/table/index.js.html +58 -82
  47. package/coverage/lcov-report/api/controllers/table/internal.js.html +81 -66
  48. package/coverage/lcov-report/api/controllers/table/utils.js.html +218 -110
  49. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  50. package/coverage/lcov-report/api/controllers/user.js.html +79 -76
  51. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  52. package/coverage/lcov-report/api/controllers/view/index.html +16 -16
  53. package/coverage/lcov-report/api/controllers/view/index.js.html +27 -33
  54. package/coverage/lcov-report/api/controllers/view/utils.js.html +35 -20
  55. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  56. package/coverage/lcov-report/api/controllers/webhook.js.html +34 -28
  57. package/coverage/lcov-report/api/index.html +1 -1
  58. package/coverage/lcov-report/api/index.js.html +8 -8
  59. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/index.html +18 -18
  71. package/coverage/lcov-report/api/routes/index.js.html +3 -3
  72. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/{hosting.js.html → migrations.js.html} +17 -14
  76. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  82. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  83. package/coverage/lcov-report/api/routes/static.js.html +17 -2
  84. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  85. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  86. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  87. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  88. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  89. package/coverage/lcov-report/automations/actions.js.html +24 -24
  90. package/coverage/lcov-report/automations/automationUtils.js.html +7 -10
  91. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  92. package/coverage/lcov-report/automations/index.html +18 -18
  93. package/coverage/lcov-report/automations/index.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  95. package/coverage/lcov-report/automations/steps/createRow.js.html +13 -22
  96. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  97. package/coverage/lcov-report/automations/steps/deleteRow.js.html +11 -20
  98. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  99. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  100. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  101. package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
  102. package/coverage/lcov-report/automations/steps/index.html +13 -13
  103. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  104. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  105. package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
  106. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  107. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  108. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  109. package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
  110. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  111. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  112. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  115. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  116. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  117. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  118. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  119. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  120. package/coverage/lcov-report/automations/triggers.js.html +61 -55
  121. package/coverage/lcov-report/automations/utils.js.html +54 -42
  122. package/coverage/lcov-report/constants/index.html +5 -5
  123. package/coverage/lcov-report/constants/index.js.html +53 -26
  124. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  125. package/coverage/lcov-report/constants/screens.js.html +4 -4
  126. package/coverage/lcov-report/db/client.js.html +18 -18
  127. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  128. package/coverage/lcov-report/db/index.html +15 -15
  129. package/coverage/lcov-report/db/index.js.html +3 -3
  130. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +25 -37
  131. package/coverage/lcov-report/db/linkedRows/index.html +27 -27
  132. package/coverage/lcov-report/db/linkedRows/index.js.html +51 -96
  133. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +42 -42
  134. package/coverage/lcov-report/db/newid.js.html +4 -4
  135. package/coverage/lcov-report/db/utils.js.html +87 -87
  136. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  137. package/coverage/lcov-report/events/index.html +1 -1
  138. package/coverage/lcov-report/events/index.js.html +5 -5
  139. package/coverage/lcov-report/events/utils.js.html +3 -3
  140. package/coverage/lcov-report/index.html +135 -120
  141. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  142. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  143. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  144. package/coverage/lcov-report/middleware/authorized.js.html +173 -65
  145. package/coverage/lcov-report/middleware/builder.js.html +10 -10
  146. package/coverage/lcov-report/middleware/currentapp.js.html +95 -83
  147. package/coverage/lcov-report/middleware/index.html +38 -38
  148. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  149. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  150. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  151. package/coverage/lcov-report/middleware/usageQuota.js.html +281 -53
  152. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  153. package/coverage/lcov-report/threads/automation.js.html +30 -24
  154. package/coverage/lcov-report/threads/index.html +26 -26
  155. package/coverage/lcov-report/threads/index.js.html +10 -10
  156. package/coverage/lcov-report/threads/query.js.html +39 -24
  157. package/coverage/lcov-report/threads/utils.js.html +14 -14
  158. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  159. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  160. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  161. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  162. package/coverage/lcov-report/utilities/global.js.html +58 -49
  163. package/coverage/lcov-report/utilities/index.html +37 -37
  164. package/coverage/lcov-report/utilities/index.js.html +43 -73
  165. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
  166. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  167. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  168. package/coverage/lcov-report/utilities/routing/index.js.html +7 -7
  169. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
  170. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +97 -103
  171. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +75 -27
  172. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  173. package/coverage/lcov-report/utilities/security.js.html +8 -8
  174. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  175. package/coverage/lcov-report/utilities/usageQuota/index.html +141 -0
  176. package/coverage/lcov-report/utilities/usageQuota/index.js.html +359 -0
  177. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +305 -0
  178. package/coverage/lcov-report/{api/controllers/hosting.js.html → utilities/usageQuota/usageQuoteReset.js.html} +36 -48
  179. package/coverage/lcov-report/utilities/users.js.html +9 -9
  180. package/coverage/lcov-report/utilities/workerRequests.js.html +43 -112
  181. package/coverage/lcov.info +5010 -4425
  182. package/dist/api/controllers/application.js +90 -60
  183. package/dist/api/controllers/auth.js +8 -5
  184. package/dist/api/controllers/automation.js +14 -19
  185. package/dist/api/controllers/cloud.js +2 -3
  186. package/dist/api/controllers/component.js +3 -4
  187. package/dist/api/controllers/datasource.js +20 -10
  188. package/dist/api/controllers/deploy/Deployment.js +3 -6
  189. package/dist/api/controllers/deploy/index.js +12 -13
  190. package/dist/api/controllers/dev.js +5 -5
  191. package/dist/api/controllers/layout.js +3 -3
  192. package/dist/api/controllers/metadata.js +4 -4
  193. package/dist/api/controllers/migrations.js +21 -0
  194. package/dist/api/controllers/permission.js +4 -4
  195. package/dist/api/controllers/query/import/index.js +4 -6
  196. package/dist/api/controllers/query/index.js +11 -10
  197. package/dist/api/controllers/role.js +5 -5
  198. package/dist/api/controllers/routing.js +5 -6
  199. package/dist/api/controllers/row/ExternalRequest.js +90 -67
  200. package/dist/api/controllers/row/external.js +14 -22
  201. package/dist/api/controllers/row/internal.js +55 -93
  202. package/dist/api/controllers/row/internalSearch.js +23 -17
  203. package/dist/api/controllers/row/staticFormula.js +147 -0
  204. package/dist/api/controllers/row/utils.js +13 -14
  205. package/dist/api/controllers/screen.js +5 -7
  206. package/dist/api/controllers/static/index.js +62 -16
  207. package/dist/api/controllers/table/bulkFormula.js +159 -0
  208. package/dist/api/controllers/table/external.js +7 -10
  209. package/dist/api/controllers/table/index.js +16 -13
  210. package/dist/api/controllers/table/internal.js +22 -16
  211. package/dist/api/controllers/table/utils.js +62 -35
  212. package/dist/api/controllers/user.js +43 -43
  213. package/dist/api/controllers/view/index.js +8 -10
  214. package/dist/api/controllers/view/utils.js +9 -4
  215. package/dist/api/controllers/webhook.js +10 -8
  216. package/dist/api/routes/index.js +2 -2
  217. package/dist/api/routes/migrations.js +9 -0
  218. package/dist/api/routes/static.js +2 -1
  219. package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
  220. package/dist/app.js +35 -5
  221. package/dist/automations/automationUtils.js +2 -3
  222. package/dist/automations/steps/createRow.js +3 -5
  223. package/dist/automations/steps/deleteRow.js +1 -4
  224. package/dist/automations/steps/updateRow.js +1 -1
  225. package/dist/automations/triggers.js +27 -25
  226. package/dist/automations/utils.js +10 -5
  227. package/dist/constants/index.js +7 -0
  228. package/dist/db/linkedRows/LinkController.js +3 -7
  229. package/dist/db/linkedRows/index.js +16 -27
  230. package/dist/db/linkedRows/linkUtils.js +6 -6
  231. package/dist/db/views/staticViews.js +9 -10
  232. package/dist/definitions/datasource.js +1 -0
  233. package/dist/environment.js +4 -1
  234. package/dist/integrations/base/sql.js +62 -21
  235. package/dist/integrations/googlesheets.js +340 -0
  236. package/dist/integrations/index.js +3 -0
  237. package/dist/integrations/utils.js +60 -9
  238. package/dist/middleware/authorized.js +57 -30
  239. package/dist/middleware/builder.js +2 -2
  240. package/dist/middleware/currentapp.js +41 -37
  241. package/dist/middleware/usageQuota.js +82 -15
  242. package/dist/migrations/functions/appUrls.js +46 -0
  243. package/dist/migrations/functions/quotas1.js +50 -0
  244. package/dist/migrations/functions/usageQuotas/index.js +20 -0
  245. package/dist/migrations/functions/usageQuotas/syncApps.js +29 -0
  246. package/dist/migrations/functions/usageQuotas/syncRows.js +33 -0
  247. package/dist/migrations/functions/userEmailViewCasing.js +24 -0
  248. package/dist/migrations/index.js +62 -0
  249. package/dist/package.json +8 -5
  250. package/dist/tests/utilities/TestConfiguration.js +80 -50
  251. package/dist/threads/automation.js +13 -11
  252. package/dist/threads/query.js +15 -11
  253. package/dist/tsconfig.tsbuildinfo +1 -1
  254. package/dist/utilities/fileSystem/index.js +4 -3
  255. package/dist/utilities/global.js +15 -12
  256. package/dist/utilities/index.js +7 -17
  257. package/dist/utilities/routing/index.js +5 -5
  258. package/dist/utilities/rowProcessor/index.js +23 -17
  259. package/dist/utilities/rowProcessor/utils.js +14 -4
  260. package/dist/utilities/{usageQuota.js → usageQuota/index.js} +45 -31
  261. package/dist/utilities/usageQuota/rows.js +78 -0
  262. package/dist/utilities/usageQuota/usageQuoteReset.js +16 -0
  263. package/dist/utilities/users.js +3 -3
  264. package/dist/utilities/workerRequests.js +4 -24
  265. package/nodemon.json +1 -1
  266. package/package.json +9 -6
  267. package/scripts/integrations/mssql/data/Dockerfile +1 -1
  268. package/scripts/integrations/mssql/data/setup.sql +17 -4
  269. package/scripts/integrations/postgres/init.sql +11 -6
  270. package/scripts/likeCypress.ts +1 -1
  271. package/src/api/controllers/application.js +85 -50
  272. package/src/api/controllers/auth.js +8 -5
  273. package/src/api/controllers/automation.js +13 -23
  274. package/src/api/controllers/cloud.js +2 -3
  275. package/src/api/controllers/component.js +3 -4
  276. package/src/api/controllers/datasource.js +21 -11
  277. package/src/api/controllers/deploy/Deployment.js +3 -7
  278. package/src/api/controllers/deploy/index.js +20 -13
  279. package/src/api/controllers/dev.js +5 -5
  280. package/src/api/controllers/layout.js +3 -3
  281. package/src/api/controllers/metadata.js +4 -9
  282. package/src/api/controllers/migrations.js +13 -0
  283. package/src/api/controllers/permission.js +4 -4
  284. package/src/api/controllers/query/import/index.ts +4 -6
  285. package/src/api/controllers/query/import/tests/index.spec.js +2 -1
  286. package/src/api/controllers/query/index.js +11 -10
  287. package/src/api/controllers/role.js +5 -5
  288. package/src/api/controllers/routing.js +5 -6
  289. package/src/api/controllers/row/ExternalRequest.ts +67 -43
  290. package/src/api/controllers/row/external.js +27 -58
  291. package/src/api/controllers/row/internal.js +54 -90
  292. package/src/api/controllers/row/internalSearch.js +23 -17
  293. package/src/api/controllers/row/staticFormula.js +156 -0
  294. package/src/api/controllers/row/utils.js +13 -18
  295. package/src/api/controllers/screen.js +5 -7
  296. package/src/api/controllers/static/index.js +66 -15
  297. package/src/api/controllers/table/bulkFormula.js +173 -0
  298. package/src/api/controllers/table/external.js +7 -10
  299. package/src/api/controllers/table/index.js +20 -28
  300. package/src/api/controllers/table/internal.js +24 -19
  301. package/src/api/controllers/table/utils.js +78 -42
  302. package/src/api/controllers/user.js +46 -45
  303. package/src/api/controllers/view/index.js +8 -10
  304. package/src/api/controllers/view/utils.js +9 -4
  305. package/src/api/controllers/webhook.js +10 -8
  306. package/src/api/routes/index.js +2 -2
  307. package/src/api/routes/migrations.js +14 -0
  308. package/src/api/routes/static.js +5 -0
  309. package/src/api/routes/tests/application.spec.js +2 -2
  310. package/src/api/routes/tests/auth.spec.js +1 -2
  311. package/src/api/routes/tests/automation.spec.js +1 -0
  312. package/src/api/routes/tests/misc.spec.js +0 -1
  313. package/src/api/routes/tests/routing.spec.js +21 -12
  314. package/src/api/routes/tests/row.spec.js +7 -4
  315. package/src/api/routes/tests/static.spec.js +98 -0
  316. package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
  317. package/src/app.ts +18 -5
  318. package/src/automations/automationUtils.js +2 -3
  319. package/src/automations/steps/createRow.js +2 -5
  320. package/src/automations/steps/deleteRow.js +1 -4
  321. package/src/automations/steps/updateRow.js +1 -1
  322. package/src/automations/triggers.js +33 -31
  323. package/src/automations/utils.js +9 -5
  324. package/src/constants/index.js +9 -0
  325. package/src/db/linkedRows/LinkController.js +3 -7
  326. package/src/db/linkedRows/index.js +16 -31
  327. package/src/db/linkedRows/linkUtils.js +6 -6
  328. package/src/db/tests/linkController.spec.js +0 -1
  329. package/src/db/tests/linkTests.spec.js +5 -6
  330. package/src/db/views/staticViews.js +8 -10
  331. package/src/definitions/common.ts +3 -0
  332. package/src/definitions/datasource.ts +3 -0
  333. package/src/environment.js +4 -1
  334. package/src/integrations/base/sql.ts +75 -29
  335. package/src/integrations/googlesheets.ts +353 -0
  336. package/src/integrations/index.ts +3 -0
  337. package/src/integrations/tests/sql.spec.js +16 -0
  338. package/src/integrations/utils.ts +75 -12
  339. package/src/middleware/authorized.js +66 -30
  340. package/src/middleware/builder.js +2 -2
  341. package/src/middleware/currentapp.js +50 -46
  342. package/src/middleware/tests/authorized.spec.js +13 -6
  343. package/src/middleware/tests/currentapp.spec.js +6 -0
  344. package/src/middleware/tests/usageQuota.spec.js +18 -24
  345. package/src/middleware/usageQuota.js +93 -17
  346. package/src/migrations/functions/appUrls.ts +34 -0
  347. package/src/migrations/functions/quotas1.ts +20 -0
  348. package/src/migrations/functions/tests/appUrls.spec.js +29 -0
  349. package/src/migrations/functions/tests/quotas1.spec.js +27 -0
  350. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
  351. package/src/migrations/functions/usageQuotas/index.ts +8 -0
  352. package/src/migrations/functions/usageQuotas/syncApps.ts +18 -0
  353. package/src/migrations/functions/usageQuotas/syncRows.ts +22 -0
  354. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +37 -0
  355. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +43 -0
  356. package/src/migrations/functions/userEmailViewCasing.ts +13 -0
  357. package/src/migrations/index.ts +56 -0
  358. package/src/module.d.ts +3 -0
  359. package/src/tests/utilities/TestConfiguration.js +82 -55
  360. package/src/threads/automation.js +17 -15
  361. package/src/threads/query.js +17 -12
  362. package/src/utilities/fileSystem/index.js +4 -3
  363. package/src/utilities/global.js +15 -12
  364. package/src/utilities/index.js +7 -17
  365. package/src/utilities/routing/index.js +5 -5
  366. package/src/utilities/rowProcessor/index.js +25 -27
  367. package/src/utilities/rowProcessor/utils.js +23 -7
  368. package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
  369. package/src/utilities/usageQuota/index.js +93 -0
  370. package/src/utilities/usageQuota/rows.js +75 -0
  371. package/src/utilities/usageQuota/usageQuoteReset.js +18 -0
  372. package/src/utilities/users.js +3 -3
  373. package/src/utilities/workerRequests.js +4 -27
  374. package/tsconfig.json +2 -1
  375. package/builder/assets/index.39e01193.css +0 -1
  376. package/dist/api/controllers/hosting.js +0 -30
  377. package/dist/api/routes/hosting.js +0 -11
  378. package/src/api/controllers/hosting.js +0 -22
  379. package/src/api/routes/hosting.js +0 -13
  380. package/src/api/routes/tests/hosting.spec.js +0 -36
  381. package/src/utilities/usageQuota.js +0 -73
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">70.99% </span>
26
+ <span class="strong">70.64% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>776/1093</span>
28
+ <span class='fraction'>787/1114</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">46.21% </span>
33
+ <span class="strong">46.02% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>165/357</span>
35
+ <span class='fraction'>168/365</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">69.12% </span>
40
+ <span class="strong">69.23% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>103/149</span>
42
+ <span class='fraction'>108/156</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">71.2% </span>
47
+ <span class="strong">70.73% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>769/1080</span>
49
+ <span class='fraction'>776/1097</span>
50
50
  </div>
51
51
 
52
52
 
@@ -104,47 +104,47 @@
104
104
 
105
105
  <tr>
106
106
  <td class="file medium" data-value="application.js"><a href="application.js.html">application.js</a></td>
107
- <td data-value="78.02" class="pic medium">
108
- <div class="chart"><div class="cover-fill" style="width: 78%"></div><div class="cover-empty" style="width: 22%"></div></div>
107
+ <td data-value="79.71" class="pic medium">
108
+ <div class="chart"><div class="cover-fill" style="width: 79%"></div><div class="cover-empty" style="width: 21%"></div></div>
109
109
  </td>
110
- <td data-value="78.02" class="pct medium">78.02%</td>
111
- <td data-value="182" class="abs medium">142/182</td>
112
- <td data-value="56.94" class="pct medium">56.94%</td>
113
- <td data-value="72" class="abs medium">41/72</td>
114
- <td data-value="85" class="pct high">85%</td>
115
- <td data-value="20" class="abs high">17/20</td>
116
- <td data-value="78.88" class="pct medium">78.88%</td>
117
- <td data-value="180" class="abs medium">142/180</td>
110
+ <td data-value="79.71" class="pct medium">79.71%</td>
111
+ <td data-value="207" class="abs medium">165/207</td>
112
+ <td data-value="55.12" class="pct medium">55.12%</td>
113
+ <td data-value="78" class="abs medium">43/78</td>
114
+ <td data-value="88.46" class="pct high">88.46%</td>
115
+ <td data-value="26" class="abs high">23/26</td>
116
+ <td data-value="80.09" class="pct high">80.09%</td>
117
+ <td data-value="201" class="abs high">161/201</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
121
121
  <td class="file high" data-value="auth.js"><a href="auth.js.html">auth.js</a></td>
122
- <td data-value="85.18" class="pic high">
123
- <div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
122
+ <td data-value="82.14" class="pic high">
123
+ <div class="chart"><div class="cover-fill" style="width: 82%"></div><div class="cover-empty" style="width: 18%"></div></div>
124
124
  </td>
125
- <td data-value="85.18" class="pct high">85.18%</td>
126
- <td data-value="27" class="abs high">23/27</td>
125
+ <td data-value="82.14" class="pct high">82.14%</td>
126
+ <td data-value="28" class="abs high">23/28</td>
127
127
  <td data-value="50" class="pct medium">50%</td>
128
128
  <td data-value="8" class="abs medium">4/8</td>
129
129
  <td data-value="100" class="pct high">100%</td>
130
130
  <td data-value="1" class="abs high">1/1</td>
131
- <td data-value="85.18" class="pct high">85.18%</td>
132
- <td data-value="27" class="abs high">23/27</td>
131
+ <td data-value="82.14" class="pct high">82.14%</td>
132
+ <td data-value="28" class="abs high">23/28</td>
133
133
  </tr>
134
134
 
135
135
  <tr>
136
136
  <td class="file high" data-value="automation.js"><a href="automation.js.html">automation.js</a></td>
137
- <td data-value="89.69" class="pic high">
138
- <div class="chart"><div class="cover-fill" style="width: 89%"></div><div class="cover-empty" style="width: 11%"></div></div>
137
+ <td data-value="90.52" class="pic high">
138
+ <div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
139
139
  </td>
140
- <td data-value="89.69" class="pct high">89.69%</td>
141
- <td data-value="97" class="abs high">87/97</td>
140
+ <td data-value="90.52" class="pct high">90.52%</td>
141
+ <td data-value="95" class="abs high">86/95</td>
142
142
  <td data-value="71.87" class="pct medium">71.87%</td>
143
143
  <td data-value="32" class="abs medium">23/32</td>
144
144
  <td data-value="92.85" class="pct high">92.85%</td>
145
145
  <td data-value="14" class="abs high">13/14</td>
146
- <td data-value="89.58" class="pct high">89.58%</td>
147
- <td data-value="96" class="abs high">86/96</td>
146
+ <td data-value="90.42" class="pct high">90.42%</td>
147
+ <td data-value="94" class="abs high">85/94</td>
148
148
  </tr>
149
149
 
150
150
  <tr>
@@ -164,17 +164,17 @@
164
164
 
165
165
  <tr>
166
166
  <td class="file low" data-value="cloud.js"><a href="cloud.js.html">cloud.js</a></td>
167
- <td data-value="19.64" class="pic low">
168
- <div class="chart"><div class="cover-fill" style="width: 19%"></div><div class="cover-empty" style="width: 81%"></div></div>
167
+ <td data-value="18.18" class="pic low">
168
+ <div class="chart"><div class="cover-fill" style="width: 18%"></div><div class="cover-empty" style="width: 82%"></div></div>
169
169
  </td>
170
- <td data-value="19.64" class="pct low">19.64%</td>
171
- <td data-value="56" class="abs low">11/56</td>
170
+ <td data-value="18.18" class="pct low">18.18%</td>
171
+ <td data-value="55" class="abs low">10/55</td>
172
172
  <td data-value="0" class="pct low">0%</td>
173
173
  <td data-value="23" class="abs low">0/23</td>
174
174
  <td data-value="0" class="pct low">0%</td>
175
175
  <td data-value="8" class="abs low">0/8</td>
176
- <td data-value="20" class="pct low">20%</td>
177
- <td data-value="55" class="abs low">11/55</td>
176
+ <td data-value="18.51" class="pct low">18.51%</td>
177
+ <td data-value="54" class="abs low">10/54</td>
178
178
  </tr>
179
179
 
180
180
  <tr>
@@ -183,28 +183,28 @@
183
183
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
184
184
  </td>
185
185
  <td data-value="100" class="pct high">100%</td>
186
- <td data-value="18" class="abs high">18/18</td>
187
- <td data-value="75" class="pct medium">75%</td>
188
- <td data-value="4" class="abs medium">3/4</td>
186
+ <td data-value="17" class="abs high">17/17</td>
189
187
  <td data-value="100" class="pct high">100%</td>
190
188
  <td data-value="2" class="abs high">2/2</td>
191
189
  <td data-value="100" class="pct high">100%</td>
192
- <td data-value="18" class="abs high">18/18</td>
190
+ <td data-value="2" class="abs high">2/2</td>
191
+ <td data-value="100" class="pct high">100%</td>
192
+ <td data-value="17" class="abs high">17/17</td>
193
193
  </tr>
194
194
 
195
195
  <tr>
196
196
  <td class="file medium" data-value="datasource.js"><a href="datasource.js.html">datasource.js</a></td>
197
- <td data-value="59.67" class="pic medium">
197
+ <td data-value="59.68" class="pic medium">
198
198
  <div class="chart"><div class="cover-fill" style="width: 59%"></div><div class="cover-empty" style="width: 41%"></div></div>
199
199
  </td>
200
- <td data-value="59.67" class="pct medium">59.67%</td>
201
- <td data-value="124" class="abs medium">74/124</td>
202
- <td data-value="33.33" class="pct low">33.33%</td>
203
- <td data-value="45" class="abs low">15/45</td>
200
+ <td data-value="59.68" class="pct medium">59.68%</td>
201
+ <td data-value="129" class="abs medium">77/129</td>
202
+ <td data-value="37.73" class="pct low">37.73%</td>
203
+ <td data-value="53" class="abs low">20/53</td>
204
204
  <td data-value="57.89" class="pct medium">57.89%</td>
205
205
  <td data-value="19" class="abs medium">11/19</td>
206
- <td data-value="59.34" class="pct medium">59.34%</td>
207
- <td data-value="123" class="abs medium">73/123</td>
206
+ <td data-value="59.37" class="pct medium">59.37%</td>
207
+ <td data-value="128" class="abs medium">76/128</td>
208
208
  </tr>
209
209
 
210
210
  <tr>
@@ -222,21 +222,6 @@
222
222
  <td data-value="63" class="abs low">18/63</td>
223
223
  </tr>
224
224
 
225
- <tr>
226
- <td class="file high" data-value="hosting.js"><a href="hosting.js.html">hosting.js</a></td>
227
- <td data-value="93.33" class="pic high">
228
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
229
- </td>
230
- <td data-value="93.33" class="pct high">93.33%</td>
231
- <td data-value="15" class="abs high">14/15</td>
232
- <td data-value="75" class="pct medium">75%</td>
233
- <td data-value="4" class="abs medium">3/4</td>
234
- <td data-value="50" class="pct medium">50%</td>
235
- <td data-value="2" class="abs medium">1/2</td>
236
- <td data-value="93.33" class="pct high">93.33%</td>
237
- <td data-value="15" class="abs high">14/15</td>
238
- </tr>
239
-
240
225
  <tr>
241
226
  <td class="file high" data-value="integration.js"><a href="integration.js.html">integration.js</a></td>
242
227
  <td data-value="100" class="pic high">
@@ -282,6 +267,21 @@
282
267
  <td data-value="24" class="abs high">21/24</td>
283
268
  </tr>
284
269
 
270
+ <tr>
271
+ <td class="file low" data-value="migrations.js"><a href="migrations.js.html">migrations.js</a></td>
272
+ <td data-value="37.5" class="pic low">
273
+ <div class="chart"><div class="cover-fill" style="width: 37%"></div><div class="cover-empty" style="width: 63%"></div></div>
274
+ </td>
275
+ <td data-value="37.5" class="pct low">37.5%</td>
276
+ <td data-value="8" class="abs low">3/8</td>
277
+ <td data-value="100" class="pct high">100%</td>
278
+ <td data-value="0" class="abs high">0/0</td>
279
+ <td data-value="0" class="pct low">0%</td>
280
+ <td data-value="2" class="abs low">0/2</td>
281
+ <td data-value="37.5" class="pct low">37.5%</td>
282
+ <td data-value="8" class="abs low">3/8</td>
283
+ </tr>
284
+
285
285
  <tr>
286
286
  <td class="file high" data-value="permission.js"><a href="permission.js.html">permission.js</a></td>
287
287
  <td data-value="98.78" class="pic high">
@@ -333,13 +333,13 @@
333
333
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
334
334
  </td>
335
335
  <td data-value="100" class="pct high">100%</td>
336
- <td data-value="23" class="abs high">23/23</td>
336
+ <td data-value="21" class="abs high">21/21</td>
337
337
  <td data-value="50" class="pct medium">50%</td>
338
338
  <td data-value="2" class="abs medium">1/2</td>
339
339
  <td data-value="100" class="pct high">100%</td>
340
340
  <td data-value="4" class="abs high">4/4</td>
341
341
  <td data-value="100" class="pct high">100%</td>
342
- <td data-value="23" class="abs high">23/23</td>
342
+ <td data-value="21" class="abs high">21/21</td>
343
343
  </tr>
344
344
 
345
345
  <tr>
@@ -374,32 +374,32 @@
374
374
 
375
375
  <tr>
376
376
  <td class="file low" data-value="user.js"><a href="user.js.html">user.js</a></td>
377
- <td data-value="32.5" class="pic low">
378
- <div class="chart"><div class="cover-fill" style="width: 32%"></div><div class="cover-empty" style="width: 68%"></div></div>
377
+ <td data-value="31.4" class="pic low">
378
+ <div class="chart"><div class="cover-fill" style="width: 31%"></div><div class="cover-empty" style="width: 69%"></div></div>
379
379
  </td>
380
- <td data-value="32.5" class="pct low">32.5%</td>
381
- <td data-value="120" class="abs low">39/120</td>
380
+ <td data-value="31.4" class="pct low">31.4%</td>
381
+ <td data-value="121" class="abs low">38/121</td>
382
382
  <td data-value="0" class="pct low">0%</td>
383
383
  <td data-value="37" class="abs low">0/37</td>
384
- <td data-value="31.25" class="pct low">31.25%</td>
385
- <td data-value="16" class="abs low">5/16</td>
386
- <td data-value="32.77" class="pct low">32.77%</td>
387
- <td data-value="119" class="abs low">39/119</td>
384
+ <td data-value="29.41" class="pct low">29.41%</td>
385
+ <td data-value="17" class="abs low">5/17</td>
386
+ <td data-value="31.66" class="pct low">31.66%</td>
387
+ <td data-value="120" class="abs low">38/120</td>
388
388
  </tr>
389
389
 
390
390
  <tr>
391
391
  <td class="file high" data-value="webhook.js"><a href="webhook.js.html">webhook.js</a></td>
392
- <td data-value="91.37" class="pic high">
392
+ <td data-value="91.66" class="pic high">
393
393
  <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
394
394
  </td>
395
- <td data-value="91.37" class="pct high">91.37%</td>
396
- <td data-value="58" class="abs high">53/58</td>
395
+ <td data-value="91.66" class="pct high">91.66%</td>
396
+ <td data-value="60" class="abs high">55/60</td>
397
397
  <td data-value="40" class="pct low">40%</td>
398
398
  <td data-value="10" class="abs low">4/10</td>
399
399
  <td data-value="100" class="pct high">100%</td>
400
400
  <td data-value="7" class="abs high">7/7</td>
401
- <td data-value="91.22" class="pct high">91.22%</td>
402
- <td data-value="57" class="abs high">52/57</td>
401
+ <td data-value="91.52" class="pct high">91.52%</td>
402
+ <td data-value="59" class="abs high">54/59</td>
403
403
  </tr>
404
404
 
405
405
  </tbody>
@@ -410,7 +410,7 @@
410
410
  <div class='footer quiet pad2 space-top1 center small'>
411
411
  Code coverage generated by
412
412
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
413
- at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
413
+ at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
414
414
  </div>
415
415
  </div>
416
416
  <script src="../../prettify.js"></script>
@@ -100,7 +100,7 @@ exports.find = async function (ctx) {
100
100
  <div class='footer quiet pad2 space-top1 center small'>
101
101
  Code coverage generated by
102
102
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
103
- at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
103
+ at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
104
104
  </div>
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
@@ -111,11 +111,11 @@
111
111
  <a name='L52'></a><a href='#L52'>52</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
112
112
  <span class="cline-any cline-neutral">&nbsp;</span>
113
113
  <span class="cline-any cline-neutral">&nbsp;</span>
114
- <span class="cline-any cline-yes">33x</span>
115
- <span class="cline-any cline-yes">33x</span>
116
- <span class="cline-any cline-yes">33x</span>
114
+ <span class="cline-any cline-yes">38x</span>
115
+ <span class="cline-any cline-yes">38x</span>
116
+ <span class="cline-any cline-yes">38x</span>
117
117
  <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-yes">33x</span>
118
+ <span class="cline-any cline-yes">38x</span>
119
119
  <span class="cline-any cline-yes">5x</span>
120
120
  <span class="cline-any cline-yes">5x</span>
121
121
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -135,7 +135,7 @@
135
135
  <span class="cline-any cline-yes">5x</span>
136
136
  <span class="cline-any cline-neutral">&nbsp;</span>
137
137
  <span class="cline-any cline-neutral">&nbsp;</span>
138
- <span class="cline-any cline-yes">33x</span>
138
+ <span class="cline-any cline-yes">38x</span>
139
139
  <span class="cline-any cline-yes">1x</span>
140
140
  <span class="cline-any cline-yes">1x</span>
141
141
  <span class="cline-any cline-yes">1x</span>
@@ -163,11 +163,11 @@
163
163
  EMPTY_LAYOUT,
164
164
  BASE_LAYOUT_PROP_IDS,
165
165
  } = require("../../constants/layouts")
166
- const CouchDB = require("../../db")
167
166
  const { generateLayoutID, getScreenParams } = require("../../db/utils")
167
+ const { getAppDB } = require("@budibase/backend-core/context")
168
168
  &nbsp;
169
169
  exports.save = async function (ctx) {
170
- const db = new CouchDB(ctx.appId)
170
+ const db = getAppDB()
171
171
  let layout = ctx.request.body
172
172
  &nbsp;
173
173
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!layout.props) {
@@ -187,7 +187,7 @@ exports.save = async function (ctx) {
187
187
  }
188
188
  &nbsp;
189
189
  exports.destroy = async function (ctx) {
190
- const db = new CouchDB(ctx.appId)
190
+ const db = getAppDB()
191
191
  const layoutId = ctx.params.layoutId,
192
192
  layoutRev = ctx.params.layoutRev
193
193
  &nbsp;
@@ -217,7 +217,7 @@ exports.destroy = async function (ctx) {
217
217
  <div class='footer quiet pad2 space-top1 center small'>
218
218
  Code coverage generated by
219
219
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
220
- at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
220
+ at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
221
221
  </div>
222
222
  </div>
223
223
  <script src="../../prettify.js"></script>
@@ -98,12 +98,7 @@
98
98
  <a name='L39'></a><a href='#L39'>39</a>
99
99
  <a name='L40'></a><a href='#L40'>40</a>
100
100
  <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a>
104
- <a name='L45'></a><a href='#L45'>45</a>
105
- <a name='L46'></a><a href='#L46'>46</a>
106
- <a name='L47'></a><a href='#L47'>47</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
101
+ <a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
107
102
  <span class="cline-any cline-yes">23x</span>
108
103
  <span class="cline-any cline-yes">23x</span>
109
104
  <span class="cline-any cline-yes">23x</span>
@@ -122,11 +117,6 @@
122
117
  <span class="cline-any cline-yes">1x</span>
123
118
  <span class="cline-any cline-neutral">&nbsp;</span>
124
119
  <span class="cline-any cline-neutral">&nbsp;</span>
125
- <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-neutral">&nbsp;</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
120
  <span class="cline-any cline-yes">23x</span>
131
121
  <span class="cline-any cline-yes">1x</span>
132
122
  <span class="cline-any cline-yes">1x</span>
@@ -150,9 +140,9 @@
150
140
  <span class="cline-any cline-neutral">&nbsp;</span>
151
141
  <span class="cline-any cline-neutral">&nbsp;</span>
152
142
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { MetadataTypes } = require("../../constants")
153
- const CouchDB = require("../../db")
154
143
  const { generateMetadataID } = require("../../db/utils")
155
144
  const { saveEntityMetadata, deleteEntityMetadata } = require("../../utilities")
145
+ const { getAppDB } = require("@budibase/backend-core/context")
156
146
  &nbsp;
157
147
  exports.getTypes = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
158
148
  <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
@@ -165,17 +155,12 @@ exports.saveMetadata = async ctx =&gt; {
165
155
  <span class="missing-if-branch" title="if path not taken" >I</span>if (type === MetadataTypes.AUTOMATION_TEST_HISTORY) {
166
156
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot save automation history type")</span>
167
157
  }
168
- ctx.body = await saveEntityMetadata(
169
- ctx.appId,
170
- type,
171
- entityId,
172
- ctx.request.body
173
- )
158
+ ctx.body = await saveEntityMetadata(type, entityId, ctx.request.body)
174
159
  }
175
160
  &nbsp;
176
161
  exports.deleteMetadata = async ctx =&gt; {
177
162
  const { type, entityId } = ctx.params
178
- await deleteEntityMetadata(ctx.appId, type, entityId)
163
+ await deleteEntityMetadata(type, entityId)
179
164
  ctx.body = {
180
165
  message: "Metadata deleted successfully",
181
166
  }
@@ -183,7 +168,7 @@ exports.deleteMetadata = async ctx =&gt; {
183
168
  &nbsp;
184
169
  exports.getMetadata = async ctx =&gt; {
185
170
  const { type, entityId } = ctx.params
186
- const db = new CouchDB(ctx.appId)
171
+ const db = getAppDB()
187
172
  const id = generateMetadataID(type, entityId)
188
173
  try {
189
174
  ctx.body = await db.get(id)
@@ -202,7 +187,7 @@ exports.getMetadata = async ctx =&gt; {
202
187
  <div class='footer quiet pad2 space-top1 center small'>
203
188
  Code coverage generated by
204
189
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
205
- at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
190
+ at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
206
191
  </div>
207
192
  </div>
208
193
  <script src="../../prettify.js"></script>
@@ -0,0 +1,119 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for api/controllers/migrations.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../prettify.css" />
9
+ <link rel="stylesheet" href="../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">api/controllers</a> migrations.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">37.5% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>3/8</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">100% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/0</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/2</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">37.5% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>3/8</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ </div>
58
+ <div class='status-line low'></div>
59
+ <pre><table class="coverage">
60
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
+ <a name='L2'></a><a href='#L2'>2</a>
62
+ <a name='L3'></a><a href='#L3'>3</a>
63
+ <a name='L4'></a><a href='#L4'>4</a>
64
+ <a name='L5'></a><a href='#L5'>5</a>
65
+ <a name='L6'></a><a href='#L6'>6</a>
66
+ <a name='L7'></a><a href='#L7'>7</a>
67
+ <a name='L8'></a><a href='#L8'>8</a>
68
+ <a name='L9'></a><a href='#L9'>9</a>
69
+ <a name='L10'></a><a href='#L10'>10</a>
70
+ <a name='L11'></a><a href='#L11'>11</a>
71
+ <a name='L12'></a><a href='#L12'>12</a>
72
+ <a name='L13'></a><a href='#L13'>13</a>
73
+ <a name='L14'></a><a href='#L14'>14</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
74
+ <span class="cline-any cline-neutral">&nbsp;</span>
75
+ <span class="cline-any cline-yes">23x</span>
76
+ <span class="cline-any cline-no">&nbsp;</span>
77
+ <span class="cline-any cline-neutral">&nbsp;</span>
78
+ <span class="cline-any cline-no">&nbsp;</span>
79
+ <span class="cline-any cline-no">&nbsp;</span>
80
+ <span class="cline-any cline-neutral">&nbsp;</span>
81
+ <span class="cline-any cline-neutral">&nbsp;</span>
82
+ <span class="cline-any cline-yes">23x</span>
83
+ <span class="cline-any cline-no">&nbsp;</span>
84
+ <span class="cline-any cline-no">&nbsp;</span>
85
+ <span class="cline-any cline-neutral">&nbsp;</span>
86
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { migrate, MIGRATIONS } = require("../../migrations")
87
+ &nbsp;
88
+ exports.migrate = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
89
+ const options = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
90
+ // don't await as can take a while, just return
91
+ <span class="cstat-no" title="statement not covered" > migrate(options)</span>
92
+ <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
93
+ }
94
+ &nbsp;
95
+ exports.fetchDefinitions = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
96
+ <span class="cstat-no" title="statement not covered" > ctx.body = MIGRATIONS</span>
97
+ <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
98
+ }
99
+ &nbsp;</pre></td></tr></table></pre>
100
+
101
+ <div class='push'></div><!-- for sticky footer -->
102
+ </div><!-- /wrapper -->
103
+ <div class='footer quiet pad2 space-top1 center small'>
104
+ Code coverage generated by
105
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
106
+ at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
107
+ </div>
108
+ </div>
109
+ <script src="../../prettify.js"></script>
110
+ <script>
111
+ window.onload = function () {
112
+ prettyPrint();
113
+ };
114
+ </script>
115
+ <script src="../../sorter.js"></script>
116
+ <script src="../../block-navigation.js"></script>
117
+ </body>
118
+ </html>
119
+