@budibase/server 2.1.22-alpha.6 → 2.1.22-alpha.8

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 (419) hide show
  1. package/__mocks__/node-fetch.ts +5 -1
  2. package/builder/assets/{index.5ec5f06c.js → index.dba40c82.js} +2 -2
  3. package/builder/index.html +1 -1
  4. package/coverage/clover.xml +1182 -1209
  5. package/coverage/coverage-final.json +35 -35
  6. package/coverage/lcov-report/index.html +94 -94
  7. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
  8. package/coverage/lcov-report/src/api/controllers/apikeys.js.html +1 -1
  9. package/coverage/lcov-report/src/api/controllers/application.ts.html +45 -60
  10. package/coverage/lcov-report/src/api/controllers/auth.ts.html +7 -4
  11. package/coverage/lcov-report/src/api/controllers/automation.js.html +1 -1
  12. package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
  13. package/coverage/lcov-report/src/api/controllers/cloud.js.html +1 -1
  14. package/coverage/lcov-report/src/api/controllers/component.ts.html +1 -1
  15. package/coverage/lcov-report/src/api/controllers/datasource.js.html +1 -1
  16. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.js.html +1 -1
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.html +10 -10
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +19 -55
  19. package/coverage/lcov-report/src/api/controllers/{dev.js.html → dev.ts.html} +46 -64
  20. package/coverage/lcov-report/src/api/controllers/index.html +25 -25
  21. package/coverage/lcov-report/src/api/controllers/integration.js.html +1 -1
  22. package/coverage/lcov-report/src/api/controllers/layout.js.html +1 -1
  23. package/coverage/lcov-report/src/api/controllers/metadata.js.html +1 -1
  24. package/coverage/lcov-report/src/api/controllers/migrations.js.html +1 -1
  25. package/coverage/lcov-report/src/api/controllers/permission.js.html +1 -1
  26. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +1 -1
  27. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +1 -1
  28. package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +1 -1
  30. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +1 -1
  31. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +1 -1
  32. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +1 -1
  33. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +1 -1
  34. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +37 -19
  35. package/coverage/lcov-report/src/api/controllers/public/index.html +16 -16
  36. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +1 -1
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +1 -1
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +1 -1
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +1 -1
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +1 -1
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +1 -1
  43. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +1 -1
  44. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +1 -1
  45. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +1 -1
  46. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +1 -1
  47. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +1 -1
  48. package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +1 -1
  50. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +1 -1
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +1 -1
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +1 -1
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +1 -1
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +1 -1
  57. package/coverage/lcov-report/src/api/controllers/query/index.html +10 -10
  58. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +17 -26
  59. package/coverage/lcov-report/src/api/controllers/query/validation.js.html +1 -1
  60. package/coverage/lcov-report/src/api/controllers/role.js.html +1 -1
  61. package/coverage/lcov-report/src/api/controllers/routing.js.html +1 -1
  62. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +1 -1
  63. package/coverage/lcov-report/src/api/controllers/row/external.js.html +1 -1
  64. package/coverage/lcov-report/src/api/controllers/row/index.html +1 -1
  65. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +1 -1
  66. package/coverage/lcov-report/src/api/controllers/row/internal.js.html +3 -3
  67. package/coverage/lcov-report/src/api/controllers/row/internalSearch.js.html +1 -1
  68. package/coverage/lcov-report/src/api/controllers/row/staticFormula.js.html +1 -1
  69. package/coverage/lcov-report/src/api/controllers/row/utils.js.html +1 -1
  70. package/coverage/lcov-report/src/api/controllers/screen.ts.html +1 -1
  71. package/coverage/lcov-report/src/api/controllers/script.js.html +1 -1
  72. package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
  73. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +1 -1
  74. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.js.html +1 -1
  75. package/coverage/lcov-report/src/api/controllers/table/external.js.html +1 -1
  76. package/coverage/lcov-report/src/api/controllers/table/index.html +1 -1
  77. package/coverage/lcov-report/src/api/controllers/table/index.js.html +1 -1
  78. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +1 -1
  79. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1 -1
  80. package/coverage/lcov-report/src/api/controllers/templates.js.html +1 -1
  81. package/coverage/lcov-report/src/api/controllers/user.js.html +1 -1
  82. package/coverage/lcov-report/src/api/controllers/view/exporters.js.html +1 -1
  83. package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
  84. package/coverage/lcov-report/src/api/controllers/view/index.js.html +1 -1
  85. package/coverage/lcov-report/src/api/controllers/view/utils.js.html +1 -1
  86. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.js.html +1 -1
  87. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +1 -1
  88. package/coverage/lcov-report/src/api/index.html +1 -1
  89. package/coverage/lcov-report/src/api/index.js.html +1 -1
  90. package/coverage/lcov-report/src/api/routes/analytics.js.html +1 -1
  91. package/coverage/lcov-report/src/api/routes/apikeys.js.html +1 -1
  92. package/coverage/lcov-report/src/api/routes/application.ts.html +1 -1
  93. package/coverage/lcov-report/src/api/routes/auth.ts.html +1 -1
  94. package/coverage/lcov-report/src/api/routes/automation.js.html +5 -5
  95. package/coverage/lcov-report/src/api/routes/backup.ts.html +1 -1
  96. package/coverage/lcov-report/src/api/routes/cloud.js.html +1 -1
  97. package/coverage/lcov-report/src/api/routes/component.js.html +1 -1
  98. package/coverage/lcov-report/src/api/routes/datasource.js.html +6 -6
  99. package/coverage/lcov-report/src/api/routes/deploy.js.html +1 -1
  100. package/coverage/lcov-report/src/api/routes/dev.js.html +1 -1
  101. package/coverage/lcov-report/src/api/routes/index.html +1 -1
  102. package/coverage/lcov-report/src/api/routes/index.ts.html +1 -1
  103. package/coverage/lcov-report/src/api/routes/integration.js.html +1 -1
  104. package/coverage/lcov-report/src/api/routes/layout.js.html +1 -1
  105. package/coverage/lcov-report/src/api/routes/metadata.js.html +1 -1
  106. package/coverage/lcov-report/src/api/routes/migrations.js.html +1 -1
  107. package/coverage/lcov-report/src/api/routes/permission.js.html +1 -1
  108. package/coverage/lcov-report/src/api/routes/plugin.ts.html +1 -1
  109. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +1 -1
  110. package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
  111. package/coverage/lcov-report/src/api/routes/public/index.ts.html +11 -11
  112. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
  113. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +1 -1
  114. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +1 -1
  115. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +1 -1
  116. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +1 -1
  117. package/coverage/lcov-report/src/api/routes/public/users.ts.html +1 -1
  118. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +1 -1
  119. package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
  120. package/coverage/lcov-report/src/api/routes/query.js.html +6 -6
  121. package/coverage/lcov-report/src/api/routes/role.js.html +1 -1
  122. package/coverage/lcov-report/src/api/routes/routing.js.html +1 -1
  123. package/coverage/lcov-report/src/api/routes/row.ts.html +13 -13
  124. package/coverage/lcov-report/src/api/routes/screen.js.html +1 -1
  125. package/coverage/lcov-report/src/api/routes/script.js.html +1 -1
  126. package/coverage/lcov-report/src/api/routes/static.ts.html +6 -6
  127. package/coverage/lcov-report/src/api/routes/table.js.html +4 -4
  128. package/coverage/lcov-report/src/api/routes/templates.js.html +1 -1
  129. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +1 -1
  130. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
  131. package/coverage/lcov-report/src/api/routes/tests/utilities/index.js.html +1 -1
  132. package/coverage/lcov-report/src/api/routes/user.js.html +11 -11
  133. package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
  134. package/coverage/lcov-report/src/api/routes/utils/validators.js.html +6 -6
  135. package/coverage/lcov-report/src/api/routes/view.js.html +4 -4
  136. package/coverage/lcov-report/src/api/routes/webhook.ts.html +1 -1
  137. package/coverage/lcov-report/src/app.ts.html +1 -1
  138. package/coverage/lcov-report/src/automations/actions.js.html +1 -1
  139. package/coverage/lcov-report/src/automations/automationUtils.js.html +1 -1
  140. package/coverage/lcov-report/src/automations/bullboard.js.html +1 -1
  141. package/coverage/lcov-report/src/automations/index.html +15 -15
  142. package/coverage/lcov-report/src/automations/index.js.html +1 -1
  143. package/coverage/lcov-report/src/automations/logging/index.html +1 -1
  144. package/coverage/lcov-report/src/automations/logging/index.ts.html +1 -1
  145. package/coverage/lcov-report/src/automations/steps/bash.js.html +1 -1
  146. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +1 -1
  147. package/coverage/lcov-report/src/automations/steps/delay.js.html +1 -1
  148. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +1 -1
  149. package/coverage/lcov-report/src/automations/steps/discord.js.html +1 -1
  150. package/coverage/lcov-report/src/automations/steps/executeQuery.js.html +1 -1
  151. package/coverage/lcov-report/src/automations/steps/executeScript.js.html +1 -1
  152. package/coverage/lcov-report/src/automations/steps/filter.js.html +1 -1
  153. package/coverage/lcov-report/src/automations/steps/index.html +1 -1
  154. package/coverage/lcov-report/src/automations/steps/integromat.js.html +1 -1
  155. package/coverage/lcov-report/src/automations/steps/loop.js.html +1 -1
  156. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.js.html +1 -1
  157. package/coverage/lcov-report/src/automations/steps/queryRows.js.html +1 -1
  158. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.js.html +1 -1
  159. package/coverage/lcov-report/src/automations/steps/serverLog.js.html +1 -1
  160. package/coverage/lcov-report/src/automations/steps/slack.js.html +1 -1
  161. package/coverage/lcov-report/src/automations/steps/updateRow.js.html +1 -1
  162. package/coverage/lcov-report/src/automations/steps/utils.js.html +1 -1
  163. package/coverage/lcov-report/src/automations/steps/zapier.js.html +1 -1
  164. package/coverage/lcov-report/src/automations/tests/utilities/index.html +17 -17
  165. package/coverage/lcov-report/src/automations/tests/utilities/index.js.html +33 -15
  166. package/coverage/lcov-report/src/automations/triggerInfo/app.js.html +1 -1
  167. package/coverage/lcov-report/src/automations/triggerInfo/cron.js.html +1 -1
  168. package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
  169. package/coverage/lcov-report/src/automations/triggerInfo/index.js.html +1 -1
  170. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.js.html +1 -1
  171. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.js.html +1 -1
  172. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.js.html +1 -1
  173. package/coverage/lcov-report/src/automations/triggerInfo/webhook.js.html +1 -1
  174. package/coverage/lcov-report/src/automations/triggers.js.html +1 -1
  175. package/coverage/lcov-report/src/automations/utils.ts.html +20 -29
  176. package/coverage/lcov-report/src/constants/index.html +1 -1
  177. package/coverage/lcov-report/src/constants/index.js.html +1 -1
  178. package/coverage/lcov-report/src/constants/layouts.js.html +1 -1
  179. package/coverage/lcov-report/src/constants/screens.js.html +1 -1
  180. package/coverage/lcov-report/src/db/dynamoClient.js.html +1 -1
  181. package/coverage/lcov-report/src/db/inMemoryView.js.html +3 -3
  182. package/coverage/lcov-report/src/db/index.html +16 -16
  183. package/coverage/lcov-report/src/db/index.js.html +9 -9
  184. package/coverage/lcov-report/src/db/linkedRows/LinkController.js.html +1 -1
  185. package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
  186. package/coverage/lcov-report/src/db/linkedRows/index.js.html +1 -1
  187. package/coverage/lcov-report/src/db/linkedRows/linkUtils.js.html +1 -1
  188. package/coverage/lcov-report/src/db/newid.js.html +1 -1
  189. package/coverage/lcov-report/src/db/{utils.js.html → utils.ts.html} +97 -145
  190. package/coverage/lcov-report/src/definitions/automations.ts.html +1 -1
  191. package/coverage/lcov-report/src/definitions/datasource.ts.html +1 -1
  192. package/coverage/lcov-report/src/definitions/index.html +1 -1
  193. package/coverage/lcov-report/src/environment.js.html +4 -4
  194. package/coverage/lcov-report/src/events/AutomationEmitter.js.html +1 -1
  195. package/coverage/lcov-report/src/events/index.html +1 -1
  196. package/coverage/lcov-report/src/events/index.js.html +1 -1
  197. package/coverage/lcov-report/src/events/utils.js.html +1 -1
  198. package/coverage/lcov-report/src/index.html +1 -1
  199. package/coverage/lcov-report/src/index.ts.html +1 -1
  200. package/coverage/lcov-report/src/integrations/airtable.ts.html +1 -1
  201. package/coverage/lcov-report/src/integrations/arangodb.ts.html +1 -1
  202. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  203. package/coverage/lcov-report/src/integrations/base/query.ts.html +1 -1
  204. package/coverage/lcov-report/src/integrations/base/sql.ts.html +1 -1
  205. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +1 -1
  206. package/coverage/lcov-report/src/integrations/base/utils.ts.html +1 -1
  207. package/coverage/lcov-report/src/integrations/couchdb.ts.html +1 -1
  208. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +1 -1
  209. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +1 -1
  210. package/coverage/lcov-report/src/integrations/firebase.ts.html +1 -1
  211. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +10 -19
  212. package/coverage/lcov-report/src/integrations/index.html +11 -11
  213. package/coverage/lcov-report/src/integrations/index.ts.html +1 -1
  214. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1 -1
  215. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1 -1
  216. package/coverage/lcov-report/src/integrations/mysql.ts.html +1 -1
  217. package/coverage/lcov-report/src/integrations/oracle.ts.html +1 -1
  218. package/coverage/lcov-report/src/integrations/postgres.ts.html +1 -1
  219. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  220. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  221. package/coverage/lcov-report/src/integrations/redis.ts.html +1 -1
  222. package/coverage/lcov-report/src/integrations/rest.ts.html +1 -1
  223. package/coverage/lcov-report/src/integrations/s3.ts.html +1 -1
  224. package/coverage/lcov-report/src/integrations/snowflake.ts.html +1 -1
  225. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  226. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  227. package/coverage/lcov-report/src/integrations/utils.ts.html +1 -1
  228. package/coverage/lcov-report/src/middleware/{appInfo.js.html → appInfo.ts.html} +24 -21
  229. package/coverage/lcov-report/src/middleware/authorized.ts.html +7 -7
  230. package/coverage/lcov-report/src/middleware/{builder.js.html → builder.ts.html} +36 -30
  231. package/coverage/lcov-report/src/middleware/{currentapp.js.html → currentapp.ts.html} +70 -61
  232. package/coverage/lcov-report/src/middleware/index.html +55 -55
  233. package/coverage/lcov-report/src/middleware/{joi-validator.js.html → joi-validator.ts.html} +18 -15
  234. package/coverage/lcov-report/src/middleware/{publicApi.js.html → publicApi.ts.html} +17 -17
  235. package/coverage/lcov-report/src/middleware/{resourceId.js.html → resourceId.ts.html} +33 -18
  236. package/coverage/lcov-report/src/middleware/{selfhost.js.html → selfhost.ts.html} +18 -12
  237. package/coverage/lcov-report/src/middleware/{utils.js.html → utils.ts.html} +12 -6
  238. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +1 -1
  239. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
  240. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
  241. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +4 -4
  242. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
  243. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
  244. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
  245. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
  246. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +6 -15
  247. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
  248. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +1 -1
  249. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  250. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
  251. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
  252. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
  253. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
  255. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
  256. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  257. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
  259. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
  260. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +1 -1
  261. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +1 -1
  263. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +1 -1
  264. package/coverage/lcov-report/src/migrations/index.html +1 -1
  265. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  266. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  267. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  268. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  269. package/coverage/lcov-report/src/module.d.ts.html +1 -1
  270. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  271. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +1 -1
  272. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +1 -1
  273. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +1 -1
  274. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +1 -1
  275. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +7 -16
  276. package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
  277. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +1 -1
  278. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +12 -39
  279. package/coverage/lcov-report/src/sdk/app/tables/index.html +1 -1
  280. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +8 -11
  281. package/coverage/lcov-report/src/sdk/index.html +1 -1
  282. package/coverage/lcov-report/src/sdk/index.ts.html +1 -1
  283. package/coverage/lcov-report/src/startup.ts.html +1 -1
  284. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.js.html +24 -24
  285. package/coverage/lcov-report/src/tests/utilities/controllers.js.html +1 -1
  286. package/coverage/lcov-report/src/tests/utilities/index.html +19 -19
  287. package/coverage/lcov-report/src/tests/utilities/index.js.html +1 -1
  288. package/coverage/lcov-report/src/tests/utilities/structures.js.html +3 -3
  289. package/coverage/lcov-report/src/threads/automation.ts.html +2 -2
  290. package/coverage/lcov-report/src/threads/index.html +1 -1
  291. package/coverage/lcov-report/src/threads/index.ts.html +1 -1
  292. package/coverage/lcov-report/src/threads/query.ts.html +1 -1
  293. package/coverage/lcov-report/src/threads/utils.ts.html +1 -1
  294. package/coverage/lcov-report/src/utilities/budibaseDir.js.html +1 -1
  295. package/coverage/lcov-report/src/utilities/centralPath.js.html +1 -1
  296. package/coverage/lcov-report/src/utilities/csvParser.js.html +1 -1
  297. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.js.html +1 -1
  298. package/coverage/lcov-report/src/utilities/fileSystem/index.html +1 -1
  299. package/coverage/lcov-report/src/utilities/fileSystem/index.js.html +1 -1
  300. package/coverage/lcov-report/src/utilities/fileSystem/processor.js.html +1 -1
  301. package/coverage/lcov-report/src/utilities/fileSystem/utilities.js.html +1 -1
  302. package/coverage/lcov-report/src/utilities/{global.js.html → global.ts.html} +100 -67
  303. package/coverage/lcov-report/src/utilities/index.html +16 -16
  304. package/coverage/lcov-report/src/utilities/index.js.html +1 -1
  305. package/coverage/lcov-report/src/utilities/plugins.js.html +1 -1
  306. package/coverage/lcov-report/src/utilities/queue/inMemoryQueue.js.html +1 -1
  307. package/coverage/lcov-report/src/utilities/queue/index.html +1 -1
  308. package/coverage/lcov-report/src/utilities/redis.js.html +1 -1
  309. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  310. package/coverage/lcov-report/src/utilities/routing/index.js.html +1 -1
  311. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
  312. package/coverage/lcov-report/src/utilities/rowProcessor/index.js.html +1 -1
  313. package/coverage/lcov-report/src/utilities/rowProcessor/utils.js.html +1 -1
  314. package/coverage/lcov-report/src/utilities/scriptRunner.js.html +1 -1
  315. package/coverage/lcov-report/src/utilities/security.js.html +13 -13
  316. package/coverage/lcov-report/src/utilities/statusCodes.js.html +1 -1
  317. package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
  318. package/coverage/lcov-report/src/utilities/usageQuota/rows.js.html +1 -1
  319. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  320. package/coverage/lcov-report/src/utilities/users.js.html +1 -1
  321. package/coverage/lcov-report/src/utilities/workerRequests.js.html +4 -4
  322. package/coverage/lcov-report/src/watch.ts.html +1 -1
  323. package/coverage/lcov-report/src/websocket.ts.html +1 -1
  324. package/coverage/lcov.info +2052 -2049
  325. package/dist/api/controllers/application.js +35 -43
  326. package/dist/api/controllers/deploy/index.js +13 -16
  327. package/dist/api/controllers/dev.js +96 -81
  328. package/dist/api/controllers/public/applications.js +17 -9
  329. package/dist/api/controllers/query/index.js +10 -13
  330. package/dist/api/controllers/row/internal.js +2 -2
  331. package/dist/api/routes/automation.js +3 -3
  332. package/dist/api/routes/datasource.js +4 -4
  333. package/dist/api/routes/public/index.js +9 -9
  334. package/dist/api/routes/query.js +4 -4
  335. package/dist/api/routes/row.js +11 -11
  336. package/dist/api/routes/static.js +3 -3
  337. package/dist/api/routes/table.js +2 -2
  338. package/dist/api/routes/user.js +9 -9
  339. package/dist/api/routes/utils/validators.js +4 -4
  340. package/dist/api/routes/view.js +2 -2
  341. package/dist/automations/tests/utilities/index.js +21 -12
  342. package/dist/automations/utils.js +9 -8
  343. package/dist/db/inMemoryView.js +2 -2
  344. package/dist/db/utils.js +145 -118
  345. package/dist/integrations/googlesheets.js +4 -6
  346. package/dist/middleware/appInfo.js +14 -9
  347. package/dist/middleware/authorized.js +5 -5
  348. package/dist/middleware/builder.js +41 -40
  349. package/dist/middleware/currentapp.js +39 -37
  350. package/dist/middleware/joi-validator.js +17 -10
  351. package/dist/middleware/publicApi.js +5 -6
  352. package/dist/middleware/resourceId.js +16 -9
  353. package/dist/middleware/selfhost.js +5 -4
  354. package/dist/middleware/utils.js +5 -2
  355. package/dist/package.json +6 -6
  356. package/dist/sdk/app/tables/index.js +4 -4
  357. package/dist/tests/utilities/TestConfiguration.js +9 -9
  358. package/dist/tests/utilities/structures.js +2 -2
  359. package/dist/tsconfig.build.tsbuildinfo +1 -1
  360. package/dist/utilities/global.js +87 -66
  361. package/dist/utilities/security.js +10 -10
  362. package/dist/utilities/workerRequests.js +3 -3
  363. package/jest.config.ts +1 -0
  364. package/package.json +7 -7
  365. package/src/api/controllers/application.ts +34 -39
  366. package/src/api/controllers/auth.ts +3 -2
  367. package/src/api/controllers/deploy/index.ts +13 -25
  368. package/src/api/controllers/{dev.js → dev.ts} +31 -37
  369. package/src/api/controllers/public/applications.ts +15 -9
  370. package/src/api/controllers/query/index.ts +11 -14
  371. package/src/api/controllers/row/internal.js +2 -2
  372. package/src/api/routes/automation.js +4 -4
  373. package/src/api/routes/datasource.js +5 -5
  374. package/src/api/routes/public/index.ts +10 -10
  375. package/src/api/routes/public/tests/compare.spec.js +1 -1
  376. package/src/api/routes/query.js +5 -5
  377. package/src/api/routes/row.ts +12 -12
  378. package/src/api/routes/static.ts +5 -5
  379. package/src/api/routes/table.js +3 -3
  380. package/src/api/routes/tests/analytics.spec.js +1 -1
  381. package/src/api/routes/tests/query.spec.js +15 -10
  382. package/src/api/routes/tests/role.spec.js +5 -5
  383. package/src/api/routes/tests/static.spec.js +2 -2
  384. package/src/api/routes/tests/table.spec.js +38 -35
  385. package/src/api/routes/user.js +10 -10
  386. package/src/api/routes/utils/validators.js +5 -5
  387. package/src/api/routes/view.js +3 -3
  388. package/src/automations/tests/updateRow.spec.js +0 -1
  389. package/src/automations/tests/utilities/index.js +10 -4
  390. package/src/automations/utils.ts +9 -12
  391. package/src/db/inMemoryView.js +2 -2
  392. package/src/db/tests/linkController.spec.js +73 -57
  393. package/src/db/tests/linkTests.spec.js +17 -14
  394. package/src/db/{utils.js → utils.ts} +76 -92
  395. package/src/integrations/googlesheets.ts +4 -7
  396. package/src/middleware/appInfo.ts +20 -0
  397. package/src/middleware/authorized.ts +6 -6
  398. package/src/middleware/{builder.js → builder.ts} +17 -15
  399. package/src/middleware/{currentapp.js → currentapp.ts} +42 -39
  400. package/src/middleware/{joi-validator.js → joi-validator.ts} +9 -8
  401. package/src/middleware/publicApi.ts +21 -0
  402. package/src/middleware/{resourceId.js → resourceId.ts} +16 -11
  403. package/src/middleware/{selfhost.js → selfhost.ts} +4 -2
  404. package/src/middleware/tests/authorized.spec.js +5 -5
  405. package/src/middleware/tests/currentapp.spec.js +118 -63
  406. package/src/middleware/{utils.js → utils.ts} +3 -1
  407. package/src/migrations/functions/backfill/app/tables.ts +2 -5
  408. package/src/sdk/app/backups/imports.ts +4 -7
  409. package/src/sdk/app/backups/statistics.ts +9 -18
  410. package/src/sdk/app/tables/index.ts +6 -7
  411. package/src/tests/utilities/TestConfiguration.js +9 -9
  412. package/src/tests/utilities/structures.js +2 -2
  413. package/src/threads/automation.ts +1 -1
  414. package/src/utilities/global.ts +138 -0
  415. package/src/utilities/security.js +12 -12
  416. package/src/utilities/workerRequests.js +3 -3
  417. package/src/middleware/appInfo.js +0 -19
  418. package/src/middleware/publicApi.js +0 -21
  419. package/src/utilities/global.js +0 -127
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">85.58% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>291/340</span>
28
+ <span class='fraction'>285/333</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">96.55% </span>
40
+ <span class="strong">94.91% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>56/58</span>
42
+ <span class='fraction'>56/59</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">84.38% </span>
47
+ <span class="strong">84.06% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>254/301</span>
49
+ <span class='fraction'>248/295</span>
50
50
  </div>
