@budibase/server 2.6.19-alpha.5 → 2.6.19-alpha.50

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