@budibase/server 2.6.23 → 2.6.24-alpha.1

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 (424) hide show
  1. package/.dockerignore +7 -6
  2. package/Dockerfile +16 -8
  3. package/builder/assets/index.b33e8ad5.css +6 -0
  4. package/builder/assets/index.c0b0be95.js +1869 -0
  5. package/builder/index.html +2 -2
  6. package/client/manifest.json +5229 -0
  7. package/dist/automation.js +32576 -0
  8. package/dist/automation.js.map +7 -0
  9. package/dist/index.js +45065 -13
  10. package/dist/index.js.map +7 -0
  11. package/dist/query.js +24462 -0
  12. package/dist/query.js.map +7 -0
  13. package/jest.config.ts +6 -3
  14. package/nodemon.json +8 -4
  15. package/package.json +35 -16
  16. package/pm2.config.js +1 -1
  17. package/scripts/build.js +48 -0
  18. package/src/api/controllers/application.ts +21 -22
  19. package/src/api/controllers/automation.ts +37 -9
  20. package/src/api/controllers/datasource.ts +114 -49
  21. package/src/api/controllers/deploy/index.ts +1 -0
  22. package/src/api/controllers/integration.ts +3 -3
  23. package/src/api/controllers/plugin/index.ts +1 -1
  24. package/src/api/controllers/row/external.ts +39 -15
  25. package/src/api/controllers/row/index.ts +18 -24
  26. package/src/api/controllers/row/internal.ts +1 -1
  27. package/src/api/controllers/row/staticFormula.ts +6 -1
  28. package/src/api/controllers/row/utils.ts +12 -0
  29. package/src/api/controllers/static/index.ts +3 -3
  30. package/src/api/controllers/table/index.ts +3 -0
  31. package/src/api/controllers/table/internal.ts +2 -6
  32. package/src/api/controllers/table/utils.ts +32 -1
  33. package/src/api/controllers/view/index.ts +5 -5
  34. package/src/api/controllers/webhook.ts +33 -9
  35. package/src/api/routes/application.ts +5 -0
  36. package/src/api/routes/automation.ts +0 -1
  37. package/src/api/routes/datasource.ts +10 -0
  38. package/src/api/routes/static.ts +3 -1
  39. package/src/api/routes/tests/{automation.spec.js → automation.spec.ts} +106 -31
  40. package/src/api/routes/tests/datasource.spec.ts +1 -1
  41. package/src/api/routes/tests/view.spec.js +4 -3
  42. package/src/api/routes/tests/{webhook.spec.js → webhook.spec.ts} +33 -11
  43. package/src/app.ts +0 -1
  44. package/src/automations/actions.ts +8 -0
  45. package/src/automations/logging/index.ts +21 -0
  46. package/src/automations/steps/bash.ts +4 -0
  47. package/src/automations/steps/collect.ts +58 -0
  48. package/src/automations/steps/createRow.ts +4 -0
  49. package/src/automations/steps/delay.ts +1 -0
  50. package/src/automations/steps/deleteRow.ts +4 -0
  51. package/src/automations/steps/discord.ts +4 -0
  52. package/src/automations/steps/executeQuery.ts +4 -0
  53. package/src/automations/steps/executeScript.ts +4 -0
  54. package/src/automations/steps/filter.ts +1 -0
  55. package/src/automations/steps/loop.ts +1 -0
  56. package/src/automations/steps/make.ts +22 -1
  57. package/src/automations/steps/openai.ts +106 -0
  58. package/src/automations/steps/outgoingWebhook.ts +4 -0
  59. package/src/automations/steps/queryRows.ts +4 -0
  60. package/src/automations/steps/sendSmtpEmail.ts +4 -0
  61. package/src/automations/steps/serverLog.ts +4 -0
  62. package/src/automations/steps/slack.ts +4 -0
  63. package/src/automations/steps/updateRow.ts +4 -0
  64. package/src/automations/steps/zapier.ts +22 -1
  65. package/src/automations/tests/make.spec.ts +54 -0
  66. package/src/automations/tests/openai.spec.ts +86 -0
  67. package/src/automations/tests/zapier.spec.ts +56 -0
  68. package/src/automations/triggers.ts +3 -2
  69. package/src/constants/index.ts +17 -16
  70. package/src/db/dynamoClient.ts +1 -1
  71. package/src/db/inMemoryView.ts +1 -0
  72. package/src/db/linkedRows/index.ts +5 -3
  73. package/src/environment.ts +3 -0
  74. package/src/integration-test/postgres.spec.ts +47 -5
  75. package/src/integrations/airtable.ts +33 -4
  76. package/src/integrations/arangodb.ts +20 -2
  77. package/src/integrations/base/sqlTable.ts +0 -1
  78. package/src/integrations/couchdb.ts +20 -4
  79. package/src/integrations/dynamodb.ts +36 -5
  80. package/src/integrations/elasticsearch.ts +18 -1
  81. package/src/integrations/firebase.ts +17 -0
  82. package/src/integrations/googlesheets.ts +66 -5
  83. package/src/integrations/index.ts +12 -7
  84. package/src/integrations/microsoftSqlServer.ts +33 -1
  85. package/src/integrations/mongodb.ts +18 -0
  86. package/src/integrations/mysql.ts +53 -26
  87. package/src/integrations/oracle.ts +38 -6
  88. package/src/integrations/postgres.ts +47 -12
  89. package/src/integrations/redis.ts +35 -4
  90. package/src/integrations/s3.ts +21 -3
  91. package/src/integrations/snowflake.ts +22 -1
  92. package/src/integrations/tests/googlesheets.spec.ts +41 -9
  93. package/src/middleware/builder.ts +26 -18
  94. package/src/migrations/functions/backfill/app/queries.ts +1 -1
  95. package/src/sdk/app/automations/index.ts +2 -0
  96. package/src/sdk/app/automations/utils.ts +7 -0
  97. package/src/sdk/app/datasources/datasources.ts +7 -1
  98. package/src/sdk/plugins/plugins.ts +1 -1
  99. package/src/startup.ts +2 -0
  100. package/src/tests/utilities/TestConfiguration.ts +4 -2
  101. package/src/tests/utilities/structures.ts +42 -0
  102. package/src/threads/automation.ts +91 -23
  103. package/src/threads/index.ts +9 -3
  104. package/src/threads/utils.ts +2 -0
  105. package/src/utilities/fileSystem/app.ts +14 -4
  106. package/src/utilities/fileSystem/clientLibrary.ts +8 -3
  107. package/src/utilities/fileSystem/filesystem.ts +3 -1
  108. package/src/utilities/redis.ts +25 -3
  109. package/src/utilities/rowProcessor/index.ts +4 -1
  110. package/src/utilities/rowProcessor/map.ts +1 -1
  111. package/src/websockets/builder.ts +95 -0
  112. package/src/websockets/client.ts +2 -2
  113. package/src/websockets/grid.ts +44 -44
  114. package/src/websockets/index.ts +13 -6
  115. package/src/websockets/websocket.ts +211 -7
  116. package/tsconfig.build.json +9 -1
  117. package/tsconfig.json +1 -14
  118. package/builder/assets/index.86c992bf.css +0 -6
  119. package/builder/assets/index.c16c35ca.js +0 -1794
  120. package/dist/api/controllers/analytics.js +0 -46
  121. package/dist/api/controllers/apikeys.js +0 -72
  122. package/dist/api/controllers/application.js +0 -574
  123. package/dist/api/controllers/auth.js +0 -80
  124. package/dist/api/controllers/automation.js +0 -303
  125. package/dist/api/controllers/backup.js +0 -37
  126. package/dist/api/controllers/component.js +0 -59
  127. package/dist/api/controllers/datasource.js +0 -306
  128. package/dist/api/controllers/deploy/Deployment.js +0 -53
  129. package/dist/api/controllers/deploy/index.js +0 -198
  130. package/dist/api/controllers/dev.js +0 -146
  131. package/dist/api/controllers/integration.js +0 -28
  132. package/dist/api/controllers/layout.js +0 -49
  133. package/dist/api/controllers/metadata.js +0 -63
  134. package/dist/api/controllers/migrations.js +0 -29
  135. package/dist/api/controllers/ops.js +0 -40
  136. package/dist/api/controllers/permission.js +0 -162
  137. package/dist/api/controllers/plugin/file.js +0 -24
  138. package/dist/api/controllers/plugin/github.js +0 -69
  139. package/dist/api/controllers/plugin/index.js +0 -112
  140. package/dist/api/controllers/plugin/npm.js +0 -58
  141. package/dist/api/controllers/plugin/uploaders.js +0 -11
  142. package/dist/api/controllers/plugin/url.js +0 -24
  143. package/dist/api/controllers/plugin/utils.js +0 -27
  144. package/dist/api/controllers/public/applications.js +0 -146
  145. package/dist/api/controllers/public/mapping/applications.js +0 -29
  146. package/dist/api/controllers/public/mapping/index.js +0 -11
  147. package/dist/api/controllers/public/mapping/queries.js +0 -36
  148. package/dist/api/controllers/public/mapping/rows.js +0 -24
  149. package/dist/api/controllers/public/mapping/tables.js +0 -23
  150. package/dist/api/controllers/public/mapping/types.js +0 -2
  151. package/dist/api/controllers/public/mapping/users.js +0 -29
  152. package/dist/api/controllers/public/metrics.js +0 -113
  153. package/dist/api/controllers/public/queries.js +0 -58
  154. package/dist/api/controllers/public/rows.js +0 -120
  155. package/dist/api/controllers/public/tables.js +0 -95
  156. package/dist/api/controllers/public/users.js +0 -93
  157. package/dist/api/controllers/public/utils.js +0 -56
  158. package/dist/api/controllers/query/import/index.js +0 -87
  159. package/dist/api/controllers/query/import/sources/base/index.js +0 -75
  160. package/dist/api/controllers/query/import/sources/base/openapi.js +0 -42
  161. package/dist/api/controllers/query/import/sources/curl.js +0 -99
  162. package/dist/api/controllers/query/import/sources/openapi2.js +0 -145
  163. package/dist/api/controllers/query/import/sources/openapi3.js +0 -177
  164. package/dist/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +0 -253
  165. package/dist/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +0 -1054
  166. package/dist/api/controllers/query/import/sources/tests/openapi3/data/crud/crud.json +0 -253
  167. package/dist/api/controllers/query/import/sources/tests/openapi3/data/petstore/petstore.json +0 -1225
  168. package/dist/api/controllers/query/index.js +0 -299
  169. package/dist/api/controllers/query/validation.js +0 -53
  170. package/dist/api/controllers/role.js +0 -109
  171. package/dist/api/controllers/routing.js +0 -105
  172. package/dist/api/controllers/row/ExternalRequest.js +0 -683
  173. package/dist/api/controllers/row/external.js +0 -339
  174. package/dist/api/controllers/row/index.js +0 -203
  175. package/dist/api/controllers/row/internal.js +0 -509
  176. package/dist/api/controllers/row/internalSearch.js +0 -28
  177. package/dist/api/controllers/row/staticFormula.js +0 -165
  178. package/dist/api/controllers/row/utils.js +0 -183
  179. package/dist/api/controllers/screen.js +0 -110
  180. package/dist/api/controllers/script.js +0 -30
  181. package/dist/api/controllers/static/index.js +0 -268
  182. package/dist/api/controllers/table/bulkFormula.js +0 -173
  183. package/dist/api/controllers/table/external.js +0 -279
  184. package/dist/api/controllers/table/index.js +0 -179
  185. package/dist/api/controllers/table/internal.js +0 -197
  186. package/dist/api/controllers/table/utils.js +0 -379
  187. package/dist/api/controllers/templates.js +0 -56
  188. package/dist/api/controllers/user.js +0 -124
  189. package/dist/api/controllers/view/exporters.js +0 -46
  190. package/dist/api/controllers/view/index.js +0 -193
  191. package/dist/api/controllers/view/utils.js +0 -177
  192. package/dist/api/controllers/view/viewBuilder.js +0 -158
  193. package/dist/api/controllers/webhook.js +0 -134
  194. package/dist/api/index.js +0 -55
  195. package/dist/api/routes/analytics.js +0 -34
  196. package/dist/api/routes/apikeys.js +0 -37
  197. package/dist/api/routes/application.js +0 -48
  198. package/dist/api/routes/auth.js +0 -33
  199. package/dist/api/routes/automation.js +0 -50
  200. package/dist/api/routes/backup.js +0 -35
  201. package/dist/api/routes/component.js +0 -35
  202. package/dist/api/routes/datasource.js +0 -43
  203. package/dist/api/routes/deploy.js +0 -37
  204. package/dist/api/routes/dev.js +0 -49
  205. package/dist/api/routes/index.js +0 -75
  206. package/dist/api/routes/integration.js +0 -37
  207. package/dist/api/routes/layout.js +0 -37
  208. package/dist/api/routes/metadata.js +0 -40
  209. package/dist/api/routes/migrations.js +0 -36
  210. package/dist/api/routes/ops.js +0 -52
  211. package/dist/api/routes/permission.js +0 -44
  212. package/dist/api/routes/plugin.js +0 -39
  213. package/dist/api/routes/public/applications.js +0 -174
  214. package/dist/api/routes/public/index.js +0 -140
  215. package/dist/api/routes/public/metrics.js +0 -30
  216. package/dist/api/routes/public/middleware/mapper.js +0 -97
  217. package/dist/api/routes/public/queries.js +0 -72
  218. package/dist/api/routes/public/rows.js +0 -158
  219. package/dist/api/routes/public/tables.js +0 -152
  220. package/dist/api/routes/public/users.js +0 -135
  221. package/dist/api/routes/public/utils/Endpoint.js +0 -36
  222. package/dist/api/routes/query.js +0 -47
  223. package/dist/api/routes/role.js +0 -40
  224. package/dist/api/routes/routing.js +0 -39
  225. package/dist/api/routes/row.js +0 -239
  226. package/dist/api/routes/screen.js +0 -39
  227. package/dist/api/routes/script.js +0 -35
  228. package/dist/api/routes/static.js +0 -80
  229. package/dist/api/routes/table.js +0 -163
  230. package/dist/api/routes/templates.js +0 -37
  231. package/dist/api/routes/user.js +0 -43
  232. package/dist/api/routes/utils/validators.js +0 -238
  233. package/dist/api/routes/view.js +0 -42
  234. package/dist/api/routes/webhook.js +0 -43
  235. package/dist/app.js +0 -132
  236. package/dist/automations/actions.js +0 -137
  237. package/dist/automations/automationUtils.js +0 -173
  238. package/dist/automations/bullboard.js +0 -71
  239. package/dist/automations/index.js +0 -43
  240. package/dist/automations/logging/index.js +0 -53
  241. package/dist/automations/steps/bash.js +0 -111
  242. package/dist/automations/steps/createRow.js +0 -108
  243. package/dist/automations/steps/delay.js +0 -53
  244. package/dist/automations/steps/deleteRow.js +0 -96
  245. package/dist/automations/steps/discord.js +0 -116
  246. package/dist/automations/steps/executeQuery.js +0 -134
  247. package/dist/automations/steps/executeScript.js +0 -106
  248. package/dist/automations/steps/filter.js +0 -112
  249. package/dist/automations/steps/loop.js +0 -54
  250. package/dist/automations/steps/make.js +0 -120
  251. package/dist/automations/steps/outgoingWebhook.js +0 -166
  252. package/dist/automations/steps/queryRows.js +0 -220
  253. package/dist/automations/steps/sendSmtpEmail.js +0 -115
  254. package/dist/automations/steps/serverLog.js +0 -65
  255. package/dist/automations/steps/slack.js +0 -98
  256. package/dist/automations/steps/updateRow.js +0 -144
  257. package/dist/automations/steps/utils.js +0 -56
  258. package/dist/automations/steps/zapier.js +0 -117
  259. package/dist/automations/triggerInfo/app.js +0 -36
  260. package/dist/automations/triggerInfo/cron.js +0 -35
  261. package/dist/automations/triggerInfo/index.js +0 -40
  262. package/dist/automations/triggerInfo/rowDeleted.js +0 -36
  263. package/dist/automations/triggerInfo/rowSaved.js +0 -44
  264. package/dist/automations/triggerInfo/rowUpdated.js +0 -44
  265. package/dist/automations/triggerInfo/webhook.js +0 -40
  266. package/dist/automations/triggers.js +0 -181
  267. package/dist/automations/utils.js +0 -275
  268. package/dist/constants/definitions.js +0 -2
  269. package/dist/constants/index.js +0 -181
  270. package/dist/constants/layouts.js +0 -148
  271. package/dist/constants/screens.js +0 -51
  272. package/dist/db/defaultData/datasource_bb_default.js +0 -574
  273. package/dist/db/defaultData/employeeImport.js +0 -155
  274. package/dist/db/defaultData/expensesImport.js +0 -117
  275. package/dist/db/defaultData/inventoryImport.js +0 -109
  276. package/dist/db/defaultData/jobsImport.js +0 -152
  277. package/dist/db/dynamoClient.js +0 -124
  278. package/dist/db/inMemoryView.js +0 -62
  279. package/dist/db/index.js +0 -43
  280. package/dist/db/linkedRows/LinkController.js +0 -392
  281. package/dist/db/linkedRows/LinkDocument.js +0 -33
  282. package/dist/db/linkedRows/index.js +0 -206
  283. package/dist/db/linkedRows/linkUtils.js +0 -131
  284. package/dist/db/newid.js +0 -7
  285. package/dist/db/utils.js +0 -248
  286. package/dist/db/views/staticViews.js +0 -144
  287. package/dist/ddApm.js +0 -11
  288. package/dist/definitions/automations.js +0 -8
  289. package/dist/definitions/common.js +0 -2
  290. package/dist/definitions/datasource.js +0 -7
  291. package/dist/definitions/openapi.js +0 -6
  292. package/dist/environment.js +0 -109
  293. package/dist/events/AutomationEmitter.js +0 -53
  294. package/dist/events/BudibaseEmitter.js +0 -25
  295. package/dist/events/docUpdates/index.js +0 -17
  296. package/dist/events/docUpdates/processors.js +0 -18
  297. package/dist/events/docUpdates/syncUsers.js +0 -49
  298. package/dist/events/index.js +0 -11
  299. package/dist/events/utils.js +0 -43
  300. package/dist/integrations/airtable.js +0 -147
  301. package/dist/integrations/arangodb.js +0 -103
  302. package/dist/integrations/base/query.js +0 -32
  303. package/dist/integrations/base/sql.js +0 -600
  304. package/dist/integrations/base/sqlTable.js +0 -167
  305. package/dist/integrations/base/types.js +0 -2
  306. package/dist/integrations/couchdb.js +0 -125
  307. package/dist/integrations/dynamodb.js +0 -194
  308. package/dist/integrations/elasticsearch.js +0 -186
  309. package/dist/integrations/firebase.js +0 -174
  310. package/dist/integrations/googlesheets.js +0 -455
  311. package/dist/integrations/index.js +0 -135
  312. package/dist/integrations/microsoftSqlServer.js +0 -273
  313. package/dist/integrations/mongodb.js +0 -614
  314. package/dist/integrations/mysql.js +0 -256
  315. package/dist/integrations/oracle.js +0 -375
  316. package/dist/integrations/postgres.js +0 -300
  317. package/dist/integrations/queries/sql.js +0 -84
  318. package/dist/integrations/redis.js +0 -168
  319. package/dist/integrations/rest.js +0 -400
  320. package/dist/integrations/s3.js +0 -237
  321. package/dist/integrations/snowflake.js +0 -102
  322. package/dist/integrations/utils.js +0 -295
  323. package/dist/middleware/appInfo.js +0 -22
  324. package/dist/middleware/authorized.js +0 -112
  325. package/dist/middleware/builder.js +0 -93
  326. package/dist/middleware/currentapp.js +0 -103
  327. package/dist/middleware/joi-validator.js +0 -43
  328. package/dist/middleware/publicApi.js +0 -25
  329. package/dist/middleware/resourceId.js +0 -59
  330. package/dist/middleware/selfhost.js +0 -24
  331. package/dist/middleware/utils.js +0 -8
  332. package/dist/migrations/functions/appUrls.js +0 -42
  333. package/dist/migrations/functions/backfill/app/automations.js +0 -31
  334. package/dist/migrations/functions/backfill/app/datasources.js +0 -28
  335. package/dist/migrations/functions/backfill/app/layouts.js +0 -33
  336. package/dist/migrations/functions/backfill/app/queries.js +0 -50
  337. package/dist/migrations/functions/backfill/app/roles.js +0 -28
  338. package/dist/migrations/functions/backfill/app/screens.js +0 -28
  339. package/dist/migrations/functions/backfill/app/tables.js +0 -37
  340. package/dist/migrations/functions/backfill/app.js +0 -176
  341. package/dist/migrations/functions/backfill/global/configs.js +0 -67
  342. package/dist/migrations/functions/backfill/global/quotas.js +0 -60
  343. package/dist/migrations/functions/backfill/global/users.js +0 -50
  344. package/dist/migrations/functions/backfill/global.js +0 -205
  345. package/dist/migrations/functions/backfill/index.js +0 -32
  346. package/dist/migrations/functions/backfill/installation.js +0 -80
  347. package/dist/migrations/functions/syncQuotas.js +0 -52
  348. package/dist/migrations/functions/tableSettings.js +0 -130
  349. package/dist/migrations/functions/usageQuotas/index.js +0 -16
  350. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -24
  351. package/dist/migrations/functions/usageQuotas/syncPlugins.js +0 -23
  352. package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
  353. package/dist/migrations/functions/usageQuotas/syncUsers.js +0 -21
  354. package/dist/migrations/functions/userEmailViewCasing.js +0 -24
  355. package/dist/migrations/index.js +0 -111
  356. package/dist/migrations/tests/helpers.js +0 -72
  357. package/dist/migrations/tests/structures.js +0 -37
  358. package/dist/sdk/app/applications/index.js +0 -28
  359. package/dist/sdk/app/applications/sync.js +0 -164
  360. package/dist/sdk/app/applications/utils.js +0 -21
  361. package/dist/sdk/app/automations/index.js +0 -29
  362. package/dist/sdk/app/automations/webhook.js +0 -54
  363. package/dist/sdk/app/backups/constants.js +0 -6
  364. package/dist/sdk/app/backups/exports.js +0 -160
  365. package/dist/sdk/app/backups/imports.js +0 -170
  366. package/dist/sdk/app/backups/index.js +0 -29
  367. package/dist/sdk/app/backups/statistics.js +0 -73
  368. package/dist/sdk/app/datasources/datasources.js +0 -166
  369. package/dist/sdk/app/datasources/index.js +0 -27
  370. package/dist/sdk/app/queries/index.js +0 -27
  371. package/dist/sdk/app/queries/queries.js +0 -60
  372. package/dist/sdk/app/rows/attachments.js +0 -61
  373. package/dist/sdk/app/rows/index.js +0 -28
  374. package/dist/sdk/app/rows/rows.js +0 -30
  375. package/dist/sdk/app/tables/index.js +0 -65
  376. package/dist/sdk/index.js +0 -27
  377. package/dist/sdk/plugins/index.js +0 -27
  378. package/dist/sdk/plugins/plugins.js +0 -53
  379. package/dist/sdk/users/index.js +0 -27
  380. package/dist/sdk/users/utils.js +0 -94
  381. package/dist/sdk/utils/index.js +0 -29
  382. package/dist/startup.js +0 -158
  383. package/dist/threads/automation.js +0 -450
  384. package/dist/threads/definitions.js +0 -2
  385. package/dist/threads/index.js +0 -140
  386. package/dist/threads/query.js +0 -265
  387. package/dist/threads/utils.js +0 -120
  388. package/dist/tsconfig.build.tsbuildinfo +0 -1
  389. package/dist/utilities/appDirectoryTemplate/package.json +0 -10
  390. package/dist/utilities/budibaseDir.js +0 -5
  391. package/dist/utilities/centralPath.js +0 -27
  392. package/dist/utilities/csv.js +0 -33
  393. package/dist/utilities/fileSystem/app.js +0 -88
  394. package/dist/utilities/fileSystem/clientLibrary.js +0 -138
  395. package/dist/utilities/fileSystem/filesystem.js +0 -180
  396. package/dist/utilities/fileSystem/index.js +0 -21
  397. package/dist/utilities/fileSystem/plugin.js +0 -76
  398. package/dist/utilities/fileSystem/processor.js +0 -34
  399. package/dist/utilities/fileSystem/template.js +0 -47
  400. package/dist/utilities/global.js +0 -146
  401. package/dist/utilities/index.js +0 -143
  402. package/dist/utilities/redis.js +0 -117
  403. package/dist/utilities/retry.js +0 -30
  404. package/dist/utilities/routing/index.js +0 -39
  405. package/dist/utilities/rowProcessor/index.js +0 -282
  406. package/dist/utilities/rowProcessor/map.js +0 -116
  407. package/dist/utilities/rowProcessor/utils.js +0 -87
  408. package/dist/utilities/schema.js +0 -112
  409. package/dist/utilities/scriptRunner.js +0 -26
  410. package/dist/utilities/security.js +0 -57
  411. package/dist/utilities/statusCodes.js +0 -9
  412. package/dist/utilities/usageQuota/rows.js +0 -88
  413. package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
  414. package/dist/utilities/users.js +0 -57
  415. package/dist/utilities/workerRequests.js +0 -171
  416. package/dist/watch.js +0 -53
  417. package/dist/websockets/client.js +0 -14
  418. package/dist/websockets/grid.js +0 -60
  419. package/dist/websockets/index.js +0 -17
  420. package/dist/websockets/websocket.js +0 -78
  421. package/src/automations/tests/zapier.spec.js +0 -27
  422. /package/dist/{api/controllers/static/templates/BudibaseApp.svelte → BudibaseApp-Y5NZEDTC.svelte} +0 -0
  423. /package/dist/{api/controllers/static/templates/app.hbs → app.hbs} +0 -0
  424. /package/dist/{api/controllers/static/templates/preview.hbs → preview.hbs} +0 -0