51
51
 
52
52
 
@@ -695,12 +695,7 @@
695
695
  <a name='L630'></a><a href='#L630'>630</a>
696
696
  <a name='L631'></a><a href='#L631'>631</a>
697
697
  <a name='L632'></a><a href='#L632'>632</a>
698
- <a name='L633'></a><a href='#L633'>633</a>
699
- <a name='L634'></a><a href='#L634'>634</a>
700
- <a name='L635'></a><a href='#L635'>635</a>
701
- <a name='L636'></a><a href='#L636'>636</a>
702
- <a name='L637'></a><a href='#L637'>637</a>
703
- <a name='L638'></a><a href='#L638'>638</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
698
+ <a name='L633'></a><a href='#L633'>633</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
704
699
  <span class="cline-any cline-yes">44x</span>
705
700
  <span class="cline-any cline-yes">44x</span>
706
701
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -716,17 +711,16 @@
716
711
  <span class="cline-any cline-neutral">&nbsp;</span>
717
712
  <span class="cline-any cline-neutral">&nbsp;</span>
718
713
  <span class="cline-any cline-neutral">&nbsp;</span>
714
+ <span class="cline-any cline-yes">44x</span>
715
+ <span class="cline-any cline-neutral">&nbsp;</span>
719
716
  <span class="cline-any cline-neutral">&nbsp;</span>
