@budibase/server 2.6.19-alpha.1 → 2.6.19-alpha.11

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 (347) hide show
  1. package/.dockerignore +7 -6
  2. package/Dockerfile +16 -8
  3. package/builder/assets/{index.b9eeb2a8.js → index.7a65d631.js} +357 -349
  4. package/builder/assets/{index.07382a47.css → index.ec1c6a1a.css} +2 -2
  5. package/builder/index.html +2 -2
  6. package/client/manifest.json +5229 -0
  7. package/dist/automation.js +32190 -0
  8. package/dist/automation.js.map +7 -0
  9. package/dist/index.js +44363 -13
  10. package/dist/index.js.map +7 -0
  11. package/dist/query.js +24307 -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 +29 -13
  16. package/pm2.config.js +1 -1
  17. package/scripts/build.js +48 -0
  18. package/src/api/controllers/datasource.ts +16 -0
  19. package/src/api/controllers/static/index.ts +3 -3
  20. package/src/api/controllers/table/internal.ts +2 -6
  21. package/src/api/controllers/table/utils.ts +32 -1
  22. package/src/api/routes/datasource.ts +5 -0
  23. package/src/api/routes/static.ts +3 -1
  24. package/src/api/routes/tests/datasource.spec.ts +1 -1
  25. package/src/automations/actions.ts +5 -0
  26. package/src/automations/steps/openai.ts +105 -0
  27. package/src/automations/tests/openai.spec.ts +86 -0
  28. package/src/constants/index.ts +17 -16
  29. package/src/db/inMemoryView.ts +3 -1
  30. package/src/environment.ts +2 -0
  31. package/src/integration-test/postgres.spec.ts +47 -4
  32. package/src/integrations/base/sqlTable.ts +0 -1
  33. package/src/integrations/googlesheets.ts +11 -3
  34. package/src/integrations/microsoftSqlServer.ts +18 -2
  35. package/src/integrations/mysql.ts +27 -11
  36. package/src/integrations/oracle.ts +11 -1
  37. package/src/integrations/postgres.ts +27 -10
  38. package/src/integrations/tests/googlesheets.spec.ts +41 -9
  39. package/src/utilities/fileSystem/app.ts +1 -1
  40. package/src/utilities/fileSystem/clientLibrary.ts +8 -3
  41. package/src/utilities/fileSystem/filesystem.ts +3 -1
  42. package/tsconfig.build.json +9 -1
  43. package/tsconfig.json +1 -14
  44. package/dist/api/controllers/analytics.js +0 -46
  45. package/dist/api/controllers/apikeys.js +0 -72
  46. package/dist/api/controllers/application.js +0 -574
  47. package/dist/api/controllers/auth.js +0 -80
  48. package/dist/api/controllers/automation.js +0 -303
  49. package/dist/api/controllers/backup.js +0 -37
  50. package/dist/api/controllers/component.js +0 -59
  51. package/dist/api/controllers/datasource.js +0 -337
  52. package/dist/api/controllers/deploy/Deployment.js +0 -53
  53. package/dist/api/controllers/deploy/index.js +0 -198
  54. package/dist/api/controllers/dev.js +0 -146
  55. package/dist/api/controllers/integration.js +0 -28
  56. package/dist/api/controllers/layout.js +0 -49
  57. package/dist/api/controllers/metadata.js +0 -63
  58. package/dist/api/controllers/migrations.js +0 -29
  59. package/dist/api/controllers/ops.js +0 -40
  60. package/dist/api/controllers/permission.js +0 -162
  61. package/dist/api/controllers/plugin/file.js +0 -24
  62. package/dist/api/controllers/plugin/github.js +0 -69
  63. package/dist/api/controllers/plugin/index.js +0 -112
  64. package/dist/api/controllers/plugin/npm.js +0 -58
  65. package/dist/api/controllers/plugin/uploaders.js +0 -11
  66. package/dist/api/controllers/plugin/url.js +0 -24
  67. package/dist/api/controllers/plugin/utils.js +0 -27
  68. package/dist/api/controllers/public/applications.js +0 -146
  69. package/dist/api/controllers/public/mapping/applications.js +0 -29
  70. package/dist/api/controllers/public/mapping/index.js +0 -11
  71. package/dist/api/controllers/public/mapping/queries.js +0 -36
  72. package/dist/api/controllers/public/mapping/rows.js +0 -24
  73. package/dist/api/controllers/public/mapping/tables.js +0 -23
  74. package/dist/api/controllers/public/mapping/types.js +0 -2
  75. package/dist/api/controllers/public/mapping/users.js +0 -29
  76. package/dist/api/controllers/public/metrics.js +0 -113
  77. package/dist/api/controllers/public/queries.js +0 -58
  78. package/dist/api/controllers/public/rows.js +0 -120
  79. package/dist/api/controllers/public/tables.js +0 -95
  80. package/dist/api/controllers/public/users.js +0 -93
  81. package/dist/api/controllers/public/utils.js +0 -56
  82. package/dist/api/controllers/query/import/index.js +0 -87
  83. package/dist/api/controllers/query/import/sources/base/index.js +0 -75
  84. package/dist/api/controllers/query/import/sources/base/openapi.js +0 -42
  85. package/dist/api/controllers/query/import/sources/curl.js +0 -99
  86. package/dist/api/controllers/query/import/sources/openapi2.js +0 -145
  87. package/dist/api/controllers/query/import/sources/openapi3.js +0 -177
  88. package/dist/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +0 -253
  89. package/dist/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +0 -1054
  90. package/dist/api/controllers/query/import/sources/tests/openapi3/data/crud/crud.json +0 -253
  91. package/dist/api/controllers/query/import/sources/tests/openapi3/data/petstore/petstore.json +0 -1225
  92. package/dist/api/controllers/query/index.js +0 -299
  93. package/dist/api/controllers/query/validation.js +0 -53
  94. package/dist/api/controllers/role.js +0 -109
  95. package/dist/api/controllers/routing.js +0 -105
  96. package/dist/api/controllers/row/ExternalRequest.js +0 -683
  97. package/dist/api/controllers/row/external.js +0 -339
  98. package/dist/api/controllers/row/index.js +0 -203
  99. package/dist/api/controllers/row/internal.js +0 -509
  100. package/dist/api/controllers/row/internalSearch.js +0 -28
  101. package/dist/api/controllers/row/staticFormula.js +0 -165
  102. package/dist/api/controllers/row/utils.js +0 -183
  103. package/dist/api/controllers/screen.js +0 -110
  104. package/dist/api/controllers/script.js +0 -30
  105. package/dist/api/controllers/static/index.js +0 -268
  106. package/dist/api/controllers/table/bulkFormula.js +0 -173
  107. package/dist/api/controllers/table/external.js +0 -279
  108. package/dist/api/controllers/table/index.js +0 -179
  109. package/dist/api/controllers/table/internal.js +0 -197
  110. package/dist/api/controllers/table/utils.js +0 -379
  111. package/dist/api/controllers/templates.js +0 -56
  112. package/dist/api/controllers/user.js +0 -124
  113. package/dist/api/controllers/view/exporters.js +0 -46
  114. package/dist/api/controllers/view/index.js +0 -193
  115. package/dist/api/controllers/view/utils.js +0 -177
  116. package/dist/api/controllers/view/viewBuilder.js +0 -158
  117. package/dist/api/controllers/webhook.js +0 -134
  118. package/dist/api/index.js +0 -55
  119. package/dist/api/routes/analytics.js +0 -34
  120. package/dist/api/routes/apikeys.js +0 -37
  121. package/dist/api/routes/application.js +0 -48
  122. package/dist/api/routes/auth.js +0 -33
  123. package/dist/api/routes/automation.js +0 -50
  124. package/dist/api/routes/backup.js +0 -35
  125. package/dist/api/routes/component.js +0 -35
  126. package/dist/api/routes/datasource.js +0 -44
  127. package/dist/api/routes/deploy.js +0 -37
  128. package/dist/api/routes/dev.js +0 -49
  129. package/dist/api/routes/index.js +0 -75
  130. package/dist/api/routes/integration.js +0 -37
  131. package/dist/api/routes/layout.js +0 -37
  132. package/dist/api/routes/metadata.js +0 -40
  133. package/dist/api/routes/migrations.js +0 -36
  134. package/dist/api/routes/ops.js +0 -52
  135. package/dist/api/routes/permission.js +0 -44
  136. package/dist/api/routes/plugin.js +0 -39
  137. package/dist/api/routes/public/applications.js +0 -174
  138. package/dist/api/routes/public/index.js +0 -140
  139. package/dist/api/routes/public/metrics.js +0 -30
  140. package/dist/api/routes/public/middleware/mapper.js +0 -97
  141. package/dist/api/routes/public/queries.js +0 -72
  142. package/dist/api/routes/public/rows.js +0 -158
  143. package/dist/api/routes/public/tables.js +0 -152
  144. package/dist/api/routes/public/users.js +0 -135
  145. package/dist/api/routes/public/utils/Endpoint.js +0 -36
  146. package/dist/api/routes/query.js +0 -47
  147. package/dist/api/routes/role.js +0 -40
  148. package/dist/api/routes/routing.js +0 -39
  149. package/dist/api/routes/row.js +0 -239
  150. package/dist/api/routes/screen.js +0 -39
  151. package/dist/api/routes/script.js +0 -35
  152. package/dist/api/routes/static.js +0 -80
  153. package/dist/api/routes/table.js +0 -163
  154. package/dist/api/routes/templates.js +0 -37
  155. package/dist/api/routes/user.js +0 -43
  156. package/dist/api/routes/utils/validators.js +0 -238
  157. package/dist/api/routes/view.js +0 -42
  158. package/dist/api/routes/webhook.js +0 -43
  159. package/dist/app.js +0 -132
  160. package/dist/automations/actions.js +0 -137
  161. package/dist/automations/automationUtils.js +0 -173
  162. package/dist/automations/bullboard.js +0 -71
  163. package/dist/automations/index.js +0 -43
  164. package/dist/automations/logging/index.js +0 -53
  165. package/dist/automations/steps/bash.js +0 -111
  166. package/dist/automations/steps/createRow.js +0 -108
  167. package/dist/automations/steps/delay.js +0 -53
  168. package/dist/automations/steps/deleteRow.js +0 -96
  169. package/dist/automations/steps/discord.js +0 -116
  170. package/dist/automations/steps/executeQuery.js +0 -134
  171. package/dist/automations/steps/executeScript.js +0 -106
  172. package/dist/automations/steps/filter.js +0 -112
  173. package/dist/automations/steps/loop.js +0 -54
  174. package/dist/automations/steps/make.js +0 -134
  175. package/dist/automations/steps/outgoingWebhook.js +0 -166
  176. package/dist/automations/steps/queryRows.js +0 -216
  177. package/dist/automations/steps/sendSmtpEmail.js +0 -115
  178. package/dist/automations/steps/serverLog.js +0 -65
  179. package/dist/automations/steps/slack.js +0 -98
  180. package/dist/automations/steps/updateRow.js +0 -144
  181. package/dist/automations/steps/utils.js +0 -56
  182. package/dist/automations/steps/zapier.js +0 -130
  183. package/dist/automations/triggerInfo/app.js +0 -36
  184. package/dist/automations/triggerInfo/cron.js +0 -35
  185. package/dist/automations/triggerInfo/index.js +0 -40
  186. package/dist/automations/triggerInfo/rowDeleted.js +0 -36
  187. package/dist/automations/triggerInfo/rowSaved.js +0 -44
  188. package/dist/automations/triggerInfo/rowUpdated.js +0 -44
  189. package/dist/automations/triggerInfo/webhook.js +0 -40
  190. package/dist/automations/triggers.js +0 -181
  191. package/dist/automations/utils.js +0 -275
  192. package/dist/constants/definitions.js +0 -2
  193. package/dist/constants/index.js +0 -181
  194. package/dist/constants/layouts.js +0 -148
  195. package/dist/constants/screens.js +0 -51
  196. package/dist/db/defaultData/datasource_bb_default.js +0 -574
  197. package/dist/db/defaultData/employeeImport.js +0 -155
  198. package/dist/db/defaultData/expensesImport.js +0 -117
  199. package/dist/db/defaultData/inventoryImport.js +0 -109
  200. package/dist/db/defaultData/jobsImport.js +0 -152
  201. package/dist/db/dynamoClient.js +0 -124
  202. package/dist/db/inMemoryView.js +0 -62
  203. package/dist/db/index.js +0 -43
  204. package/dist/db/linkedRows/LinkController.js +0 -392
  205. package/dist/db/linkedRows/LinkDocument.js +0 -33
  206. package/dist/db/linkedRows/index.js +0 -206
  207. package/dist/db/linkedRows/linkUtils.js +0 -131
  208. package/dist/db/newid.js +0 -7
  209. package/dist/db/utils.js +0 -248
  210. package/dist/db/views/staticViews.js +0 -144
  211. package/dist/ddApm.js +0 -11
  212. package/dist/definitions/automations.js +0 -8
  213. package/dist/definitions/common.js +0 -2
  214. package/dist/definitions/datasource.js +0 -7
  215. package/dist/definitions/openapi.js +0 -6
  216. package/dist/environment.js +0 -109
  217. package/dist/events/AutomationEmitter.js +0 -53
  218. package/dist/events/BudibaseEmitter.js +0 -25
  219. package/dist/events/docUpdates/index.js +0 -17
  220. package/dist/events/docUpdates/processors.js +0 -18
  221. package/dist/events/docUpdates/syncUsers.js +0 -49
  222. package/dist/events/index.js +0 -11
  223. package/dist/events/utils.js +0 -43
  224. package/dist/integrations/airtable.js +0 -173
  225. package/dist/integrations/arangodb.js +0 -119
  226. package/dist/integrations/base/query.js +0 -32
  227. package/dist/integrations/base/sql.js +0 -600
  228. package/dist/integrations/base/sqlTable.js +0 -167
  229. package/dist/integrations/base/types.js +0 -2
  230. package/dist/integrations/couchdb.js +0 -140
  231. package/dist/integrations/dynamodb.js +0 -210
  232. package/dist/integrations/elasticsearch.js +0 -201
  233. package/dist/integrations/firebase.js +0 -189
  234. package/dist/integrations/googlesheets.js +0 -484
  235. package/dist/integrations/index.js +0 -138
  236. package/dist/integrations/microsoftSqlServer.js +0 -289
  237. package/dist/integrations/mongodb.js +0 -630
  238. package/dist/integrations/mysql.js +0 -272
  239. package/dist/integrations/oracle.js +0 -404
  240. package/dist/integrations/postgres.js +0 -319
  241. package/dist/integrations/queries/sql.js +0 -84
  242. package/dist/integrations/redis.js +0 -187
  243. package/dist/integrations/rest.js +0 -400
  244. package/dist/integrations/s3.js +0 -256
  245. package/dist/integrations/snowflake.js +0 -114
  246. package/dist/integrations/utils.js +0 -295
  247. package/dist/middleware/appInfo.js +0 -22
  248. package/dist/middleware/authorized.js +0 -112
  249. package/dist/middleware/builder.js +0 -93
  250. package/dist/middleware/currentapp.js +0 -103
  251. package/dist/middleware/joi-validator.js +0 -43
  252. package/dist/middleware/publicApi.js +0 -25
  253. package/dist/middleware/resourceId.js +0 -59
  254. package/dist/middleware/selfhost.js +0 -24
  255. package/dist/middleware/utils.js +0 -8
  256. package/dist/migrations/functions/appUrls.js +0 -42
  257. package/dist/migrations/functions/backfill/app/automations.js +0 -31
  258. package/dist/migrations/functions/backfill/app/datasources.js +0 -28
  259. package/dist/migrations/functions/backfill/app/layouts.js +0 -33
  260. package/dist/migrations/functions/backfill/app/queries.js +0 -49
  261. package/dist/migrations/functions/backfill/app/roles.js +0 -28
  262. package/dist/migrations/functions/backfill/app/screens.js +0 -28
  263. package/dist/migrations/functions/backfill/app/tables.js +0 -37
  264. package/dist/migrations/functions/backfill/app.js +0 -176
  265. package/dist/migrations/functions/backfill/global/configs.js +0 -67
  266. package/dist/migrations/functions/backfill/global/quotas.js +0 -60
  267. package/dist/migrations/functions/backfill/global/users.js +0 -50
  268. package/dist/migrations/functions/backfill/global.js +0 -205
  269. package/dist/migrations/functions/backfill/index.js +0 -32
  270. package/dist/migrations/functions/backfill/installation.js +0 -80
  271. package/dist/migrations/functions/syncQuotas.js +0 -52
  272. package/dist/migrations/functions/tableSettings.js +0 -130
  273. package/dist/migrations/functions/usageQuotas/index.js +0 -16
  274. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -24
  275. package/dist/migrations/functions/usageQuotas/syncPlugins.js +0 -23
  276. package/dist/migrations/functions/usageQuotas/syncRows.js +0 -33
  277. package/dist/migrations/functions/usageQuotas/syncUsers.js +0 -21
  278. package/dist/migrations/functions/userEmailViewCasing.js +0 -24
  279. package/dist/migrations/index.js +0 -111
  280. package/dist/migrations/tests/helpers.js +0 -72
  281. package/dist/migrations/tests/structures.js +0 -37
  282. package/dist/sdk/app/applications/index.js +0 -28
  283. package/dist/sdk/app/applications/sync.js +0 -164
  284. package/dist/sdk/app/applications/utils.js +0 -21
  285. package/dist/sdk/app/automations/index.js +0 -29
  286. package/dist/sdk/app/automations/webhook.js +0 -54
  287. package/dist/sdk/app/backups/constants.js +0 -6
  288. package/dist/sdk/app/backups/exports.js +0 -160
  289. package/dist/sdk/app/backups/imports.js +0 -170
  290. package/dist/sdk/app/backups/index.js +0 -29
  291. package/dist/sdk/app/backups/statistics.js +0 -73
  292. package/dist/sdk/app/datasources/datasources.js +0 -173
  293. package/dist/sdk/app/datasources/index.js +0 -27
  294. package/dist/sdk/app/queries/index.js +0 -27
  295. package/dist/sdk/app/queries/queries.js +0 -60
  296. package/dist/sdk/app/rows/attachments.js +0 -61
  297. package/dist/sdk/app/rows/index.js +0 -28
  298. package/dist/sdk/app/rows/rows.js +0 -30
  299. package/dist/sdk/app/tables/index.js +0 -65
  300. package/dist/sdk/index.js +0 -27
  301. package/dist/sdk/plugins/index.js +0 -27
  302. package/dist/sdk/plugins/plugins.js +0 -53
  303. package/dist/sdk/users/index.js +0 -27
  304. package/dist/sdk/users/utils.js +0 -87
  305. package/dist/sdk/utils/index.js +0 -29
  306. package/dist/startup.js +0 -158
  307. package/dist/threads/automation.js +0 -450
  308. package/dist/threads/definitions.js +0 -2
  309. package/dist/threads/index.js +0 -140
  310. package/dist/threads/query.js +0 -265
  311. package/dist/threads/utils.js +0 -120
  312. package/dist/tsconfig.build.tsbuildinfo +0 -1
  313. package/dist/utilities/appDirectoryTemplate/package.json +0 -10
  314. package/dist/utilities/budibaseDir.js +0 -5
  315. package/dist/utilities/centralPath.js +0 -27
  316. package/dist/utilities/csv.js +0 -33
  317. package/dist/utilities/fileSystem/app.js +0 -88
  318. package/dist/utilities/fileSystem/clientLibrary.js +0 -138
  319. package/dist/utilities/fileSystem/filesystem.js +0 -180
  320. package/dist/utilities/fileSystem/index.js +0 -21
  321. package/dist/utilities/fileSystem/plugin.js +0 -76
  322. package/dist/utilities/fileSystem/processor.js +0 -34
  323. package/dist/utilities/fileSystem/template.js +0 -47
  324. package/dist/utilities/global.js +0 -149
  325. package/dist/utilities/index.js +0 -143
  326. package/dist/utilities/redis.js +0 -117
  327. package/dist/utilities/retry.js +0 -30
  328. package/dist/utilities/routing/index.js +0 -39
  329. package/dist/utilities/rowProcessor/index.js +0 -282
  330. package/dist/utilities/rowProcessor/map.js +0 -116
  331. package/dist/utilities/rowProcessor/utils.js +0 -87
  332. package/dist/utilities/schema.js +0 -112
  333. package/dist/utilities/scriptRunner.js +0 -26
  334. package/dist/utilities/security.js +0 -57
  335. package/dist/utilities/statusCodes.js +0 -9
  336. package/dist/utilities/usageQuota/rows.js +0 -88
  337. package/dist/utilities/usageQuota/usageQuoteReset.js +0 -16
  338. package/dist/utilities/users.js +0 -57
  339. package/dist/utilities/workerRequests.js +0 -171
  340. package/dist/watch.js +0 -53
  341. package/dist/websockets/client.js +0 -14
  342. package/dist/websockets/grid.js +0 -60
  343. package/dist/websockets/index.js +0 -17
  344. package/dist/websockets/websocket.js +0 -78
  345. /package/dist/{api/controllers/static/templates/BudibaseApp.svelte → BudibaseApp-Y5NZEDTC.svelte} +0 -0
  346. /package/dist/{api/controllers/static/templates/app.hbs → app.hbs} +0 -0
  347. /package/dist/{api/controllers/static/templates/preview.hbs → preview.hbs} +0 -0
