@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,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.55% </span>
26
+ <span class="strong">95.65% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>43/45</span>
28
+ <span class='fraction'>44/46</span>
29
29
  </div>
30
30
 
31
31
 
@@ -39,14 +39,14 @@
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>7/7</span>
42
+ <span class='fraction'>8/8</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.55% </span>
47
+ <span class="strong">95.65% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>43/45</span>
49
+ <span class='fraction'>44/46</span>
50
50
  </div>
51
51
 
52
52
 
@@ -168,20 +168,22 @@
168
168
  <a name='L109'></a><a href='#L109'>109</a>
169
169
  <a name='L110'></a><a href='#L110'>110</a>
170
170
  <a name='L111'></a><a href='#L111'>111</a>
171
- <a name='L112'></a><a href='#L112'>112</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
172
- <span class="cline-any cline-yes">33x</span>
173
- <span class="cline-any cline-yes">33x</span>
174
- <span class="cline-any cline-yes">33x</span>
175
- <span class="cline-any cline-yes">33x</span>
176
- <span class="cline-any cline-yes">33x</span>
171
+ <a name='L112'></a><a href='#L112'>112</a>
172
+ <a name='L113'></a><a href='#L113'>113</a>
173
+ <a name='L114'></a><a href='#L114'>114</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
174
+ <span class="cline-any cline-yes">38x</span>
175
+ <span class="cline-any cline-yes">38x</span>
176
+ <span class="cline-any cline-yes">38x</span>
177
+ <span class="cline-any cline-yes">38x</span>
177
178
  <span class="cline-any cline-neutral">&nbsp;</span>
178
- <span class="cline-any cline-yes">33x</span>
179
- <span class="cline-any cline-yes">33x</span>
180
- <span class="cline-any cline-yes">33x</span>
181
- <span class="cline-any cline-yes">33x</span>
179
+ <span class="cline-any cline-yes">38x</span>
180
+ <span class="cline-any cline-yes">38x</span>
181
+ <span class="cline-any cline-yes">38x</span>
182
+ <span class="cline-any cline-yes">38x</span>
183
+ <span class="cline-any cline-yes">38x</span>
182
184
  <span class="cline-any cline-neutral">&nbsp;</span>
183
- <span class="cline-any cline-yes">33x</span>
184
- <span class="cline-any cline-yes">33x</span>
185
+ <span class="cline-any cline-yes">38x</span>
186
+ <span class="cline-any cline-yes">38x</span>
185
187
  <span class="cline-any cline-neutral">&nbsp;</span>
186
188
  <span class="cline-any cline-neutral">&nbsp;</span>
187
189
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -193,6 +195,7 @@
193
195
  <span class="cline-any cline-neutral">&nbsp;</span>
194
196
  <span class="cline-any cline-yes">16x</span>
195
197
  <span class="cline-any cline-yes">16x</span>
198
+ <span class="cline-any cline-yes">16x</span>
196
199
  <span class="cline-any cline-neutral">&nbsp;</span>
197
200
  <span class="cline-any cline-neutral">&nbsp;</span>
198
201
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -226,7 +229,8 @@
226
229
  <span class="cline-any cline-neutral">&nbsp;</span>
227
230
  <span class="cline-any cline-neutral">&nbsp;</span>
228
231
  <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-yes">33x</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-yes">38x</span>
230
234
  <span class="cline-any cline-neutral">&nbsp;</span>
231
235
  <span class="cline-any cline-neutral">&nbsp;</span>
232
236
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -234,7 +238,7 @@
234
238
  <span class="cline-any cline-yes">8x</span>
235
239
  <span class="cline-any cline-neutral">&nbsp;</span>
236
240
  <span class="cline-any cline-neutral">&nbsp;</span>
237
- <span class="cline-any cline-yes">33x</span>
241
+ <span class="cline-any cline-yes">38x</span>
238
242
  <span class="cline-any cline-neutral">&nbsp;</span>
239
243
  <span class="cline-any cline-neutral">&nbsp;</span>
240
244
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -242,7 +246,7 @@
242
246
  <span class="cline-any cline-yes">3x</span>
243
247
  <span class="cline-any cline-neutral">&nbsp;</span>
244
248
  <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-yes">33x</span>
249
+ <span class="cline-any cline-yes">38x</span>
246
250
  <span class="cline-any cline-neutral">&nbsp;</span>
247
251
  <span class="cline-any cline-neutral">&nbsp;</span>
248
252
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -250,7 +254,7 @@
250
254
  <span class="cline-any cline-yes">5x</span>