720
717
  <span class="cline-any cline-neutral">&nbsp;</span>
721
718
  <span class="cline-any cline-neutral">&nbsp;</span>
722
- <span class="cline-any cline-yes">44x</span>
723
- <span class="cline-any cline-yes">44x</span>
724
719
  <span class="cline-any cline-neutral">&nbsp;</span>
725
720
  <span class="cline-any cline-neutral">&nbsp;</span>
726
721
  <span class="cline-any cline-neutral">&nbsp;</span>
727
722
  <span class="cline-any cline-neutral">&nbsp;</span>
728
723
  <span class="cline-any cline-neutral">&nbsp;</span>
729
- <span class="cline-any cline-yes">44x</span>
730
724
  <span class="cline-any cline-yes">44x</span>
731
725
  <span class="cline-any cline-yes">44x</span>
732
726
  <span class="cline-any cline-yes">44x</span>
@@ -745,10 +739,6 @@
745
739
  <span class="cline-any cline-yes">44x</span>
746
740
  <span class="cline-any cline-yes">44x</span>
747
741
  <span class="cline-any cline-yes">44x</span>
748
- <span class="cline-any cline-yes">44x</span>
749
- <span class="cline-any cline-yes">44x</span>
750
- <span class="cline-any cline-yes">44x</span>
751
- <span class="cline-any cline-yes">44x</span>
752
742
  <span class="cline-any cline-neutral">&nbsp;</span>