@@ -1,103 +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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const backend_core_1 = require("@budibase/backend-core");
16
- const utils_1 = require("../db/utils");
17
- const global_1 = require("../utilities/global");
18
- const environment_1 = __importDefault(require("../environment"));
19
- const utils_2 = require("./utils");
20
- exports.default = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
21
- var _a;
22
- // try to get the appID from the request
23
- let requestAppId = yield backend_core_1.utils.getAppIdFromCtx(ctx);
24
- if (!requestAppId) {
25
- return next();
26
- }
27
- // deny access to application preview
28
- if (!environment_1.default.isTest()) {
29
- if ((0, utils_1.isDevAppID)(requestAppId) &&
30
- !(0, utils_2.isWebhookEndpoint)(ctx) &&
31
- (!ctx.user || !ctx.user.builder || !ctx.user.builder.global)) {
32
- return ctx.redirect("/");
33
- }
34
- }
35
- let appId, roleId = backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC;
36
- if (!((_a = ctx.user) === null || _a === void 0 ? void 0 : _a._id)) {
37
- // not logged in, try to set a cookie for public apps
38
- appId = requestAppId;
39
- }
40
- else if (requestAppId != null) {
41
- // Different App ID means cookie needs reset, or if the same public user has logged in
42
- const globalUser = yield (0, global_1.getCachedSelf)(ctx, requestAppId);
43
- appId = requestAppId;
44
- // retrieving global user gets the right role
45
- roleId = globalUser.roleId || roleId;
46
- // Allow builders to specify their role via a header
47
- const isBuilder = globalUser && globalUser.builder && globalUser.builder.global;
48
- const isDevApp = appId && (0, utils_1.isDevAppID)(appId);
49
- const roleHeader = ctx.request &&
50
- ctx.request.headers[backend_core_1.constants.Header.PREVIEW_ROLE];
51
- if (isBuilder && isDevApp && roleHeader) {
52
- // Ensure the role is valid by ensuring a definition exists
53
- try {
54
- if (roleHeader) {
55
- yield backend_core_1.roles.getRole(roleHeader);
56
- roleId = roleHeader;
57
- // Delete admin and builder flags so that the specified role is honoured
58
- delete ctx.user.builder;
59
- delete ctx.user.admin;
60
- }
61
- }
62
- catch (error) {
63
- // Swallow error and do nothing
64
- }
65
- }
66
- }
67
- // nothing more to do
68
- if (!appId) {
69
- return next();
70
- }
71
- return backend_core_1.context.doInAppContext(appId, () => __awaiter(void 0, void 0, void 0, function* () {
72
- var _b;
73
- let skipCookie = false;
74
- // if the user not in the right tenant then make sure they have no permissions
75
- // need to judge this only based on the request app ID,
76
- if (environment_1.default.MULTI_TENANCY &&
77
- ((_b = ctx.user) === null || _b === void 0 ? void 0 : _b._id) &&
78
- requestAppId &&
79
- !backend_core_1.tenancy.isUserInAppTenant(requestAppId, ctx.user)) {
80
- // don't error, simply remove the users rights (they are a public user)
81
- delete ctx.user.builder;
82
- delete ctx.user.admin;
83
- delete ctx.user.roles;
84
- ctx.isAuthenticated = false;
85
- roleId = backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC;
86
- skipCookie = true;
87
- }
88
- ctx.appId = appId;
89
- if (roleId) {
90
- ctx.roleId = roleId;
91
- const globalId = ctx.user ? ctx.user._id : undefined;
92
- const userId = ctx.user
93
- ? (0, utils_1.generateUserMetadataID)(ctx.user._id)
94
- : undefined;
95
- ctx.user = Object.assign(Object.assign({}, ctx.user), {
96
- // override userID with metadata one
97
- _id: userId, userId,
98
- globalId,
99
- roleId, role: yield backend_core_1.roles.getRole(roleId) });
100
- }
101
- return next();
102
- }));
103
- });
@@ -1,43 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.params = exports.body = void 0;
7
- const joi_1 = __importDefault(require("joi"));
8
- function validate(schema, property) {
9
- // Return a Koa middleware function
10
- return (ctx, next) => {
11
- if (!schema) {
12
- return next();
13
- }
14
- let params = null;
15
- if (ctx[property] != null) {
16
- params = ctx[property];
17
- }
18
- else if (ctx.request.get(property) != null) {
19
- params = ctx.request.get(property);
20
- }
21
- // not all schemas have the append property e.g. array schemas
22
- if ("append" in schema && schema.append) {
23
- schema = schema.append({
24
- createdAt: joi_1.default.any().optional(),
25
- updatedAt: joi_1.default.any().optional(),
26
- });
27
- }
28
- const { error } = schema.validate(params);
29
- if (error) {
30
- ctx.throw(400, `Invalid ${property} - ${error.message}`);
31
- return;
32
- }
33
- return next();
34
- };
35
- }
36
- function body(schema) {
37
- return validate(schema, "body");
38
- }
39
- exports.body = body;
40
- function params(schema) {
41
- return validate(schema, "params");
42
- }
43
- exports.params = params;
@@ -1,25 +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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const backend_core_1 = require("@budibase/backend-core");
13
- function default_1({ requiresAppId } = {}) {
14
- return (ctx, next) => __awaiter(this, void 0, void 0, function* () {
15
- const appId = yield backend_core_1.utils.getAppIdFromCtx(ctx);
16
- if (requiresAppId && !appId) {
17
- ctx.throw(400, `Invalid app ID provided, please check the ${backend_core_1.constants.Header.APP_ID} header.`);
18
- }
19
- if (!ctx.headers[backend_core_1.constants.Header.API_KEY]) {
20
- ctx.throw(400, `Invalid API key provided, please check the ${backend_core_1.constants.Header.API_KEY} header.`);
21
- }
22
- return next();
23
- });
24
- }
25
- exports.default = default_1;
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.bodySubResource = exports.bodyResource = exports.paramSubResource = exports.paramResource = exports.ResourceIdGetter = void 0;
4
- class ResourceIdGetter {
5
- constructor(ctxProperty) {
6
- this.parameter = ctxProperty;
7
- this.main = null;
8
- this.sub = null;
9
- return this;
10
- }
11
- mainResource(field) {
12
- this.main = field;
13
- return this;
14
- }
15
- subResource(field) {
16
- this.sub = field;
17
- return this;
18
- }
19
- build() {
20
- const parameter = this.parameter, main = this.main, sub = this.sub;
21
- return (ctx, next) => {
22
- // @ts-ignore
23
- const request = ctx.request[parameter] || ctx[parameter];
24
- if (request == null) {
25
- return next();
26
- }
27
- if (main != null && request[main]) {
28
- ctx.resourceId = request[main];
29
- }
30
- if (sub != null && request[sub]) {
31
- ctx.subResourceId = request[sub];
32
- }
33
- return next();
34
- };
35
- }
36
- }
37
- exports.ResourceIdGetter = ResourceIdGetter;
38
- function paramResource(main) {
39
- return new ResourceIdGetter("params").mainResource(main).build();
40
- }
41
- exports.paramResource = paramResource;
42
- function paramSubResource(main, sub) {
43
- return new ResourceIdGetter("params")
44
- .mainResource(main)
45
- .subResource(sub)
46
- .build();
47
- }
48
- exports.paramSubResource = paramSubResource;
49
- function bodyResource(main) {
50
- return new ResourceIdGetter("body").mainResource(main).build();
51
- }
52
- exports.bodyResource = bodyResource;
53
- function bodySubResource(main, sub) {
54
- return new ResourceIdGetter("body")
55
- .mainResource(main)
56
- .subResource(sub)
57
- .build();
58
- }
59
- exports.bodySubResource = bodySubResource;
@@ -1,24 +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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const environment_1 = __importDefault(require("../environment"));
16
- // if added as a middleware will stop requests unless builder is in self host mode
17
- // or cloud is in self host
18
- exports.default = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
19
- if (environment_1.default.SELF_HOSTED) {
20
- yield next();
21
- return;
22
- }
23
- ctx.throw(400, "Endpoint unavailable in cloud hosting.");
24
- });
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isWebhookEndpoint = void 0;
4
- const WEBHOOK_ENDPOINTS = new RegExp(["webhooks/trigger", "webhooks/schema"].join("|"));
5
- function isWebhookEndpoint(ctx) {
6
- return WEBHOOK_ENDPOINTS.test(ctx.request.url);
7
- }
8
- exports.isWebhookEndpoint = isWebhookEndpoint;
@@ -1,42 +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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.run = void 0;
16
- const backend_core_1 = require("@budibase/backend-core");
17
- const sdk_1 = __importDefault(require("../../sdk"));
18
- /**
19
- * Date:
20
- * January 2022
21
- *
22
- * Description:
23
- * Add the url to the app metadata if it doesn't exist
24
- */
25
- const run = (appDb) => __awaiter(void 0, void 0, void 0, function* () {
26
- let metadata;
27
- try {
28
- metadata = yield appDb.get(backend_core_1.db.DocumentType.APP_METADATA);
29
- }
30
- catch (e) {
31
- // sometimes the metadata document doesn't exist
32
- // exit early instead of failing the migration
33
- console.error("Error retrieving app metadata. Skipping", e);
34
- return;
35
- }
36
- if (!metadata.url) {
37
- metadata.url = sdk_1.default.applications.getAppUrl({ name: metadata.name });
38
- console.log(`Adding url to app: ${metadata.url}`);
39
- yield appDb.put(metadata);
40
- }
41
- });
42
- exports.run = run;
@@ -1,31 +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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.backfill = void 0;
13
- const backend_core_1 = require("@budibase/backend-core");
14
- const utils_1 = require("../../../../db/utils");
15
- const getAutomations = (appDb) => __awaiter(void 0, void 0, void 0, function* () {
16
- const response = yield appDb.allDocs((0, utils_1.getAutomationParams)(null, {
17
- include_docs: true,
18
- }));
19
- return response.rows.map((row) => row.doc);
20
- });
21
- const backfill = (appDb, timestamp) => __awaiter(void 0, void 0, void 0, function* () {
22
- const automations = yield getAutomations(appDb);
23
- for (const automation of automations) {
24
- yield backend_core_1.events.automation.created(automation, timestamp);
25
- for (const step of automation.definition.steps) {
26
- yield backend_core_1.events.automation.stepCreated(automation, step, timestamp);
27
- }
28
- }
29
- return automations.length;
30
- });
31
- exports.backfill = backfill;
@@ -1,28 +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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.backfill = void 0;
13
- const backend_core_1 = require("@budibase/backend-core");
14
- const utils_1 = require("../../../../db/utils");
15
- const getDatasources = (appDb) => __awaiter(void 0, void 0, void 0, function* () {
16
- const response = yield appDb.allDocs((0, utils_1.getDatasourceParams)(null, {
17
- include_docs: true,
18
- }));
19
- return response.rows.map((row) => row.doc);
20
- });
21
- const backfill = (appDb, timestamp) => __awaiter(void 0, void 0, void 0, function* () {
22
- const datasources = yield getDatasources(appDb);
23
- for (const datasource of datasources) {
24
- yield backend_core_1.events.datasource.created(datasource, timestamp);
25
- }
26
- return datasources.length;
27
- });
28
- exports.backfill = backfill;
@@ -1,33 +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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.backfill = void 0;
13
- const backend_core_1 = require("@budibase/backend-core");
14
- const utils_1 = require("../../../../db/utils");
15
- const getLayouts = (appDb) => __awaiter(void 0, void 0, void 0, function* () {
16
- const response = yield appDb.allDocs((0, utils_1.getLayoutParams)(null, {
17
- include_docs: true,
18
- }));
19
- return response.rows.map((row) => row.doc);
20
- });
21
- const backfill = (appDb, timestamp) => __awaiter(void 0, void 0, void 0, function* () {
22
- const layouts = yield getLayouts(appDb);
23
- for (const layout of layouts) {
24
- // exclude default layouts
25
- if (layout._id === "layout_private_master" ||
26
- layout._id === "layout_public_master") {
27
- continue;
28
- }
29
- yield backend_core_1.events.layout.created(layout, timestamp);
30
- }
31
- return layouts.length;
32
- });
33
- exports.backfill = backfill;
@@ -1,49 +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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.backfill = void 0;
13
- const backend_core_1 = require("@budibase/backend-core");
14
- const utils_1 = require("../../../../db/utils");
15
- const getQueries = (appDb) => __awaiter(void 0, void 0, void 0, function* () {
16
- const response = yield appDb.allDocs((0, utils_1.getQueryParams)(null, {
17
- include_docs: true,
18
- }));
19
- return response.rows.map((row) => row.doc);
20
- });
21
- const getDatasource = (appDb, datasourceId) => __awaiter(void 0, void 0, void 0, function* () {
22
- return appDb.get(datasourceId);
23
- });
24
- const backfill = (appDb, timestamp) => __awaiter(void 0, void 0, void 0, function* () {
25
- const queries = yield getQueries(appDb);
26
- for (const query of queries) {
27
- let datasource;
28
- try {
29
- datasource = yield getDatasource(appDb, query.datasourceId);
30
- }
31
- catch (e) {
32
- // handle known bug where a datasource has been deleted
33
- // and the query has not
34
- if (e.status === 404) {
35
- datasource = {
36
- type: "unknown",
37
- _id: query.datasourceId,
38
- source: "unknown",
39
- };
40
- }
41
- else {
42
- throw e;
43
- }
44
- }
45
- yield backend_core_1.events.query.created(datasource, query, timestamp);
46
- }
47
- return queries.length;
48
- });
49
- exports.backfill = backfill;
@@ -1,28 +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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.backfill = void 0;
13
- const backend_core_1 = require("@budibase/backend-core");
14
- const utils_1 = require("../../../../db/utils");
15
- const getRoles = (appDb) => __awaiter(void 0, void 0, void 0, function* () {
16
- const response = yield appDb.allDocs((0, utils_1.getRoleParams)(null, {
17
- include_docs: true,
18
- }));
19
- return response.rows.map((row) => row.doc);
20
- });
21
- const backfill = (appDb, timestamp) => __awaiter(void 0, void 0, void 0, function* () {
22
- const roles = yield getRoles(appDb);
23
- for (const role of roles) {
24
- yield backend_core_1.events.role.created(role, timestamp);
25
- }
26
- return roles.length;
27
- });
28
- exports.backfill = backfill;
@@ -1,28 +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
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.backfill = void 0;
13
- const backend_core_1 = require("@budibase/backend-core");
14
- const utils_1 = require("../../../../db/utils");
15
- const getScreens = (appDb) => __awaiter(void 0, void 0, void 0, function* () {
16
- const response = yield appDb.allDocs((0, utils_1.getScreenParams)(null, {
17
- include_docs: true,
18
- }));
19
- return response.rows.map((row) => row.doc);
20
- });
21
- const backfill = (appDb, timestamp) => __awaiter(void 0, void 0, void 0, function* () {
22
- const screens = yield getScreens(appDb);
23
- for (const screen of screens) {
24
- yield backend_core_1.events.screen.created(screen, timestamp);
25
- }
26
- return screens.length;
27
- });
28
- exports.backfill = backfill;
@@ -1,37 +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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.backfill = void 0;
16
- const backend_core_1 = require("@budibase/backend-core");
17
- const sdk_1 = __importDefault(require("../../../../sdk"));
18
- const backfill = (appDb, timestamp) => __awaiter(void 0, void 0, void 0, function* () {
19
- var _a;
20
- const tables = yield sdk_1.default.tables.getAllInternalTables(appDb);
21
- for (const table of tables) {
22
- yield backend_core_1.events.table.created(table, timestamp);
23
- if (table.views) {
24
- for (const view of Object.values(table.views)) {
25
- yield backend_core_1.events.view.created(view, timestamp);
26
- if (view.calculation) {
27
- yield backend_core_1.events.view.calculationCreated(view, timestamp);
28
- }
29
- if ((_a = view.filters) === null || _a === void 0 ? void 0 : _a.length) {
30
- yield backend_core_1.events.view.filterCreated(view, timestamp);
31
- }
32
- }
33
- }
34
- }
35
- return tables.length;
36
- });
37
- exports.backfill = backfill;