@budibase/server 2.1.32-alpha.1 → 2.1.32-alpha.10

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 (601) hide show
  1. package/builder/assets/{index.7176fd99.css → index.144dddb2.css} +1 -1
  2. package/builder/assets/{index.24cb0a61.js → index.d97a0eb1.js} +290 -290
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +3723 -3691
  5. package/coverage/coverage-final.json +113 -108
  6. package/coverage/lcov-report/index.html +170 -155
  7. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
  8. package/coverage/lcov-report/src/api/controllers/{apikeys.js.html → apikeys.ts.html} +19 -19
  9. package/coverage/lcov-report/src/api/controllers/application.ts.html +70 -13
  10. package/coverage/lcov-report/src/api/controllers/auth.ts.html +3 -3
  11. package/coverage/lcov-report/src/api/controllers/{automation.js.html → automation.ts.html} +68 -68
  12. package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
  13. package/coverage/lcov-report/src/api/controllers/{cloud.js.html → cloud.ts.html} +40 -40
  14. package/coverage/lcov-report/src/api/controllers/component.ts.html +6 -3
  15. package/coverage/lcov-report/src/api/controllers/{datasource.js.html → datasource.ts.html} +239 -80
  16. package/coverage/lcov-report/src/api/controllers/deploy/{Deployment.js.html → Deployment.ts.html} +30 -21
  17. package/coverage/lcov-report/src/api/controllers/deploy/index.html +6 -6
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +1 -1
  19. package/coverage/lcov-report/src/api/controllers/dev.ts.html +1 -1
  20. package/coverage/lcov-report/src/api/controllers/index.html +120 -120
  21. package/coverage/lcov-report/src/api/controllers/integration.js.html +1 -1
  22. package/coverage/lcov-report/src/api/controllers/{layout.js.html → layout.ts.html} +19 -19
  23. package/coverage/lcov-report/src/api/controllers/{metadata.js.html → metadata.ts.html} +19 -16
  24. package/coverage/lcov-report/src/api/controllers/migrations.js.html +1 -1
  25. package/coverage/lcov-report/src/api/controllers/{permission.js.html → permission.ts.html} +73 -64
  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 +11 -11
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +10 -13
  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 +1 -1
  35. package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
  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 +3 -3
  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 +11 -11
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +8 -11
  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 +2 -2
  58. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +1 -1
  59. package/coverage/lcov-report/src/api/controllers/query/{validation.js.html → validation.ts.html} +10 -10
  60. package/coverage/lcov-report/src/api/controllers/{role.js.html → role.ts.html} +37 -49
  61. package/coverage/lcov-report/src/api/controllers/{routing.js.html → routing.ts.html} +58 -49
  62. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +6 -18
  63. package/coverage/lcov-report/src/api/controllers/row/external.js.html +4 -4
  64. package/coverage/lcov-report/src/api/controllers/row/index.html +35 -35
  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 +17 -20
  67. package/coverage/lcov-report/src/api/controllers/row/{internalSearch.js.html → internalSearch.ts.html} +175 -103
  68. package/coverage/lcov-report/src/api/controllers/row/{staticFormula.js.html → staticFormula.ts.html} +62 -47
  69. package/coverage/lcov-report/src/api/controllers/row/{utils.js.html → utils.ts.html} +57 -36
  70. package/coverage/lcov-report/src/api/controllers/screen.ts.html +29 -17
  71. package/coverage/lcov-report/src/api/controllers/{script.js.html → script.ts.html} +10 -7
  72. package/coverage/lcov-report/src/api/controllers/static/index.html +10 -10
  73. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +15 -27
  74. package/coverage/lcov-report/src/api/controllers/table/{bulkFormula.js.html → bulkFormula.ts.html} +89 -47
  75. package/coverage/lcov-report/src/api/controllers/table/{external.js.html → external.ts.html} +192 -87
  76. package/coverage/lcov-report/src/api/controllers/table/index.html +41 -41
  77. package/coverage/lcov-report/src/api/controllers/table/{index.js.html → index.ts.html} +28 -28
  78. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +3 -6
  79. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +56 -41
  80. package/coverage/lcov-report/src/api/controllers/{templates.js.html → templates.ts.html} +27 -18
  81. package/coverage/lcov-report/src/api/controllers/{user.js.html → user.ts.html} +72 -78
  82. package/coverage/lcov-report/src/api/controllers/view/{exporters.js.html → exporters.ts.html} +13 -7
  83. package/coverage/lcov-report/src/api/controllers/view/index.html +21 -21
  84. package/coverage/lcov-report/src/api/controllers/view/{index.js.html → index.ts.html} +68 -41
  85. package/coverage/lcov-report/src/api/controllers/view/{utils.js.html → utils.ts.html} +54 -36
  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 +14 -14
  89. package/coverage/lcov-report/src/api/{index.js.html → index.ts.html} +28 -49
  90. package/coverage/lcov-report/src/api/routes/{analytics.js.html → analytics.ts.html} +7 -7
  91. package/coverage/lcov-report/src/api/routes/{apikeys.js.html → apikeys.ts.html} +11 -11
  92. package/coverage/lcov-report/src/api/routes/application.ts.html +35 -11
  93. package/coverage/lcov-report/src/api/routes/auth.ts.html +3 -3
  94. package/coverage/lcov-report/src/api/routes/{automation.js.html → automation.ts.html} +41 -35
  95. package/coverage/lcov-report/src/api/routes/backup.ts.html +18 -6
  96. package/coverage/lcov-report/src/api/routes/{deploy.js.html → cloud.ts.html} +18 -15
  97. package/coverage/lcov-report/src/api/routes/{component.js.html → component.ts.html} +10 -10
  98. package/coverage/lcov-report/src/api/routes/{datasource.js.html → datasource.ts.html} +53 -26
  99. package/coverage/lcov-report/src/api/routes/deploy.ts.html +148 -0
  100. package/coverage/lcov-report/src/api/routes/{dev.js.html → dev.ts.html} +54 -18
  101. package/coverage/lcov-report/src/api/routes/index.html +41 -41
  102. package/coverage/lcov-report/src/api/routes/index.ts.html +3 -3
  103. package/coverage/lcov-report/src/api/routes/integration.ts.html +133 -0
  104. package/coverage/lcov-report/src/api/routes/{layout.js.html → layout.ts.html} +11 -11
  105. package/coverage/lcov-report/src/api/routes/{metadata.js.html → metadata.ts.html} +17 -17
  106. package/coverage/lcov-report/src/api/routes/{migrations.js.html → migrations.ts.html} +12 -12
  107. package/coverage/lcov-report/src/api/routes/{permission.js.html → permission.ts.html} +41 -17
  108. package/coverage/lcov-report/src/api/routes/plugin.ts.html +32 -8
  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 +1 -1
  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 → query.ts.html} +24 -33
  121. package/coverage/lcov-report/src/{utilities/routing/index.js.html → api/routes/role.ts.html} +32 -35
  122. package/coverage/lcov-report/src/api/routes/{routing.js.html → routing.ts.html} +10 -10
  123. package/coverage/lcov-report/src/api/routes/row.ts.html +8 -14
  124. package/coverage/lcov-report/src/api/routes/{screen.js.html → screen.ts.html} +29 -14
  125. package/coverage/lcov-report/src/api/routes/{script.js.html → script.ts.html} +10 -10
  126. package/coverage/lcov-report/src/api/routes/static.ts.html +9 -18
  127. package/coverage/lcov-report/src/api/routes/{table.js.html → table.ts.html} +16 -25
  128. package/coverage/lcov-report/src/api/routes/{templates.js.html → templates.ts.html} +11 -11
  129. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +12 -18
  130. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +10 -10
  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 → user.ts.html} +14 -20
  133. package/coverage/lcov-report/src/api/routes/utils/index.html +6 -6
  134. package/coverage/lcov-report/src/api/routes/utils/{validators.js.html → validators.ts.html} +39 -51
  135. package/coverage/lcov-report/src/api/routes/{view.js.html → view.ts.html} +33 -24
  136. package/coverage/lcov-report/src/api/routes/webhook.ts.html +3 -3
  137. package/coverage/lcov-report/src/app.ts.html +9 -12
  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 +10 -10
  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 +1 -1
  165. package/coverage/lcov-report/src/automations/tests/utilities/index.js.html +1 -1
  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 +11 -14
  175. package/coverage/lcov-report/src/automations/utils.ts.html +1 -1
  176. package/coverage/lcov-report/src/constants/index.html +5 -5
  177. package/coverage/lcov-report/src/constants/index.js.html +7 -13
  178. package/coverage/lcov-report/src/constants/layouts.js.html +1 -1
  179. package/coverage/lcov-report/src/constants/screens.js.html +3 -3
  180. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.js.html +2023 -0
  181. package/coverage/lcov-report/src/db/defaultData/employeeImport.js.html +541 -0
  182. package/coverage/lcov-report/src/db/defaultData/expensesImport.js.html +427 -0
  183. package/coverage/lcov-report/src/db/defaultData/index.html +176 -0
  184. package/coverage/lcov-report/src/db/defaultData/inventoryImport.js.html +403 -0
  185. package/coverage/lcov-report/src/db/defaultData/jobsImport.js.html +559 -0
  186. package/coverage/lcov-report/src/db/dynamoClient.js.html +1 -1
  187. package/coverage/lcov-report/src/db/inMemoryView.js.html +4 -4
  188. package/coverage/lcov-report/src/db/index.html +1 -1
  189. package/coverage/lcov-report/src/db/index.js.html +1 -1
  190. package/coverage/lcov-report/src/db/linkedRows/LinkController.js.html +13 -151
  191. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.js.html +226 -0
  192. package/coverage/lcov-report/src/db/linkedRows/index.html +28 -13
  193. package/coverage/lcov-report/src/db/linkedRows/index.js.html +3 -3
  194. package/coverage/lcov-report/src/db/linkedRows/linkUtils.js.html +4 -4
  195. package/coverage/lcov-report/src/db/newid.js.html +1 -1
  196. package/coverage/lcov-report/src/db/utils.ts.html +3 -3
  197. package/coverage/lcov-report/src/definitions/automations.ts.html +1 -1
  198. package/coverage/lcov-report/src/definitions/datasource.ts.html +1 -1
  199. package/coverage/lcov-report/src/definitions/index.html +1 -1
  200. package/coverage/lcov-report/src/environment.js.html +1 -1
  201. package/coverage/lcov-report/src/events/AutomationEmitter.js.html +1 -1
  202. package/coverage/lcov-report/src/events/index.html +1 -1
  203. package/coverage/lcov-report/src/events/index.js.html +1 -1
  204. package/coverage/lcov-report/src/events/utils.js.html +1 -1
  205. package/coverage/lcov-report/src/index.html +17 -32
  206. package/coverage/lcov-report/src/index.ts.html +1 -1
  207. package/coverage/lcov-report/src/integrations/airtable.ts.html +1 -1
  208. package/coverage/lcov-report/src/integrations/arangodb.ts.html +1 -1
  209. package/coverage/lcov-report/src/integrations/base/index.html +1 -1
  210. package/coverage/lcov-report/src/integrations/base/query.ts.html +1 -1
  211. package/coverage/lcov-report/src/integrations/base/sql.ts.html +2 -2
  212. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +2 -2
  213. package/coverage/lcov-report/src/integrations/base/utils.ts.html +1 -1
  214. package/coverage/lcov-report/src/integrations/couchdb.ts.html +1 -1
  215. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +1 -1
  216. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +1 -1
  217. package/coverage/lcov-report/src/integrations/firebase.ts.html +1 -1
  218. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +1 -1
  219. package/coverage/lcov-report/src/integrations/index.html +4 -4
  220. package/coverage/lcov-report/src/integrations/index.ts.html +58 -46
  221. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +1 -1
  222. package/coverage/lcov-report/src/integrations/mongodb.ts.html +1 -1
  223. package/coverage/lcov-report/src/integrations/mysql.ts.html +1 -1
  224. package/coverage/lcov-report/src/integrations/oracle.ts.html +1 -1
  225. package/coverage/lcov-report/src/integrations/postgres.ts.html +1 -1
  226. package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
  227. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +1 -1
  228. package/coverage/lcov-report/src/integrations/redis.ts.html +1 -1
  229. package/coverage/lcov-report/src/integrations/rest.ts.html +1 -1
  230. package/coverage/lcov-report/src/integrations/s3.ts.html +1 -1
  231. package/coverage/lcov-report/src/integrations/snowflake.ts.html +1 -1
  232. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  233. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  234. package/coverage/lcov-report/src/integrations/utils.ts.html +1 -1
  235. package/coverage/lcov-report/src/middleware/appInfo.ts.html +1 -1
  236. package/coverage/lcov-report/src/middleware/authorized.ts.html +30 -51
  237. package/coverage/lcov-report/src/middleware/builder.ts.html +1 -1
  238. package/coverage/lcov-report/src/middleware/currentapp.ts.html +1 -1
  239. package/coverage/lcov-report/src/middleware/index.html +10 -10
  240. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
  241. package/coverage/lcov-report/src/middleware/publicApi.ts.html +1 -1
  242. package/coverage/lcov-report/src/middleware/resourceId.ts.html +1 -1
  243. package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
  244. package/coverage/lcov-report/src/middleware/utils.ts.html +1 -1
  245. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +3 -3
  246. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
  247. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
  248. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
  249. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +1 -1
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
  255. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +1 -1
  256. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
  257. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
  258. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
  260. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
  261. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
  262. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
  263. package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
  264. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
  265. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +9 -9
  266. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
  267. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +7 -10
  268. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
  269. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +7 -10
  270. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +4 -4
  271. package/coverage/lcov-report/src/migrations/index.html +1 -1
  272. package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
  273. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
  274. package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
  275. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
  276. package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
  277. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +1 -1
  278. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +1 -1
  279. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +1 -1
  280. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +16 -10
  281. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +9 -21
  282. package/coverage/lcov-report/src/sdk/app/backups/index.html +16 -16
  283. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +1 -1
  284. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +1 -1
  285. package/coverage/lcov-report/src/sdk/app/tables/index.html +5 -5
  286. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +4 -4
  287. package/coverage/lcov-report/src/sdk/index.html +1 -1
  288. package/coverage/lcov-report/src/sdk/index.ts.html +1 -1
  289. package/coverage/lcov-report/src/startup.ts.html +3 -3
  290. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.js.html +61 -49
  291. package/coverage/lcov-report/src/tests/utilities/controllers.js.html +1 -1
  292. package/coverage/lcov-report/src/tests/utilities/index.html +15 -15
  293. package/coverage/lcov-report/src/tests/utilities/index.js.html +1 -1
  294. package/coverage/lcov-report/src/tests/utilities/structures.js.html +9 -12
  295. package/coverage/lcov-report/src/threads/automation.ts.html +20 -23
  296. package/coverage/lcov-report/src/threads/index.html +24 -24
  297. package/coverage/lcov-report/src/threads/index.ts.html +1 -1
  298. package/coverage/lcov-report/src/threads/query.ts.html +18 -33
  299. package/coverage/lcov-report/src/threads/utils.ts.html +10 -13
  300. package/coverage/lcov-report/src/utilities/{budibaseDir.js.html → budibaseDir.ts.html} +5 -5
  301. package/coverage/lcov-report/src/utilities/centralPath.js.html +1 -1
  302. package/coverage/lcov-report/src/utilities/csvParser.js.html +1 -1
  303. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.js.html +13 -13
  304. package/coverage/lcov-report/src/utilities/fileSystem/index.html +5 -20
  305. package/coverage/lcov-report/src/utilities/fileSystem/index.js.html +15 -15
  306. package/coverage/lcov-report/src/utilities/fileSystem/processor.js.html +1 -1
  307. package/coverage/lcov-report/src/utilities/global.ts.html +1 -1
  308. package/coverage/lcov-report/src/utilities/index.html +44 -44
  309. package/coverage/lcov-report/src/utilities/{index.js.html → index.ts.html} +70 -46
  310. package/coverage/lcov-report/src/utilities/plugins.js.html +1 -1
  311. package/coverage/lcov-report/src/utilities/queue/inMemoryQueue.js.html +1 -1
  312. package/coverage/lcov-report/src/utilities/queue/index.html +1 -1
  313. package/coverage/lcov-report/src/utilities/{redis.js.html → redis.ts.html} +36 -33
  314. package/coverage/lcov-report/src/utilities/routing/index.html +6 -6
  315. package/coverage/lcov-report/src/utilities/routing/index.ts.html +181 -0
  316. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +38 -23
  317. package/coverage/lcov-report/src/utilities/rowProcessor/{index.js.html → index.ts.html} +106 -337
  318. package/coverage/lcov-report/src/utilities/rowProcessor/map.js.html +370 -0
  319. package/coverage/lcov-report/src/utilities/rowProcessor/{utils.js.html → utils.ts.html} +43 -31
  320. package/coverage/lcov-report/src/utilities/scriptRunner.js.html +1 -1
  321. package/coverage/lcov-report/src/utilities/{security.js.html → security.ts.html} +49 -67
  322. package/coverage/lcov-report/src/utilities/statusCodes.js.html +1 -1
  323. package/coverage/lcov-report/src/utilities/usageQuota/index.html +18 -18
  324. package/coverage/lcov-report/src/utilities/usageQuota/{rows.js.html → rows.ts.html} +27 -39
  325. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  326. package/coverage/lcov-report/src/utilities/{users.js.html → users.ts.html} +22 -28
  327. package/coverage/lcov-report/src/utilities/{workerRequests.js.html → workerRequests.ts.html} +69 -54
  328. package/coverage/lcov-report/src/watch.ts.html +8 -11
  329. package/coverage/lcov-report/src/websocket.ts.html +1 -1
  330. package/coverage/lcov.info +6619 -6700
  331. package/dist/api/controllers/apikeys.js +12 -9
  332. package/dist/api/controllers/application.js +13 -2
  333. package/dist/api/controllers/automation.js +104 -84
  334. package/dist/api/controllers/cloud.js +84 -71
  335. package/dist/api/controllers/component.js +4 -2
  336. package/dist/api/controllers/datasource.js +144 -92
  337. package/dist/api/controllers/deploy/Deployment.js +10 -6
  338. package/dist/api/controllers/layout.js +18 -15
  339. package/dist/api/controllers/metadata.js +51 -37
  340. package/dist/api/controllers/permission.js +52 -43
  341. package/dist/api/controllers/plugin/index.js +6 -7
  342. package/dist/api/controllers/public/tables.js +29 -9
  343. package/dist/api/controllers/query/import/index.js +1 -2
  344. package/dist/api/controllers/query/validation.js +41 -33
  345. package/dist/api/controllers/role.js +29 -27
  346. package/dist/api/controllers/routing.js +71 -58
  347. package/dist/api/controllers/row/ExternalRequest.js +6 -7
  348. package/dist/api/controllers/row/external.js +3 -3
  349. package/dist/api/controllers/row/internal.js +11 -12
  350. package/dist/api/controllers/row/internalSearch.js +95 -80
  351. package/dist/api/controllers/row/staticFormula.js +85 -75
  352. package/dist/api/controllers/row/utils.js +118 -84
  353. package/dist/api/controllers/screen.js +81 -66
  354. package/dist/api/controllers/script.js +13 -6
  355. package/dist/api/controllers/static/index.js +9 -11
  356. package/dist/api/controllers/table/bulkFormula.js +47 -35
  357. package/dist/api/controllers/table/external.js +67 -54
  358. package/dist/api/controllers/table/index.js +66 -33
  359. package/dist/api/controllers/table/internal.js +1 -2
  360. package/dist/api/controllers/table/utils.js +39 -35
  361. package/dist/api/controllers/templates.js +17 -10
  362. package/dist/api/controllers/user.js +82 -70
  363. package/dist/api/controllers/view/exporters.js +8 -4
  364. package/dist/api/controllers/view/index.js +201 -153
  365. package/dist/api/controllers/view/utils.js +151 -121
  366. package/dist/api/index.js +38 -34
  367. package/dist/api/routes/analytics.js +29 -3
  368. package/dist/api/routes/apikeys.js +33 -7
  369. package/dist/api/routes/application.js +8 -9
  370. package/dist/api/routes/auth.js +1 -2
  371. package/dist/api/routes/automation.js +46 -20
  372. package/dist/api/routes/backup.js +3 -4
  373. package/dist/api/routes/cloud.js +32 -6
  374. package/dist/api/routes/component.js +32 -6
  375. package/dist/api/routes/datasource.js +39 -13
  376. package/dist/api/routes/deploy.js +34 -8
  377. package/dist/api/routes/dev.js +36 -10
  378. package/dist/api/routes/integration.js +10 -7
  379. package/dist/api/routes/layout.js +33 -7
  380. package/dist/api/routes/metadata.js +36 -10
  381. package/dist/api/routes/migrations.js +32 -6
  382. package/dist/api/routes/permission.js +38 -12
  383. package/dist/api/routes/plugin.js +5 -5
  384. package/dist/api/routes/query.js +42 -15
  385. package/dist/api/routes/role.js +36 -10
  386. package/dist/api/routes/routing.js +32 -6
  387. package/dist/api/routes/row.js +2 -1
  388. package/dist/api/routes/screen.js +35 -9
  389. package/dist/api/routes/script.js +32 -6
  390. package/dist/api/routes/static.js +9 -9
  391. package/dist/api/routes/table.js +40 -13
  392. package/dist/api/routes/templates.js +33 -7
  393. package/dist/api/routes/tests/utilities/TestFunctions.js +6 -8
  394. package/dist/api/routes/user.js +40 -13
  395. package/dist/api/routes/utils/validators.js +142 -126
  396. package/dist/api/routes/view.js +38 -12
  397. package/dist/api/routes/webhook.js +1 -2
  398. package/dist/app.js +3 -4
  399. package/dist/automations/triggers.js +5 -6
  400. package/dist/constants/index.js +3 -5
  401. package/dist/constants/screens.js +2 -2
  402. package/dist/db/defaultData/datasource_bb_default.js +565 -0
  403. package/dist/db/defaultData/employeeImport.js +153 -0
  404. package/dist/db/defaultData/expensesImport.js +115 -0
  405. package/dist/db/defaultData/inventoryImport.js +107 -0
  406. package/dist/db/defaultData/jobsImport.js +150 -0
  407. package/dist/db/inMemoryView.js +3 -3
  408. package/dist/db/linkedRows/LinkController.js +4 -31
  409. package/dist/db/linkedRows/LinkDocument.js +32 -0
  410. package/dist/db/linkedRows/index.js +2 -2
  411. package/dist/db/linkedRows/linkUtils.js +3 -3
  412. package/dist/db/utils.js +1 -1
  413. package/dist/db/views/staticViews.js +4 -4
  414. package/dist/integrations/index.js +15 -6
  415. package/dist/middleware/authorized.js +22 -21
  416. package/dist/migrations/functions/appUrls.js +2 -2
  417. package/dist/migrations/functions/usageQuotas/syncApps.js +3 -4
  418. package/dist/migrations/functions/usageQuotas/syncRows.js +3 -4
  419. package/dist/migrations/functions/userEmailViewCasing.js +3 -3
  420. package/dist/package.json +6 -6
  421. package/dist/sdk/app/backups/exports.js +1 -2
  422. package/dist/sdk/app/backups/imports.js +2 -3
  423. package/dist/sdk/app/tables/index.js +1 -1
  424. package/dist/startup.js +4 -4
  425. package/dist/tests/utilities/TestConfiguration.js +27 -35
  426. package/dist/tests/utilities/structures.js +3 -4
  427. package/dist/threads/automation.js +15 -16
  428. package/dist/threads/query.js +17 -19
  429. package/dist/threads/utils.js +11 -9
  430. package/dist/tsconfig.build.tsbuildinfo +1 -1
  431. package/dist/utilities/budibaseDir.js +4 -2
  432. package/dist/utilities/fileSystem/clientLibrary.js +12 -12
  433. package/dist/utilities/fileSystem/index.js +3 -3
  434. package/dist/utilities/index.js +102 -75
  435. package/dist/utilities/redis.js +100 -65
  436. package/dist/utilities/routing/index.js +27 -23
  437. package/dist/utilities/rowProcessor/index.js +124 -191
  438. package/dist/utilities/rowProcessor/map.js +96 -0
  439. package/dist/utilities/rowProcessor/utils.js +35 -26
  440. package/dist/utilities/security.js +39 -35
  441. package/dist/utilities/usageQuota/rows.js +56 -49
  442. package/dist/utilities/users.js +31 -28
  443. package/dist/utilities/workerRequests.js +115 -82
  444. package/dist/watch.js +1 -2
  445. package/package.json +7 -7
  446. package/scripts/exportAppTemplate.js +2 -2
  447. package/src/api/controllers/{apikeys.js → apikeys.ts} +10 -10
  448. package/src/api/controllers/application.ts +22 -3
  449. package/src/api/controllers/auth.ts +2 -2
  450. package/src/api/controllers/{automation.js → automation.ts} +48 -48
  451. package/src/api/controllers/{cloud.js → cloud.ts} +24 -24
  452. package/src/api/controllers/component.ts +2 -1
  453. package/src/api/controllers/{datasource.js → datasource.ts} +100 -47
  454. package/src/api/controllers/deploy/{Deployment.js → Deployment.ts} +13 -10
  455. package/src/api/controllers/{layout.js → layout.ts} +8 -8
  456. package/src/api/controllers/{metadata.js → metadata.ts} +11 -10
  457. package/src/api/controllers/{permission.js → permission.ts} +49 -46
  458. package/src/api/controllers/plugin/index.ts +4 -5
  459. package/src/api/controllers/public/tables.ts +2 -2
  460. package/src/api/controllers/query/import/index.ts +2 -3
  461. package/src/api/controllers/query/{validation.js → validation.ts} +7 -7
  462. package/src/api/controllers/{role.js → role.ts} +21 -25
  463. package/src/api/controllers/{routing.js → routing.ts} +37 -34
  464. package/src/api/controllers/row/ExternalRequest.ts +4 -8
  465. package/src/api/controllers/row/external.js +3 -3
  466. package/src/api/controllers/row/internal.js +11 -12
  467. package/src/api/controllers/row/{internalSearch.js → internalSearch.ts} +92 -68
  468. package/src/api/controllers/row/{staticFormula.js → staticFormula.ts} +28 -23
  469. package/src/api/controllers/row/{utils.js → utils.ts} +25 -18
  470. package/src/api/controllers/screen.ts +10 -6
  471. package/src/api/controllers/script.ts +12 -0
  472. package/src/api/controllers/static/index.ts +9 -13
  473. package/src/api/controllers/table/{bulkFormula.js → bulkFormula.ts} +39 -25
  474. package/src/api/controllers/table/{external.js → external.ts} +86 -51
  475. package/src/api/controllers/table/{index.js → index.ts} +17 -17
  476. package/src/api/controllers/table/internal.ts +1 -2
  477. package/src/api/controllers/table/utils.ts +26 -21
  478. package/src/api/controllers/{templates.js → templates.ts} +10 -7
  479. package/src/api/controllers/{user.js → user.ts} +47 -49
  480. package/src/api/controllers/view/{exporters.js → exporters.ts} +5 -3
  481. package/src/api/controllers/view/{index.js → index.ts} +36 -27
  482. package/src/api/controllers/view/{utils.js → utils.ts} +26 -20
  483. package/src/api/{index.js → index.ts} +15 -22
  484. package/src/api/routes/analytics.ts +9 -0
  485. package/src/api/routes/apikeys.ts +12 -0
  486. package/src/api/routes/application.ts +17 -9
  487. package/src/api/routes/auth.ts +2 -2
  488. package/src/api/routes/automation.ts +87 -0
  489. package/src/api/routes/backup.ts +8 -4
  490. package/src/api/routes/cloud.ts +18 -0
  491. package/src/api/routes/component.ts +14 -0
  492. package/src/api/routes/datasource.ts +60 -0
  493. package/src/api/routes/deploy.ts +21 -0
  494. package/src/api/routes/dev.ts +38 -0
  495. package/src/api/routes/integration.ts +16 -0
  496. package/src/api/routes/layout.ts +16 -0
  497. package/src/api/routes/{metadata.js → metadata.ts} +13 -13
  498. package/src/api/routes/migrations.ts +14 -0
  499. package/src/api/routes/permission.ts +41 -0
  500. package/src/api/routes/plugin.ts +14 -6
  501. package/src/api/routes/{query.js → query.ts} +17 -20
  502. package/src/api/routes/role.ts +24 -0
  503. package/src/api/routes/routing.ts +14 -0
  504. package/src/api/routes/row.ts +3 -5
  505. package/src/api/routes/screen.ts +23 -0
  506. package/src/api/routes/script.ts +10 -0
  507. package/src/api/routes/static.ts +4 -7
  508. package/src/api/routes/{table.js → table.ts} +9 -12
  509. package/src/api/routes/templates.ts +16 -0
  510. package/src/api/routes/tests/backup.spec.js +9 -1
  511. package/src/api/routes/tests/permissions.spec.js +2 -1
  512. package/src/api/routes/tests/role.spec.js +3 -5
  513. package/src/api/routes/tests/routing.spec.js +2 -1
  514. package/src/api/routes/tests/row.spec.js +3 -4
  515. package/src/api/routes/tests/user.spec.js +2 -1
  516. package/src/api/routes/tests/utilities/TestFunctions.ts +6 -8
  517. package/src/api/routes/{user.js → user.ts} +7 -9
  518. package/src/api/routes/utils/{validators.js → validators.ts} +33 -37
  519. package/src/api/routes/view.ts +34 -0
  520. package/src/api/routes/webhook.ts +2 -2
  521. package/src/app.ts +3 -4
  522. package/src/automations/triggers.js +5 -6
  523. package/src/constants/index.js +3 -5
  524. package/src/constants/screens.js +2 -2
  525. package/src/db/defaultData/datasource_bb_default.js +646 -0
  526. package/src/db/defaultData/employeeImport.js +152 -0
  527. package/src/db/defaultData/expensesImport.js +114 -0
  528. package/src/db/defaultData/inventoryImport.js +106 -0
  529. package/src/db/defaultData/jobsImport.js +158 -0
  530. package/src/db/inMemoryView.js +3 -3
  531. package/src/db/linkedRows/LinkController.js +4 -50
  532. package/src/db/linkedRows/LinkDocument.js +47 -0
  533. package/src/db/linkedRows/index.js +2 -2
  534. package/src/db/linkedRows/linkUtils.js +3 -3
  535. package/src/db/utils.ts +2 -2
  536. package/src/db/views/staticViews.js +4 -4
  537. package/src/integrations/base/sql.ts +1 -1
  538. package/src/integrations/base/sqlTable.ts +1 -1
  539. package/src/integrations/index.ts +45 -41
  540. package/src/middleware/authorized.ts +21 -28
  541. package/src/middleware/tests/authorized.spec.js +5 -6
  542. package/src/migrations/functions/appUrls.ts +2 -2
  543. package/src/migrations/functions/tests/appUrls.spec.js +4 -4
  544. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +14 -9
  545. package/src/migrations/functions/usageQuotas/syncApps.ts +3 -4
  546. package/src/migrations/functions/usageQuotas/syncRows.ts +3 -4
  547. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
  548. package/src/migrations/functions/userEmailViewCasing.ts +3 -3
  549. package/src/sdk/app/backups/exports.ts +5 -3
  550. package/src/sdk/app/backups/imports.ts +3 -7
  551. package/src/sdk/app/tables/index.ts +1 -1
  552. package/src/startup.ts +2 -2
  553. package/src/tests/utilities/TestConfiguration.js +39 -35
  554. package/src/tests/utilities/structures.js +3 -4
  555. package/src/threads/automation.ts +14 -15
  556. package/src/threads/query.ts +11 -16
  557. package/src/threads/utils.ts +4 -5
  558. package/src/utilities/budibaseDir.ts +3 -0
  559. package/src/utilities/fileSystem/clientLibrary.js +12 -12
  560. package/src/utilities/fileSystem/index.js +8 -8
  561. package/src/utilities/{index.js → index.ts} +40 -32
  562. package/src/utilities/{redis.js → redis.ts} +21 -20
  563. package/src/utilities/routing/index.ts +32 -0
  564. package/src/utilities/rowProcessor/{index.js → index.ts} +65 -142
  565. package/src/utilities/rowProcessor/map.js +95 -0
  566. package/src/utilities/rowProcessor/{utils.js → utils.ts} +19 -15
  567. package/src/utilities/security.ts +65 -0
  568. package/src/utilities/usageQuota/{rows.js → rows.ts} +14 -18
  569. package/src/utilities/{users.js → users.ts} +11 -13
  570. package/src/utilities/{workerRequests.js → workerRequests.ts} +43 -38
  571. package/src/watch.ts +2 -3
  572. package/coverage/lcov-report/src/api/routes/cloud.js.html +0 -127
  573. package/coverage/lcov-report/src/api/routes/integration.js.html +0 -121
  574. package/coverage/lcov-report/src/api/routes/role.js.html +0 -130
  575. package/coverage/lcov-report/src/module.d.ts.html +0 -127
  576. package/coverage/lcov-report/src/utilities/fileSystem/utilities.js.html +0 -193
  577. package/dist/utilities/fileSystem/utilities.js +0 -22
  578. package/src/api/controllers/script.js +0 -11
  579. package/src/api/routes/analytics.js +0 -9
  580. package/src/api/routes/apikeys.js +0 -12
  581. package/src/api/routes/automation.js +0 -85
  582. package/src/api/routes/cloud.js +0 -14
  583. package/src/api/routes/component.js +0 -14
  584. package/src/api/routes/datasource.js +0 -51
  585. package/src/api/routes/deploy.js +0 -17
  586. package/src/api/routes/dev.js +0 -26
  587. package/src/api/routes/integration.js +0 -12
  588. package/src/api/routes/layout.js +0 -16
  589. package/src/api/routes/migrations.js +0 -14
  590. package/src/api/routes/permission.js +0 -33
  591. package/src/api/routes/role.js +0 -15
  592. package/src/api/routes/routing.js +0 -14
  593. package/src/api/routes/screen.js +0 -18
  594. package/src/api/routes/script.js +0 -10
  595. package/src/api/routes/templates.js +0 -16
  596. package/src/api/routes/view.js +0 -31
  597. package/src/module.d.ts +0 -14
  598. package/src/utilities/budibaseDir.js +0 -3
  599. package/src/utilities/fileSystem/utilities.js +0 -36
  600. package/src/utilities/routing/index.js +0 -25
  601. package/src/utilities/security.js +0 -71