753
743
  <span class="cline-any cline-yes">44x</span>
754
744
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1059,6 +1049,8 @@
1059
1049
  <span class="cline-any cline-yes">3x</span>
1060
1050
  <span class="cline-any cline-no">&nbsp;</span>
1061
1051
  <span class="cline-any cline-no">&nbsp;</span>
1052
+ <span class="cline-any cline-no">&nbsp;</span>
1053
+ <span class="cline-any cline-neutral">&nbsp;</span>
1062
1054
  <span class="cline-any cline-neutral">&nbsp;</span>
1063
1055
  <span class="cline-any cline-no">&nbsp;</span>
1064
1056
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1226,13 +1218,11 @@
1226
1218
  <span class="cline-any cline-neutral">&nbsp;</span>
1227
1219
  <span class="cline-any cline-no">&nbsp;</span>
1228
1220
  <span class="cline-any cline-neutral">&nbsp;</span>
1229
- <span class="cline-any cline-no">&nbsp;</span>
1230
1221
  <span class="cline-any cline-neutral">&nbsp;</span>
1231
1222
  <span class="cline-any cline-no">&nbsp;</span>
1232
1223
  <span class="cline-any cline-no">&nbsp;</span>
1233
1224
  <span class="cline-any cline-no">&nbsp;</span>