@@ -1,614 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __asyncValues = (this && this.__asyncValues) || function (o) {
12
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
- var m = o[Symbol.asyncIterator], i;
14
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
- };
18
- var __importDefault = (this && this.__importDefault) || function (mod) {
19
- return (mod && mod.__esModule) ? mod : { "default": mod };
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- const types_1 = require("@budibase/types");
23
- const mongodb_1 = require("mongodb");
24
- const environment_1 = __importDefault(require("../environment"));
25
- const getSchema = () => {
26
- let schema = {
27
- docs: "https://github.com/mongodb/node-mongodb-native",
28
- friendlyName: "MongoDB",
29
- type: "Non-relational",
30
- description: "MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era.",
31
- datasource: {
32
- connectionString: {
33
- type: types_1.DatasourceFieldType.STRING,
34
- required: true,
35
- default: "mongodb://localhost:27017",
36
- display: "Connection string",
37
- },
38
- db: {
39
- type: types_1.DatasourceFieldType.STRING,
40
- required: true,
41
- display: "DB",
42
- },
43
- },
44
- query: {
45
- create: {
46
- type: types_1.QueryType.JSON,
47
- },
48
- read: {
49
- type: types_1.QueryType.JSON,
50
- },
51
- update: {
52
- type: types_1.QueryType.JSON,
53
- },
54
- delete: {
55
- type: types_1.QueryType.JSON,
56
- },
57
- aggregate: {
58
- type: types_1.QueryType.JSON,
59
- readable: true,
60
- steps: [
61
- {
62
- key: "$addFields",
63
- template: "{\n\t\n}",
64
- },
65
- {
66
- key: "$bucket",
67
- template: `{
68
- "groupBy": "",
69
- "boundaries": [],
70
- "default": "",
71
- "output": {}
72
- }`,
73
- },
74
- {
75
- key: "$bucketAuto",
76
- template: `{
77
- "groupBy": "",
78
- "buckets": 1,
79
- "output": {},
80
- "granularity": "R5"
81
- }`,
82
- },
83
- {
84
- key: "$changeStream",
85
- template: `{
86
- "allChangesForCluster": true,
87
- "fullDocument": "",
88
- "fullDocumentBeforeChange": "",
89
- "resumeAfter": 1,
90
- "showExpandedEvents": true,
91
- "startAfter": {},
92
- "startAtOperationTime": ""
93
- }`,
94
- },
95
- {
96
- key: "$collStats",
97
- template: `{
98
- "latencyStats": { "histograms": true } },
99
- "storageStats": { "scale": 1 } },
100
- "count": {},
101
- "queryExecStats": {}
102
- }`,
103
- },
104
- {
105
- key: "$count",
106
- template: ``,
107
- },
108
- {
109
- key: "$densify",
110
- template: `{
111
- "field": "",
112
- "partitionByFields": [],
113
- "range": {
114
- "step": 1,
115
- "unit": 1,
116
- "bounds": "full"
117
- }
118
- }`,
119
- },
120
- {
121
- key: "$documents",
122
- template: `[]`,
123
- },
124
- {
125
- key: "$facet",
126
- template: `{\n\t\n}`,
127
- },
128
- {
129
- key: "$fill",
130
- template: `{
131
- "partitionBy": "",
132
- "partitionByFields": [],
133
- "sortBy": {},
134
- "output": {}
135
- }`,
136
- },
137
- {
138
- key: "$geoNear",
139
- template: `{
140
- "near": {
141
- "type": "Point",
142
- "coordinates": [
143
- -73.98142, 40.71782
144
- ]
145
- },
146
- "key": "location",
147
- "distanceField": "dist.calculated",
148
- "query": { "category": "Parks" }
149
- }`,
150
- },
151
- {
152
- key: "$graphLookup",
153
- template: `{
154
- "from": "",
155
- "startWith": "",
156
- "connectFromField": "",
157
- "connectToField": "",
158
- "as": "",
159
- "maxDepth": 1,
160
- "depthField": "",
161
- "restrictSearchWithMatch": {}
162
- }`,
163
- },
164
- {
165
- key: "$group",
166
- template: `{
167
- "_id": ""
168
- }`,
169
- },
170
- {
171
- key: "$indexStats",
172
- template: "{\n\t\n}",
173
- },
174
- {
175
- key: "$limit",
176
- template: `1`,
177
- },
178
- {
179
- key: "$listLocalSessions",
180
- template: `{\n\t\n}`,
181
- },
182
- {
183
- key: "$listSessions",
184
- template: `{\n\t\n}`,
185
- },
186
- {
187
- key: "$lookup",
188
- template: `{
189
- "from": "",
190
- "localField": "",
191
- "foreignField": "",
192
- "as": ""
193
- }`,
194
- },
195
- {
196
- key: "$match",
197
- template: "{\n\t\n}",
198
- },
199
- {
200
- key: "$merge",
201
- template: `{
202
- "into": {},
203
- "on": "_id",
204
- "whenMatched": "replace",
205
- "whenNotMatched": "insert"
206
- }`,
207
- },
208
- {
209
- key: "$out",
210
- template: `{
211
- "db": "",
212
- "coll": ""
213
- }`,
214
- },
215
- {
216
- key: "$planCacheStats",
217
- template: "{\n\t\n}",
218
- },
219
- {
220
- key: "$project",
221
- template: "{\n\t\n}",
222
- },
223
- {
224
- key: "$redact",
225
- template: "",
226
- },
227
- {
228
- key: "$replaceRoot",
229
- template: `{ "newRoot": "" }`,
230
- },
231
- {
232
- key: "$replaceWith",
233
- template: ``,
234
- },
235
- {
236
- key: "$sample",
237
- template: `{ "size": 3 }`,
238
- },
239
- {
240
- key: "$set",
241
- template: "{\n\t\n}",
242
- },
243
- {
244
- key: "$setWindowFields",
245
- template: `{
246
- "partitionBy": "",
247
- "sortBy": {},
248
- "output": {}
249
- }`,
250
- },
251
- {
252
- key: "$skip",
253
- template: `1`,
254
- },
255
- {
256
- key: "$sort",
257
- template: "{\n\t\n}",
258
- },
259
- {
260
- key: "$sortByCount",
261
- template: "",
262
- },
263
- {
264
- key: "$unionWith",
265
- template: `{
266
- "coll": "",
267
- "pipeline": []
268
- }`,
269
- },
270
- {
271
- key: "$unset",
272
- template: "",
273
- },
274
- {
275
- key: "$unwind",
276
- template: `{
277
- "path": "",
278
- "includeArrayIndex": "",
279
- "preserveNullAndEmptyArrays": true
280
- }`,
281
- },
282
- ],
283
- },
284
- },
285
- extra: {
286
- collection: {
287
- displayName: "Collection",
288
- type: types_1.DatasourceFieldType.STRING,
289
- required: true,
290
- },
291
- actionType: {
292
- displayName: "Query Type",
293
- type: types_1.DatasourceFieldType.LIST,
294
- required: true,
295
- data: {
296
- read: ["find", "findOne", "findOneAndUpdate", "count", "distinct"],
297
- create: ["insertOne", "insertMany"],
298
- update: ["updateOne", "updateMany"],
299
- delete: ["deleteOne", "deleteMany"],
300
- aggregate: ["json", "pipeline"],
301
- },
302
- },
303
- },
304
- };
305
- if (environment_1.default.SELF_HOSTED) {
306
- schema.datasource = Object.assign(Object.assign({}, schema.datasource), {
307
- //@ts-ignore
308
- tls: {
309
- type: types_1.DatasourceFieldType.FIELD_GROUP,
310
- display: "Configure SSL",
311
- fields: {
312
- tlsCertificateFile: {
313
- type: types_1.DatasourceFieldType.STRING,
314
- required: false,
315
- display: "Certificate file path",
316
- },
317
- tlsCertificateKeyFile: {
318
- type: types_1.DatasourceFieldType.STRING,
319
- required: false,
320
- display: "Certificate Key file path",
321
- },
322
- tlsCAFile: {
323
- type: types_1.DatasourceFieldType.STRING,
324
- required: false,
325
- display: "CA file path",
326
- },
327
- },
328
- } });
329
- }
330
- return schema;
331
- };
332
- const SCHEMA = getSchema();
333
- class MongoIntegration {
334
- constructor(config) {
335
- this.config = config;
336
- const options = {
337
- tlsCertificateFile: config.tlsCertificateFile || undefined,
338
- tlsCertificateKeyFile: config.tlsCertificateKeyFile || undefined,
339
- tlsCAFile: config.tlsCAFile || undefined,
340
- };
341
- this.client = new mongodb_1.MongoClient(config.connectionString, options);
342
- }
343
- connect() {
344
- return __awaiter(this, void 0, void 0, function* () {
345
- return this.client.connect();
346
- });
347
- }
348
- createObjectIds(json) {
349
- const self = this;
350
- function interpolateObjectIds(json) {
351
- var _a;
352
- for (let field of Object.keys(json)) {
353
- if (json[field] instanceof Object) {
354
- json[field] = self.createObjectIds(json[field]);
355
- }
356
- if (typeof json[field] === "string" &&
357
- json[field].toLowerCase().startsWith("objectid")) {
358
- const id = (_a = json[field].match(/(?<=objectid\(['"]).*(?=['"]\))/gi)) === null || _a === void 0 ? void 0 : _a[0];
359
- if (id) {
360
- json[field] = mongodb_1.ObjectId.createFromHexString(id);
361
- }
362
- }
363
- }
364
- return json;
365
- }
366
- if (Array.isArray(json)) {
367
- for (let i = 0; i < json.length; i++) {
368
- json[i] = interpolateObjectIds(json[i]);
369
- }
370
- return json;
371
- }
372
- return interpolateObjectIds(json);
373
- }
374
- parseQueryParams(params, mode) {
375
- var _a, _b, _c;
376
- let queryParams = [];
377
- let openCount = 0;
378
- let inQuotes = false;
379
- let i = 0;
380
- let startIndex = 0;
381
- for (let c of params) {
382
- if (c === '"' && i > 0 && params[i - 1] !== "\\") {
383
- inQuotes = !inQuotes;
384
- }
385
- if (c === "{" && !inQuotes) {
386
- openCount++;
387
- if (openCount === 1) {
388
- startIndex = i;
389
- }
390
- }
391
- else if (c === "}" && !inQuotes) {
392
- if (openCount === 1) {
393
- queryParams.push(JSON.parse(params.substring(startIndex, i + 1)));
394
- }
395
- openCount--;
396
- }
397
- i++;
398
- }
399
- let group1 = (_a = queryParams[0]) !== null && _a !== void 0 ? _a : {};
400
- let group2 = (_b = queryParams[1]) !== null && _b !== void 0 ? _b : {};
401
- let group3 = (_c = queryParams[2]) !== null && _c !== void 0 ? _c : {};
402
- if (mode === "update") {
403
- return {
404
- filter: group1,
405
- update: group2,
406
- options: group3,
407
- };
408
- }
409
- return {
410
- filter: group1,
411
- options: group2,
412
- };
413
- }
414
- create(query) {
415
- return __awaiter(this, void 0, void 0, function* () {
416
- try {
417
- yield this.connect();
418
- const db = this.client.db(this.config.db);
419
- const collection = db.collection(query.extra.collection);
420
- let json = this.createObjectIds(query.json);
421
- // For mongodb we add an extra actionType to specify
422
- // which method we want to call on the collection
423
- switch (query.extra.actionType) {
424
- case "insertOne": {
425
- return yield collection.insertOne(json);
426
- }
427
- case "insertMany": {
428
- return yield collection.insertMany(json);
429
- }
430
- default: {
431
- throw new Error(`actionType ${query.extra.actionType} does not exist on DB for create`);
432
- }
433
- }
434
- }
435
- catch (err) {
436
- console.error("Error writing to mongodb", err);
437
- throw err;
438
- }
439
- finally {
440
- yield this.client.close();
441
- }
442
- });
443
- }
444
- read(query) {
445
- return __awaiter(this, void 0, void 0, function* () {
446
- try {
447
- yield this.connect();
448
- const db = this.client.db(this.config.db);
449
- const collection = db.collection(query.extra.collection);
450
- let json = this.createObjectIds(query.json);
451
- switch (query.extra.actionType) {
452
- case "find": {
453
- return yield collection.find(json).toArray();
454
- }
455
- case "findOne": {
456
- return yield collection.findOne(json);
457
- }
458
- case "findOneAndUpdate": {
459
- if (typeof query.json === "string") {
460
- json = this.parseQueryParams(query.json, "update");
461
- }
462
- let findAndUpdateJson = this.createObjectIds(json);
463
- return yield collection.findOneAndUpdate(findAndUpdateJson.filter, findAndUpdateJson.update, findAndUpdateJson.options);
464
- }
465
- case "count": {
466
- return yield collection.countDocuments(json);
467
- }
468
- case "distinct": {
469
- return yield collection.distinct(json);
470
- }
471
- default: {
472
- throw new Error(`actionType ${query.extra.actionType} does not exist on DB for read`);
473
- }
474
- }
475
- }
476
- catch (err) {
477
- console.error("Error querying mongodb", err);
478
- throw err;
479
- }
480
- finally {
481
- yield this.client.close();
482
- }
483
- });
484
- }
485
- update(query) {
486
- return __awaiter(this, void 0, void 0, function* () {
487
- try {
488
- yield this.connect();
489
- const db = this.client.db(this.config.db);
490
- const collection = db.collection(query.extra.collection);
491
- let queryJson = query.json;
492
- if (typeof queryJson === "string") {
493
- queryJson = this.parseQueryParams(queryJson, "update");
494
- }
495
- let json = this.createObjectIds(queryJson);
496
- switch (query.extra.actionType) {
497
- case "updateOne": {
498
- return yield collection.updateOne(json.filter, json.update, json.options);
499
- }
500
- case "updateMany": {
501
- return yield collection.updateMany(json.filter, json.update, json.options);
502
- }
503
- default: {
504
- throw new Error(`actionType ${query.extra.actionType} does not exist on DB for update`);
505
- }
506
- }
507
- }
508
- catch (err) {
509
- console.error("Error writing to mongodb", err);
510
- throw err;
511
- }
512
- finally {
513
- yield this.client.close();
514
- }
515
- });
516
- }
517
- delete(query) {
518
- return __awaiter(this, void 0, void 0, function* () {
519
- try {
520
- yield this.connect();
521
- const db = this.client.db(this.config.db);
522
- const collection = db.collection(query.extra.collection);
523
- let queryJson = query.json;
524
- if (typeof queryJson === "string") {
525
- queryJson = this.parseQueryParams(queryJson, "delete");
526
- }
527
- let json = this.createObjectIds(queryJson);
528
- if (!json.options) {
529
- json = {
530
- filter: json,
531
- options: {},
532
- };
533
- }
534
- switch (query.extra.actionType) {
535
- case "deleteOne": {
536
- return yield collection.deleteOne(json.filter, json.options);
537
- }
538
- case "deleteMany": {
539
- return yield collection.deleteMany(json.filter, json.options);
540
- }
541
- default: {
542
- throw new Error(`actionType ${query.extra.actionType} does not exist on DB for delete`);
543
- }
544
- }
545
- }
546
- catch (err) {
547
- console.error("Error writing to mongodb", err);
548
- throw err;
549
- }
550
- finally {
551
- yield this.client.close();
552
- }
553
- });
554
- }
555
- aggregate(query) {
556
- var e_1, _a, e_2, _b;
557
- var _c;
558
- return __awaiter(this, void 0, void 0, function* () {
559
- try {
560
- yield this.connect();
561
- const db = this.client.db(this.config.db);
562
- const collection = db.collection(query.extra.collection);
563
- let response = [];
564
- if (((_c = query.extra) === null || _c === void 0 ? void 0 : _c.actionType) === "pipeline") {
565
- try {
566
- for (var _d = __asyncValues(collection.aggregate(query.steps.map(({ key, value }) => {
567
- let temp = {};
568
- temp[key] = JSON.parse(value.value);
569
- return this.createObjectIds(temp);
570
- }))), _e; _e = yield _d.next(), !_e.done;) {
571
- const doc = _e.value;
572
- response.push(doc);
573
- }
574
- }
575
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
576
- finally {
577
- try {
578
- if (_e && !_e.done && (_a = _d.return)) yield _a.call(_d);
579
- }
580
- finally { if (e_1) throw e_1.error; }
581
- }
582
- }
583
- else {
584
- const stages = query.json;
585
- try {
586
- for (var _f = __asyncValues(collection.aggregate(stages ? this.createObjectIds(stages) : [])), _g; _g = yield _f.next(), !_g.done;) {
587
- const doc = _g.value;
588
- response.push(doc);
589
- }
590
- }
591
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
592
- finally {
593
- try {
594
- if (_g && !_g.done && (_b = _f.return)) yield _b.call(_f);
595
- }
596
- finally { if (e_2) throw e_2.error; }
597
- }
598
- }
599
- return response;
600
- }
601
- catch (err) {
602
- console.error("Error writing to mongodb", err);
603
- throw err;
604
- }
605
- finally {
606
- yield this.client.close();
607
- }
608
- });
609
- }
610
- }
611
- exports.default = {
612
- schema: SCHEMA,
613
- integration: MongoIntegration,
614
- };