@budibase/server 2.2.12-alpha.3 → 2.2.12-alpha.30

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 (500) hide show
  1. package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
  2. package/builder/assets/index.2203da4c.css +6 -0
  3. package/builder/assets/{index.8a1f534a.js → index.4dc7e0fd.js} +389 -401
  4. package/builder/index.html +2 -2
  5. package/coverage/clover.xml +1959 -2080
  6. package/coverage/coverage-final.json +278 -279
  7. package/coverage/lcov-report/index.html +391 -391
  8. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +4 -4
  9. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +2 -2
  10. package/coverage/lcov-report/src/api/controllers/application.ts.html +82 -82
  11. package/coverage/lcov-report/src/api/controllers/auth.ts.html +2 -2
  12. package/coverage/lcov-report/src/api/controllers/automation.ts.html +17 -17
  13. package/coverage/lcov-report/src/api/controllers/backup.ts.html +3 -3
  14. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +5 -5
  15. package/coverage/lcov-report/src/api/controllers/component.ts.html +8 -8
  16. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +23 -23
  17. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +16 -16
  18. package/coverage/lcov-report/src/api/controllers/deploy/index.html +7 -7
  19. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +73 -73
  20. package/coverage/lcov-report/src/api/controllers/dev.ts.html +15 -15
  21. package/coverage/lcov-report/src/api/controllers/index.html +98 -98
  22. package/coverage/lcov-report/src/api/controllers/integration.ts.html +2 -2
  23. package/coverage/lcov-report/src/api/controllers/layout.ts.html +5 -5
  24. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +3 -3
  25. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +3 -3
  26. package/coverage/lcov-report/src/api/controllers/permission.ts.html +4 -4
  27. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +4 -4
  28. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +17 -17
  29. package/coverage/lcov-report/src/api/controllers/plugin/index.html +31 -31
  30. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +21 -21
  31. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +7 -7
  32. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
  33. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +2 -2
  34. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +2 -2
  35. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +27 -27
  36. package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
  37. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +6 -6
  38. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
  39. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +3 -3
  40. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +7 -7
  41. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +3 -3
  42. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +3 -3
  43. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +3 -3
  44. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +13 -13
  45. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +18 -18
  46. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +19 -19
  47. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +24 -24
  48. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +5 -5
  49. package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
  50. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +5 -5
  51. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
  52. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +13 -13
  53. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
  54. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +6 -6
  55. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
  56. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +8 -8
  57. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +8 -8
  58. package/coverage/lcov-report/src/api/controllers/query/index.html +15 -15
  59. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +20 -20
  60. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +5 -5
  61. package/coverage/lcov-report/src/api/controllers/role.ts.html +4 -4
  62. package/coverage/lcov-report/src/api/controllers/routing.ts.html +5 -5
  63. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +48 -30
  64. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +38 -38
  65. package/coverage/lcov-report/src/api/controllers/row/index.html +58 -58
  66. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +12 -12
  67. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +39 -36
  68. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +28 -28
  69. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +14 -14
  70. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +7 -7
  71. package/coverage/lcov-report/src/api/controllers/screen.ts.html +8 -8
  72. package/coverage/lcov-report/src/api/controllers/script.ts.html +10 -10
  73. package/coverage/lcov-report/src/api/controllers/static/index.html +15 -15
  74. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +17 -17
  75. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
  76. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +33 -33
  77. package/coverage/lcov-report/src/api/controllers/table/index.html +48 -48
  78. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +128 -41
  79. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +19 -22
  80. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +52 -55
  81. package/coverage/lcov-report/src/api/controllers/templates.ts.html +15 -15
  82. package/coverage/lcov-report/src/api/controllers/user.ts.html +101 -77
  83. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +63 -18
  84. package/coverage/lcov-report/src/api/controllers/view/index.html +38 -38
  85. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +62 -35
  86. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +19 -19
  87. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +3 -3
  88. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +4 -4
  89. package/coverage/lcov-report/src/api/index.html +15 -15
  90. package/coverage/lcov-report/src/api/index.ts.html +10 -10
  91. package/coverage/lcov-report/src/api/routes/analytics.ts.html +4 -4
  92. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +4 -4
  93. package/coverage/lcov-report/src/api/routes/application.ts.html +4 -4
  94. package/coverage/lcov-report/src/api/routes/auth.ts.html +4 -4
  95. package/coverage/lcov-report/src/api/routes/automation.ts.html +5 -5
  96. package/coverage/lcov-report/src/api/routes/backup.ts.html +4 -4
  97. package/coverage/lcov-report/src/api/routes/cloud.ts.html +4 -4
  98. package/coverage/lcov-report/src/api/routes/component.ts.html +4 -4
  99. package/coverage/lcov-report/src/api/routes/datasource.ts.html +5 -5
  100. package/coverage/lcov-report/src/api/routes/deploy.ts.html +4 -4
  101. package/coverage/lcov-report/src/api/routes/dev.ts.html +5 -5
  102. package/coverage/lcov-report/src/api/routes/index.html +66 -66
  103. package/coverage/lcov-report/src/api/routes/index.ts.html +5 -5
  104. package/coverage/lcov-report/src/api/routes/integration.ts.html +4 -4
  105. package/coverage/lcov-report/src/api/routes/layout.ts.html +4 -4
  106. package/coverage/lcov-report/src/api/routes/metadata.ts.html +5 -5
  107. package/coverage/lcov-report/src/api/routes/migrations.ts.html +4 -4
  108. package/coverage/lcov-report/src/api/routes/permission.ts.html +4 -4
  109. package/coverage/lcov-report/src/api/routes/plugin.ts.html +3 -3
  110. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +3 -3
  111. package/coverage/lcov-report/src/api/routes/public/index.html +24 -24
  112. package/coverage/lcov-report/src/api/routes/public/index.ts.html +10 -10
  113. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +5 -5
  114. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +10 -10
  115. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +3 -3
  116. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +3 -3
  117. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +3 -3
  118. package/coverage/lcov-report/src/api/routes/public/tests/index.html +7 -7
  119. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
  120. package/coverage/lcov-report/src/api/routes/public/users.ts.html +3 -3
  121. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +4 -4
  122. package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
  123. package/coverage/lcov-report/src/api/routes/query.ts.html +5 -5
  124. package/coverage/lcov-report/src/api/routes/role.ts.html +4 -4
  125. package/coverage/lcov-report/src/api/routes/routing.ts.html +4 -4
  126. package/coverage/lcov-report/src/api/routes/row.ts.html +3 -3
  127. package/coverage/lcov-report/src/api/routes/screen.ts.html +4 -4
  128. package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
  129. package/coverage/lcov-report/src/api/routes/static.ts.html +6 -6
  130. package/coverage/lcov-report/src/api/routes/table.ts.html +20 -89
  131. package/coverage/lcov-report/src/api/routes/templates.ts.html +4 -4
  132. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +13 -13
  133. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +23 -23
  134. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +14 -14
  135. package/coverage/lcov-report/src/api/routes/user.ts.html +4 -4
  136. package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
  137. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +8 -8
  138. package/coverage/lcov-report/src/api/routes/view.ts.html +4 -4
  139. package/coverage/lcov-report/src/api/routes/webhook.ts.html +4 -4
  140. package/coverage/lcov-report/src/app.ts.html +22 -16
  141. package/coverage/lcov-report/src/automations/actions.ts.html +9 -9
  142. package/coverage/lcov-report/src/automations/automationUtils.ts.html +15 -15
  143. package/coverage/lcov-report/src/automations/bullboard.ts.html +12 -12
  144. package/coverage/lcov-report/src/automations/index.html +52 -52
  145. package/coverage/lcov-report/src/automations/index.ts.html +16 -16
  146. package/coverage/lcov-report/src/automations/logging/index.html +3 -3
  147. package/coverage/lcov-report/src/automations/logging/index.ts.html +5 -5
  148. package/coverage/lcov-report/src/automations/steps/bash.ts.html +5 -5
  149. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +4 -4
  150. package/coverage/lcov-report/src/automations/steps/delay.ts.html +4 -4
  151. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +4 -4
  152. package/coverage/lcov-report/src/automations/steps/discord.ts.html +5 -5
  153. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +4 -4
  154. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +4 -4
  155. package/coverage/lcov-report/src/automations/steps/filter.ts.html +8 -8
  156. package/coverage/lcov-report/src/automations/steps/index.html +71 -71
  157. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
  158. package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
  159. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +12 -12
  160. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +12 -12
  161. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +5 -5
  162. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +5 -5
  163. package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
  164. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +4 -4
  165. package/coverage/lcov-report/src/automations/steps/utils.ts.html +4 -4
  166. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +4 -4
  167. package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
  168. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +14 -14
  169. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +5 -5
  170. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +5 -5
  171. package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
  172. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +4 -4
  173. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +5 -5
  174. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +5 -5
  175. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +5 -5
  176. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +5 -5
  177. package/coverage/lcov-report/src/automations/triggers.ts.html +11 -11
  178. package/coverage/lcov-report/src/automations/utils.ts.html +37 -37
  179. package/coverage/lcov-report/src/constants/index.html +19 -19
  180. package/coverage/lcov-report/src/constants/index.ts.html +103 -103
  181. package/coverage/lcov-report/src/constants/layouts.ts.html +6 -6
  182. package/coverage/lcov-report/src/constants/screens.ts.html +2 -2
  183. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +25 -25
  184. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +7 -7
  185. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +7 -7
  186. package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
  187. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +7 -7
  188. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +7 -7
  189. package/coverage/lcov-report/src/db/dynamoClient.ts.html +12 -12
  190. package/coverage/lcov-report/src/db/inMemoryView.ts.html +10 -10
  191. package/coverage/lcov-report/src/db/index.html +32 -32
  192. package/coverage/lcov-report/src/db/index.ts.html +3 -3
  193. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +22 -22
  194. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
  195. package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
  196. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +18 -18
  197. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +15 -15
  198. package/coverage/lcov-report/src/db/newid.ts.html +4 -4
  199. package/coverage/lcov-report/src/db/utils.ts.html +59 -59
  200. package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
  201. package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
  202. package/coverage/lcov-report/src/definitions/index.html +4 -4
  203. package/coverage/lcov-report/src/environment.ts.html +25 -25
  204. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +7 -7
  205. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +4 -4
  206. package/coverage/lcov-report/src/events/index.html +20 -20
  207. package/coverage/lcov-report/src/events/index.ts.html +5 -5
  208. package/coverage/lcov-report/src/events/utils.ts.html +11 -11
  209. package/coverage/lcov-report/src/index.html +36 -36
  210. package/coverage/lcov-report/src/index.ts.html +6 -6
  211. package/coverage/lcov-report/src/integrations/airtable.ts.html +8 -8
  212. package/coverage/lcov-report/src/integrations/arangodb.ts.html +7 -7
  213. package/coverage/lcov-report/src/integrations/base/index.html +20 -20
  214. package/coverage/lcov-report/src/integrations/base/query.ts.html +2 -2
  215. package/coverage/lcov-report/src/integrations/base/sql.ts.html +28 -28
  216. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +15 -15
  217. package/coverage/lcov-report/src/integrations/base/utils.ts.html +2 -2
  218. package/coverage/lcov-report/src/integrations/couchdb.ts.html +8 -8
  219. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +12 -12
  220. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +7 -7
  221. package/coverage/lcov-report/src/integrations/firebase.ts.html +10 -10
  222. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +33 -33
  223. package/coverage/lcov-report/src/integrations/index.html +123 -123
  224. package/coverage/lcov-report/src/integrations/index.ts.html +13 -13
  225. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +26 -26
  226. package/coverage/lcov-report/src/integrations/mongodb.ts.html +15 -15
  227. package/coverage/lcov-report/src/integrations/mysql.ts.html +20 -20
  228. package/coverage/lcov-report/src/integrations/oracle.ts.html +21 -21
  229. package/coverage/lcov-report/src/integrations/postgres.ts.html +15 -15
  230. package/coverage/lcov-report/src/integrations/queries/index.html +5 -5
  231. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +6 -6
  232. package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
  233. package/coverage/lcov-report/src/integrations/rest.ts.html +15 -15
  234. package/coverage/lcov-report/src/integrations/s3.ts.html +14 -14
  235. package/coverage/lcov-report/src/integrations/snowflake.ts.html +12 -12
  236. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
  237. package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
  238. package/coverage/lcov-report/src/integrations/utils.ts.html +34 -34
  239. package/coverage/lcov-report/src/middleware/appInfo.ts.html +8 -8
  240. package/coverage/lcov-report/src/middleware/authorized.ts.html +26 -14
  241. package/coverage/lcov-report/src/middleware/builder.ts.html +12 -12
  242. package/coverage/lcov-report/src/middleware/currentapp.ts.html +14 -11
  243. package/coverage/lcov-report/src/middleware/index.html +40 -40
  244. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
  245. package/coverage/lcov-report/src/middleware/publicApi.ts.html +7 -7
  246. package/coverage/lcov-report/src/middleware/resourceId.ts.html +6 -6
  247. package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
  248. package/coverage/lcov-report/src/middleware/utils.ts.html +2 -2
  249. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
  250. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +3 -3
  251. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +3 -3
  252. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
  253. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +4 -4
  254. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
  255. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +3 -3
  256. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +3 -3
  257. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +5 -5
  258. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +3 -3
  259. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
  260. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
  261. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +3 -3
  262. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +8 -8
  263. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +11 -11
  264. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
  265. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +3 -3
  266. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +7 -7
  267. package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
  268. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +4 -4
  269. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +7 -7
  270. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
  271. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
  272. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +2 -2
  273. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +5 -5
  274. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +2 -2
  275. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
  276. package/coverage/lcov-report/src/migrations/index.html +15 -15
  277. package/coverage/lcov-report/src/migrations/index.ts.html +13 -13
  278. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
  279. package/coverage/lcov-report/src/migrations/tests/index.html +6 -6
  280. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
  281. package/coverage/lcov-report/src/sdk/app/applications/index.html +11 -11
  282. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +3 -3
  283. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +20 -20
  284. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +13 -13
  285. package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
  286. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
  287. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +6 -6
  288. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
  289. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +15 -15
  290. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +8 -8
  291. package/coverage/lcov-report/src/sdk/app/backups/index.html +27 -27
  292. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +3 -3
  293. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
  294. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +3 -3
  295. package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
  296. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +3 -3
  297. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +1 -1
  298. package/coverage/lcov-report/src/sdk/app/tables/index.html +11 -11
  299. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +7 -7
  300. package/coverage/lcov-report/src/sdk/index.html +5 -5
  301. package/coverage/lcov-report/src/sdk/index.ts.html +4 -4
  302. package/coverage/lcov-report/src/sdk/users/index.html +6 -6
  303. package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
  304. package/coverage/lcov-report/src/sdk/users/utils.ts.html +23 -23
  305. package/coverage/lcov-report/src/startup.ts.html +10 -25
  306. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +61 -61
  307. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +11 -11
  308. package/coverage/lcov-report/src/tests/utilities/index.html +26 -26
  309. package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
  310. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +30 -30
  311. package/coverage/lcov-report/src/threads/automation.ts.html +20 -20
  312. package/coverage/lcov-report/src/threads/index.html +39 -39
  313. package/coverage/lcov-report/src/threads/index.ts.html +17 -17
  314. package/coverage/lcov-report/src/threads/query.ts.html +12 -12
  315. package/coverage/lcov-report/src/threads/utils.ts.html +19 -19
  316. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +5 -5
  317. package/coverage/lcov-report/src/utilities/centralPath.ts.html +6 -6
  318. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +22 -22
  319. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +19 -19
  320. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +35 -35
  321. package/coverage/lcov-report/src/utilities/fileSystem/index.html +42 -42
  322. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +6 -6
  323. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +13 -13
  324. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
  325. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +11 -11
  326. package/coverage/lcov-report/src/utilities/global.ts.html +51 -51
  327. package/coverage/lcov-report/src/utilities/index.html +74 -89
  328. package/coverage/lcov-report/src/utilities/index.ts.html +25 -25
  329. package/coverage/lcov-report/src/utilities/redis.ts.html +25 -25
  330. package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
  331. package/coverage/lcov-report/src/utilities/routing/index.ts.html +2 -2
  332. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +32 -32
  333. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +20 -20
  334. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +8 -8
  335. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +15 -15
  336. package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +174 -234
  337. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +4 -4
  338. package/coverage/lcov-report/src/utilities/security.ts.html +10 -10
  339. package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
  340. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +5 -5
  341. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
  342. package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
  343. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +57 -30
  344. package/coverage/lcov-report/src/watch.ts.html +13 -13
  345. package/coverage/lcov-report/src/websocket.ts.html +3 -3
  346. package/coverage/lcov.info +7522 -7169
  347. package/dist/api/controllers/query/index.js +5 -2
  348. package/dist/api/controllers/row/ExternalRequest.js +7 -0
  349. package/dist/api/controllers/row/internal.js +12 -8
  350. package/dist/api/controllers/static/index.js +7 -4
  351. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  352. package/dist/api/controllers/table/external.js +8 -30
  353. package/dist/api/controllers/table/index.js +44 -15
  354. package/dist/api/controllers/table/internal.js +6 -7
  355. package/dist/api/controllers/table/utils.js +9 -9
  356. package/dist/api/controllers/user.js +14 -6
  357. package/dist/api/controllers/view/exporters.js +22 -6
  358. package/dist/api/controllers/view/index.js +19 -34
  359. package/dist/api/controllers/view/viewBuilder.js +15 -2
  360. package/dist/api/routes/analytics.js +2 -1
  361. package/dist/api/routes/apikeys.js +2 -1
  362. package/dist/api/routes/application.js +2 -1
  363. package/dist/api/routes/auth.js +2 -1
  364. package/dist/api/routes/automation.js +2 -1
  365. package/dist/api/routes/backup.js +2 -1
  366. package/dist/api/routes/cloud.js +2 -1
  367. package/dist/api/routes/component.js +2 -1
  368. package/dist/api/routes/datasource.js +2 -1
  369. package/dist/api/routes/deploy.js +2 -1
  370. package/dist/api/routes/dev.js +2 -1
  371. package/dist/api/routes/integration.js +2 -1
  372. package/dist/api/routes/layout.js +2 -1
  373. package/dist/api/routes/metadata.js +2 -1
  374. package/dist/api/routes/migrations.js +2 -1
  375. package/dist/api/routes/permission.js +2 -1
  376. package/dist/api/routes/query.js +2 -1
  377. package/dist/api/routes/role.js +2 -1
  378. package/dist/api/routes/routing.js +2 -1
  379. package/dist/api/routes/screen.js +2 -1
  380. package/dist/api/routes/script.js +2 -1
  381. package/dist/api/routes/static.js +6 -5
  382. package/dist/api/routes/table.js +8 -38
  383. package/dist/api/routes/templates.js +2 -1
  384. package/dist/api/routes/user.js +2 -1
  385. package/dist/api/routes/utils/validators.js +1 -1
  386. package/dist/api/routes/view.js +2 -1
  387. package/dist/api/routes/webhook.js +2 -1
  388. package/dist/app.js +9 -7
  389. package/dist/automations/logging/index.js +5 -25
  390. package/dist/db/index.js +5 -2
  391. package/dist/db/linkedRows/LinkController.js +2 -1
  392. package/dist/db/linkedRows/LinkDocument.js +2 -1
  393. package/dist/db/newid.js +4 -2
  394. package/dist/environment.js +2 -1
  395. package/dist/events/AutomationEmitter.js +2 -1
  396. package/dist/events/BudibaseEmitter.js +2 -1
  397. package/dist/events/index.js +2 -1
  398. package/dist/integrations/index.js +5 -5
  399. package/dist/middleware/authorized.js +2 -1
  400. package/dist/middleware/builder.js +4 -2
  401. package/dist/middleware/currentapp.js +6 -3
  402. package/dist/middleware/publicApi.js +4 -2
  403. package/dist/middleware/selfhost.js +4 -1
  404. package/dist/package.json +9 -7
  405. package/dist/startup.js +17 -17
  406. package/dist/threads/index.js +4 -4
  407. package/dist/tsconfig.build.tsbuildinfo +1 -1
  408. package/dist/utilities/fileSystem/filesystem.js +3 -3
  409. package/dist/utilities/schema.js +108 -0
  410. package/dist/utilities/scriptRunner.js +2 -1
  411. package/dist/utilities/statusCodes.js +2 -1
  412. package/dist/utilities/workerRequests.js +2 -0
  413. package/dist/watch.js +2 -25
  414. package/jest.config.ts +5 -2
  415. package/package.json +10 -8
  416. package/src/api/controllers/query/index.ts +2 -2
  417. package/src/api/controllers/row/ExternalRequest.ts +6 -0
  418. package/src/api/controllers/row/internal.ts +10 -9
  419. package/src/api/controllers/static/index.ts +1 -1
  420. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
  421. package/src/api/controllers/table/external.ts +10 -10
  422. package/src/api/controllers/table/index.ts +46 -17
  423. package/src/api/controllers/table/internal.ts +6 -7
  424. package/src/api/controllers/table/utils.ts +12 -13
  425. package/src/api/controllers/user.ts +21 -13
  426. package/src/api/controllers/view/exporters.ts +20 -5
  427. package/src/api/controllers/view/index.ts +21 -12
  428. package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
  429. package/src/api/controllers/view/viewBuilder.ts +1 -1
  430. package/src/api/routes/analytics.ts +1 -1
  431. package/src/api/routes/apikeys.ts +1 -1
  432. package/src/api/routes/application.ts +1 -1
  433. package/src/api/routes/auth.ts +1 -1
  434. package/src/api/routes/automation.ts +1 -1
  435. package/src/api/routes/backup.ts +1 -1
  436. package/src/api/routes/cloud.ts +1 -1
  437. package/src/api/routes/component.ts +1 -1
  438. package/src/api/routes/datasource.ts +1 -1
  439. package/src/api/routes/deploy.ts +1 -1
  440. package/src/api/routes/dev.ts +1 -1
  441. package/src/api/routes/integration.ts +1 -1
  442. package/src/api/routes/layout.ts +1 -1
  443. package/src/api/routes/metadata.ts +1 -1
  444. package/src/api/routes/migrations.ts +1 -1
  445. package/src/api/routes/permission.ts +1 -1
  446. package/src/api/routes/query.ts +1 -1
  447. package/src/api/routes/role.ts +1 -1
  448. package/src/api/routes/routing.ts +1 -1
  449. package/src/api/routes/screen.ts +1 -1
  450. package/src/api/routes/script.ts +1 -1
  451. package/src/api/routes/static.ts +2 -2
  452. package/src/api/routes/table.ts +16 -39
  453. package/src/api/routes/templates.ts +1 -1
  454. package/src/api/routes/tests/misc.spec.js +4 -10
  455. package/src/api/routes/tests/plugin.spec.ts +10 -10
  456. package/src/api/routes/tests/table.spec.js +8 -30
  457. package/src/api/routes/tests/user.spec.js +20 -1
  458. package/src/api/routes/tests/utilities/TestFunctions.ts +1 -1
  459. package/src/api/routes/user.ts +1 -1
  460. package/src/api/routes/utils/validators.ts +1 -1
  461. package/src/api/routes/view.ts +1 -1
  462. package/src/api/routes/webhook.ts +1 -1
  463. package/src/app.ts +5 -3
  464. package/src/automations/logging/index.ts +1 -1
  465. package/src/db/index.ts +1 -1
  466. package/src/db/linkedRows/LinkController.ts +1 -1
  467. package/src/db/linkedRows/LinkDocument.ts +1 -1
  468. package/src/db/newid.ts +1 -1
  469. package/src/db/tests/linkController.spec.js +1 -1
  470. package/src/environment.ts +1 -1
  471. package/src/events/AutomationEmitter.ts +1 -1
  472. package/src/events/BudibaseEmitter.ts +1 -1
  473. package/src/events/index.ts +1 -1
  474. package/src/integrations/index.ts +4 -4
  475. package/src/integrations/tests/rest.spec.ts +15 -13
  476. package/src/middleware/authorized.ts +5 -1
  477. package/src/middleware/builder.ts +1 -1
  478. package/src/middleware/currentapp.ts +4 -3
  479. package/src/middleware/publicApi.ts +1 -1
  480. package/src/middleware/selfhost.ts +1 -1
  481. package/src/middleware/tests/authorized.spec.js +1 -1
  482. package/src/middleware/tests/currentapp.spec.js +1 -1
  483. package/src/middleware/tests/selfhost.spec.js +1 -1
  484. package/src/startup.ts +3 -8
  485. package/src/tests/jestEnv.ts +13 -0
  486. package/src/tests/jestSetup.ts +0 -14
  487. package/src/tests/utilities/TestConfiguration.ts +1 -1
  488. package/src/threads/index.ts +1 -1
  489. package/src/utilities/fileSystem/filesystem.ts +1 -1
  490. package/src/utilities/schema.ts +141 -0
  491. package/src/utilities/scriptRunner.ts +1 -1
  492. package/src/utilities/statusCodes.ts +1 -1
  493. package/src/utilities/workerRequests.ts +10 -1
  494. package/src/watch.ts +1 -1
  495. package/builder/assets/index.fa480d5b.css +0 -6
  496. package/coverage/lcov-report/src/utilities/statusCodes.ts.html +0 -106
  497. package/dist/utilities/csvParser.js +0 -152
  498. package/src/utilities/csvParser.ts +0 -161
  499. package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
  500. package/src/utilities/tests/csvParser.spec.js +0 -112