1234
1225
  <span class="cline-any cline-neutral">&nbsp;</span>
1235
- <span class="cline-any cline-neutral">&nbsp;</span>
1236
1226
  <span class="cline-any cline-no">&nbsp;</span>
1237
1227
  <span class="cline-any cline-no">&nbsp;</span>
1238
1228
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1353,17 +1343,16 @@ import {
1353
1343
  DocumentType,
1354
1344
  AppStatus,
1355
1345
  } from "../../db/utils"
1356
- const {
1357
- BUILTIN_ROLE_IDS,
1358
- AccessController,
1359
- } = require("@budibase/backend-core/roles")
1360
- const { CacheKeys, bustCache } = require("@budibase/backend-core/cache")
1361
- const {
1362
- getAllApps,
1363
- isDevAppID,
1364
- getProdAppID,
1365
- Replication,
1366
- } = require("@budibase/backend-core/db")
1346
+ import {
1347
+ db as dbCore,
1348
+ roles,
1349
+ cache,
1350
+ tenancy,
1351
+ context,
1352
+ errors,
1353
+ events,
1354
+ migrations,
1355
+ } from "@budibase/backend-core"
1367
1356
  import { USERS_TABLE_SCHEMA } from "../../constants"
1368
1357
  import { removeAppFromUserRoles } from "../../utilities/workerRequests"
1369
1358
  import { clientLibraryPath, stringToReadStream } from "../../utilities"
@@ -1373,15 +1362,11 @@ import {
1373
1362
  backupClientLibrary,
1374
1363
  revertClientLibrary,
1375
1364
  } from "../../utilities/fileSystem/clientLibrary"
1376
- const { getTenantId, isMultiTenant } = require("@budibase/backend-core/tenancy")
1377
1365
  import { syncGlobalUsers } from "./user"
1378
- const { app: appCache } = require("@budibase/backend-core/cache")
1379
1366
  import { cleanupAutomations } from "../../automations/utils"
1380
- import { context } from "@budibase/backend-core"
1381
1367
  import { checkAppMetadata } from "../../automations/logging"
1382
1368
  import { getUniqueRows } from "../../utilities/usageQuota/rows"
1383
1369
  import { quotas, groups } from "@budibase/pro"
1384
- import { errors, events, migrations } from "@budibase/backend-core"
1385
1370
  import { App, Layout, Screen, MigrationType } from "@budibase/types"
1386
1371
  import { BASE_LAYOUT_PROP_IDS } from "../../constants/layouts"