@@ -1,31 +1,37 @@
1
- const {
1
+ import {
2
2
  generateDatasourceID,
3
3
  getDatasourceParams,
4
4
  getQueryParams,
5
5
  DocumentType,
6
6
  BudibaseInternalDB,
7
7
  getTableParams,
8
- } = require("../../db/utils")
9
- const { BuildSchemaErrors, InvalidColumns } = require("../../constants")
10
- const { getIntegration } = require("../../integrations")
11
- const { getDatasourceAndQuery } = require("./row/utils")
12
- const { invalidateDynamicVariables } = require("../../threads/utils")
13
- const { getAppDB } = require("@budibase/backend-core/context")
14
- const { events } = require("@budibase/backend-core")
15
-
16
- exports.fetch = async function (ctx) {
8
+ } from "../../db/utils"
9
+ import { destroy as tableDestroy } from "./table/internal"
10
+ import { BuildSchemaErrors, InvalidColumns } from "../../constants"
11
+ import { getIntegration } from "../../integrations"
12
+ import { getDatasourceAndQuery } from "./row/utils"
13
+ import { invalidateDynamicVariables } from "../../threads/utils"
14
+ import { db as dbCore, context, events } from "@budibase/backend-core"
15
+ import { BBContext, Datasource, Row } from "@budibase/types"
16
+
17
+ export async function fetch(ctx: BBContext) {
17
18
  // Get internal tables
18
- const db = getAppDB()
19
+ const db = context.getAppDB()
19
20
  const internalTables = await db.allDocs(
20
21
  getTableParams(null, {
21
22
  include_docs: true,
22
23
  })
23
24
  )
24
- const internal = internalTables.rows.map(row => row.doc)
25
+
26
+ const internal = internalTables.rows.reduce((acc: any, row: Row) => {
27
+ const sourceId = row.doc.sourceId || "bb_internal"
28
+ acc[sourceId] = acc[sourceId] || []
29
+ acc[sourceId].push(row.doc)
30
+ return acc
31
+ }, {})
25
32
 
26
33
  const bbInternalDb = {
27
34
  ...BudibaseInternalDB,
28
- entities: internal,
29
35
  }
30
36
 
31
37
  // Get external datasources
@@ -37,18 +43,24 @@ exports.fetch = async function (ctx) {
37
43
  )
38
44
  ).rows.map(row => row.doc)
39
45
 
40
- for (let datasource of datasources) {
46
+ const allDatasources = [bbInternalDb, ...datasources]
47
+
48
+ for (let datasource of allDatasources) {
41
49
  if (datasource.config && datasource.config.auth) {
42
50
  // strip secrets from response so they don't show in the network request
43
51
  delete datasource.config.auth
44
52
  }
53
+
54
+ if (datasource.type === dbCore.BUDIBASE_DATASOURCE_TYPE) {
55
+ datasource.entities = internal[datasource._id]
56
+ }
45
57
  }
46
58
 
47
59
  ctx.body = [bbInternalDb, ...datasources]
48
60
  }
49
61
 
50
- exports.buildSchemaFromDb = async function (ctx) {
51
- const db = getAppDB()
62
+ export async function buildSchemaFromDb(ctx: BBContext) {
63
+ const db = context.getAppDB()
52
64
  const datasource = await db.get(ctx.params.datasourceId)
53
65
  const tablesFilter = ctx.request.body.tablesFilter
54
66
 
@@ -59,7 +71,9 @@ exports.buildSchemaFromDb = async function (ctx) {
59
71
  }
60
72
  for (let key in tables) {
61
73
  if (
62
- tablesFilter.some(filter => filter.toLowerCase() === key.toLowerCase())
74
+ tablesFilter.some(
75
+ (filter: any) => filter.toLowerCase() === key.toLowerCase()
76
+ )
63
77
  ) {
64
78
  datasource.entities[key] = tables[key]
65
79
  }
@@ -72,7 +86,7 @@ exports.buildSchemaFromDb = async function (ctx) {
72
86
  const dbResp = await db.put(datasource)
73
87
  datasource._rev = dbResp.rev
74
88
 
75
- const response = { datasource }
89
+ const response: any = { datasource }
76
90
  if (error) {
77
91
  response.error = error
78
92
  }
@@ -82,9 +96,9 @@ exports.buildSchemaFromDb = async function (ctx) {
82
96
  /**
83
97
  * Make sure all datasource entities have a display name selected
84
98
  */
85
- const setDefaultDisplayColumns = datasource => {
99
+ function setDefaultDisplayColumns(datasource: Datasource) {
86
100
  //
87
- for (let entity of Object.values(datasource.entities)) {
101
+ for (let entity of Object.values(datasource.entities || {})) {
88
102
  if (entity.primaryDisplay) {
89
103
  continue
90
104
  }
@@ -100,9 +114,12 @@ const setDefaultDisplayColumns = datasource => {
100
114
  /**
101
115
  * Check for variables that have been updated or removed and invalidate them.
102
116
  */
103
- const invalidateVariables = async (existingDatasource, updatedDatasource) => {
104
- const existingVariables = existingDatasource.config.dynamicVariables
105
- const updatedVariables = updatedDatasource.config.dynamicVariables
117
+ async function invalidateVariables(
118
+ existingDatasource: Datasource,
119
+ updatedDatasource: Datasource
120
+ ) {
121
+ const existingVariables: any = existingDatasource.config?.dynamicVariables
122
+ const updatedVariables: any = updatedDatasource.config?.dynamicVariables
106
123
  const toInvalidate = []
107
124
 
108
125
  if (!existingVariables) {
@@ -114,9 +131,9 @@ const invalidateVariables = async (existingDatasource, updatedDatasource) => {
114
131
  toInvalidate.push(...existingVariables)
115
132
  } else {
116
133
  // invaldate changed / removed
117
- existingVariables.forEach(existing => {
134
+ existingVariables.forEach((existing: any) => {
118
135
  const unchanged = updatedVariables.find(
119
- updated =>
136
+ (updated: any) =>
120
137
  existing.name === updated.name &&
121
138
  existing.queryId === updated.queryId &&
122
139
  existing.value === updated.value
@@ -129,8 +146,8 @@ const invalidateVariables = async (existingDatasource, updatedDatasource) => {
129
146
  await invalidateDynamicVariables(toInvalidate)
130
147
  }
131
148
 
132
- exports.update = async function (ctx) {
133
- const db = getAppDB()
149
+ export async function update(ctx: BBContext) {
150
+ const db = context.getAppDB()
134
151
  const datasourceId = ctx.params.datasourceId
135
152
  let datasource = await db.get(datasourceId)
136
153
  const auth = datasource.config.auth
@@ -158,8 +175,8 @@ exports.update = async function (ctx) {
158
175
  ctx.body = { datasource }
159
176
  }
160
177
 
161
- exports.save = async function (ctx) {
162
- const db = getAppDB()
178
+ export async function save(ctx: BBContext) {
179
+ const db = context.getAppDB()
163
180
  const plus = ctx.request.body.datasource.plus
164
181
  const fetchSchema = ctx.request.body.fetchSchema
165
182
 
@@ -189,27 +206,63 @@ exports.save = async function (ctx) {
189
206
  }
190
207
  }
191
208
 
192
- const response = { datasource }
209
+ const response: any = { datasource }
193
210
  if (schemaError) {
194
211
  response.error = schemaError
195
212
  }
196
213
  ctx.body = response
197
214
  }
198
215
 
199
- exports.destroy = async function (ctx) {
200
- const db = getAppDB()
216
+ async function destroyInternalTablesBySourceId(datasourceId: string) {
217
+ const db = context.getAppDB()
218
+
219
+ // Get all internal tables
220
+ const internalTables = await db.allDocs(
221
+ getTableParams(null, {
222
+ include_docs: true,
223
+ })
224
+ )
225
+
226
+ // Filter by datasource and return the docs.
227
+ const datasourceTableDocs = internalTables.rows.reduce(
228
+ (acc: any, table: any) => {
229
+ if (table.doc.sourceId == datasourceId) {
230
+ acc.push(table.doc)
231
+ }
232
+ return acc
233
+ },
234
+ []
235
+ )
236
+
237
+ // Destroy the tables.
238
+ for (const table of datasourceTableDocs) {
239
+ await tableDestroy({
240
+ params: {
241
+ tableId: table._id,
242
+ },
243
+ })
244
+ }
245
+ }
246
+
247
+ export async function destroy(ctx: BBContext) {
248
+ const db = context.getAppDB()
201
249
  const datasourceId = ctx.params.datasourceId
202
250
 
203
251
  const datasource = await db.get(datasourceId)
204
252
  // Delete all queries for the datasource
205
- const queries = await db.allDocs(getQueryParams(datasourceId, null))
206
- await db.bulkDocs(
207
- queries.rows.map(row => ({
208
- _id: row.id,
209
- _rev: row.value.rev,
210
- _deleted: true,
211
- }))
212
- )
253
+
254
+ if (datasource.type === dbCore.BUDIBASE_DATASOURCE_TYPE) {
255
+ await destroyInternalTablesBySourceId(datasourceId)
256
+ } else {
257
+ const queries = await db.allDocs(getQueryParams(datasourceId, null))
258
+ await db.bulkDocs(
259
+ queries.rows.map((row: any) => ({
260
+ _id: row.id,
261
+ _rev: row.value.rev,
262
+ _deleted: true,
263
+ }))
264
+ )
265
+ }
213
266
 
214
267
  // delete the datasource
215
268
  await db.remove(datasourceId, ctx.params.revId)
@@ -219,28 +272,28 @@ exports.destroy = async function (ctx) {
219
272
  ctx.status = 200
220
273
  }
221
274
 
222
- exports.find = async function (ctx) {
223
- const database = getAppDB()
275
+ export async function find(ctx: BBContext) {
276
+ const database = context.getAppDB()
224
277
  ctx.body = await database.get(ctx.params.datasourceId)
225
278
  }
226
279
 
227
280
  // dynamic query functionality
228
- exports.query = async function (ctx) {
281
+ export async function query(ctx: BBContext) {
229
282
  const queryJson = ctx.request.body
230
283
  try {
231
284
  ctx.body = await getDatasourceAndQuery(queryJson)
232
- } catch (err) {
285
+ } catch (err: any) {
233
286
  ctx.throw(400, err)
234
287
  }
235
288
  }
236
289
 
237
- function getErrorTables(errors, errorType) {
290
+ function getErrorTables(errors: any, errorType: string) {
238
291
  return Object.entries(errors)
239
292
  .filter(entry => entry[1] === errorType)
240
293
  .map(([name]) => name)
241
294
  }
242
295
 
243
- function updateError(error, newError, tables) {
296
+ function updateError(error: any, newError: any, tables: string[]) {
244
297
  if (!error) {
245
298
  error = ""
246
299
  }
@@ -251,7 +304,7 @@ function updateError(error, newError, tables) {
251
304
  return error
252
305
  }
253
306
 
254
- const buildSchemaHelper = async datasource => {
307
+ async function buildSchemaHelper(datasource: Datasource) {
255
308
  const Connector = await getIntegration(datasource.source)
256
309
 
257
310
  // Connect to the DB and build the schema
@@ -1,15 +1,20 @@
1
- const newid = require("../../../db/newid")
2
- const { getAppId } = require("@budibase/backend-core/context")
1
+ import newid from "../../../db/newid"
2
+ import { context } from "@budibase/backend-core"
3
3
 
4
4
  /**
5
5
  * This is used to pass around information about the deployment that is occurring
6
6
  */
7
- class Deployment {
7
+ export default class Deployment {
8
+ _id: string
9
+ verification: any
10
+ status?: string
11
+ err?: any
12
+
8
13
  constructor(id = null) {
9
14
  this._id = id || newid()
10
15
  }
11
16
 
12
- setVerification(verification) {
17
+ setVerification(verification: any) {
13
18
  if (!verification) {
14
19
  return
15
20
  }
@@ -20,14 +25,14 @@ class Deployment {
20
25
  return this.verification
21
26
  }
22
27
 
23
- setStatus(status, err = null) {
28
+ setStatus(status: string, err?: any) {
24
29
  this.status = status
25
30
  if (err) {
26
31
  this.err = err
27
32
  }
28
33
  }
29
34
 
30
- fromJSON(json) {
35
+ fromJSON(json: any) {
31
36
  if (json.verification) {
32
37
  this.setVerification(json.verification)
33
38
  }
@@ -37,9 +42,9 @@ class Deployment {
37
42
  }
38
43
 
39
44
  getJSON() {
40
- const obj = {
45
+ const obj: any = {
41
46
  _id: this._id,
42
- appId: getAppId(),
47
+ appId: context.getAppId(),
43
48
  status: this.status,
44
49
  }
45
50
  if (this.err) {
@@ -51,5 +56,3 @@ class Deployment {
51
56
  return obj
52
57
  }
53
58
  }
54
-
55
- module.exports = Deployment
@@ -1,10 +1,10 @@
1
- const { EMPTY_LAYOUT } = require("../../constants/layouts")
2
- const { generateLayoutID, getScreenParams } = require("../../db/utils")
3
- const { getAppDB } = require("@budibase/backend-core/context")
4
- const { events } = require("@budibase/backend-core")
1
+ import { EMPTY_LAYOUT } from "../../constants/layouts"
2
+ import { generateLayoutID, getScreenParams } from "../../db/utils"
3
+ import { events, context } from "@budibase/backend-core"
4
+ import { BBContext } from "@budibase/types"
5
5
 
6
- exports.save = async function (ctx) {
7
- const db = getAppDB()
6
+ export async function save(ctx: BBContext) {
7
+ const db = context.getAppDB()
8
8
  let layout = ctx.request.body
9
9
 
10
10
  if (!layout.props) {
@@ -24,8 +24,8 @@ exports.save = async function (ctx) {
24
24
  ctx.status = 200
25
25
  }
26
26
 
27
- exports.destroy = async function (ctx) {
28
- const db = getAppDB()
27
+ export async function destroy(ctx: BBContext) {
28
+ const db = context.getAppDB()
29
29
  const layoutId = ctx.params.layoutId,
30
30
  layoutRev = ctx.params.layoutRev
31
31
 
@@ -1,15 +1,16 @@
1
- const { MetadataTypes } = require("../../constants")
2
- const { generateMetadataID } = require("../../db/utils")
3
- const { saveEntityMetadata, deleteEntityMetadata } = require("../../utilities")
4
- const { getAppDB } = require("@budibase/backend-core/context")
1
+ import { MetadataTypes } from "../../constants"
2
+ import { generateMetadataID } from "../../db/utils"
3
+ import { saveEntityMetadata, deleteEntityMetadata } from "../../utilities"
4
+ import { context } from "@budibase/backend-core"
5
+ import { BBContext } from "@budibase/types"
5
6
 
6
- exports.getTypes = async ctx => {
7
+ export async function getTypes(ctx: BBContext) {
7
8
  ctx.body = {
8
9
  types: MetadataTypes,
9
10
  }
10
11
  }
11
12
 
12
- exports.saveMetadata = async ctx => {
13
+ export async function saveMetadata(ctx: BBContext) {
13
14
  const { type, entityId } = ctx.params
14
15
  if (type === MetadataTypes.AUTOMATION_TEST_HISTORY) {
15
16
  ctx.throw(400, "Cannot save automation history type")
@@ -17,7 +18,7 @@ exports.saveMetadata = async ctx => {
17
18
  ctx.body = await saveEntityMetadata(type, entityId, ctx.request.body)
18
19
  }
19
20
 
20
- exports.deleteMetadata = async ctx => {
21
+ export async function deleteMetadata(ctx: BBContext) {
21
22
  const { type, entityId } = ctx.params
22
23
  await deleteEntityMetadata(type, entityId)
23
24
  ctx.body = {
@@ -25,13 +26,13 @@ exports.deleteMetadata = async ctx => {
25
26
  }
26
27
  }
27
28
 
28
- exports.getMetadata = async ctx => {
29
+ export async function getMetadata(ctx: BBContext) {
29
30
  const { type, entityId } = ctx.params
30
- const db = getAppDB()
31
+ const db = context.getAppDB()
31
32
  const id = generateMetadataID(type, entityId)
32
33
  try {
33
34
  ctx.body = await db.get(id)
34
- } catch (err) {
35
+ } catch (err: any) {
35
36
  if (err.status === 404) {
36
37
  ctx.body = {}
37
38
  } else {
@@ -1,18 +1,11 @@
1
- const { getBuiltinPermissions } = require("@budibase/backend-core/permissions")
2
- const {
3
- isBuiltin,
4
- getDBRoleID,
5
- getExternalRoleID,
6
- getBuiltinRoles,
7
- checkForRoleResourceArray,
8
- } = require("@budibase/backend-core/roles")
9
- const { getRoleParams } = require("../../db/utils")
10
- const {
1
+ import { permissions, roles, context } from "@budibase/backend-core"
2
+ import { getRoleParams } from "../../db/utils"
3
+ import {
11
4
  CURRENTLY_SUPPORTED_LEVELS,
12
5
  getBasePermissions,
13
- } = require("../../utilities/security")
14
- const { removeFromArray } = require("../../utilities")
15
- const { getAppDB } = require("@budibase/backend-core/context")
6
+ } from "../../utilities/security"
7
+ import { removeFromArray } from "../../utilities"
8
+ import { BBContext, Database, Role } from "@budibase/types"
16
9
 
17
10
  const PermissionUpdateType = {
18
11
  REMOVE: "remove",
@@ -22,7 +15,7 @@ const PermissionUpdateType = {
22
15
  const SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
23
16
 
24
17
  // utility function to stop this repetition - permissions always stored under roles
25
- async function getAllDBRoles(db) {
18
+ async function getAllDBRoles(db: Database) {
26
19
  const body = await db.allDocs(
27
20
  getRoleParams(null, {
28
21
  include_docs: true,
@@ -32,21 +25,25 @@ async function getAllDBRoles(db) {
32
25
  }
33
26
 
34
27
  async function updatePermissionOnRole(
35
- appId,
36
- { roleId, resourceId, level },
37
- updateType
28
+ appId: string,
29
+ {
30
+ roleId,
31
+ resourceId,
32
+ level,
33
+ }: { roleId: string; resourceId: string; level: string },
34
+ updateType: string
38
35
  ) {
39
- const db = getAppDB()
36
+ const db = context.getAppDB()
40
37
  const remove = updateType === PermissionUpdateType.REMOVE
41
- const isABuiltin = isBuiltin(roleId)
42
- const dbRoleId = getDBRoleID(roleId)
38
+ const isABuiltin = roles.isBuiltin(roleId)
39
+ const dbRoleId = roles.getDBRoleID(roleId)
43
40
  const dbRoles = await getAllDBRoles(db)
44
41
  const docUpdates = []
45
42
 
46
43
  // the permission is for a built in, make sure it exists
47
44
  if (isABuiltin && !dbRoles.some(role => role._id === dbRoleId)) {
48
- const builtin = getBuiltinRoles()[roleId]
49
- builtin._id = getDBRoleID(builtin._id)
45
+ const builtin = roles.getBuiltinRoles()[roleId]
46
+ builtin._id = roles.getDBRoleID(builtin._id)
50
47
  dbRoles.push(builtin)
51
48
  }
52
49
 
@@ -90,41 +87,44 @@ async function updatePermissionOnRole(
90
87
  }
91
88
 
92
89
  const response = await db.bulkDocs(docUpdates)
93
- return response.map(resp => {
94
- resp._id = getExternalRoleID(resp.id)
90
+ return response.map((resp: any) => {
91
+ resp._id = roles.getExternalRoleID(resp.id)
95
92
  delete resp.id
96
93
  return resp
97
94
  })
98
95
  }
99
96
 
100
- exports.fetchBuiltin = function (ctx) {
101
- ctx.body = Object.values(getBuiltinPermissions())
97
+ export function fetchBuiltin(ctx: BBContext) {
98
+ ctx.body = Object.values(permissions.getBuiltinPermissions())
102
99
  }
103
100
 
104
- exports.fetchLevels = function (ctx) {
101
+ export function fetchLevels(ctx: BBContext) {
105
102
  // for now only provide the read/write perms externally
106
103
  ctx.body = SUPPORTED_LEVELS
107
104
  }
108
105
 
109
- exports.fetch = async function (ctx) {
110
- const db = getAppDB()
111
- const roles = await getAllDBRoles(db)
112
- let permissions = {}
106
+ export async function fetch(ctx: BBContext) {
107
+ const db = context.getAppDB()
108
+ const dbRoles: Role[] = await getAllDBRoles(db)
109
+ let permissions: any = {}
113
110
  // create an object with structure role ID -> resource ID -> level
114
- for (let role of roles) {
111
+ for (let role of dbRoles) {
115
112
  if (!role.permissions) {
116
113
  continue
117
114
  }
118
- const roleId = getExternalRoleID(role._id)
115
+ const roleId = roles.getExternalRoleID(role._id)
116
+ if (!roleId) {
117
+ ctx.throw(400, "Unable to retrieve role")
118
+ }
119
119
  for (let [resource, levelArr] of Object.entries(role.permissions)) {
120
- const levels = Array.isArray(levelArr) ? [levelArr] : levelArr
121
- const perms = {}
122
- levels.forEach(level => (perms[level] = roleId))
120
+ const levels: string[] = Array.isArray(levelArr) ? levelArr : [levelArr]
121
+ const perms: Record<string, string> = {}
122
+ levels.forEach(level => (perms[level] = roleId!))
123
123
  permissions[resource] = perms
124
124
  }
125
125
  }
126
126
  // apply the base permissions
127
- const finalPermissions = {}
127
+ const finalPermissions: Record<string, Record<string, string>> = {}
128
128
  for (let [resource, permission] of Object.entries(permissions)) {
129
129
  const basePerms = getBasePermissions(resource)
130
130
  finalPermissions[resource] = Object.assign(basePerms, permission)
@@ -132,33 +132,36 @@ exports.fetch = async function (ctx) {
132
132
  ctx.body = finalPermissions
133
133
  }
134
134
 
135
- exports.getResourcePerms = async function (ctx) {
135
+ export async function getResourcePerms(ctx: BBContext) {
136
136
  const resourceId = ctx.params.resourceId
137
- const db = getAppDB()
137
+ const db = context.getAppDB()
138
138
  const body = await db.allDocs(
139
139
  getRoleParams(null, {
140
140
  include_docs: true,
141
141
  })
142
142
  )
143
- const roles = body.rows.map(row => row.doc)
144
- let permissions = {}
143
+ const rolesList = body.rows.map(row => row.doc)
144
+ let permissions: Record<string, string> = {}
145
145
  for (let level of SUPPORTED_LEVELS) {
146
146
  // update the various roleIds in the resource permissions
147
- for (let role of roles) {
148
- const rolePerms = checkForRoleResourceArray(role.permissions, resourceId)
147
+ for (let role of rolesList) {
148
+ const rolePerms = roles.checkForRoleResourceArray(
149
+ role.permissions,
150
+ resourceId
151
+ )
149
152
  if (
150
153
  rolePerms &&
151
154
  rolePerms[resourceId] &&
152
155
  rolePerms[resourceId].indexOf(level) !== -1
153
156
  ) {
154
- permissions[level] = getExternalRoleID(role._id)
157
+ permissions[level] = roles.getExternalRoleID(role._id)!
155
158
  }
156
159
  }
157
160
  }
158
161
  ctx.body = Object.assign(getBasePermissions(resourceId), permissions)
159
162
  }
160
163
 
161
- exports.addPermission = async function (ctx) {
164
+ export async function addPermission(ctx: BBContext) {
162
165
  ctx.body = await updatePermissionOnRole(
163
166
  ctx.appId,
164
167
  ctx.params,
@@ -166,7 +169,7 @@ exports.addPermission = async function (ctx) {
166
169
  )
167
170
  }
168
171
 
169
- exports.removePermission = async function (ctx) {
172
+ export async function removePermission(ctx: BBContext) {
170
173
  ctx.body = await updatePermissionOnRole(
171
174
  ctx.appId,
172
175
  ctx.params,
@@ -1,6 +1,5 @@
1
1
  import { npmUpload, urlUpload, githubUpload, fileUpload } from "./uploaders"
2
- import { getGlobalDB } from "@budibase/backend-core/tenancy"
3
- import { validate } from "@budibase/backend-core/plugins"
2
+ import { plugins as pluginCore, tenancy } from "@budibase/backend-core"
4
3
  import { PluginType, FileType, PluginSource } from "@budibase/types"
5
4
  import env from "../../../environment"
6
5
  import { ClientAppSocket } from "../../../websocket"
@@ -8,7 +7,7 @@ import { db as dbCore } from "@budibase/backend-core"
8
7
  import { plugins } from "@budibase/pro"
9
8
 
10
9
  export async function getPlugins(type?: PluginType) {
11
- const db = getGlobalDB()
10
+ const db = tenancy.getGlobalDB()
12
11
  const response = await db.allDocs(
13
12
  dbCore.getPluginParams(null, {
14
13
  include_docs: true,
@@ -76,7 +75,7 @@ export async function create(ctx: any) {
76
75
  break
77
76
  }
78
77
 
79
- validate(metadata?.schema)
78
+ pluginCore.validate(metadata?.schema)
80
79
 
81
80
  // Only allow components in cloud
82
81
  if (!env.SELF_HOSTED && metadata?.schema?.type !== PluginType.COMPONENT) {
@@ -121,7 +120,7 @@ export async function processUploadedPlugin(
121
120
  source?: PluginSource
122
121
  ) {
123
122
  const { metadata, directory } = await fileUpload(plugin)
124
- validate(metadata?.schema)
123
+ pluginCore.validate(metadata?.schema)
125
124
 
126
125
  // Only allow components in cloud
127
126
  if (!env.SELF_HOSTED && metadata?.schema?.type !== PluginType.COMPONENT) {
@@ -1,6 +1,6 @@
1
1
  import { search as stringSearch, addRev } from "./utils"
2
- import { default as controller } from "../table"
3
- import { Table } from "../../../definitions/common"
2
+ import * as controller from "../table"
3
+ import { Table } from "@budibase/types"
4
4
 
5
5
  function fixTable(table: Table, params: any) {
6
6
  if (!params || !table) {
@@ -5,8 +5,7 @@ import { OpenAPI2 } from "./sources/openapi2"
5
5
  import { OpenAPI3 } from "./sources/openapi3"
6
6
  import { Curl } from "./sources/curl"
7
7
  // @ts-ignore
8
- import { getAppDB } from "@budibase/backend-core/context"
9
- import { events } from "@budibase/backend-core"
8
+ import { events, context } from "@budibase/backend-core"
10
9
  import { Datasource, Query } from "@budibase/types"
11
10
 
12
11
  interface ImportResult {
@@ -59,7 +58,7 @@ export class RestImporter {
59
58
  })
60
59
 
61
60
  // persist queries
62
- const db = getAppDB()
61
+ const db = context.getAppDB()
63
62
  const response = await db.bulkDocs(queries)
64
63
 
65
64
  // create index to seperate queries and errors