@@ -48,4 +48,4 @@ router
48
48
  controller.getFlags
49
49
  )
50
50
 
51
- export = router
51
+ export default router
@@ -18,7 +18,7 @@ export function tableValidator() {
18
18
  schema: Joi.object().required(),
19
19
  name: Joi.string().required(),
20
20
  views: Joi.object(),
21
- dataImport: Joi.object(),
21
+ rows: Joi.array(),
22
22
  }).unknown(true))
23
23
  }
24
24
 
@@ -31,4 +31,4 @@ router
31
31
  )
32
32
  .post("/api/views", authorized(permissions.BUILDER), viewController.save)
33
33
 
34
- export = router
34
+ export default router
@@ -24,4 +24,4 @@ router
24
24
  // this shouldn't have authorisation, right now its always public
25
25
  .post("/api/webhooks/trigger/:instance/:id", controller.trigger)
26
26
 
27
- export = router
27
+ export default router
package/src/app.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  // need to load environment first
2
- import * as env from "./environment"
2
+ import env from "./environment"
3
3
 
4
4
  // enable APM if configured
5
5
  if (process.env.ELASTIC_APM_ENABLED) {
@@ -19,7 +19,7 @@ import * as api from "./api"
19
19
  import * as automations from "./automations"
20
20
  import { Thread } from "./threads"
21
21
  import * as redis from "./utilities/redis"
22
- import { events, logging } from "@budibase/backend-core"
22
+ import { events, logging, middleware } from "@budibase/backend-core"
23
23
  import { initialise as initialiseWebsockets } from "./websocket"
24
24
  import { startup } from "./startup"
25
25
  const Sentry = require("@sentry/node")
@@ -40,6 +40,8 @@ app.use(
40
40
  })