1387
1372
  import { enrichPluginURLs } from "../../utilities/plugins"
@@ -1414,7 +1399,7 @@ async function getScreens() {
1414
1399
  &nbsp;
1415
1400
  function getUserRoleId(ctx: any) {
1416
1401
  return !ctx.user.role || !ctx.user.role._id
1417
- ? <span class="branch-0 cbranch-no" title="branch not covered" >BUILTIN_ROLE_IDS.PUBLIC</span>
1402
+ ? <span class="branch-0 cbranch-no" title="branch not covered" >roles.BUILTIN_ROLE_IDS.PUBLIC</span>
1418
1403
  : ctx.user.role._id
1419
1404
  }
1420
1405
  &nbsp;
@@ -1462,7 +1447,7 @@ const checkAppName = (
1462
1447
  }
1463
1448
  &nbsp;
1464
1449
  async function createInstance(template: any) {
1465
- const tenantId = isMultiTenant() ? <span class="branch-0 cbranch-no" title="branch not covered" >getTenantId() </span>: null
1450
+ const tenantId = tenancy.isMultiTenant() ? <span class="branch-0 cbranch-no" title="branch not covered" >tenancy.getTenantId() </span>: null
1466
1451
  const baseAppId = generateAppID(tenantId)
1467
1452
  const appId = generateDevAppID(baseAppId)
1468
1453
  await context.updateAppId(appId)
@@ -1501,7 +1486,7 @@ async function createInstance(template: any) {
1501
1486
  export const fetch = async (ctx: any) =&gt; {
1502
1487
  const dev = ctx.query &amp;&amp; ctx.query.status === AppStatus.DEV
1503
1488
  const all = ctx.query &amp;&amp; ctx.query.status === AppStatus.ALL
1504
- const apps = await getAllApps({ dev, all })
1489
+ const apps = (await dbCore.getAllApps({ dev, all })) as App[]
1505
1490
  &nbsp;
1506
1491
  const appIds = apps
1507
1492
  .filter((app: any) =&gt; app.status === "development")
@@ -1526,7 +1511,7 @@ export const fetch = async (ctx: any) =&gt; {
1526
1511
  export const fetchAppDefinition = async (ctx: any) =&gt; {
1527
1512
  const layouts = await getLayouts()
1528
1513
  const userRoleId = getUserRoleId(ctx)
1529
- const accessController = new AccessController()
1514
+ const accessController = new roles.AccessController()
1530
1515
  const screens = await accessController.checkScreensAccess(
1531
1516
  await getScreens(),
1532
1517
  userRoleId
@@ -1550,7 +1535,7 @@ export const fetchAppPackage = async (ctx: any) =&gt; {
1550
1535
  // Only filter screens if the user is not a builder
1551
1536
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!(ctx.user.builder &amp;&amp; ctx.user.builder.global)) {
1552
1537
  const userRoleId = <span class="cstat-no" title="statement not covered" >getUserRoleId(ctx)</span>
1553
- const accessController = <span class="cstat-no" title="statement not covered" >new AccessController()</span>
1538
+ const accessController = <span class="cstat-no" title="statement not covered" >new roles.AccessController()</span>
1554
1539
  <span class="cstat-no" title="statement not covered" > screens = await accessController.checkScreensAccess(screens, userRoleId)</span>
1555
1540
  }
1556
1541
  &nbsp;
@@ -1563,7 +1548,7 @@ export const fetchAppPackage = async (ctx: any) =&gt; {
1563
1548
  }
1564
1549
  &nbsp;
1565
1550
  const performAppCreate = async (ctx: any) =&gt; {
1566
- const apps = await getAllApps({ dev: true })
1551
+ const apps = await dbCore.getAllApps({ dev: true })
1567
1552
  const name = ctx.request.body.name
1568
1553
  checkAppName(ctx, apps, name)
1569
1554
  const url = getAppUrl(ctx)
@@ -1593,7 +1578,7 @@ const performAppCreate = async (ctx: any) =&gt; {
1593
1578
  url: url,
1594
1579
  template: templateKey,
1595
1580
  instance,
1596
- tenantId: getTenantId(),
1581
+ tenantId: tenancy.getTenantId(),
1597
1582
  updatedAt: new Date().toISOString(),
1598
1583
  createdAt: new Date().toISOString(),
1599
1584
  status: AppStatus.DEV,
@@ -1652,7 +1637,7 @@ const performAppCreate = async (ctx: any) =&gt; {
1652
1637
  await createApp(appId)
1653
1638
  }
1654
1639
  &nbsp;
1655
- await appCache.invalidateAppMetadata(appId, newApplication)
1640
+ await cache.app.invalidateAppMetadata(appId, newApplication)
1656
1641
  return newApplication
1657
1642
  }
1658
1643
  &nbsp;
@@ -1682,7 +1667,7 @@ const creationEvents = async (request: any, app: App) =&gt; {
1682
1667
  }
1683
1668
  &nbsp;
1684
1669
  const appPostCreate = async (ctx: any, app: App) =&gt; {
1685
- const tenantId = getTenantId()
1670
+ const tenantId = tenancy.getTenantId()
1686
1671
  await migrations.backPopulateMigrations({
1687
1672
  type: MigrationType.APP,
1688
1673
  tenantId,
@@ -1695,7 +1680,9 @@ const appPostCreate = async (ctx: any, app: App) =&gt; {
1695
1680
  const rowCount = rows ? rows.length : <span class="branch-1 cbranch-no" title="branch not covered" >0</span>
1696
1681
  <span class="missing-if-branch" title="if path not taken" >I</span>if (rowCount) {
1697
1682
  <span class="cstat-no" title="statement not covered" > try {</span>
1698
- <span class="cstat-no" title="statement not covered" > await quotas.addRows(rowCount)</span>
1683
+ <span class="cstat-no" title="statement not covered" > await context.doInAppContext(app.appId, <span class="fstat-no" title="function not covered" >() =</span>&gt; {</span>
1684
+ <span class="cstat-no" title="statement not covered" > return quotas.addRows(rowCount)</span>
1685
+ })
1699
1686
  } catch (err: any) {
1700
1687
  <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (err.code &amp;&amp; err.code === errors.codes.USAGE_LIMIT_EXCEEDED) {</span>
1701
1688
  // this import resulted in row usage exceeding the quota
@@ -1713,7 +1700,7 @@ const appPostCreate = async (ctx: any, app: App) =&gt; {
1713
1700
  export const create = async (ctx: any) =&gt; {
1714
1701
  const newApplication = await quotas.addApp(() =&gt; performAppCreate(ctx))
1715
1702
  await appPostCreate(ctx, newApplication)
1716
- await bustCache(CacheKeys.CHECKLIST)
1703
+ await cache.bustCache(cache.CacheKeys.CHECKLIST)
1717
1704
  ctx.body = newApplication
1718
1705
  ctx.status = 200
1719
1706
  }
@@ -1721,7 +1708,7 @@ export const create = async (ctx: any) =&gt; {
1721
1708
  // This endpoint currently operates as a PATCH rather than a PUT
1722
1709
  // Thus name and url fields are handled only if present
1723
1710
  export const update = async (ctx: any) =&gt; {
1724
- const apps = await getAllApps({ dev: true })
1711
+ const apps = await dbCore.getAllApps({ dev: true })
1725
1712
  // validation
1726
1713
  const name = ctx.request.body.name
1727
1714
  if (name) {
@@ -1794,7 +1781,7 @@ const destroyApp = async (ctx: any) =&gt; {
1794
1781
  let isUnpublish = ctx.query &amp;&amp; ctx.query.unpublish
1795
1782
  &nbsp;
1796
1783
  if (isUnpublish) {
1797
- appId = getProdAppID(appId)
1784
+ appId = dbCore.getProdAppID(appId)
1798
1785
  }
1799
1786
  &nbsp;
1800
1787
  const db = isUnpublish ? context.getProdAppDB() : context.getAppDB()
@@ -1820,7 +1807,7 @@ const destroyApp = async (ctx: any) =&gt; {
1820
1807
  else {
1821
1808
  await removeAppFromUserRoles(ctx, appId)
1822
1809
  }
1823
- await appCache.invalidateAppMetadata(appId)
1810
+ await cache.app.invalidateAppMetadata(appId)
1824
1811
  return result
1825
1812
  }
1826
1813
  &nbsp;
@@ -1856,19 +1843,17 @@ export const sync = <span class="fstat-no" title="function not covered" >async (
1856
1843
  }
1857
1844
  &nbsp;
1858
1845
  const appId = <span class="cstat-no" title="statement not covered" >ctx.params.appId</span>
1859
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!isDevAppID(appId)) {</span>
1846
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!dbCore.isDevAppID(appId)) {</span>
1860
1847
  <span class="cstat-no" title="statement not covered" > ctx.throw(400, "This action cannot be performed for production apps")</span>
1861
1848
  }
1862
1849
  &nbsp;
1863
1850
  // replicate prod to dev
1864
- const prodAppId = <span class="cstat-no" title="statement not covered" >getProdAppID(appId)</span>
1851
+ const prodAppId = <span class="cstat-no" title="statement not covered" >dbCore.getProdAppID(appId)</span>
1865
1852
  &nbsp;
1866
- <span class="cstat-no" title="statement not covered" > try {</span>
1867
- // specific case, want to make sure setup is skipped
1868
- const prodDb = <span class="cstat-no" title="statement not covered" >context.getProdAppDB({ skip_setup: true })</span>
1869
- const info = <span class="cstat-no" title="statement not covered" >await prodDb.info()</span>
1870
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (info.error) <span class="cstat-no" title="statement not covered" >throw info.error</span></span>
1871
- } catch (err) {
1853
+ // specific case, want to make sure setup is skipped
1854
+ const prodDb = <span class="cstat-no" title="statement not covered" >context.getProdAppDB({ skip_setup: true })</span>
1855
+ const exists = <span class="cstat-no" title="statement not covered" >await prodDb.exists()</span>
1856
+ <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (!exists) {</span>
1872
1857
  // the database doesn't exist. Don't replicate
1873
1858
  <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
1874
1859
  <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
@@ -1877,7 +1862,7 @@ export const sync = <span class="fstat-no" title="function not covered" >async (
1877
1862
  <span class="cstat-no" title="statement not covered" > return next()</span>
1878
1863
  }
1879
1864
  &nbsp;
1880
- const replication = <span class="cstat-no" title="statement not covered" >new Replication({</span>
1865
+ const replication = <span class="cstat-no" title="statement not covered" >new dbCore.Replication({</span>
1881
1866
  source: prodAppId,
1882
1867
  target: appId,
1883
1868
  })
@@ -1918,7 +1903,7 @@ export const updateAppPackage = async (appPackage: any, appId: any) =&gt; {
1918
1903
  &nbsp;
1919
1904
  await db.put(newAppPackage)
1920
1905
  // remove any cached metadata, so that it will be updated
1921
- await appCache.invalidateAppMetadata(appId)
1906
+ await cache.app.invalidateAppMetadata(appId)
1922
1907
  return newAppPackage
1923
1908
  })
1924
1909
  }
@@ -1981,7 +1966,7 @@ const migrateAppNavigation = async () =&gt; {
1981
1966
  <div class='footer quiet pad2 space-top1 center small'>
1982
1967
  Code coverage generated by
1983
1968
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1984
- at Wed Nov 16 2022 13:32:43 GMT+0000 (Coordinated Universal Time)
1969
+ at Fri Nov 18 2022 09:28:41 GMT+0000 (Coordinated Universal Time)
1985
1970
  </div>
1986
1971
  <script src="../../../prettify.js"></script>
1987
1972
  <script>
@@ -134,12 +134,14 @@
134
134
  <a name='L69'></a><a href='#L69'>69</a>
135
135
  <a name='L70'></a><a href='#L70'>70</a>
136
136
  <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">44x</span>
138
139
  <span class="cline-any cline-yes">44x</span>
139
140
  <span class="cline-any cline-yes">44x</span>
140
141
  <span class="cline-any cline-yes">44x</span>
141
142
  <span class="cline-any cline-yes">44x</span>
142
143
  <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
145
  <span class="cline-any cline-yes">44x</span>
144
146
  <span class="cline-any cline-neutral">&nbsp;</span>
145
147
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -210,6 +212,7 @@ import { InternalTables } from "../../db/utils"
210
212
  import { getFullUser } from "../../utilities/users"
211
213
  import { roles, context } from "@budibase/backend-core"
212
214
  import { groups } from "@budibase/pro"
215
+ import { ContextUser, User } from "@budibase/types"
213
216
  &nbsp;
214
217
  const PUBLIC_ROLE = roles.BUILTIN_ROLE_IDS.PUBLIC
215
218
  &nbsp;
@@ -231,7 +234,7 @@ export async function fetchSelf(ctx: any) {
231
234
  }
232
235
  &nbsp;
233
236
  const appId = context.getAppId()
234
- const user = await getFullUser(ctx, userId)
237
+ const user: ContextUser = await getFullUser(ctx, userId)
235
238
  // this shouldn't be returned by the app self
236
239
  delete user.roles
237
240
  // forward the csrf token from the session
@@ -241,7 +244,7 @@ export async function fetchSelf(ctx: any) {
241
244
  const db = context.getAppDB()
242
245
  // check for group permissions
243
246
  <span class="missing-if-branch" title="if path not taken" >I</span>if (!user.roleId || user.roleId === PUBLIC_ROLE) {
244
- const groupRoleId = <span class="cstat-no" title="statement not covered" >await groups.getGroupRoleId(user, appId)</span>
247
+ const groupRoleId = <span class="cstat-no" title="statement not covered" >await groups.getGroupRoleId(user as User, appId)</span>
245
248
  <span class="cstat-no" title="statement not covered" > user.roleId = groupRoleId || user.roleId</span>
246
249
  }
247
250
  // remove the full roles structure
@@ -283,7 +286,7 @@ export async function fetchSelf(ctx: any) {
283
286
  <div class='footer quiet pad2 space-top1 center small'>
284
287
  Code coverage generated by
285
288
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
286
- at Wed Nov 16 2022 13:32:43 GMT+0000 (Coordinated Universal Time)
289
+ at Fri Nov 18 2022 09:28:41 GMT+0000 (Coordinated Universal Time)
287
290
  </div>
288
291
  <script src="../../../prettify.js"></script>
289
292
  <script>
@@ -925,7 +925,7 @@ exports.test = async function (ctx) {
925
925
  <div class='footer quiet pad2 space-top1 center small'>
926
926
  Code coverage generated by
927
927
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
928
- at Wed Nov 16 2022 13:32:43 GMT+0000 (Coordinated Universal Time)
928
+ at Fri Nov 18 2022 09:28:41 GMT+0000 (Coordinated Universal Time)
929
929
  </div>
930
930
  <script src="../../../prettify.js"></script>
931
931
  <script>
@@ -133,7 +133,7 @@ export async function exportAppDump(ctx: any) {
133
133
  <div class='footer quiet pad2 space-top1 center small'>
134
134
  Code coverage generated by
135
135
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
136
- at Wed Nov 16 2022 13:32:43 GMT+0000 (Coordinated Universal Time)
136
+ at Fri Nov 18 2022 09:28:41 GMT+0000 (Coordinated Universal Time)
137
137
  </div>
138
138
  <script src="../../../prettify.js"></script>
139
139
  <script>
@@ -412,7 +412,7 @@ exports.importApps = <span class="fstat-no" title="function not covered" >as</sp
412
412
  <div class='footer quiet pad2 space-top1 center small'>
413
413
  Code coverage generated by
414
414
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
415
- at Wed Nov 16 2022 13:32:43 GMT+0000 (Coordinated Universal Time)
415
+ at Fri Nov 18 2022 09:28:41 GMT+0000 (Coordinated Universal Time)
416
416
  </div>
417
417
  <script src="../../../prettify.js"></script>
418
418
  <script>
@@ -241,7 +241,7 @@ exports.fetchAppComponentDefinitions = async function (ctx: any) {
241
241
  <div class='footer quiet pad2 space-top1 center small'>
242
242
  Code coverage generated by
243
243
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
244
- at Wed Nov 16 2022 13:32:43 GMT+0000 (Coordinated Universal Time)
244
+ at Fri Nov 18 2022 09:28:41 GMT+0000 (Coordinated Universal Time)
245
245
  </div>
246
246
  <script src="../../../prettify.js"></script>
247
247
  <script>
@@ -919,7 +919,7 @@ const buildSchemaHelper = <span class="fstat-no" title="function not covered" >a
919
919
  <div class='footer quiet pad2 space-top1 center small'>
920
920
  Code coverage generated by
921
921
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
922
- at Wed Nov 16 2022 13:32:43 GMT+0000 (Coordinated Universal Time)
922
+ at Fri Nov 18 2022 09:28:41 GMT+0000 (Coordinated Universal Time)
923
923
  </div>
924
924
  <script src="../../../prettify.js"></script>
925
925
  <script>
@@ -235,7 +235,7 @@ module.exports = Deployment
235
235
  <div class='footer quiet pad2 space-top1 center small'>
236
236
  Code coverage generated by
237
237
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
238
- at Wed Nov 16 2022 13:32:43 GMT+0000 (Coordinated Universal Time)
238
+ at Fri Nov 18 2022 09:28:41 GMT+0000 (Coordinated Universal Time)
239
239
  </div>
240
240
  <script src="../../../../prettify.js"></script>
241
241
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">71.22% </span>
26
+ <span class="strong">70.58% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>99/139</span>
28
+ <span class='fraction'>96/136</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">71.73% </span>
47
+ <span class="strong">71.11% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>99/138</span>
49
+ <span class='fraction'>96/135</span>
50
50
  </div>
51
51
 
52
52
 
@@ -95,17 +95,17 @@
95
95
 
96
96
  <tr>
97
97
  <td class="file medium" data-value="index.ts"><a href="index.ts.html">index.ts</a></td>
98
- <td data-value="72.88" class="pic medium">
98
+ <td data-value="72.17" class="pic medium">
99
99
  <div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
100
100
  </td>
101
- <td data-value="72.88" class="pct medium">72.88%</td>
102
- <td data-value="118" class="abs medium">86/118</td>
101
+ <td data-value="72.17" class="pct medium">72.17%</td>
102
+ <td data-value="115" class="abs medium">83/115</td>
103
103
  <td data-value="25" class="pct low">25%</td>
104
104
  <td data-value="8" class="abs low">2/8</td>
105
105
  <td data-value="50" class="pct medium">50%</td>
106
106
  <td data-value="10" class="abs medium">5/10</td>
107
- <td data-value="73.5" class="pct medium">73.5%</td>
108
- <td data-value="117" class="abs medium">86/117</td>
107
+ <td data-value="72.8" class="pct medium">72.8%</td>
108
+ <td data-value="114" class="abs medium">83/114</td>
109
109
  </tr>
110
110
 
111
111
  </tbody>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Wed Nov 16 2022 13:32:43 GMT+0000 (Coordinated Universal Time)
119
+ at Fri Nov 18 2022 09:28:41 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../../../prettify.js"></script>
122
122
  <script>