@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,239 +0,0 @@
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
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const router_1 = __importDefault(require("@koa/router"));
30
- const rowController = __importStar(require("../controllers/row"));
31
- const authorized_1 = __importDefault(require("../../middleware/authorized"));
32
- const resourceId_1 = require("../../middleware/resourceId");
33
- const backend_core_1 = require("@budibase/backend-core");
34
- const validators_1 = require("./utils/validators");
35
- const { PermissionType, PermissionLevel } = backend_core_1.permissions;
36
- const router = new router_1.default();
37
- router
38
- /**
39
- * @api {get} /api/:tableId/:rowId/enrich Get an enriched row
40
- * @apiName Get an enriched row
41
- * @apiGroup rows
42
- * @apiPermission table read access
43
- * @apiDescription This API is only useful when dealing with rows that have relationships.
44
- * Normally when a row is a returned from the API relationships will only have the structure
45
- * `{ primaryDisplay: "name", _id: ... }` but this call will return the full related rows
46
- * for each relationship instead.
47
- *
48
- * @apiParam {string} rowId The ID of the row which is to be retrieved and enriched.
49
- *
50
- * @apiSuccess {object} row The response body will be the enriched row.
51
- */
52
- .get("/api/:tableId/:rowId/enrich", (0, resourceId_1.paramSubResource)("tableId", "rowId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.fetchEnrichedRow)
53
- /**
54
- * @api {get} /api/:tableId/rows Get all rows in a table
55
- * @apiName Get all rows in a table
56
- * @apiGroup rows
57
- * @apiPermission table read access
58
- * @apiDescription This is a deprecated endpoint that should not be used anymore, instead use the search endpoint.
59
- * This endpoint gets all of the rows within the specified table - it is not heavily used
60
- * due to its lack of support for pagination. With SQL tables this will retrieve up to a limit and then
61
- * will simply stop.
62
- *
63
- * @apiParam {string} tableId The ID of the table to retrieve all rows within.
64
- *
65
- * @apiSuccess {object[]} rows The response body will be an array of all rows found.
66
- */
67
- .get("/api/:tableId/rows", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.fetch)
68
- /**
69
- * @api {get} /api/:tableId/rows/:rowId Retrieve a single row
70
- * @apiName Retrieve a single row
71
- * @apiGroup rows
72
- * @apiPermission table read access
73
- * @apiDescription This endpoint retrieves only the specified row. If you wish to retrieve
74
- * a row by anything other than its _id field, use the search endpoint.
75
- *
76
- * @apiParam {string} tableId The ID of the table to retrieve a row from.
77
- * @apiParam {string} rowId The ID of the row to retrieve.
78
- *
79
- * @apiSuccess {object} body The response body will be the row that was found.
80
- */
81
- .get("/api/:tableId/rows/:rowId", (0, resourceId_1.paramSubResource)("tableId", "rowId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.find)
82
- /**
83
- * @api {post} /api/:tableId/search Search for rows in a table
84
- * @apiName Search for rows in a table
85
- * @apiGroup rows
86
- * @apiPermission table read access
87
- * @apiDescription This is the primary method of accessing rows in Budibase, the data provider
88
- * and data UI in the builder are built atop this. All filtering, sorting and pagination is
89
- * handled through this, for internal and external (datasource plus, e.g. SQL) tables.
90
- *
91
- * @apiParam {string} tableId The ID of the table to retrieve rows from.
92
- *
93
- * @apiParam (Body) {boolean} [paginate] If pagination is required then this should be set to true,
94
- * defaults to false.
95
- * @apiParam (Body) {object} [query] This contains a set of filters which should be applied, if none
96
- * specified then the request will be unfiltered. An example with all of the possible query
97
- * options has been supplied below.
98
- * @apiParam (Body) {number} [limit] This sets a limit for the number of rows that will be returned,
99
- * this will be implemented at the database level if supported for performance reasons. This
100
- * is useful when paginating to set exactly how many rows per page.
101
- * @apiParam (Body) {string} [bookmark] If pagination is enabled then a bookmark will be returned
102
- * with each successful search request, this should be supplied back to get the next page.
103
- * @apiParam (Body) {object} [sort] If sort is desired this should contain the name of the column to
104
- * sort on.
105
- * @apiParam (Body) {string} [sortOrder] If sort is enabled then this can be either "descending" or
106
- * "ascending" as required.
107
- * @apiParam (Body) {string} [sortType] If sort is enabled then you must specify the type of search
108
- * being used, either "string" or "number". This is only used for internal tables.
109
- *
110
- * @apiParamExample {json} Example:
111
- * {
112
- * "tableId": "ta_70260ff0b85c467ca74364aefc46f26d",
113
- * "query": {
114
- * "string": {},
115
- * "fuzzy": {},
116
- * "range": {
117
- * "columnName": {
118
- * "high": 20,
119
- * "low": 10,
120
- * }
121
- * },
122
- * "equal": {
123
- * "columnName": "someValue"
124
- * },
125
- * "notEqual": {},
126
- * "empty": {},
127
- * "notEmpty": {},
128
- * "oneOf": {
129
- * "columnName": ["value"]
130
- * }
131
- * },
132
- * "limit": 10,
133
- * "sort": "name",
134
- * "sortOrder": "descending",
135
- * "sortType": "string",
136
- * "paginate": true
137
- * }
138
- *
139
- * @apiSuccess {object[]} rows An array of rows that was found based on the supplied parameters.
140
- * @apiSuccess {boolean} hasNextPage If pagination was enabled then this specifies whether or
141
- * not there is another page after this request.
142
- * @apiSuccess {string} bookmark The bookmark to be sent with the next request to get the next
143
- * page.
144
- */
145
- .post("/api/:tableId/search", (0, validators_1.internalSearchValidator)(), (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.search)
146
- // DEPRECATED - this is an old API, but for backwards compat it needs to be
147
- // supported still
148
- .post("/api/search/:tableId/rows", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.search)
149
- /**
150
- * @api {post} /api/:tableId/rows Creates a new row
151
- * @apiName Creates a new row
152
- * @apiGroup rows
153
- * @apiPermission table write access
154
- * @apiDescription This API will create a new row based on the supplied body. If the
155
- * body includes an "_id" field then it will update an existing row if the field
156
- * links to one. Please note that "_id", "_rev" and "tableId" are fields that are
157
- * already used by Budibase tables and cannot be used for columns.
158
- *
159
- * @apiParam {string} tableId The ID of the table to save a row to.
160
- *
161
- * @apiParam (Body) {string} [_id] If the row exists already then an ID for the row must be provided.
162
- * @apiParam (Body) {string} [_rev] If working with an existing row for an internal table its revision
163
- * must also be provided.
164
- * @apiParam (Body) {string} tableId The ID of the table should also be specified in the row body itself.
165
- * @apiParam (Body) {any} [any] Any field supplied in the body will be assessed to see if it matches
166
- * a column in the specified table. All other fields will be dropped and not stored.
167
- *
168
- * @apiSuccess {string} _id The ID of the row that was just saved, if it was just created this
169
- * is the rows new ID.
170
- * @apiSuccess {string} [_rev] If saving to an internal table a revision will also be returned.
171
- * @apiSuccess {object} body The contents of the row that was saved will be returned as well.
172
- */
173
- .post("/api/:tableId/rows", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.WRITE), rowController.save)
174
- /**
175
- * @api {patch} /api/:tableId/rows Updates a row
176
- * @apiName Update a row
177
- * @apiGroup rows
178
- * @apiPermission table write access
179
- * @apiDescription This endpoint is identical to the row creation endpoint but instead it will
180
- * error if an _id isn't provided, it will only function for existing rows.
181
- */
182
- .patch("/api/:tableId/rows", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.WRITE), rowController.patch)
183
- /**
184
- * @api {post} /api/:tableId/rows/validate Validate inputs for a row
185
- * @apiName Validate inputs for a row
186
- * @apiGroup rows
187
- * @apiPermission table write access
188
- * @apiDescription When attempting to save a row you may want to check if the row is valid
189
- * given the table schema, this will iterate through all the constraints on the table and
190
- * check if the request body is valid.
191
- *
192
- * @apiParam {string} tableId The ID of the table the row is to be validated for.
193
- *
194
- * @apiParam (Body) {any} [any] Any fields provided in the request body will be tested
195
- * against the table schema and constraints.
196
- *
197
- * @apiSuccess {boolean} valid If inputs provided are acceptable within the table schema this
198
- * will be true, if it is not then then errors property will be populated.
199
- * @apiSuccess {object} [errors] A key value map of information about fields on the input
200
- * which do not match the table schema. The key name will be the column names that have breached
201
- * the schema.
202
- */
203
- .post("/api/:tableId/rows/validate", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.WRITE), rowController.validate)
204
- /**
205
- * @api {delete} /api/:tableId/rows Delete rows
206
- * @apiName Delete rows
207
- * @apiGroup rows
208
- * @apiPermission table write access
209
- * @apiDescription This endpoint can delete a single row, or delete them in a bulk
210
- * fashion.
211
- *
212
- * @apiParam {string} tableId The ID of the table the row is to be deleted from.
213
- *
214
- * @apiParam (Body) {object[]} [rows] If bulk deletion is desired then provide the rows in this
215
- * key of the request body that are to be deleted.
216
- * @apiParam (Body) {string} [_id] If deleting a single row then provide its ID in this field.
217
- * @apiParam (Body) {string} [_rev] If deleting a single row from an internal table then provide its
218
- * revision here.
219
- *
220
- * @apiSuccess {object[]|object} body If deleting bulk then the response body will be an array
221
- * of the deleted rows, if deleting a single row then the body will contain a "row" property which
222
- * is the deleted row.
223
- */
224
- .delete("/api/:tableId/rows", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.WRITE), rowController.destroy)
225
- /**
226
- * @api {post} /api/:tableId/rows/exportRows Export Rows
227
- * @apiName Export rows
228
- * @apiGroup rows
229
- * @apiPermission table write access
230
- * @apiDescription This API can export a number of provided rows
231
- *
232
- * @apiParam {string} tableId The ID of the table the row is to be deleted from.
233
- *
234
- * @apiParam (Body) {object[]} [rows] The row IDs which are to be exported
235
- *
236
- * @apiSuccess {object[]|object}
237
- */
238
- .post("/api/:tableId/rows/exportRows", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.WRITE), rowController.exportRows);
239
- exports.default = router;
@@ -1,39 +0,0 @@
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
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const router_1 = __importDefault(require("@koa/router"));
30
- const controller = __importStar(require("../controllers/screen"));
31
- const authorized_1 = __importDefault(require("../../middleware/authorized"));
32
- const backend_core_1 = require("@budibase/backend-core");
33
- const validators_1 = require("./utils/validators");
34
- const router = new router_1.default();
35
- router
36
- .get("/api/screens", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.fetch)
37
- .post("/api/screens", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), (0, validators_1.screenValidator)(), controller.save)
38
- .delete("/api/screens/:screenId/:screenRev", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.destroy);
39
- exports.default = router;
@@ -1,35 +0,0 @@
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
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const router_1 = __importDefault(require("@koa/router"));
30
- const controller = __importStar(require("../controllers/script"));
31
- const authorized_1 = __importDefault(require("../../middleware/authorized"));
32
- const backend_core_1 = require("@budibase/backend-core");
33
- const router = new router_1.default();
34
- router.post("/api/script", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.save);
35
- exports.default = router;
@@ -1,80 +0,0 @@
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
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- const router_1 = __importDefault(require("@koa/router"));
39
- const controller = __importStar(require("../controllers/static"));
40
- const budibaseDir_1 = require("../../utilities/budibaseDir");
41
- const authorized_1 = __importDefault(require("../../middleware/authorized"));
42
- const backend_core_1 = require("@budibase/backend-core");
43
- const environment_1 = __importDefault(require("../../environment"));
44
- const resourceId_1 = require("../../middleware/resourceId");
45
- const { BUILDER, PermissionType, PermissionLevel } = backend_core_1.permissions;
46
- const router = new router_1.default();
47
- /* istanbul ignore next */
48
- router.param("file", (file, ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
49
- ctx.file = file && file.includes(".") ? file : "index.html";
50
- if (!ctx.file.startsWith("budibase-client")) {
51
- return next();
52
- }
53
- // test serves from require
54
- if (environment_1.default.isTest()) {
55
- ctx.devPath = require.resolve("@budibase/client").split(ctx.file)[0];
56
- }
57
- else if (environment_1.default.isDev()) {
58
- // Serving the client library from your local dir in dev
59
- ctx.devPath = (0, budibaseDir_1.budibaseTempDir)();
60
- }
61
- return next();
62
- }));
63
- // only used in development for retrieving the client library,
64
- // in production the client lib is always stored in the object store.
65
- if (environment_1.default.isDev()) {
66
- router.get("/api/assets/client", controller.serveClientLibrary);
67
- }
68
- router
69
- // TODO: for now this builder endpoint is not authorized/secured, will need to be
70
- .get("/builder/:file*", controller.serveBuilder)
71
- .post("/api/attachments/process", (0, authorized_1.default)(BUILDER), controller.uploadFile)
72
- .post("/api/attachments/delete", (0, authorized_1.default)(BUILDER), controller.deleteObjects)
73
- .post("/api/beta/:feature", controller.toggleBetaUiFeature)
74
- .post("/api/attachments/:tableId/upload", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.WRITE), controller.uploadFile)
75
- .post("/api/attachments/:tableId/delete", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.WRITE), controller.deleteObjects)
76
- .get("/app/preview", (0, authorized_1.default)(BUILDER), controller.serveBuilderPreview)
77
- .get("/:appId/:path*", controller.serveApp)
78
- .get("/app/:appUrl/:path*", controller.serveApp)
79
- .post("/api/attachments/:datasourceId/url", (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), controller.getSignedUploadURL);
80
- exports.default = router;
@@ -1,163 +0,0 @@
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
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const router_1 = __importDefault(require("@koa/router"));
30
- const tableController = __importStar(require("../controllers/table"));
31
- const authorized_1 = __importDefault(require("../../middleware/authorized"));
32
- const resourceId_1 = require("../../middleware/resourceId");
33
- const backend_core_1 = require("@budibase/backend-core");
34
- const validators_1 = require("./utils/validators");
35
- const { BUILDER, PermissionLevel, PermissionType } = backend_core_1.permissions;
36
- const router = new router_1.default();
37
- router
38
- /**
39
- * @api {get} /api/tables Fetch all tables
40
- * @apiName Fetch all tables
41
- * @apiGroup tables
42
- * @apiPermission table read access
43
- * @apiDescription This endpoint retrieves all of the tables which have been created in
44
- * an app. This includes all of the external and internal tables; to tell the difference
45
- * between these look for the "type" property on each table, either being "internal" or "external".
46
- *
47
- * @apiSuccess {object[]} body The response body will be the list of tables that was found - as
48
- * this does not take any parameters the only error scenario is no access.
49
- */
50
- .get("/api/tables", (0, authorized_1.default)(BUILDER), tableController.fetch)
51
- /**
52
- * @api {get} /api/tables/:id Fetch a single table
53
- * @apiName Fetch a single table
54
- * @apiGroup tables
55
- * @apiPermission table read access
56
- * @apiDescription Retrieves a single table this could be be internal or external based on
57
- * the provided table ID.
58
- *
59
- * @apiParam {string} id The ID of the table which is to be retrieved.
60
- *
61
- * @apiSuccess {object[]} body The response body will be the table that was found.
62
- */
63
- .get("/api/tables/:tableId", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ, { schema: true }), tableController.find)
64
- /**
65
- * @api {post} /api/tables Save a table
66
- * @apiName Save a table
67
- * @apiGroup tables
68
- * @apiPermission builder
69
- * @apiDescription Create or update a table with this endpoint, this will function for both internal
70
- * external tables.
71
- *
72
- * @apiParam (Body) {string} [_id] If updating an existing table then the ID of the table must be specified.
73
- * @apiParam (Body) {string} [_rev] If updating an existing internal table then the revision must also be specified.
74
- * @apiParam (Body) {string} type] This should either be "internal" or "external" depending on the table type -
75
- * this will default to internal.
76
- * @apiParam (Body) {string} [sourceId] If creating an external table then this should be set to the datasource ID. If
77
- * building an internal table this does not need to be set, although it will be returned as "bb_internal".
78
- * @apiParam (Body) {string} name The name of the table, this will be used in the UI. To rename the table simply
79
- * supply the table structure to this endpoint with the name changed.
80
- * @apiParam (Body) {object} schema A key value object which has all of the columns in the table as the keys in this
81
- * object. For each column a "type" and "constraints" must be specified, with some types requiring further information.
82
- * More information about the schema structure can be found in the Typescript definitions.
83
- * @apiParam (Body) {string} [primaryDisplay] The name of the column which should be used when displaying rows
84
- * from this table as relationships.
85
- * @apiParam (Body) {object[]} [indexes] Specifies the search indexes - this is deprecated behaviour with the introduction
86
- * of lucene indexes. This functionality is only available for internal tables.
87
- * @apiParam (Body) {object} [_rename] If a column is to be renamed then the "old" column name should be set in this
88
- * structure, and the "updated", new column name should also be supplied. The schema should also be updated, this field
89
- * lets the server know that a field hasn't just been deleted, that the data has moved to a new name, this will fix
90
- * the rows in the table. This functionality is only available for internal tables.
91
- * @apiParam (Body) {object[]} [rows] When creating a table using a compatible data source, an array of objects to be imported into the new table can be provided.
92
- *
93
- * @apiParamExample {json} Example:
94
- * {
95
- * "_id": "ta_05541307fa0f4044abee071ca2a82119",
96
- * "_rev": "10-0fbe4e78f69b255d79f1017e2eeef807",
97
- * "type": "internal",
98
- * "views": {},
99
- * "name": "tableName",
100
- * "schema": {
101
- * "column": {
102
- * "type": "string",
103
- * "constraints": {
104
- * "type": "string",
105
- * "length": {
106
- * "maximum": null
107
- * },
108
- * "presence": false
109
- * },
110
- * "name": "column"
111
- * },
112
- * },
113
- * "primaryDisplay": "column",
114
- * "indexes": [],
115
- * "sourceId": "bb_internal",
116
- * "_rename": {
117
- * "old": "columnName",
118
- * "updated": "newColumnName",
119
- * },
120
- * "rows": []
121
- * }
122
- *
123
- * @apiSuccess {object} table The response body will contain the table structure after being cleaned up and
124
- * saved to the database.
125
- */
126
- .post("/api/tables",
127
- // allows control over updating a table
128
- (0, resourceId_1.bodyResource)("_id"), (0, authorized_1.default)(BUILDER), (0, validators_1.tableValidator)(), tableController.save)
129
- .post("/api/convert/csvToJson", (0, authorized_1.default)(BUILDER), tableController.csvToJson)
130
- .post("/api/tables/validateNewTableImport", (0, authorized_1.default)(BUILDER), tableController.validateNewTableImport)
131
- .post("/api/tables/validateExistingTableImport", (0, authorized_1.default)(BUILDER), tableController.validateExistingTableImport)
132
- /**
133
- * @api {post} /api/tables/:tableId/:revId Delete a table
134
- * @apiName Delete a table
135
- * @apiGroup tables
136
- * @apiPermission builder
137
- * @apiDescription This endpoint will delete a table and all of its associated data, for this reason it is
138
- * quite dangerous - it will work for internal and external tables.
139
- *
140
- * @apiParam {string} tableId The ID of the table which is to be deleted.
141
- * @apiParam {string} [revId] If deleting an internal table then the revision must also be supplied (_rev), for
142
- * external tables this can simply be set to anything, e.g. "external".
143
- *
144
- * @apiSuccess {string} message A message stating that the table was deleted successfully.
145
- */
146
- .delete("/api/tables/:tableId/:revId", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(BUILDER), tableController.destroy)
147
- /**
148
- * @api {post} /api/tables/:tableId/:revId Import CSV to existing table
149
- * @apiName Import CSV to existing table
150
- * @apiGroup tables
151
- * @apiPermission builder
152
- * @apiDescription This endpoint will import data to existing tables, internal or external. It is used in combination
153
- * with the CSV validation endpoint. Take the output of the CSV validation endpoint and pass it to this endpoint to
154
- * import the data; please note this will only import fields that already exist on the table/match the type.
155
- *
156
- * @apiParam {string} tableId The ID of the table which the data should be imported to.
157
- *
158
- * @apiParam (Body) {object[]} rows An array of objects representing the rows to be imported, key-value pairs not matching the table schema will be ignored.
159
- *
160
- * @apiSuccess {string} message A message stating that the data was imported successfully.
161
- */
162
- .post("/api/tables/:tableId/import", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(BUILDER), tableController.bulkImport);
163
- exports.default = router;
@@ -1,37 +0,0 @@
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
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const router_1 = __importDefault(require("@koa/router"));
30
- const controller = __importStar(require("../controllers/templates"));
31
- const authorized_1 = __importDefault(require("../../middleware/authorized"));
32
- const backend_core_1 = require("@budibase/backend-core");
33
- const router = new router_1.default();
34
- router
35
- .get("/api/templates", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.fetch)
36
- .get("/api/templates/:type/:name", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.downloadTemplate);
37
- exports.default = router;
@@ -1,43 +0,0 @@
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
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const router_1 = __importDefault(require("@koa/router"));
30
- const controller = __importStar(require("../controllers/user"));
31
- const authorized_1 = __importDefault(require("../../middleware/authorized"));
32
- const backend_core_1 = require("@budibase/backend-core");
33
- const { PermissionType, PermissionLevel } = backend_core_1.permissions;
34
- const router = new router_1.default();
35
- router
36
- .get("/api/users/metadata", (0, authorized_1.default)(PermissionType.USER, PermissionLevel.READ), controller.fetchMetadata)
37
- .get("/api/users/metadata/:id", (0, authorized_1.default)(PermissionType.USER, PermissionLevel.READ), controller.findMetadata)
38
- .put("/api/users/metadata", (0, authorized_1.default)(PermissionType.USER, PermissionLevel.WRITE), controller.updateMetadata)
39
- .post("/api/users/metadata/self", (0, authorized_1.default)(PermissionType.USER, PermissionLevel.WRITE), controller.updateSelfMetadata)
40
- .delete("/api/users/metadata/:id", (0, authorized_1.default)(PermissionType.USER, PermissionLevel.WRITE), controller.destroyMetadata)
41
- .post("/api/users/flags", (0, authorized_1.default)(PermissionType.USER, PermissionLevel.WRITE), controller.setFlag)
42
- .get("/api/users/flags", (0, authorized_1.default)(PermissionType.USER, PermissionLevel.READ), controller.getFlags);
43
- exports.default = router;