41
41
  )
42
42
 
43
+ app.use(middleware.logging)
44
+
43
45
  if (env.isProd()) {
44
46
  env._set("NODE_ENV", "production")
45
47
  Sentry.init()
@@ -77,7 +79,7 @@ server.on("close", async () => {
77
79
  }
78
80
  })
79
81
 
80
- export = server.listen(env.PORT || 0, async () => {
82
+ export default server.listen(env.PORT || 0, async () => {
81
83
  await startup(app, server)
82
84
  })
83
85
 
@@ -1,4 +1,4 @@
1
- import * as env from "../../environment"
1
+ import env from "../../environment"
2
2
  import { AutomationResults, Automation, App } from "@budibase/types"
3
3
  import { automations } from "@budibase/pro"
4
4
  import { db as dbUtils } from "@budibase/backend-core"
package/src/db/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { init as coreInit } from "@budibase/backend-core"
2
- import env = require("../environment")
2
+ import env from "../environment"
3
3
 
4
4
  export function init() {
5
5
  const dbConfig: any = {
@@ -441,4 +441,4 @@ class LinkController {
441
441
  }
442
442
  }
443
443
 
444
- export = LinkController
444
+ export default LinkController
@@ -57,4 +57,4 @@ class LinkDocumentImpl implements LinkDocument {
57
57
  }
58
58
  }
59
59
 
60
- export = LinkDocumentImpl
60
+ export default LinkDocumentImpl
package/src/db/newid.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  const { v4 } = require("uuid")
2
2
 
3
- export = function (): string {
3
+ export default function (): string {
4
4
  return v4().replace(/-/g, "")
5
5
  }
@@ -1,6 +1,6 @@
1
1
  const TestConfig = require("../../tests/utilities/TestConfiguration")
2
2
  const { basicRow, basicLinkedRow, basicTable } = require("../../tests/utilities/structures")
3
- const LinkController = require("../linkedRows/LinkController")
3
+ const LinkController = require("../linkedRows/LinkController").default
4
4
  const { context } = require("@budibase/backend-core")
5
5
  const { RelationshipTypes } = require("../../constants")
6
6
  const { cloneDeep } = require("lodash/fp")
@@ -125,4 +125,4 @@ for (let [key, value] of Object.entries(environment)) {
125
125
  }
126
126
  }
127
127
 
128
- export = environment
128
+ export default environment
@@ -55,4 +55,4 @@ class AutomationEmitter {
55
55
  }
56
56
  }
57
57
 
58
- export = AutomationEmitter
58
+ export default AutomationEmitter
@@ -26,4 +26,4 @@ class BudibaseEmitter extends EventEmitter {
26
26
  }
27
27
  }