251
255
  <span class="cline-any cline-neutral">&nbsp;</span>
252
256
  <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-yes">33x</span>
257
+ <span class="cline-any cline-yes">38x</span>
254
258
  <span class="cline-any cline-neutral">&nbsp;</span>
255
259
  <span class="cline-any cline-neutral">&nbsp;</span>
256
260
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -278,9 +282,8 @@
278
282
  <span class="cline-any cline-neutral">&nbsp;</span>
279
283
  <span class="cline-any cline-neutral">&nbsp;</span>
280
284
  <span class="cline-any cline-neutral">&nbsp;</span>
281
- <span class="cline-any cline-yes">33x</span>
282
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../db")
283
- const emitter = require("../events/index")
285
+ <span class="cline-any cline-yes">38x</span>
286
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const emitter = require("../events/index")
284
287
  const { getAutomationParams } = require("../db/utils")
285
288
  const { coerce } = require("../utilities/rowProcessor")
286
289
  const { definitions } = require("./triggerInfo")
@@ -290,6 +293,7 @@ const { queue } = require("./bullboard")
290
293
  const { checkTestFlag } = require("../utilities/redis")
291
294
  const utils = require("./utils")
292
295
  const env = require("../environment")
296
+ const { doInAppContext, getAppDB } = require("@budibase/backend-core/context")
293
297
  &nbsp;
294
298
  const TRIGGER_DEFINITIONS = definitions
