@budibase/server 2.3.20 → 2.3.21-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (528) hide show
  1. package/__mocks__/aws-sdk.ts +1 -1
  2. package/__mocks__/node-fetch.ts +3 -0
  3. package/builder/assets/blankScreenPreview.72634dd1.png +0 -0
  4. package/builder/assets/{index.3faec52d.js → index.90fba548.js} +439 -426
  5. package/builder/assets/index.b24b9dea.css +6 -0
  6. package/builder/assets/listScreenPreview.599c0aae.png +0 -0
  7. package/builder/index.html +2 -2
  8. package/dist/api/controllers/automation.js +11 -2
  9. package/dist/api/controllers/cloud.js +2 -2
  10. package/dist/api/controllers/query/index.js +2 -0
  11. package/dist/api/controllers/row/ExternalRequest.js +50 -23
  12. package/dist/api/controllers/row/external.js +12 -1
  13. package/dist/api/controllers/row/internalSearch.js +6 -450
  14. package/dist/api/controllers/row/utils.js +1 -3
  15. package/dist/api/controllers/table/external.js +8 -8
  16. package/dist/api/index.js +1 -21
  17. package/dist/api/routes/automation.js +1 -1
  18. package/dist/api/routes/public/applications.js +7 -7
  19. package/dist/api/routes/public/queries.js +2 -2
  20. package/dist/api/routes/public/rows.js +5 -5
  21. package/dist/api/routes/public/tables.js +5 -5
  22. package/dist/api/routes/public/users.js +5 -5
  23. package/dist/app.js +9 -1
  24. package/dist/constants/index.js +4 -24
  25. package/dist/db/defaultData/datasource_bb_default.js +6 -5
  26. package/dist/db/index.js +25 -2
  27. package/dist/db/linkedRows/LinkController.js +9 -8
  28. package/dist/db/utils.js +2 -5
  29. package/dist/db/views/staticViews.js +2 -1
  30. package/dist/ddApm.js +11 -0
  31. package/dist/elasticApm.js +14 -0
  32. package/dist/integrations/base/sql.js +6 -3
  33. package/dist/integrations/googlesheets.js +17 -20
  34. package/dist/middleware/authorized.js +5 -3
  35. package/dist/middleware/builder.js +6 -3
  36. package/dist/migrations/functions/backfill/global/configs.js +10 -4
  37. package/dist/migrations/tests/helpers.js +1 -1
  38. package/dist/migrations/tests/structures.js +1 -1
  39. package/dist/package.json +14 -9
  40. package/dist/sdk/app/backups/constants.js +2 -1
  41. package/dist/sdk/app/backups/exports.js +20 -7
  42. package/dist/sdk/app/datasources/datasources.js +3 -0
  43. package/dist/sdk/app/rows/attachments.js +1 -1
  44. package/dist/startup.js +3 -0
  45. package/dist/tsconfig.build.tsbuildinfo +1 -1
  46. package/dist/utilities/redis.js +2 -0
  47. package/dist/utilities/retry.js +30 -0
  48. package/jest-testcontainers-config.js +8 -0
  49. package/jest.config.ts +35 -22
  50. package/package.json +15 -10
  51. package/scripts/load/create-many-apps.js +24 -0
  52. package/scripts/load/create-many-rows.js +30 -0
  53. package/scripts/load/utils.js +66 -0
  54. package/scripts/test.sh +12 -0
  55. package/specs/{generate.js → generate.ts} +7 -9
  56. package/specs/openapi.json +30 -30
  57. package/specs/openapi.yaml +27 -27
  58. package/specs/{parameters.js → parameters.ts} +6 -6
  59. package/specs/resources/{application.js → application.ts} +4 -4
  60. package/specs/resources/{index.js → index.ts} +8 -8
  61. package/specs/resources/{misc.js → misc.ts} +3 -3
  62. package/specs/resources/{query.js → query.ts} +4 -4
  63. package/specs/resources/{row.js → row.ts} +3 -4
  64. package/specs/resources/{table.js → table.ts} +5 -5
  65. package/specs/resources/{user.js → user.ts} +3 -3
  66. package/specs/resources/utils/Resource.ts +39 -0
  67. package/specs/resources/utils/{index.js → index.ts} +1 -1
  68. package/specs/{security.js → security.ts} +1 -1
  69. package/src/api/controllers/automation.ts +13 -2
  70. package/src/api/controllers/cloud.ts +2 -2
  71. package/src/api/controllers/query/import/tests/index.spec.js +1 -1
  72. package/src/api/controllers/query/index.ts +2 -0
  73. package/src/api/controllers/row/ExternalRequest.ts +98 -27
  74. package/src/api/controllers/row/external.ts +13 -1
  75. package/src/api/controllers/row/internalSearch.ts +11 -524
  76. package/src/api/controllers/row/utils.ts +1 -2
  77. package/src/api/controllers/table/external.ts +3 -2
  78. package/src/api/index.ts +3 -22
  79. package/src/api/routes/automation.ts +1 -1
  80. package/src/api/routes/public/applications.ts +7 -8
  81. package/src/api/routes/public/queries.ts +2 -2
  82. package/src/api/routes/public/rows.ts +5 -5
  83. package/src/api/routes/public/tables.ts +5 -5
  84. package/src/api/routes/public/tests/{compare.spec.js → compare.spec.ts} +45 -26
  85. package/src/api/routes/public/tests/users.spec.js +1 -1
  86. package/src/api/routes/public/tests/utils.ts +25 -8
  87. package/src/api/routes/public/users.ts +5 -5
  88. package/src/api/routes/tests/__snapshots__/datasource.spec.ts.snap +1 -1
  89. package/src/api/routes/tests/analytics.spec.js +4 -1
  90. package/src/api/routes/tests/apikeys.spec.js +1 -1
  91. package/src/api/routes/tests/application.spec.ts +20 -6
  92. package/src/api/routes/tests/auth.spec.js +2 -2
  93. package/src/api/routes/tests/automation.spec.js +6 -2
  94. package/src/api/routes/tests/backup.spec.ts +4 -14
  95. package/src/api/routes/tests/cloud.spec.ts +20 -31
  96. package/src/api/routes/tests/component.spec.js +1 -1
  97. package/src/api/routes/tests/datasource.spec.ts +20 -3
  98. package/src/api/routes/tests/dev.spec.js +1 -1
  99. package/src/api/routes/tests/environmentVariables.spec.ts +144 -0
  100. package/src/api/routes/tests/integration.spec.js +1 -1
  101. package/src/api/routes/tests/layout.spec.js +1 -1
  102. package/src/api/routes/tests/metadata.spec.js +1 -1
  103. package/src/api/routes/tests/misc.spec.js +1 -1
  104. package/src/api/routes/tests/permissions.spec.js +4 -1
  105. package/src/api/routes/tests/{query.spec.js → query.seq.spec.js} +22 -1
  106. package/src/api/routes/tests/role.spec.js +6 -1
  107. package/src/api/routes/tests/routing.spec.js +1 -1
  108. package/src/api/routes/tests/row.spec.js +11 -3
  109. package/src/api/routes/tests/screen.spec.js +1 -1
  110. package/src/api/routes/tests/static.spec.js +2 -13
  111. package/src/api/routes/tests/table.spec.js +1 -1
  112. package/src/api/routes/tests/templates.spec.js +1 -1
  113. package/src/api/routes/tests/user.spec.js +11 -12
  114. package/src/api/routes/tests/utilities/TestFunctions.ts +25 -3
  115. package/src/api/routes/tests/utilities/index.ts +5 -3
  116. package/src/api/routes/tests/view.spec.js +4 -1
  117. package/src/api/routes/tests/webhook.spec.js +11 -2
  118. package/src/app.ts +12 -1
  119. package/src/automations/tests/automation.spec.js +4 -4
  120. package/src/automations/tests/bash.spec.js +1 -1
  121. package/src/automations/tests/discord.spec.js +1 -1
  122. package/src/automations/tests/executeQuery.spec.js +2 -3
  123. package/src/automations/tests/executeScript.spec.js +1 -1
  124. package/src/automations/tests/outgoingWebhook.spec.js +1 -1
  125. package/src/automations/tests/sendSmtpEmail.spec.js +1 -1
  126. package/src/automations/tests/serverLog.spec.js +1 -1
  127. package/src/automations/tests/updateRow.spec.js +1 -1
  128. package/src/automations/tests/zapier.spec.js +1 -1
  129. package/src/constants/index.ts +1 -23
  130. package/src/db/defaultData/datasource_bb_default.ts +6 -10
  131. package/src/db/index.ts +2 -2
  132. package/src/db/linkedRows/LinkController.ts +2 -1
  133. package/src/db/tests/linkController.spec.js +4 -1
  134. package/src/db/tests/linkTests.spec.js +1 -1
  135. package/src/db/utils.ts +0 -4
  136. package/src/db/views/staticViews.ts +3 -3
  137. package/src/ddApm.ts +7 -0
  138. package/src/definitions/openapi.ts +449 -63
  139. package/src/elasticApm.ts +10 -0
  140. package/src/integration-test/postgres.spec.ts +1032 -0
  141. package/src/integrations/base/sql.ts +11 -5
  142. package/src/integrations/googlesheets.ts +21 -22
  143. package/src/integrations/oracle.ts +1 -1
  144. package/src/integrations/tests/couchdb.spec.ts +0 -2
  145. package/src/integrations/tests/googlesheets.spec.ts +122 -0
  146. package/src/middleware/authorized.ts +6 -4
  147. package/src/middleware/builder.ts +8 -3
  148. package/src/migrations/functions/backfill/global/configs.ts +15 -9
  149. package/src/migrations/functions/tests/appUrls.spec.js +1 -1
  150. package/src/migrations/functions/tests/syncQuotas.spec.js +1 -1
  151. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +4 -5
  152. package/src/migrations/tests/helpers.ts +2 -2
  153. package/src/migrations/tests/index.spec.ts +13 -20
  154. package/src/migrations/tests/structures.ts +1 -0
  155. package/src/sdk/app/backups/constants.ts +1 -0
  156. package/src/sdk/app/backups/exports.ts +32 -10
  157. package/src/sdk/app/datasources/datasources.ts +3 -0
  158. package/src/sdk/app/rows/attachments.ts +1 -1
  159. package/src/startup.ts +4 -1
  160. package/src/tests/jestEnv.ts +9 -11
  161. package/src/tests/jestSetup.ts +9 -7
  162. package/src/tests/logging.ts +34 -0
  163. package/src/tests/utilities/TestConfiguration.ts +187 -101
  164. package/src/tests/utilities/structures.ts +16 -4
  165. package/src/utilities/redis.ts +2 -0
  166. package/src/utilities/retry.ts +18 -0
  167. package/tsconfig.build.json +1 -0
  168. package/builder/assets/index.4488f38d.css +0 -6
  169. package/coverage/clover.xml +0 -11774
  170. package/coverage/coverage-final.json +0 -284
  171. package/coverage/lcov-report/base.css +0 -224
  172. package/coverage/lcov-report/block-navigation.js +0 -87
  173. package/coverage/lcov-report/favicon.png +0 -0
  174. package/coverage/lcov-report/index.html +0 -1031
  175. package/coverage/lcov-report/prettify.css +0 -1
  176. package/coverage/lcov-report/prettify.js +0 -2
  177. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  178. package/coverage/lcov-report/sorter.js +0 -196
  179. package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
  180. package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +0 -247
  181. package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -1987
  182. package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
  183. package/coverage/lcov-report/src/api/controllers/automation.ts.html +0 -940
  184. package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
  185. package/coverage/lcov-report/src/api/controllers/cloud.ts.html +0 -442
  186. package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
  187. package/coverage/lcov-report/src/api/controllers/datasource.ts.html +0 -1135
  188. package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -262
  189. package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
  190. package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -694
  191. package/coverage/lcov-report/src/api/controllers/dev.ts.html +0 -472
  192. package/coverage/lcov-report/src/api/controllers/index.html +0 -431
  193. package/coverage/lcov-report/src/api/controllers/integration.ts.html +0 -124
  194. package/coverage/lcov-report/src/api/controllers/layout.ts.html +0 -226
  195. package/coverage/lcov-report/src/api/controllers/metadata.ts.html +0 -211
  196. package/coverage/lcov-report/src/api/controllers/migrations.ts.html +0 -127
  197. package/coverage/lcov-report/src/api/controllers/permission.ts.html +0 -619
  198. package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
  199. package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
  200. package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
  201. package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -499
  202. package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
  203. package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
  204. package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
  205. package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -136
  206. package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -385
  207. package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
  208. package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
  209. package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
  210. package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
  211. package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
  212. package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
  213. package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +0 -163
  214. package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
  215. package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
  216. package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
  217. package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
  218. package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -325
  219. package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
  220. package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
  221. package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
  222. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
  223. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
  224. package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
  225. package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
  226. package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
  227. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
  228. package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
  229. package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
  230. package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -1000
  231. package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +0 -235
  232. package/coverage/lcov-report/src/api/controllers/role.ts.html +0 -397
  233. package/coverage/lcov-report/src/api/controllers/routing.ts.html +0 -370
  234. package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2305
  235. package/coverage/lcov-report/src/api/controllers/row/external.ts.html +0 -931
  236. package/coverage/lcov-report/src/api/controllers/row/index.html +0 -206
  237. package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
  238. package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +0 -1609
  239. package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +0 -1678
  240. package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +0 -595
  241. package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +0 -556
  242. package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
  243. package/coverage/lcov-report/src/api/controllers/script.ts.html +0 -121
  244. package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
  245. package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -679
  246. package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +0 -649
  247. package/coverage/lcov-report/src/api/controllers/table/external.ts.html +0 -1153
  248. package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
  249. package/coverage/lcov-report/src/api/controllers/table/index.ts.html +0 -514
  250. package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -658
  251. package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1273
  252. package/coverage/lcov-report/src/api/controllers/templates.ts.html +0 -214
  253. package/coverage/lcov-report/src/api/controllers/user.ts.html +0 -634
  254. package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +0 -214
  255. package/coverage/lcov-report/src/api/controllers/view/index.html +0 -161
  256. package/coverage/lcov-report/src/api/controllers/view/index.ts.html +0 -661
  257. package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +0 -580
  258. package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +0 -694
  259. package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -385
  260. package/coverage/lcov-report/src/api/index.html +0 -116
  261. package/coverage/lcov-report/src/api/index.ts.html +0 -352
  262. package/coverage/lcov-report/src/api/routes/analytics.ts.html +0 -112
  263. package/coverage/lcov-report/src/api/routes/apikeys.ts.html +0 -121
  264. package/coverage/lcov-report/src/api/routes/application.ts.html +0 -256
  265. package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
  266. package/coverage/lcov-report/src/api/routes/automation.ts.html +0 -346
  267. package/coverage/lcov-report/src/api/routes/backup.ts.html +0 -127
  268. package/coverage/lcov-report/src/api/routes/cloud.ts.html +0 -139
  269. package/coverage/lcov-report/src/api/routes/component.ts.html +0 -127
  270. package/coverage/lcov-report/src/api/routes/datasource.ts.html +0 -265
  271. package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -145
  272. package/coverage/lcov-report/src/api/routes/dev.ts.html +0 -199
  273. package/coverage/lcov-report/src/api/routes/index.html +0 -551
  274. package/coverage/lcov-report/src/api/routes/index.ts.html +0 -298
  275. package/coverage/lcov-report/src/api/routes/integration.ts.html +0 -133
  276. package/coverage/lcov-report/src/api/routes/layout.ts.html +0 -133
  277. package/coverage/lcov-report/src/api/routes/metadata.ts.html +0 -199
  278. package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
  279. package/coverage/lcov-report/src/api/routes/permission.ts.html +0 -208
  280. package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
  281. package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -673
  282. package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
  283. package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -493
  284. package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
  285. package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -340
  286. package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
  287. package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
  288. package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
  289. package/coverage/lcov-report/src/api/routes/public/tests/index.html +0 -116
  290. package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +0 -169
  291. package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
  292. package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
  293. package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
  294. package/coverage/lcov-report/src/api/routes/query.ts.html +0 -268
  295. package/coverage/lcov-report/src/api/routes/role.ts.html +0 -157
  296. package/coverage/lcov-report/src/api/routes/routing.ts.html +0 -127
  297. package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
  298. package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
  299. package/coverage/lcov-report/src/api/routes/script.ts.html +0 -115
  300. package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
  301. package/coverage/lcov-report/src/api/routes/table.ts.html +0 -595
  302. package/coverage/lcov-report/src/api/routes/templates.ts.html +0 -133
  303. package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
  304. package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
  305. package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +0 -367
  306. package/coverage/lcov-report/src/api/routes/user.ts.html +0 -238
  307. package/coverage/lcov-report/src/api/routes/utils/index.html +0 -116
  308. package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +0 -805
  309. package/coverage/lcov-report/src/api/routes/view.ts.html +0 -187
  310. package/coverage/lcov-report/src/api/routes/webhook.ts.html +0 -166
  311. package/coverage/lcov-report/src/app.ts.html +0 -424
  312. package/coverage/lcov-report/src/automations/actions.ts.html +0 -316
  313. package/coverage/lcov-report/src/automations/automationUtils.ts.html +0 -562
  314. package/coverage/lcov-report/src/automations/bullboard.ts.html +0 -199
  315. package/coverage/lcov-report/src/automations/index.html +0 -191
  316. package/coverage/lcov-report/src/automations/index.ts.html +0 -163
  317. package/coverage/lcov-report/src/automations/logging/index.html +0 -116
  318. package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
  319. package/coverage/lcov-report/src/automations/steps/bash.ts.html +0 -319
  320. package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -382
  321. package/coverage/lcov-report/src/automations/steps/delay.ts.html +0 -217
  322. package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -349
  323. package/coverage/lcov-report/src/automations/steps/discord.ts.html +0 -397
  324. package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +0 -370
  325. package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +0 -325
  326. package/coverage/lcov-report/src/automations/steps/filter.ts.html +0 -394
  327. package/coverage/lcov-report/src/automations/steps/index.html +0 -371
  328. package/coverage/lcov-report/src/automations/steps/integromat.ts.html +0 -409
  329. package/coverage/lcov-report/src/automations/steps/loop.ts.html +0 -241
  330. package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +0 -499
  331. package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +0 -664
  332. package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +0 -355
  333. package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +0 -256
  334. package/coverage/lcov-report/src/automations/steps/slack.ts.html +0 -340
  335. package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +0 -439
  336. package/coverage/lcov-report/src/automations/steps/utils.ts.html +0 -223
  337. package/coverage/lcov-report/src/automations/steps/zapier.ts.html +0 -403
  338. package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
  339. package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +0 -265
  340. package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +0 -196
  341. package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +0 -193
  342. package/coverage/lcov-report/src/automations/triggerInfo/index.html +0 -206
  343. package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +0 -130
  344. package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +0 -196
  345. package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +0 -220
  346. package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +0 -220
  347. package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +0 -208
  348. package/coverage/lcov-report/src/automations/triggers.ts.html +0 -553
  349. package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
  350. package/coverage/lcov-report/src/constants/index.html +0 -146
  351. package/coverage/lcov-report/src/constants/index.ts.html +0 -697
  352. package/coverage/lcov-report/src/constants/layouts.ts.html +0 -526
  353. package/coverage/lcov-report/src/constants/screens.ts.html +0 -229
  354. package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +0 -2059
  355. package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +0 -541
  356. package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +0 -427
  357. package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
  358. package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +0 -403
  359. package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +0 -559
  360. package/coverage/lcov-report/src/db/dynamoClient.ts.html +0 -526
  361. package/coverage/lcov-report/src/db/inMemoryView.ts.html +0 -250
  362. package/coverage/lcov-report/src/db/index.html +0 -176
  363. package/coverage/lcov-report/src/db/index.ts.html +0 -133
  364. package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +0 -1417
  365. package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +0 -265
  366. package/coverage/lcov-report/src/db/linkedRows/index.html +0 -161
  367. package/coverage/lcov-report/src/db/linkedRows/index.ts.html +0 -736
  368. package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +0 -460
  369. package/coverage/lcov-report/src/db/newid.ts.html +0 -100
  370. package/coverage/lcov-report/src/db/utils.ts.html +0 -913
  371. package/coverage/lcov-report/src/definitions/automations.ts.html +0 -184
  372. package/coverage/lcov-report/src/definitions/index.html +0 -116
  373. package/coverage/lcov-report/src/environment.ts.html +0 -472
  374. package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +0 -259
  375. package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +0 -172
  376. package/coverage/lcov-report/src/events/index.html +0 -161
  377. package/coverage/lcov-report/src/events/index.ts.html +0 -100
  378. package/coverage/lcov-report/src/events/utils.ts.html +0 -319
  379. package/coverage/lcov-report/src/index.html +0 -191
  380. package/coverage/lcov-report/src/index.ts.html +0 -133
  381. package/coverage/lcov-report/src/integrations/airtable.ts.html +0 -529
  382. package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
  383. package/coverage/lcov-report/src/integrations/base/index.html +0 -161
  384. package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -139
  385. package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -2017
  386. package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
  387. package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
  388. package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -484
  389. package/coverage/lcov-report/src/integrations/dynamodb.ts.html +0 -745
  390. package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -646
  391. package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
  392. package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1315
  393. package/coverage/lcov-report/src/integrations/index.html +0 -371
  394. package/coverage/lcov-report/src/integrations/index.ts.html +0 -460
  395. package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1012
  396. package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1999
  397. package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -979
  398. package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1387
  399. package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1087
  400. package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
  401. package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -328
  402. package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
  403. package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1372
  404. package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
  405. package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
  406. package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +0 -85
  407. package/coverage/lcov-report/src/integrations/tests/index.html +0 -116
  408. package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1036
  409. package/coverage/lcov-report/src/middleware/appInfo.ts.html +0 -145
  410. package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -472
  411. package/coverage/lcov-report/src/middleware/builder.ts.html +0 -361
  412. package/coverage/lcov-report/src/middleware/currentapp.ts.html +0 -508
  413. package/coverage/lcov-report/src/middleware/index.html +0 -236
  414. package/coverage/lcov-report/src/middleware/joi-validator.ts.html +0 -205
  415. package/coverage/lcov-report/src/middleware/publicApi.ts.html +0 -148
  416. package/coverage/lcov-report/src/middleware/resourceId.ts.html +0 -283
  417. package/coverage/lcov-report/src/middleware/selfhost.ts.html +0 -121
  418. package/coverage/lcov-report/src/middleware/utils.ts.html +0 -112
  419. package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -166
  420. package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
  421. package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
  422. package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
  423. package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
  424. package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
  425. package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
  426. package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
  427. package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
  428. package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
  429. package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -286
  430. package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
  431. package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
  432. package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
  433. package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
  434. package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
  435. package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
  436. package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
  437. package/coverage/lcov-report/src/migrations/functions/index.html +0 -161
  438. package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
  439. package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +0 -520
  440. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
  441. package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
  442. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
  443. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
  444. package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
  445. package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
  446. package/coverage/lcov-report/src/migrations/index.html +0 -116
  447. package/coverage/lcov-report/src/migrations/index.ts.html +0 -430
  448. package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
  449. package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
  450. package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
  451. package/coverage/lcov-report/src/sdk/app/applications/index.html +0 -146
  452. package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +0 -106
  453. package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +0 -268
  454. package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +0 -136
  455. package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
  456. package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
  457. package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
  458. package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
  459. package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
  460. package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -640
  461. package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
  462. package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
  463. package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
  464. package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +0 -562
  465. package/coverage/lcov-report/src/sdk/app/datasources/index.html +0 -131
  466. package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +0 -100
  467. package/coverage/lcov-report/src/sdk/app/queries/index.html +0 -131
  468. package/coverage/lcov-report/src/sdk/app/queries/index.ts.html +0 -100
  469. package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +0 -235
  470. package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +0 -265
  471. package/coverage/lcov-report/src/sdk/app/rows/index.html +0 -146
  472. package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +0 -106
  473. package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +0 -139
  474. package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
  475. package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -274
  476. package/coverage/lcov-report/src/sdk/index.html +0 -116
  477. package/coverage/lcov-report/src/sdk/index.ts.html +0 -151
  478. package/coverage/lcov-report/src/sdk/users/index.html +0 -131
  479. package/coverage/lcov-report/src/sdk/users/index.ts.html +0 -100
  480. package/coverage/lcov-report/src/sdk/users/utils.ts.html +0 -277
  481. package/coverage/lcov-report/src/sdk/utils/index.html +0 -116
  482. package/coverage/lcov-report/src/sdk/utils/index.ts.html +0 -133
  483. package/coverage/lcov-report/src/startup.ts.html +0 -484
  484. package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +0 -2032
  485. package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +0 -127
  486. package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
  487. package/coverage/lcov-report/src/tests/utilities/index.ts.html +0 -118
  488. package/coverage/lcov-report/src/tests/utilities/structures.ts.html +0 -856
  489. package/coverage/lcov-report/src/threads/automation.ts.html +0 -1555
  490. package/coverage/lcov-report/src/threads/index.html +0 -161
  491. package/coverage/lcov-report/src/threads/index.ts.html +0 -418
  492. package/coverage/lcov-report/src/threads/query.ts.html +0 -1000
  493. package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
  494. package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +0 -94
  495. package/coverage/lcov-report/src/utilities/centralPath.ts.html +0 -151
  496. package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +0 -343
  497. package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +0 -547
  498. package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +0 -601
  499. package/coverage/lcov-report/src/utilities/fileSystem/index.html +0 -206
  500. package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +0 -100
  501. package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +0 -277
  502. package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +0 -142
  503. package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +0 -193
  504. package/coverage/lcov-report/src/utilities/global.ts.html +0 -499
  505. package/coverage/lcov-report/src/utilities/index.html +0 -251
  506. package/coverage/lcov-report/src/utilities/index.ts.html +0 -487
  507. package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
  508. package/coverage/lcov-report/src/utilities/routing/index.html +0 -116
  509. package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
  510. package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
  511. package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +0 -922
  512. package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +0 -373
  513. package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +0 -373
  514. package/coverage/lcov-report/src/utilities/schema.ts.html +0 -508
  515. package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +0 -169
  516. package/coverage/lcov-report/src/utilities/security.ts.html +0 -280
  517. package/coverage/lcov-report/src/utilities/usageQuota/index.html +0 -131
  518. package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +0 -325
  519. package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +0 -139
  520. package/coverage/lcov-report/src/utilities/users.ts.html +0 -232
  521. package/coverage/lcov-report/src/utilities/workerRequests.ts.html +0 -646
  522. package/coverage/lcov-report/src/watch.ts.html +0 -196
  523. package/coverage/lcov-report/src/websocket.ts.html +0 -163
  524. package/coverage/lcov.info +0 -21777
  525. package/dist/api/routes/public/tests/utils.js +0 -33
  526. package/dist/integrations/base/utils.js +0 -16
  527. package/specs/resources/utils/Resource.js +0 -26
  528. package/src/integrations/base/utils.ts +0 -12