28
28
 
29
- export = BudibaseEmitter
29
+ export default BudibaseEmitter
@@ -2,4 +2,4 @@ import BudibaseEmitter from "./BudibaseEmitter"
2
2
 
3
3
  const emitter = new BudibaseEmitter()
4
4
 
5
- export = emitter
5
+ export default emitter
@@ -17,8 +17,8 @@ import oracle from "./oracle"
17
17
  import { getPlugins } from "../api/controllers/plugin"
18
18
  import { SourceName, Integration, PluginType } from "@budibase/types"
19
19
  import { getDatasourcePlugin } from "../utilities/fileSystem"
20
- const environment = require("../environment")
21
- const { cloneDeep } = require("lodash")
20
+ import env from "../environment"
21
+ import { cloneDeep } from "lodash"
22
22
 
23
23
  const DEFINITIONS: { [key: string]: Integration } = {
24
24
  [SourceName.POSTGRES]: postgres.schema,
@@ -69,7 +69,7 @@ if (
69
69
 
70
70
  export async function getDefinitions() {
71
71
  const pluginSchemas: { [key: string]: Integration } = {}
72
- if (environment.SELF_HOSTED) {
72
+ if (env.SELF_HOSTED) {
73
73
  const plugins = await getPlugins(PluginType.DATASOURCE)
74
74
  // extract the actual schema from each custom
75
75
  for (let plugin of plugins) {
@@ -93,7 +93,7 @@ export async function getIntegration(integration: string) {
93
93
  if (INTEGRATIONS[integration]) {
94
94
  return INTEGRATIONS[integration]
95
95
  }
96
- if (environment.SELF_HOSTED) {
96
+ if (env.SELF_HOSTED) {
97
97
  const plugins = await getPlugins(PluginType.DATASOURCE)
98
98
  for (let plugin of plugins) {
99
99
  if (plugin.name === integration) {
@@ -1,16 +1,18 @@
1
- const mockFetch = jest.fn(() => ({
2
- headers: {
3
- raw: () => {
4
- return { "content-type": ["application/json"] }
1
+ jest.mock("node-fetch", () => {
2
+ return jest.fn(() => ({
3
+ headers: {
4
+ raw: () => {
5
+ return { "content-type": ["application/json"] }
6
+ },
7
+ get: () => ["application/json"],
5
8
  },
6
- get: () => ["application/json"],
7
- },
8
- json: jest.fn(() => ({
9
- my_next_cursor: 123,
10
- })),
11
- text: jest.fn(),
12
- }))
13
- jest.mock("node-fetch", () => mockFetch)
9
+ json: jest.fn(() => ({
10
+ my_next_cursor: 123,
11
+ })),
12
+ text: jest.fn(),
13
+ }))
14
+ })
15
+
14
16
  import fetch from "node-fetch"
15
17
  import { default as RestIntegration } from "../rest"
16
18
  const FormData = require("form-data")
@@ -579,7 +581,7 @@ describe("REST Integration", () => {
579
581
  })
580
582
  await config.integration.read({})
581
583
 
582
- const calls: any = mockFetch.mock.calls[0]
584
+ const calls: any = fetch.mock.calls[0]
583
585
  const url = calls[0]
584
586
  expect(url).toBe(`${BASE_URL}/`)
585
587
 
@@ -63,7 +63,11 @@ const checkAuthorizedResource = async (
63
63
  }
64
64
  }
65
65
 
66
- export = (permType: any, permLevel: any = null, opts = { schema: false }) =>
66
+ export default (
67
+ permType: any,
68
+ permLevel: any = null,
69
+ opts = { schema: false }
70
+ ) =>
67
71
  async (ctx: any, next: any) => {
68
72
  // webhooks don't need authentication, each webhook unique
69
73
  // also internal requests (between services) don't need authorized
@@ -64,7 +64,7 @@ async function updateAppUpdatedAt(ctx: BBContext) {
64
64
  })
65
65
  }
66
66
 
67
- export = async function builder(ctx: BBContext, permType: string) {
67
+ export default async function builder(ctx: BBContext, permType: string) {
68
68
  const appId = ctx.appId
69
69
  // this only functions within an app context
70
70
  if (!appId) {
@@ -12,7 +12,7 @@ import env from "../environment"
12
12
  import { isWebhookEndpoint } from "./utils"
13
13
  import { BBContext } from "@budibase/types"
14
14
 
15
- export = async (ctx: BBContext, next: any) => {
15
+ export default async (ctx: BBContext, next: any) => {
16
16
  // try to get the appID from the request
17
17
  let requestAppId = await utils.getAppIdFromCtx(ctx)
18
18
  // get app cookie if it exists
@@ -25,6 +25,7 @@ export = async (ctx: BBContext, next: any) => {
25
25
  if (!appCookie && !requestAppId) {
26
26
  return next()
27
27
  }
28
+
28
29
  // check the app exists referenced in cookie
29
30
  if (appCookie) {
30
31
  const appId = appCookie.appId
@@ -51,7 +52,7 @@ export = async (ctx: BBContext, next: any) => {
51
52
 
52
53
  let appId: string | undefined,
53
54
  roleId = roles.BUILTIN_ROLE_IDS.PUBLIC
54
- if (!ctx.user) {
55
+ if (!ctx.user?._id) {
55
56
  // not logged in, try to set a cookie for public apps
56
57
  appId = requestAppId
57
58
  } else if (requestAppId != null) {
@@ -96,7 +97,7 @@ export = async (ctx: BBContext, next: any) => {
96
97
  // need to judge this only based on the request app ID,
97
98
  if (
98
99
  env.MULTI_TENANCY &&
99
- ctx.user &&
100
+ ctx.user?._id &&
100
101
  requestAppId &&
101
102
  !tenancy.isUserInAppTenant(requestAppId, ctx.user)
102
103
  ) {
@@ -1,7 +1,7 @@
1
1
  import { constants, utils } from "@budibase/backend-core"
2
2
  import { BBContext } from "@budibase/types"
3
3
 
4
- export = function ({ requiresAppId }: { requiresAppId?: boolean } = {}) {
4
+ export default function ({ requiresAppId }: { requiresAppId?: boolean } = {}) {
5
5
  return async (ctx: BBContext, next: any) => {
6
6
  const appId = await utils.getAppIdFromCtx(ctx)
7
7
  if (requiresAppId && !appId) {
@@ -3,7 +3,7 @@ import { BBContext } from "@budibase/types"
3
3
 
4
4
  // if added as a middleware will stop requests unless builder is in self host mode
5
5
  // or cloud is in self host
6
- export = async (ctx: BBContext, next: any) => {
6
+ export default async (ctx: BBContext, next: any) => {
7
7
  if (env.SELF_HOSTED) {
8
8
  await next()
9
9
  return
@@ -7,7 +7,7 @@ jest.mock("../../environment", () => ({
7
7
  }
8
8
  })
9
9
  )
10
- const authorizedMiddleware = require("../authorized")
10
+ const authorizedMiddleware = require("../authorized").default
11
11
  const env = require("../../environment")
12
12
  const { permissions } = require("@budibase/backend-core")
13
13
 
@@ -124,7 +124,7 @@ class TestConfiguration {
124
124
  // import as late as possible for mocks
125
125
  jest.resetModules()
126
126
  require("../../db").init()
127
- const currentAppMiddleware = require("../currentapp")
127
+ const currentAppMiddleware = require("../currentapp").default
128
128
  return currentAppMiddleware(this.ctx, this.next)
129
129
  }
130
130
  }
@@ -1,4 +1,4 @@
1
- const selfHostMiddleware = require("../selfhost")
1
+ const selfHostMiddleware = require("../selfhost").default
2
2
  const env = require("../../environment")
3
3
  jest.mock("../../environment")
4
4
 
package/src/startup.ts CHANGED
@@ -1,16 +1,11 @@
1
- import * as env from "./environment"
1
+ import env from "./environment"
2
2
  import * as redis from "./utilities/redis"
3
3
  import {
4
4
  createAdminUser,
5
5
  generateApiKey,
6
6
  getChecklist,
7
7
  } from "./utilities/workerRequests"
8
- import {
9
- installation,
10
- pinoSettings,
11
- tenancy,
12
- logging,
13
- } from "@budibase/backend-core"
8
+ import { installation, tenancy, logging } from "@budibase/backend-core"
14
9
  import fs from "fs"
15
10
  import { watch } from "./watch"
16
11
  import * as automations from "./automations"
@@ -26,7 +21,7 @@ const pino = require("koa-pino-logger")
26
21
  let STARTUP_RAN = false
27
22
 
28
23
  async function initRoutes(app: any) {
29
- app.use(pino(pinoSettings()))
24
+ app.use(pino(logging.pinoSettings()))
30
25
 
31
26
  if (!env.isTest()) {
32
27
  const plugin = await bullboard.init()
@@ -0,0 +1,13 @@
1
+ import env from "../environment"
2
+ import { tmpdir } from "os"
3
+
4
+ env._set("SELF_HOSTED", "1")
5
+ env._set("NODE_ENV", "jest")
6
+ env._set("JWT_SECRET", "test-jwtsecret")
7
+ env._set("CLIENT_ID", "test-client-id")
8
+ env._set("BUDIBASE_DIR", tmpdir("budibase-unittests"))
9
+ env._set("LOG_LEVEL", "silent")
10
+ env._set("PORT", 0)
11
+ env._set("MINIO_URL", "http://localhost")
12
+ env._set("MINIO_ACCESS_KEY", "test")
13
+ env._set("MINIO_SECRET_KEY", "test")
@@ -1,17 +1,3 @@
1
- const { tmpdir } = require("os")
2
- import env from "../environment"
3
-
4
- env._set("SELF_HOSTED", "1")
5
- env._set("NODE_ENV", "jest")
6
- env._set("JWT_SECRET", "test-jwtsecret")
7
- env._set("CLIENT_ID", "test-client-id")
8
- env._set("BUDIBASE_DIR", tmpdir("budibase-unittests"))
9
- env._set("LOG_LEVEL", "silent")
10
- env._set("PORT", 0)
11
- env._set("MINIO_URL", "http://localhost")
12
- env._set("MINIO_ACCESS_KEY", "test")
13
- env._set("MINIO_SECRET_KEY", "test")
14
-
15
1
  import { mocks } from "@budibase/backend-core/tests"
16
2
 
17
3
  // mock all dates to 2020-01-01T00:00:00.000Z
@@ -67,7 +67,7 @@ class TestConfiguration {
67
67
  if (openServer) {
68
68
  // use a random port because it doesn't matter
69
69
  env.PORT = "0"
70
- this.server = require("../../app")
70
+ this.server = require("../../app").default
71
71
  // we need the request for logging in, involves cookies, hard to fake
72
72
  this.request = supertest(this.server)
73
73
  this.started = true
@@ -1,5 +1,5 @@
1
1
  import workerFarm from "worker-farm"
2
- import * as env from "../environment"
2
+ import env from "../environment"
3
3
 
4
4
  export const ThreadType = {
5
5
  QUERY: "query",
@@ -3,7 +3,7 @@ const { budibaseTempDir } = require("../budibaseDir")
3
3
  const fs = require("fs")
4
4
  const { join } = require("path")
5
5
  const uuid = require("uuid/v4")
6
- const env = require("../../environment")
6
+ import env from "../../environment"
7
7
  import tar from "tar"
8
8
 
9
9
  export const TOP_LEVEL_PATH = join(__dirname, "..", "..", "..")
@@ -0,0 +1,141 @@
1
+ import { FieldTypes } from "../constants"
2
+
3
+ interface SchemaColumn {
4
+ readonly name: string
5
+ readonly type: FieldTypes
6
+ readonly autocolumn?: boolean
7
+ }
8
+
9
+ interface Schema {
10
+ readonly [index: string]: SchemaColumn
11
+ }
12
+
13
+ interface Row {
14
+ [index: string]: any
15
+ }
16
+
17
+ type Rows = Array<Row>
18
+
19
+ interface SchemaValidation {
20
+ [index: string]: boolean
21
+ }
22
+
23
+ interface ValidationResults {
24
+ schemaValidation: SchemaValidation
25
+ allValid: boolean
26
+ invalidColumns: Array<string>
27
+ }
28
+
29
+ const PARSERS: any = {
30
+ [FieldTypes.NUMBER]: (attribute?: string) => {
31
+ if (!attribute) {
32
+ return attribute
33
+ }
34
+ return Number(attribute)
35
+ },
36
+ [FieldTypes.DATETIME]: (attribute?: string) => {
37
+ if (!attribute) {
38
+ return attribute
39
+ }
40
+ return new Date(attribute).toISOString()
41
+ },
42
+ }
43
+
44
+ export function isSchema(schema: any): schema is Schema {
45
+ return (
46
+ typeof schema === "object" &&
47
+ Object.values(schema).every(rawColumn => {
48
+ const column = rawColumn as SchemaColumn
49
+
50
+ return (
51
+ column !== null &&
52
+ typeof column === "object" &&
53
+ typeof column.type === "string" &&
54
+ Object.values(FieldTypes).includes(column.type as FieldTypes)
55
+ )
56
+ })
57
+ )
58
+ }
59
+
60
+ export function isRows(rows: any): rows is Rows {
61
+ return Array.isArray(rows) && rows.every(row => typeof row === "object")
62
+ }
63
+
64
+ export function validate(rows: Rows, schema: Schema): ValidationResults {
65
+ const results: ValidationResults = {
66
+ schemaValidation: {},
67
+ allValid: false,
68
+ invalidColumns: [],
69
+ }
70
+
71
+ rows.forEach(row => {
72
+ Object.entries(row).forEach(([columnName, columnData]) => {
73
+ const columnType = schema[columnName]?.type
74
+ const isAutoColumn = schema[columnName]?.autocolumn
75
+
76
+ // If the columnType is not a string, then it's not present in the schema, and should be added to the invalid columns array
77
+ if (typeof columnType !== "string") {
78
+ results.invalidColumns.push(columnName)
79
+ } else if (
80
+ // If there's no data for this field don't bother with further checks
81
+ // If the field is already marked as invalid there's no need for further checks
82
+ results.schemaValidation[columnName] === false ||
83
+ columnData == null ||
84
+ isAutoColumn
85
+ ) {
86
+ return
87
+ } else if (
88
+ columnType === FieldTypes.NUMBER &&
89
+ isNaN(Number(columnData))
90
+ ) {
91
+ // If provided must be a valid number
92
+ results.schemaValidation[columnName] = false
93
+ } else if (
94
+ // If provided must be a valid date
95
+ columnType === FieldTypes.DATETIME &&
96
+ isNaN(new Date(columnData).getTime())
97
+ ) {
98
+ results.schemaValidation[columnName] = false
99
+ } else {
100
+ results.schemaValidation[columnName] = true
101
+ }
102
+ })
103
+ })
104
+
105
+ results.allValid =
106
+ Object.values(results.schemaValidation).length > 0 &&
107
+ Object.values(results.schemaValidation).every(column => column)
108
+
109
+ // Select unique values
110
+ results.invalidColumns = [...new Set(results.invalidColumns)]
111
+ return results
112
+ }
113
+
114
+ export function parse(rows: Rows, schema: Schema): Rows {
115
+ return rows.map(row => {
116
+ const parsedRow: Row = {}
117
+
118
+ Object.entries(row).forEach(([columnName, columnData]) => {
119
+ if (!(columnName in schema) || schema[columnName]?.autocolumn) {
120
+ // Objects can be present in the row data but not in the schema, so make sure we don't proceed in such a case
121
+ return
122
+ }
123
+
124
+ const columnType = schema[columnName].type
125
+
126
+ if (columnType === FieldTypes.NUMBER) {
127
+ // If provided must be a valid number
128
+ parsedRow[columnName] = columnData ? Number(columnData) : columnData
129
+ } else if (columnType === FieldTypes.DATETIME) {
130
+ // If provided must be a valid date
131
+ parsedRow[columnName] = columnData
132
+ ? new Date(columnData).toISOString()
133
+ : columnData
134
+ } else {
135
+ parsedRow[columnName] = columnData
136
+ }
137
+ })
138
+
139
+ return parsedRow
140
+ })
141
+ }
@@ -25,4 +25,4 @@ class ScriptRunner {
25
25
  }
26
26
  }
27
27
 
28
- export = ScriptRunner
28
+ export default ScriptRunner
@@ -1,4 +1,4 @@
1
- export = {
1
+ export default {
2
2
  OK: 200,
3
3
  UNAUTHORIZED: 401,
4
4
  FORBIDDEN: 403,
@@ -1,7 +1,12 @@
1
1
  import fetch from "node-fetch"
2
2
  import env from "../environment"
3
3
  import { checkSlashesInUrl } from "./index"
4
- import { db as dbCore, constants, tenancy } from "@budibase/backend-core"
4
+ import {
5
+ db as dbCore,
6
+ constants,
7
+ tenancy,
8
+ logging,
9
+ } from "@budibase/backend-core"
5
10
  import { updateAppRole } from "./global"
6
11
  import { BBContext, User } from "@budibase/types"
7
12
 
@@ -27,6 +32,10 @@ export function request(ctx?: BBContext, request?: any) {
27
32
  if (ctx && ctx.headers) {
28
33
  request.headers = ctx.headers
29
34
  }
35
+
36
+ // add x-budibase-correlation-id header
37
+ logging.correlation.setHeader(request.headers)
38
+
30
39
  return request
31
40
  }
32
41
 
package/src/watch.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import path from "path"
2
- import * as env from "./environment"
2
+ import env from "./environment"
3
3
  import chokidar from "chokidar"
4
4
  import fs from "fs"
5
5
  import { constants, tenancy } from "@budibase/backend-core"