295
299
  const JOB_OPTS = {
@@ -302,39 +306,41 @@ async function queueRelevantRowAutomations(event, eventType) {
302
306
  <span class="cstat-no" title="statement not covered" > throw `No appId specified for ${eventType} - check event emitters.`</span>
303
307
  }
304
308
  &nbsp;
305
- const db = new CouchDB(event.appId)
306
- let automations = await db.allDocs(
307
- getAutomationParams(null, { include_docs: true })
308
- )
309
+ doInAppContext(event.appId, async () =&gt; {
310
+ const db = getAppDB()
311
+ let automations = await db.allDocs(
312
+ getAutomationParams(null, { include_docs: true })
313
+ )
309
314
  &nbsp;
310
- // filter down to the correct event type
311
- automations = automations.rows
312
- .map(automation =&gt; automation.doc)
313
- .filter(automation =&gt; {
314
- const trigger = automation.definition.trigger
315
- return trigger &amp;&amp; trigger.event === eventType
316
- })
315
+ // filter down to the correct event type
316
+ automations = automations.rows
317
+ .map(automation =&gt; automation.doc)
318
+ .filter(automation =&gt; {
319
+ const trigger = automation.definition.trigger
320
+ return trigger &amp;&amp; trigger.event === eventType
321
+ })
317
322
  &nbsp;
318
- for (let automation of automations) {
319
- let automationDef = automation.definition
320
- let automationTrigger = automationDef ? automationDef.trigger : <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
321
- // don't queue events which are for dev apps, only way to test automations is
322
- // running tests on them, in production the test flag will never
323
- // be checked due to lazy evaluation (first always false)
324
- <span class="missing-if-branch" title="if path not taken" >I</span>if (
325
- !env.ALLOW_DEV_AUTOMATIONS &amp;&amp;
326
- isDevAppID(event.appId) &amp;&amp;
327
- !(await checkTestFlag(automation._id))
328
- ) {
329
- <span class="cstat-no" title="statement not covered" > continue</span>
323
+ for (let automation of automations) {
324
+ let automationDef = automation.definition
325
+ let automationTrigger = automationDef ? automationDef.trigger : <span class="branch-1 cbranch-no" title="branch not covered" >{}</span>
326
+ // don't queue events which are for dev apps, only way to test automations is
327
+ // running tests on them, in production the test flag will never
328
+ // be checked due to lazy evaluation (first always false)
329
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (
330
+ !env.ALLOW_DEV_AUTOMATIONS &amp;&amp;
331
+ isDevAppID(event.appId) &amp;&amp;
332
+ !(await checkTestFlag(automation._id))
333
+ ) {
334
+ <span class="cstat-no" title="statement not covered" > continue</span>
335
+ }
336
+ if (
337
+ automationTrigger.inputs &amp;&amp;
338
+ automationTrigger.inputs.tableId === event.row.tableId
339
+ ) {
340
+ await queue.add({ automation, event }, JOB_OPTS)
341
+ }
330
342
  }
331
- if (
332
- automationTrigger.inputs &amp;&amp;
333
- automationTrigger.inputs.tableId === event.row.tableId
334
- ) {
335
- await queue.add({ automation, event }, JOB_OPTS)
336
- }
337
- }
343
+ })
338
344
  }
339
345
  &nbsp;
340
346
  emitter.on("row:save", async function (event) {
@@ -397,7 +403,7 @@ exports.TRIGGER_DEFINITIONS = TRIGGER_DEFINITIONS
397
403
  <div class='footer quiet pad2 space-top1 center small'>
398
404
  Code coverage generated by
399
405
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
400
- at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
406
+ at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
401
407
  </div>
402
408
  </div>
403
409
  <script src="../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">81.08% </span>
26
+ <span class="strong">81.57% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>60/74</span>
28
+ <span class='fraction'>62/76</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">81.08% </span>
47
+ <span class="strong">81.57% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>60/74</span>
49
+ <span class='fraction'>62/76</span>
50
50
  </div>
51
51
 
52
52
 
@@ -242,22 +242,27 @@
242
242
  <a name='L183'></a><a href='#L183'>183</a>
243
243
  <a name='L184'></a><a href='#L184'>184</a>
244
244
  <a name='L185'></a><a href='#L185'>185</a>
245
- <a name='L186'></a><a href='#L186'>186</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
246
- <span class="cline-any cline-yes">33x</span>
247
- <span class="cline-any cline-yes">33x</span>
248
- <span class="cline-any cline-yes">33x</span>
249
- <span class="cline-any cline-yes">33x</span>
250
- <span class="cline-any cline-yes">33x</span>
251
- <span class="cline-any cline-yes">33x</span>
252
- <span class="cline-any cline-yes">33x</span>
253
- <span class="cline-any cline-yes">33x</span>
254
- <span class="cline-any cline-yes">33x</span>
255
- <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-yes">33x</span>
257
- <span class="cline-any cline-yes">33x</span>
258
- <span class="cline-any cline-yes">33x</span>
259
- <span class="cline-any cline-neutral">&nbsp;</span>
260
- <span class="cline-any cline-yes">33x</span>
245
+ <a name='L186'></a><a href='#L186'>186</a>
246
+ <a name='L187'></a><a href='#L187'>187</a>
247
+ <a name='L188'></a><a href='#L188'>188</a>
248
+ <a name='L189'></a><a href='#L189'>189</a>
249
+ <a name='L190'></a><a href='#L190'>190</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
250
+ <span class="cline-any cline-yes">38x</span>
251
+ <span class="cline-any cline-yes">38x</span>
252
+ <span class="cline-any cline-yes">38x</span>
253
+ <span class="cline-any cline-yes">38x</span>
254
+ <span class="cline-any cline-yes">38x</span>
255
+ <span class="cline-any cline-yes">38x</span>
256
+ <span class="cline-any cline-yes">38x</span>
257
+ <span class="cline-any cline-yes">38x</span>
258
+ <span class="cline-any cline-yes">38x</span>
259
+ <span class="cline-any cline-yes">38x</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
261
+ <span class="cline-any cline-yes">38x</span>
262
+ <span class="cline-any cline-yes">38x</span>
263
+ <span class="cline-any cline-yes">38x</span>
264
+ <span class="cline-any cline-neutral">&nbsp;</span>
265
+ <span class="cline-any cline-yes">38x</span>
261
266
  <span class="cline-any cline-yes">10x</span>
262
267
  <span class="cline-any cline-neutral">&nbsp;</span>
263
268
  <span class="cline-any cline-yes">10x</span>
@@ -269,12 +274,11 @@
269
274
  <span class="cline-any cline-neutral">&nbsp;</span>
270
275
  <span class="cline-any cline-neutral">&nbsp;</span>
271
276
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">33x</span>
277
+ <span class="cline-any cline-yes">38x</span>
273
278
  <span class="cline-any cline-yes">2x</span>
274
279
  <span class="cline-any cline-neutral">&nbsp;</span>
275
280
  <span class="cline-any cline-neutral">&nbsp;</span>
276
281
  <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
282
  <span class="cline-any cline-yes">2x</span>
279
283
  <span class="cline-any cline-no">&nbsp;</span>
280
284
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -287,27 +291,27 @@
287
291
  <span class="cline-any cline-neutral">&nbsp;</span>
288
292
  <span class="cline-any cline-neutral">&nbsp;</span>
289
293
  <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-yes">33x</span>
291
- <span class="cline-any cline-yes">66x</span>
292
- <span class="cline-any cline-yes">66x</span>
293
- <span class="cline-any cline-yes">726x</span>
294
- <span class="cline-any cline-yes">33x</span>
294
+ <span class="cline-any cline-yes">38x</span>
295
+ <span class="cline-any cline-yes">76x</span>
296
+ <span class="cline-any cline-yes">76x</span>
297
+ <span class="cline-any cline-yes">836x</span>
298
+ <span class="cline-any cline-yes">38x</span>
295
299
  <span class="cline-any cline-neutral">&nbsp;</span>
296
300
  <span class="cline-any cline-neutral">&nbsp;</span>
297
- <span class="cline-any cline-yes">66x</span>
301
+ <span class="cline-any cline-yes">76x</span>
298
302
  <span class="cline-any cline-neutral">&nbsp;</span>
299
303
  <span class="cline-any cline-neutral">&nbsp;</span>
300
304
  <span class="cline-any cline-neutral">&nbsp;</span>
301
- <span class="cline-any cline-yes">33x</span>
302
- <span class="cline-any cline-yes">192x</span>
303
- <span class="cline-any cline-yes">192x</span>
304
- <span class="cline-any cline-yes">192x</span>
305
+ <span class="cline-any cline-yes">38x</span>
306
+ <span class="cline-any cline-yes">202x</span>
307
+ <span class="cline-any cline-yes">202x</span>
308
+ <span class="cline-any cline-yes">202x</span>
305
309
  <span class="cline-any cline-no">&nbsp;</span>
306
310
  <span class="cline-any cline-no">&nbsp;</span>
307
311
  <span class="cline-any cline-no">&nbsp;</span>
308
312
  <span class="cline-any cline-neutral">&nbsp;</span>
309
313
  <span class="cline-any cline-neutral">&nbsp;</span>
310
- <span class="cline-any cline-yes">192x</span>
314
+ <span class="cline-any cline-yes">202x</span>
311
315
  <span class="cline-any cline-neutral">&nbsp;</span>
312
316
  <span class="cline-any cline-neutral">&nbsp;</span>
313
317
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -315,7 +319,7 @@
315
319
  <span class="cline-any cline-neutral">&nbsp;</span>
316
320
  <span class="cline-any cline-neutral">&nbsp;</span>
317
321
  <span class="cline-any cline-neutral">&nbsp;</span>
318
- <span class="cline-any cline-yes">33x</span>
322
+ <span class="cline-any cline-yes">38x</span>
319
323
  <span class="cline-any cline-yes">1x</span>
320
324
  <span class="cline-any cline-neutral">&nbsp;</span>
321
325
  <span class="cline-any cline-yes">1x</span>
@@ -337,6 +341,9 @@
337
341
  <span class="cline-any cline-neutral">&nbsp;</span>
338
342
  <span class="cline-any cline-neutral">&nbsp;</span>
339
343
  <span class="cline-any cline-no">&nbsp;</span>
344
+ <span class="cline-any cline-neutral">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
340
347
  <span class="cline-any cline-no">&nbsp;</span>
341
348
  <span class="cline-any cline-no">&nbsp;</span>
342
349
  <span class="cline-any cline-no">&nbsp;</span>
@@ -353,7 +360,8 @@
353
360
  <span class="cline-any cline-neutral">&nbsp;</span>
354
361
  <span class="cline-any cline-neutral">&nbsp;</span>
355
362
  <span class="cline-any cline-neutral">&nbsp;</span>
356
- <span class="cline-any cline-yes">33x</span>
363
+ <span class="cline-any cline-yes">38x</span>
364
+ <span class="cline-any cline-yes">23x</span>
357
365
  <span class="cline-any cline-yes">23x</span>
358
366
  <span class="cline-any cline-yes">23x</span>
359
367
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -424,7 +432,7 @@
424
432
  <span class="cline-any cline-neutral">&nbsp;</span>
425
433
  <span class="cline-any cline-neutral">&nbsp;</span>
426
434
  <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-yes">33x</span>
435
+ <span class="cline-any cline-yes">38x</span>
428
436
  <span class="cline-any cline-no">&nbsp;</span>
429
437
  <span class="cline-any cline-neutral">&nbsp;</span>
430
438
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { Thread, ThreadType } = require("../threads")
@@ -435,8 +443,9 @@ const { queue } = require("./bullboard")
435
443
  const newid = require("../db/newid")
436
444
  const { updateEntityMetadata } = require("../utilities")
437
445
  const { MetadataTypes } = require("../constants")
438
- const { getDeployedAppID } = require("@budibase/backend-core/db")
446
+ const { getProdAppID } = require("@budibase/backend-core/db")
439
447
  const { cloneDeep } = require("lodash/fp")
448
+ const { getAppDB, getAppId } = require("@budibase/backend-core/context")
440
449
  &nbsp;
441
450
  const WH_STEP_ID = definitions.WEBHOOK.stepId
442
451
  const CRON_STEP_ID = definitions.CRON.stepId
@@ -456,7 +465,6 @@ exports.processEvent = async job =&gt; {
456
465
  &nbsp;
457
466
  exports.updateTestHistory = async (appId, automation, history) =&gt; {
458
467
  return updateEntityMetadata(
459
- appId,
460
468
  MetadataTypes.AUTOMATION_TEST_HISTORY,
461
469
  automation._id,
462
470
  metadata =&gt; {
@@ -522,6 +530,9 @@ exports.enableCronTrigger = async (appId, automation) =&gt; {
522
530
  )
523
531
  // Assign cron job ID from bull so we can remove it later if the cron trigger is removed
524
532
  <span class="cstat-no" title="statement not covered" > trigger.cronJobId = job.id</span>
533
+ // can't use getAppDB here as this is likely to be called from dev app,
534
+ // but this call could be for dev app or prod app, need to just use what
535
+ // was passed in
525
536
  const db = <span class="cstat-no" title="statement not covered" >new CouchDB(appId)</span>
526
537
  const response = <span class="cstat-no" title="statement not covered" >await db.put(automation)</span>
527
538
  <span class="cstat-no" title="statement not covered" > automation._id = response.id</span>
@@ -538,7 +549,8 @@ exports.enableCronTrigger = async (appId, automation) =&gt; {
538
549
  * @returns {Promise&lt;object|undefined&gt;} After this is complete the new automation object may have been updated and should be
539
550
  * written to DB (this does not write to DB as it would be wasteful to repeat).
540
551
  */
541
- exports.checkForWebhooks = async ({ appId, oldAuto, newAuto }) =&gt; {
552
+ exports.checkForWebhooks = async ({ oldAuto, newAuto }) =&gt; {
553
+ const appId = getAppId()
542
554
  const oldTrigger = oldAuto ? oldAuto.definition.trigger : null
543
555
  const newTrigger = newAuto ? newAuto.definition.trigger : null
544
556
  const triggerChanged =
@@ -557,7 +569,7 @@ exports.checkForWebhooks = async ({ appId, oldAuto, newAuto }) =&gt; {
557
569
  oldTrigger.webhookId
558
570
  ) {
559
571
  try {
560
- let db = new CouchDB(appId)
572
+ let db = getAppDB()
561
573
  // need to get the webhook to get the rev
562
574
  const webhook = await db.get(oldTrigger.webhookId)
563
575
  const ctx = {
@@ -595,7 +607,7 @@ exports.checkForWebhooks = async ({ appId, oldAuto, newAuto }) =&gt; {
595
607
  // the app ID has to be development for this endpoint
596
608
  // it can only be used when building the app
597
609
  // but the trigger endpoint will always be used in production
598
- const prodAppId = getDeployedAppID(appId)
610
+ const prodAppId = getProdAppID(appId)
599
611
  newTrigger.inputs = {
600
612
  schemaUrl: `api/webhooks/schema/${appId}/${id}`,
601
613
  triggerUrl: `api/webhooks/trigger/${prodAppId}/${id}`,
@@ -619,7 +631,7 @@ exports.cleanupAutomations = <span class="fstat-no" title="function not covered"
619
631
  <div class='footer quiet pad2 space-top1 center small'>
620
632
  Code coverage generated by
621
633
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
622
- at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
634
+ at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
623
635
  </div>
624
636
  </div>
625
637
  <script src="../prettify.js"></script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>31/31</span>
28
+ <span class='fraction'>33/33</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>30/30</span>
49
+ <span class='fraction'>32/32</span>
50
50
  </div>
51
51
 
52
52
 
@@ -78,13 +78,13 @@
78
78
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
79
  </td>
80
80
  <td data-value="100" class="pct high">100%</td>
81
- <td data-value="23" class="abs high">23/23</td>
81
+ <td data-value="25" class="abs high">25/25</td>
82
82
  <td data-value="50" class="pct medium">50%</td>
83
83
  <td data-value="2" class="abs medium">1/2</td>
84
84
  <td data-value="100" class="pct high">100%</td>
85
85
  <td data-value="1" class="abs high">1/1</td>
86
86
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="23" class="abs high">23/23</td>
87
+ <td data-value="25" class="abs high">25/25</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Fri Feb 04 2022 12:19:28 GMT+0000 (Coordinated Universal Time)
128
+ at Mon Feb 07 2022 20:42:11 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../prettify.js"></script>