@@ -11,7 +11,7 @@ const read = [], write = [];
11
11
  * @openapi
12
12
  * /tables/{tableId}/rows:
13
13
  * post:
14
- * operationId: create
14
+ * operationId: rowCreate
15
15
  * summary: Create a row
16
16
  * description: Creates a row within the specified table.
17
17
  * tags:
@@ -45,7 +45,7 @@ write.push(new Endpoint_1.default("post", "/tables/:tableId/rows", rows_1.defaul
45
45
  * @openapi
46
46
  * /tables/{tableId}/rows/{rowId}:
47
47
  * put:
48
- * operationId: update
48
+ * operationId: rowUpdate
49
49
  * summary: Update a row
50
50
  * description: Updates a row within the specified table.
51
51
  * tags:
@@ -79,7 +79,7 @@ write.push(new Endpoint_1.default("put", "/tables/:tableId/rows/:rowId", rows_1.
79
79
  * @openapi
80
80
  * /tables/{tableId}/rows/{rowId}:
81
81
  * delete:
82
- * operationId: destroy
82
+ * operationId: rowDestroy
83
83
  * summary: Delete a row
84
84
  * description: Deletes a row within the specified table.
85
85
  * tags:
@@ -104,7 +104,7 @@ write.push(new Endpoint_1.default("delete", "/tables/:tableId/rows/:rowId", rows
104
104
  * @openapi
105
105
  * /tables/{tableId}/rows/{rowId}:
106
106
  * get:
107
- * operationId: getById
107
+ * operationId: rowGetById
108
108
  * summary: Retrieve a row
109
109
  * description: This gets a single row, it will be enriched with the full related rows, rather than
110
110
  * the squashed "primaryDisplay" format returned by the search endpoint.
@@ -130,7 +130,7 @@ read.push(new Endpoint_1.default("get", "/tables/:tableId/rows/:rowId", rows_1.d
130
130
  * @openapi
131
131
  * /tables/{tableId}/rows/search:
132
132
  * post:
133
- * operationId: search
133
+ * operationId: rowSearch
134
134
  * summary: Search for rows
135
135
  * tags:
136
136
  * - rows
@@ -11,7 +11,7 @@ const read = [], write = [];
11
11
  * @openapi
12
12
  * /tables:
13
13
  * post:
14
- * operationId: create
14
+ * operationId: tableCreate
15
15
  * summary: Create a table
16
16
  * description: Create a table, this could be internal or external.
17
17
  * tags:
@@ -43,7 +43,7 @@ write.push(new Endpoint_1.default("post", "/tables", tables_1.default.create).ad
43
43
  * @openapi
44
44
  * /tables/{tableId}:
45
45
  * put:
46
- * operationId: update
46
+ * operationId: tableUpdate
47
47
  * summary: Update a table
48
48
  * description: Update a table, this could be internal or external.
49
49
  * tags:
@@ -75,7 +75,7 @@ write.push(new Endpoint_1.default("put", "/tables/:tableId", tables_1.default.up
75
75
  * @openapi
76
76
  * /tables/{tableId}:
77
77
  * delete:
78
- * operationId: destroy
78
+ * operationId: tableDestroy
79
79
  * summary: Delete a table
80
80
  * description: Delete a table, this could be internal or external.
81
81
  * tags:
@@ -99,7 +99,7 @@ write.push(new Endpoint_1.default("delete", "/tables/:tableId", tables_1.default
99
99
  * @openapi
100
100
  * /tables/{tableId}:
101
101
  * get:
102
- * operationId: getById
102
+ * operationId: tableGetById
103
103
  * summary: Retrieve a table
104
104
  * description: Lookup a table, this could be internal or external.
105
105
  * tags:
@@ -123,7 +123,7 @@ read.push(new Endpoint_1.default("get", "/tables/:tableId", tables_1.default.rea
123
123
  * @openapi
124
124
  * /tables/search:
125
125
  * post:
126
- * operationId: search
126
+ * operationId: tableSearch
127
127
  * summary: Search for tables
128
128
  * description: Based on table properties (currently only name) search for tables. This could be
129
129
  * an internal or an external table.
@@ -11,7 +11,7 @@ const read = [], write = [];
11
11
  * @openapi
12
12
  * /users:
13
13
  * post:
14
- * operationId: create
14
+ * operationId: userCreate
15
15
  * summary: Create a user
16
16
  * tags:
17
17
  * - users
@@ -37,7 +37,7 @@ write.push(new Endpoint_1.default("post", "/users", users_1.default.create));
37
37
  * @openapi
38
38
  * /users/{userId}:
39
39
  * put:
40
- * operationId: update
40
+ * operationId: userUpdate
41
41
  * summary: Update a user
42
42
  * tags:
43
43
  * - users
@@ -65,7 +65,7 @@ write.push(new Endpoint_1.default("put", "/users/:userId", users_1.default.updat
65
65
  * @openapi
66
66
  * /users/{userId}:
67
67
  * delete:
68
- * operationId: destroy
68
+ * operationId: userDestroy
69
69
  * summary: Delete a user
70
70
  * tags:
71
71
  * - users
@@ -87,7 +87,7 @@ write.push(new Endpoint_1.default("delete", "/users/:userId", users_1.default.de
87
87
  * @openapi
88
88
  * /users/{userId}:
89
89
  * get:
90
- * operationId: getById
90
+ * operationId: userGetById
91
91
  * summary: Retrieve a user
92
92
  * tags:
93
93
  * - users
@@ -109,7 +109,7 @@ read.push(new Endpoint_1.default("get", "/users/:userId", users_1.default.read))
109
109
  * @openapi
110
110
  * /users/search:
111
111
  * post:
112
- * operationId: search
112
+ * operationId: userSearch
113
113
  * summary: Search for users
114
114
  * description: Based on user properties (currently only name) search for users.
115
115
  * tags:
package/dist/app.js CHANGED
@@ -35,6 +35,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
+ if (process.env.DD_APM_ENABLED) {
39
+ require("./ddApm");
40
+ }
41
+ if (process.env.ELASTIC_APM_ENABLED) {
42
+ require("./elasticApm");
43
+ }
38
44
  // need to load environment first
39
45
  const environment_1 = __importDefault(require("./environment"));
40
46
  // enable APM if configured
@@ -58,6 +64,7 @@ const websocket_1 = require("./websocket");
58
64
  const startup_1 = require("./startup");
59
65
  const Sentry = require("@sentry/node");
60
66
  const destroyable = require("server-destroy");
67
+ const { userAgent } = require("koa-useragent");
61
68
  const app = new koa_1.default();
62
69
  let mbNumber = parseInt(environment_1.default.HTTP_MB_LIMIT || "10");
63
70
  if (!mbNumber || isNaN(mbNumber)) {
@@ -74,6 +81,7 @@ app.use((0, koa_body_1.default)({
74
81
  parsedMethods: ["POST", "PUT", "PATCH", "DELETE"],
75
82
  }));
76
83
  app.use(backend_core_1.middleware.logging);
84
+ app.use(userAgent);
77
85
  if (environment_1.default.isProd()) {
78
86
  environment_1.default._set("NODE_ENV", "production");
79
87
  Sentry.init();
@@ -99,7 +107,7 @@ server.on("close", () => __awaiter(void 0, void 0, void 0, function* () {
99
107
  console.log("Server Closed");
100
108
  yield automations.shutdown();
101
109
  yield redis.shutdown();
102
- yield backend_core_1.events.shutdown();
110
+ backend_core_1.events.shutdown();
103
111
  yield threads_1.Thread.shutdown();
104
112
  api.shutdown();
105
113
  if (!environment_1.default.isTest()) {
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAX_AUTOMATION_RECURRING_ERRORS = exports.ObjectStoreBuckets = exports.AutomationErrors = exports.BuildSchemaErrors = exports.InvalidColumns = exports.MetadataTypes = exports.BaseQueryVerbs = exports.OBJ_STORE_DIRECTORY = exports.AutoFieldDefaultNames = exports.AutoFieldSubTypes = exports.USERS_TABLE_SCHEMA = exports.SortDirection = exports.DatasourceAuthTypes = exports.DataSourceOperation = exports.AuthTypes = exports.FormulaTypes = exports.RelationshipTypes = exports.SwitchableTypes = exports.CanSwitchTypes = exports.FieldTypes = exports.NoEmptyFilterStrings = exports.FilterTypes = void 0;
3
+ exports.MAX_AUTOMATION_RECURRING_ERRORS = exports.ObjectStoreBuckets = exports.AutomationErrors = exports.BuildSchemaErrors = exports.InvalidColumns = exports.MetadataTypes = exports.BaseQueryVerbs = exports.OBJ_STORE_DIRECTORY = exports.AutoFieldDefaultNames = exports.AutoFieldSubTypes = exports.USERS_TABLE_SCHEMA = exports.SortDirection = exports.DatasourceAuthTypes = exports.DataSourceOperation = exports.AuthTypes = exports.FormulaTypes = exports.SwitchableTypes = exports.CanSwitchTypes = exports.NoEmptyFilterStrings = exports.FilterTypes = exports.RelationshipTypes = exports.FieldTypes = void 0;
4
4
  const backend_core_1 = require("@budibase/backend-core");
5
+ var types_1 = require("@budibase/types");
6
+ Object.defineProperty(exports, "FieldTypes", { enumerable: true, get: function () { return types_1.FieldType; } });
7
+ Object.defineProperty(exports, "RelationshipTypes", { enumerable: true, get: function () { return types_1.RelationshipTypes; } });
5
8
  var FilterTypes;
6
9
  (function (FilterTypes) {
7
10
  FilterTypes["STRING"] = "string";
@@ -23,23 +26,6 @@ exports.NoEmptyFilterStrings = [
23
26
  FilterTypes.CONTAINS,
24
27
  FilterTypes.NOT_CONTAINS,
25
28
  ];
26
- var FieldTypes;
27
- (function (FieldTypes) {
28
- FieldTypes["STRING"] = "string";
29
- FieldTypes["BARCODEQR"] = "barcodeqr";
30
- FieldTypes["LONGFORM"] = "longform";
31
- FieldTypes["OPTIONS"] = "options";
32
- FieldTypes["NUMBER"] = "number";
33
- FieldTypes["BOOLEAN"] = "boolean";
34
- FieldTypes["ARRAY"] = "array";
35
- FieldTypes["DATETIME"] = "datetime";
36
- FieldTypes["ATTACHMENT"] = "attachment";
37
- FieldTypes["LINK"] = "link";
38
- FieldTypes["FORMULA"] = "formula";
39
- FieldTypes["AUTO"] = "auto";
40
- FieldTypes["JSON"] = "json";
41
- FieldTypes["INTERNAL"] = "internal";
42
- })(FieldTypes = exports.FieldTypes || (exports.FieldTypes = {}));
43
29
  exports.CanSwitchTypes = [
44
30
  [exports.FieldTypes.JSON, exports.FieldTypes.ARRAY],
45
31
  [
@@ -51,12 +37,6 @@ exports.CanSwitchTypes = [
51
37
  [exports.FieldTypes.BOOLEAN, exports.FieldTypes.NUMBER],
52
38
  ];
53
39
  exports.SwitchableTypes = exports.CanSwitchTypes.reduce((prev, current) => prev ? prev.concat(current) : current);
54
- var RelationshipTypes;
55
- (function (RelationshipTypes) {
56
- RelationshipTypes["ONE_TO_MANY"] = "one-to-many";
57
- RelationshipTypes["MANY_TO_ONE"] = "many-to-one";
58
- RelationshipTypes["MANY_TO_MANY"] = "many-to-many";
59
- })(RelationshipTypes = exports.RelationshipTypes || (exports.RelationshipTypes = {}));
60
40
  var FormulaTypes;
61
41
  (function (FormulaTypes) {
62
42
  FormulaTypes["STATIC"] = "static";
@@ -13,6 +13,7 @@ const employeeImport_1 = require("./employeeImport");
13
13
  const jobsImport_1 = require("./jobsImport");
14
14
  const expensesImport_1 = require("./expensesImport");
15
15
  const backend_core_1 = require("@budibase/backend-core");
16
+ const types_1 = require("@budibase/types");
16
17
  exports.DEFAULT_JOBS_TABLE_ID = "ta_bb_jobs";
17
18
  exports.DEFAULT_INVENTORY_TABLE_ID = "ta_bb_inventory";
18
19
  exports.DEFAULT_EXPENSES_TABLE_ID = "ta_bb_expenses";
@@ -260,7 +261,7 @@ exports.DEFAULT_EMPLOYEE_TABLE_SCHEMA = {
260
261
  name: "Employee Level",
261
262
  sortable: false,
262
263
  }, "Badge Photo": {
263
- type: "attachment",
264
+ type: constants_1.FieldTypes.ATTACHMENT,
264
265
  constraints: {
265
266
  type: constants_1.FieldTypes.ARRAY,
266
267
  presence: false,
@@ -275,7 +276,7 @@ exports.DEFAULT_EMPLOYEE_TABLE_SCHEMA = {
275
276
  },
276
277
  fieldName: "Assigned",
277
278
  name: "Jobs",
278
- relationshipType: constants_1.RelationshipTypes.MANY_TO_MANY,
279
+ relationshipType: types_1.RelationshipTypes.MANY_TO_MANY,
279
280
  tableId: exports.DEFAULT_JOBS_TABLE_ID,
280
281
  }, "Start Date": {
281
282
  type: constants_1.FieldTypes.DATETIME,
@@ -419,10 +420,10 @@ exports.DEFAULT_JOBS_TABLE_SCHEMA = {
419
420
  type: constants_1.FieldTypes.LINK,
420
421
  tableId: exports.DEFAULT_EMPLOYEE_TABLE_ID,
421
422
  fieldName: "Jobs",
422
- relationshipType: constants_1.RelationshipTypes.MANY_TO_MANY,
423
+ relationshipType: types_1.RelationshipTypes.MANY_TO_MANY,
423
424
  // sortable: true,
424
425
  }, "Works End": {
425
- type: "datetime",
426
+ type: constants_1.FieldTypes.DATETIME,
426
427
  constraints: {
427
428
  type: "string",
428
429
  length: {},
@@ -435,7 +436,7 @@ exports.DEFAULT_JOBS_TABLE_SCHEMA = {
435
436
  name: "Works End",
436
437
  ignoreTimezones: true,
437
438
  }, "Updated Price": {
438
- type: "number",
439
+ type: constants_1.FieldTypes.NUMBER,
439
440
  constraints: {
440
441
  type: "number",
441
442
  presence: false,
package/dist/db/index.js CHANGED
@@ -1,10 +1,33 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
27
  };
5
28
  Object.defineProperty(exports, "__esModule", { value: true });
6
29
  exports.init = void 0;
7
- const backend_core_1 = require("@budibase/backend-core");
30
+ const core = __importStar(require("@budibase/backend-core"));
8
31
  const environment_1 = __importDefault(require("../environment"));
9
32
  function init() {
10
33
  const dbConfig = {
@@ -15,6 +38,6 @@ function init() {
15
38
  dbConfig.inMemory = true;
16
39
  dbConfig.allDbs = true;
17
40
  }
18
- (0, backend_core_1.init)({ db: dbConfig });
41
+ core.init({ db: dbConfig });
19
42
  }
20
43
  exports.init = init;
@@ -18,6 +18,7 @@ const node_1 = __importDefault(require("@sentry/node"));
18
18
  const constants_1 = require("../../constants");
19
19
  const backend_core_1 = require("@budibase/backend-core");
20
20
  const LinkDocument_1 = __importDefault(require("./LinkDocument"));
21
+ const types_1 = require("@budibase/types");
21
22
  class LinkController {
22
23
  constructor({ tableId, row, table, oldTable }) {
23
24
  this._db = backend_core_1.context.getAppDB();
@@ -124,17 +125,17 @@ class LinkController {
124
125
  */
125
126
  handleRelationshipType(linkerField, linkedField) {
126
127
  if (!linkerField.relationshipType ||
127
- linkerField.relationshipType === constants_1.RelationshipTypes.MANY_TO_MANY) {
128
- linkedField.relationshipType = constants_1.RelationshipTypes.MANY_TO_MANY;
128
+ linkerField.relationshipType === types_1.RelationshipTypes.MANY_TO_MANY) {
129
+ linkedField.relationshipType = types_1.RelationshipTypes.MANY_TO_MANY;
129
130
  // make sure by default all are many to many (if not specified)
130
- linkerField.relationshipType = constants_1.RelationshipTypes.MANY_TO_MANY;
131
+ linkerField.relationshipType = types_1.RelationshipTypes.MANY_TO_MANY;
131
132
  }
132
- else if (linkerField.relationshipType === constants_1.RelationshipTypes.MANY_TO_ONE) {
133
+ else if (linkerField.relationshipType === types_1.RelationshipTypes.MANY_TO_ONE) {
133
134
  // Ensure that the other side of the relationship is locked to one record
134
- linkedField.relationshipType = constants_1.RelationshipTypes.ONE_TO_MANY;
135
+ linkedField.relationshipType = types_1.RelationshipTypes.ONE_TO_MANY;
135
136
  }
136
- else if (linkerField.relationshipType === constants_1.RelationshipTypes.ONE_TO_MANY) {
137
- linkedField.relationshipType = constants_1.RelationshipTypes.MANY_TO_ONE;
137
+ else if (linkerField.relationshipType === types_1.RelationshipTypes.ONE_TO_MANY) {
138
+ linkedField.relationshipType = types_1.RelationshipTypes.MANY_TO_ONE;
138
139
  }
139
140
  return { linkerField, linkedField };
140
141
  }
@@ -178,7 +179,7 @@ class LinkController {
178
179
  }
179
180
  // iterate through the link IDs in the row field, see if any don't exist already
180
181
  for (let linkId of rowField) {
181
- if ((linkedSchema === null || linkedSchema === void 0 ? void 0 : linkedSchema.relationshipType) === constants_1.RelationshipTypes.ONE_TO_MANY) {
182
+ if ((linkedSchema === null || linkedSchema === void 0 ? void 0 : linkedSchema.relationshipType) === types_1.RelationshipTypes.ONE_TO_MANY) {
182
183
  let links = (yield (0, linkUtils_1.getLinkDocuments)({
183
184
  tableId: field.tableId,
184
185
  rowId: linkId,
package/dist/db/utils.js CHANGED
@@ -3,8 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.generateMemoryViewID = exports.getMetadataParams = exports.generateMetadataID = exports.generateUserFlagID = exports.getQueryParams = exports.getAutomationMetadataParams = exports.generateAutomationMetadataID = exports.generateQueryID = exports.getDatasourceParams = exports.generateDatasourceID = exports.getWebhookParams = exports.generateWebhookID = exports.getScreenParams = exports.generateScreenID = exports.getLayoutParams = exports.generateLayoutID = exports.getLinkParams = exports.generateLinkID = exports.generateAutomationID = exports.getAutomationParams = exports.getTableIDFromRowID = exports.generateTableID = exports.getTableParams = exports.getGlobalIDFromUserMetadataID = exports.generateUserMetadataID = exports.getUserMetadataParams = exports.generateRowID = exports.getRowParams = exports.getDocParams = exports.getQueryIndex = exports.getRoleParams = exports.generateRoleID = exports.generateDevAppID = exports.generateAppID = exports.UNICODE_MAX = exports.InternalTables = exports.ViewName = exports.TABLE_ROW_PREFIX = exports.LINK_USER_METADATA_PREFIX = exports.USER_METDATA_PREFIX = exports.isProdAppID = exports.isDevAppID = exports.APP_DEV_PREFIX = exports.APP_PREFIX = exports.DocumentType = exports.StaticDatabases = exports.SEPARATOR = exports.BudibaseInternalDB = exports.SearchIndexes = exports.AppStatus = void 0;
7
- exports.getMultiIDParams = exports.generatePluginID = exports.getMemoryViewParams = void 0;
6
+ exports.getMemoryViewParams = exports.generateMemoryViewID = exports.getMetadataParams = exports.generateMetadataID = exports.generateUserFlagID = exports.getQueryParams = exports.getAutomationMetadataParams = exports.generateAutomationMetadataID = exports.generateQueryID = exports.getDatasourceParams = exports.generateDatasourceID = exports.getWebhookParams = exports.generateWebhookID = exports.getScreenParams = exports.generateScreenID = exports.getLayoutParams = exports.generateLayoutID = exports.getLinkParams = exports.generateLinkID = exports.generateAutomationID = exports.getAutomationParams = exports.getTableIDFromRowID = exports.generateTableID = exports.getTableParams = exports.getGlobalIDFromUserMetadataID = exports.generateUserMetadataID = exports.getUserMetadataParams = exports.generateRowID = exports.getRowParams = exports.getDocParams = exports.getQueryIndex = exports.getRoleParams = exports.generateRoleID = exports.generateDevAppID = exports.generateAppID = exports.UNICODE_MAX = exports.InternalTables = exports.ViewName = exports.TABLE_ROW_PREFIX = exports.LINK_USER_METADATA_PREFIX = exports.USER_METDATA_PREFIX = exports.isProdAppID = exports.isDevAppID = exports.APP_DEV_PREFIX = exports.APP_PREFIX = exports.DocumentType = exports.StaticDatabases = exports.SEPARATOR = exports.BudibaseInternalDB = exports.AppStatus = void 0;
7
+ exports.getMultiIDParams = exports.generatePluginID = void 0;
8
8
  const newid_1 = __importDefault(require("./newid"));
9
9
  const backend_core_1 = require("@budibase/backend-core");
10
10
  exports.AppStatus = {
@@ -12,9 +12,6 @@ exports.AppStatus = {
12
12
  ALL: "all",
13
13
  DEPLOYED: "published",
14
14
  };
15
- exports.SearchIndexes = {
16
- ROWS: "rows",
17
- };
18
15
  exports.BudibaseInternalDB = {
19
16
  _id: "bb_internal",
20
17
  type: backend_core_1.db.BUDIBASE_DATASOURCE_TYPE,
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.createAllSearchIndex = exports.createRoutingView = exports.createLinkView = void 0;
13
13
  const backend_core_1 = require("@budibase/backend-core");
14
14
  const utils_1 = require("../utils");
15
+ const types_1 = require("@budibase/types");
15
16
  const SCREEN_PREFIX = utils_1.DocumentType.SCREEN + utils_1.SEPARATOR;
16
17
  /**************************************************
17
18
  * INFORMATION *
@@ -99,7 +100,7 @@ function searchIndex(indexName, fnString) {
99
100
  }
100
101
  function createAllSearchIndex() {
101
102
  return __awaiter(this, void 0, void 0, function* () {
102
- yield searchIndex(utils_1.SearchIndexes.ROWS, function (doc) {
103
+ yield searchIndex(types_1.SearchIndex.ROWS, function (doc) {
103
104
  function idx(input, prev) {
104
105
  for (let key of Object.keys(input)) {
105
106
  let idxKey = prev != null ? `${prev}.${key}` : key;
package/dist/ddApm.js ADDED
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const dd_trace_1 = __importDefault(require("dd-trace"));
7
+ // enable APM if configured
8
+ if (process.env.DD_APM_ENABLED) {
9
+ console.log("Starting dd-trace");
10
+ dd_trace_1.default.init();
11
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const elastic_apm_node_1 = __importDefault(require("elastic-apm-node"));
7
+ // enable APM if configured
8
+ if (process.env.ELASTIC_APM_ENABLED) {
9
+ console.log("Starting elastic-apm-node");
10
+ elastic_apm_node_1.default.start({
11
+ serviceName: process.env.SERVICE,
12
+ environment: process.env.BUDIBASE_ENVIRONMENT,
13
+ });
14
+ }
@@ -14,10 +14,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const knex_1 = require("knex");
16
16
  const types_1 = require("@budibase/types");
17
+ const backend_core_1 = require("@budibase/backend-core");
17
18
  const utils_1 = require("../utils");
18
19
  const sqlTable_1 = __importDefault(require("./sqlTable"));
19
20
  const environment_1 = __importDefault(require("../../environment"));
20
- const utils_2 = require("./utils");
21
21
  const envLimit = environment_1.default.SQL_MAX_ROWS
22
22
  ? parseInt(environment_1.default.SQL_MAX_ROWS)
23
23
  : null;
@@ -90,6 +90,9 @@ function parseFilters(filters) {
90
90
  function generateSelectStatement(json, knex) {
91
91
  var _a;
92
92
  const { resource, meta } = json;
93
+ if (!resource) {
94
+ return "*";
95
+ }
93
96
  const schema = (_a = meta === null || meta === void 0 ? void 0 : meta.table) === null || _a === void 0 ? void 0 : _a.schema;
94
97
  return resource.fields.map(field => {
95
98
  const fieldNames = field.split(/\./g);
@@ -114,7 +117,7 @@ class InternalBuilder {
114
117
  addFilters(query, filters, opts) {
115
118
  function iterate(structure, fn) {
116
119
  for (let [key, value] of Object.entries(structure)) {
117
- const updatedKey = (0, utils_2.removeKeyNumbering)(key);
120
+ const updatedKey = backend_core_1.db.removeKeyNumbering(key);
118
121
  const isRelationshipField = updatedKey.includes(".");
119
122
  if (!opts.relationship && !isRelationshipField) {
120
123
  fn(`${opts.tableName}.${updatedKey}`, value);
@@ -473,7 +476,7 @@ class InternalBuilder {
473
476
  return query.delete();
474
477
  }
475
478
  else {
476
- return query.delete().returning("*");
479
+ return query.delete().returning(generateSelectStatement(json, knex));
477
480
  }
478
481
  }
479
482
  }
@@ -17,9 +17,8 @@ const google_auth_library_1 = require("google-auth-library");
17
17
  const utils_1 = require("./utils");
18
18
  const constants_1 = require("../constants");
19
19
  const google_spreadsheet_1 = require("google-spreadsheet");
20
- const environment_1 = __importDefault(require("../environment"));
20
+ const node_fetch_1 = __importDefault(require("node-fetch"));
21
21
  const backend_core_1 = require("@budibase/backend-core");
22
- const fetch = require("node-fetch");
23
22
  const SCHEMA = {
24
23
  plus: true,
25
24
  auth: {
@@ -120,7 +119,7 @@ class GoogleSheetsIntegration {
120
119
  }
121
120
  fetchAccessToken(payload) {
122
121
  return __awaiter(this, void 0, void 0, function* () {
123
- const response = yield fetch("https://www.googleapis.com/oauth2/v4/token", {
122
+ const response = yield (0, node_fetch_1.default)("https://www.googleapis.com/oauth2/v4/token", {
124
123
  method: "POST",
125
124
  body: JSON.stringify(Object.assign(Object.assign({}, payload), { grant_type: "refresh_token" })),
126
125
  headers: {
@@ -138,15 +137,9 @@ class GoogleSheetsIntegration {
138
137
  return __awaiter(this, void 0, void 0, function* () {
139
138
  try {
140
139
  // Initialise oAuth client
141
- const db = backend_core_1.tenancy.getGlobalDB();
142
- let googleConfig = yield backend_core_1.db.getScopedConfig(db, {
143
- type: backend_core_1.constants.Config.GOOGLE,
144
- });
140
+ let googleConfig = yield backend_core_1.configs.getGoogleDatasourceConfig();
145
141
  if (!googleConfig) {
146
- googleConfig = {
147
- clientID: environment_1.default.GOOGLE_CLIENT_ID,
148
- clientSecret: environment_1.default.GOOGLE_CLIENT_SECRET,
149
- };
142
+ throw new backend_core_1.HTTPError("Google config not found", 400);
150
143
  }
151
144
  const oauthClient = new google_auth_library_1.OAuth2Client({
152
145
  clientId: googleConfig.clientID,
@@ -173,7 +166,7 @@ class GoogleSheetsIntegration {
173
166
  buildSchema(datasourceId) {
174
167
  return __awaiter(this, void 0, void 0, function* () {
175
168
  yield this.connect();
176
- const sheets = yield this.client.sheetsByIndex;
169
+ const sheets = this.client.sheetsByIndex;
177
170
  const tables = {};
178
171
  for (let sheet of sheets) {
179
172
  // must fetch rows to determine schema
@@ -254,7 +247,7 @@ class GoogleSheetsIntegration {
254
247
  return __awaiter(this, void 0, void 0, function* () {
255
248
  try {
256
249
  yield this.connect();
257
- const sheet = yield this.client.sheetsByTitle[table.name];
250
+ const sheet = this.client.sheetsByTitle[table.name];
258
251
  yield sheet.loadHeaderRow();
259
252
  if (table._rename) {
260
253
  const headers = [];
@@ -269,8 +262,12 @@ class GoogleSheetsIntegration {
269
262
  yield sheet.setHeaderRow(headers);
270
263
  }
271
264
  else {
272
- let newField = Object.keys(table.schema).find(key => !sheet.headerValues.includes(key));
273
- yield sheet.setHeaderRow([...sheet.headerValues, newField]);
265
+ const updatedHeaderValues = [...sheet.headerValues];
266
+ const newField = Object.keys(table.schema).find(key => !sheet.headerValues.includes(key));
267
+ if (newField) {
268
+ updatedHeaderValues.push(newField);
269
+ }
270
+ yield sheet.setHeaderRow(updatedHeaderValues);
274
271
  }
275
272
  }
276
273
  catch (err) {
@@ -283,7 +280,7 @@ class GoogleSheetsIntegration {
283
280
  return __awaiter(this, void 0, void 0, function* () {
284
281
  try {
285
282
  yield this.connect();
286
- const sheetToDelete = yield this.client.sheetsByTitle[sheet];
283
+ const sheetToDelete = this.client.sheetsByTitle[sheet];
287
284
  return yield sheetToDelete.delete();
288
285
  }
289
286
  catch (err) {
@@ -296,7 +293,7 @@ class GoogleSheetsIntegration {
296
293
  return __awaiter(this, void 0, void 0, function* () {
297
294
  try {
298
295
  yield this.connect();
299
- const sheet = yield this.client.sheetsByTitle[query.sheet];
296
+ const sheet = this.client.sheetsByTitle[query.sheet];
300
297
  const rowToInsert = typeof query.row === "string" ? JSON.parse(query.row) : query.row;
301
298
  const row = yield sheet.addRow(rowToInsert);
302
299
  return [
@@ -313,7 +310,7 @@ class GoogleSheetsIntegration {
313
310
  return __awaiter(this, void 0, void 0, function* () {
314
311
  try {
315
312
  yield this.connect();
316
- const sheet = yield this.client.sheetsByTitle[query.sheet];
313
+ const sheet = this.client.sheetsByTitle[query.sheet];
317
314
  const rows = yield sheet.getRows();
318
315
  const headerValues = sheet.headerValues;
319
316
  const response = [];
@@ -332,7 +329,7 @@ class GoogleSheetsIntegration {
332
329
  return __awaiter(this, void 0, void 0, function* () {
333
330
  try {
334
331
  yield this.connect();
335
- const sheet = yield this.client.sheetsByTitle[query.sheet];
332
+ const sheet = this.client.sheetsByTitle[query.sheet];
336
333
  const rows = yield sheet.getRows();
337
334
  const row = rows[query.rowIndex];
338
335
  if (row) {
@@ -358,7 +355,7 @@ class GoogleSheetsIntegration {
358
355
  delete(query) {
359
356
  return __awaiter(this, void 0, void 0, function* () {
360
357
  yield this.connect();
361
- const sheet = yield this.client.sheetsByTitle[query.sheet];
358
+ const sheet = this.client.sheetsByTitle[query.sheet];
362
359
  const rows = yield sheet.getRows();
363
360
  const row = rows[query.rowIndex];
364
361
  if (row) {
@@ -66,9 +66,6 @@ exports.default = (permType, permLevel = null, opts = { schema: false }) => (ctx
66
66
  if (!ctx.user) {
67
67
  return ctx.throw(403, "No user info found");
68
68
  }
69
- // check general builder stuff, this middleware is a good way
70
- // to find API endpoints which are builder focused
71
- yield (0, builder_1.default)(ctx, permType);
72
69
  // get the resource roles
73
70
  let resourceRoles = [];
74
71
  let otherLevelRoles = [];
@@ -92,6 +89,11 @@ exports.default = (permType, permLevel = null, opts = { schema: false }) => (ctx
92
89
  if (!ctx.isAuthenticated) {
93
90
  return ctx.throw(403, "Session not authenticated");
94
91
  }
92
+ // check general builder stuff, this middleware is a good way
93
+ // to find API endpoints which are builder focused
94
+ if (permType === backend_core_1.permissions.PermissionType.BUILDER) {
95
+ yield (0, builder_1.default)(ctx);
96
+ }
95
97
  try {
96
98
  // check authorized
97
99
  yield checkAuthorized(ctx, resourceRoles, permType, permLevel);
@@ -61,14 +61,17 @@ function updateAppUpdatedAt(ctx) {
61
61
  }));
62
62
  });
63
63
  }
64
- function builder(ctx, permType) {
64
+ function builder(ctx) {
65
65
  return __awaiter(this, void 0, void 0, function* () {
66
66
  const appId = ctx.appId;
67
67
  // this only functions within an app context
68
68
  if (!appId) {
69
69
  return;
70
70
  }
71
- const isBuilderApi = permType === backend_core_1.permissions.PermissionType.BUILDER;
71
+ // check authenticated
72
+ if (!ctx.isAuthenticated) {
73
+ return ctx.throw(403, "Session not authenticated");
74
+ }
72
75
  const referer = ctx.headers["referer"];
73
76
  const overviewPath = "/builder/portal/overview/";
74
77
  const overviewContext = !referer ? false : referer.includes(overviewPath);
@@ -78,7 +81,7 @@ function builder(ctx, permType) {
78
81
  const hasAppId = !referer ? false : referer.includes(appId);
79
82
  const editingApp = referer ? hasAppId : false;
80
83
  // check this is a builder call and editing
81
- if (!isBuilderApi || !editingApp) {
84
+ if (!editingApp) {
82
85
  return;
83
86
  }
84
87
  // check locks
@@ -12,14 +12,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.backfill = void 0;
15
+ exports.backfill = exports.getConfigParams = void 0;
16
16
  const backend_core_1 = require("@budibase/backend-core");
17
17
  const types_1 = require("@budibase/types");
18
18
  const environment_1 = __importDefault(require("./../../../../environment"));
19
- const getConfigs = (globalDb) => __awaiter(void 0, void 0, void 0, function* () {
20
- const response = yield globalDb.allDocs(backend_core_1.db.getConfigParams({}, {
19
+ const getConfigParams = () => {
20
+ return {
21
21
  include_docs: true,
22
- }));
22
+ startkey: `${backend_core_1.DocumentType.CONFIG}${backend_core_1.SEPARATOR}`,
23
+ endkey: `${backend_core_1.DocumentType.CONFIG}${backend_core_1.SEPARATOR}${backend_core_1.UNICODE_MAX}`,
24
+ };
25
+ };
26
+ exports.getConfigParams = getConfigParams;
27
+ const getConfigs = (globalDb) => __awaiter(void 0, void 0, void 0, function* () {
28
+ const response = yield globalDb.allDocs((0, exports.getConfigParams)());
23
29
  return response.rows.map((row) => row.doc);
24
30
  });
25
31
  const backfill = (globalDb, timestamp) => __awaiter(void 0, void 0, void 0, function* () {