@budibase/server 1.4.8-alpha.7 → 1.4.8-alpha.9

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 (224) hide show
  1. package/builder/assets/{index.ba07aa78.js → index.28a1c01f.js} +312 -308
  2. package/builder/assets/index.fd3654ad.css +6 -0
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +138 -176
  5. package/coverage/coverage-final.json +32 -34
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/index.html +9 -24
  13. package/coverage/lcov-report/api/controllers/integration.js.html +2 -2
  14. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  19. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  37. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  41. package/coverage/lcov-report/api/index.html +1 -1
  42. package/coverage/lcov-report/api/index.js.html +1 -1
  43. package/coverage/lcov-report/api/routes/analytics.js.html +2 -2
  44. package/coverage/lcov-report/api/routes/apikeys.js.html +2 -2
  45. package/coverage/lcov-report/api/routes/automation.js.html +2 -2
  46. package/coverage/lcov-report/api/routes/backup.js.html +2 -2
  47. package/coverage/lcov-report/api/routes/cloud.js.html +2 -2
  48. package/coverage/lcov-report/api/routes/component.js.html +2 -2
  49. package/coverage/lcov-report/api/routes/datasource.js.html +2 -2
  50. package/coverage/lcov-report/api/routes/deploy.js.html +2 -2
  51. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  52. package/coverage/lcov-report/api/routes/index.html +5 -20
  53. package/coverage/lcov-report/api/routes/integration.js.html +2 -2
  54. package/coverage/lcov-report/api/routes/layout.js.html +2 -2
  55. package/coverage/lcov-report/api/routes/metadata.js.html +2 -2
  56. package/coverage/lcov-report/api/routes/migrations.js.html +2 -2
  57. package/coverage/lcov-report/api/routes/permission.js.html +2 -2
  58. package/coverage/lcov-report/api/routes/query.js.html +2 -2
  59. package/coverage/lcov-report/api/routes/role.js.html +2 -2
  60. package/coverage/lcov-report/api/routes/routing.js.html +2 -2
  61. package/coverage/lcov-report/api/routes/screen.js.html +2 -2
  62. package/coverage/lcov-report/api/routes/script.js.html +2 -2
  63. package/coverage/lcov-report/api/routes/table.js.html +2 -2
  64. package/coverage/lcov-report/api/routes/templates.js.html +2 -2
  65. package/coverage/lcov-report/api/routes/user.js.html +2 -2
  66. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  67. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/view.js.html +2 -2
  69. package/coverage/lcov-report/api/routes/webhook.js.html +2 -2
  70. package/coverage/lcov-report/automations/actions.js.html +1 -1
  71. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  72. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  73. package/coverage/lcov-report/automations/index.html +1 -1
  74. package/coverage/lcov-report/automations/index.js.html +1 -1
  75. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  76. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  77. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  78. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/index.html +1 -1
  82. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +52 -4
  87. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  92. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  93. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  94. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  95. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  101. package/coverage/lcov-report/constants/index.html +1 -1
  102. package/coverage/lcov-report/constants/index.js.html +1 -1
  103. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  104. package/coverage/lcov-report/constants/screens.js.html +1 -1
  105. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  106. package/coverage/lcov-report/db/index.html +1 -1
  107. package/coverage/lcov-report/db/index.js.html +1 -1
  108. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  109. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  110. package/coverage/lcov-report/db/linkedRows/index.js.html +11 -11
  111. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +7 -7
  112. package/coverage/lcov-report/db/newid.js.html +1 -1
  113. package/coverage/lcov-report/db/utils.js.html +1 -1
  114. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  115. package/coverage/lcov-report/events/index.html +1 -1
  116. package/coverage/lcov-report/events/index.js.html +1 -1
  117. package/coverage/lcov-report/events/utils.js.html +1 -1
  118. package/coverage/lcov-report/index.html +30 -30
  119. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  120. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  121. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  122. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  123. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  124. package/coverage/lcov-report/middleware/index.html +1 -1
  125. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  126. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  127. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  128. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  129. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  130. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  131. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  132. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  133. package/coverage/lcov-report/utilities/global.js.html +19 -13
  134. package/coverage/lcov-report/utilities/index.html +24 -24
  135. package/coverage/lcov-report/utilities/index.js.html +1 -1
  136. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  137. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  138. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  139. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  140. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  141. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +12 -12
  142. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +8 -8
  143. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  144. package/coverage/lcov-report/utilities/security.js.html +1 -1
  145. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  146. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  147. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  148. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  149. package/coverage/lcov-report/utilities/users.js.html +21 -12
  150. package/coverage/lcov-report/utilities/workerRequests.js.html +33 -3
  151. package/coverage/lcov.info +212 -270
  152. package/dist/api/controllers/application.js +2 -0
  153. package/dist/api/controllers/auth.js +58 -49
  154. package/dist/api/controllers/integration.js +1 -1
  155. package/dist/api/routes/analytics.js +1 -1
  156. package/dist/api/routes/apikeys.js +1 -1
  157. package/dist/api/routes/auth.js +31 -4
  158. package/dist/api/routes/automation.js +1 -1
  159. package/dist/api/routes/backup.js +1 -1
  160. package/dist/api/routes/cloud.js +1 -1
  161. package/dist/api/routes/component.js +1 -1
  162. package/dist/api/routes/datasource.js +1 -1
  163. package/dist/api/routes/deploy.js +1 -1
  164. package/dist/api/routes/dev.js +1 -1
  165. package/dist/api/routes/integration.js +1 -1
  166. package/dist/api/routes/layout.js +1 -1
  167. package/dist/api/routes/metadata.js +1 -1
  168. package/dist/api/routes/migrations.js +1 -1
  169. package/dist/api/routes/permission.js +1 -1
  170. package/dist/api/routes/query.js +1 -1
  171. package/dist/api/routes/role.js +1 -1
  172. package/dist/api/routes/routing.js +1 -1
  173. package/dist/api/routes/screen.js +1 -1
  174. package/dist/api/routes/script.js +1 -1
  175. package/dist/api/routes/table.js +1 -1
  176. package/dist/api/routes/templates.js +1 -1
  177. package/dist/api/routes/user.js +1 -1
  178. package/dist/api/routes/view.js +1 -1
  179. package/dist/api/routes/webhook.js +1 -1
  180. package/dist/automations/steps/sendSmtpEmail.js +10 -2
  181. package/dist/middleware/authorized.js +2 -2
  182. package/dist/package.json +6 -6
  183. package/dist/tsconfig.build.tsbuildinfo +1 -1
  184. package/dist/utilities/global.js +6 -3
  185. package/dist/utilities/users.js +4 -2
  186. package/dist/utilities/workerRequests.js +3 -1
  187. package/package.json +7 -7
  188. package/src/api/controllers/application.ts +3 -7
  189. package/src/api/controllers/{auth.js → auth.ts} +20 -18
  190. package/src/api/controllers/integration.js +1 -1
  191. package/src/api/routes/analytics.js +1 -1
  192. package/src/api/routes/apikeys.js +1 -1
  193. package/src/api/routes/auth.ts +8 -0
  194. package/src/api/routes/automation.js +1 -1
  195. package/src/api/routes/backup.js +1 -1
  196. package/src/api/routes/cloud.js +1 -1
  197. package/src/api/routes/component.js +1 -1
  198. package/src/api/routes/datasource.js +1 -1
  199. package/src/api/routes/deploy.js +1 -1
  200. package/src/api/routes/dev.js +1 -1
  201. package/src/api/routes/integration.js +1 -1
  202. package/src/api/routes/layout.js +1 -1
  203. package/src/api/routes/metadata.js +1 -1
  204. package/src/api/routes/migrations.js +1 -1
  205. package/src/api/routes/permission.js +1 -1
  206. package/src/api/routes/query.js +1 -1
  207. package/src/api/routes/role.js +1 -1
  208. package/src/api/routes/routing.js +1 -1
  209. package/src/api/routes/screen.js +1 -1
  210. package/src/api/routes/script.js +1 -1
  211. package/src/api/routes/table.js +1 -1
  212. package/src/api/routes/templates.js +1 -1
  213. package/src/api/routes/user.js +1 -1
  214. package/src/api/routes/view.js +1 -1
  215. package/src/api/routes/webhook.js +1 -1
  216. package/src/automations/steps/sendSmtpEmail.js +18 -2
  217. package/src/middleware/authorized.ts +2 -2
  218. package/src/utilities/global.js +6 -4
  219. package/src/utilities/users.js +5 -2
  220. package/src/utilities/workerRequests.js +11 -1
  221. package/builder/assets/index.10b8a572.css +0 -6
  222. package/coverage/lcov-report/api/controllers/auth.js.html +0 -292
  223. package/coverage/lcov-report/api/routes/auth.js.html +0 -109
  224. package/src/api/routes/auth.js +0 -8
@@ -37,6 +37,7 @@ const pro_1 = require("@budibase/pro");
37
37
  const backend_core_2 = require("@budibase/backend-core");
38
38
  const types_1 = require("@budibase/types");
39
39
  const layouts_1 = require("../../constants/layouts");
40
+ const pro_2 = require("@budibase/pro");
40
41
  const URL_REGEX_SLASH = /\/|\\/g;
41
42
  // utility function, need to do away with this
42
43
  function getLayouts() {
@@ -442,6 +443,7 @@ const preDestroyApp = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
442
443
  });
443
444
  const postDestroyApp = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
444
445
  const rowCount = ctx.rowCount;
446
+ yield pro_2.groups.cleanupApp(ctx.params.appId);
445
447
  if (rowCount) {
446
448
  yield pro_1.quotas.removeRows(rowCount);
447
449
  }
@@ -8,64 +8,73 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- const { outputProcessing } = require("../../utilities/rowProcessor");
12
- const { InternalTables } = require("../../db/utils");
13
- const { getFullUser } = require("../../utilities/users");
14
- const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles");
15
- const { getAppDB, getAppId } = require("@budibase/backend-core/context");
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.fetchSelf = void 0;
13
+ const rowProcessor_1 = require("../../utilities/rowProcessor");
14
+ const utils_1 = require("../../db/utils");
15
+ const users_1 = require("../../utilities/users");
16
+ const backend_core_1 = require("@budibase/backend-core");
17
+ const pro_1 = require("@budibase/pro");
18
+ const PUBLIC_ROLE = backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC;
16
19
  /**
17
20
  * Add the attributes that are session based to the current user.
18
21
  */
19
- const addSessionAttributesToUser = ctx => {
22
+ const addSessionAttributesToUser = (ctx) => {
20
23
  if (ctx.user) {
21
24
  ctx.body.license = ctx.user.license;
22
25
  }
23
26
  };
24
- exports.fetchSelf = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
25
- let userId = ctx.user.userId || ctx.user._id;
26
- /* istanbul ignore next */
27
- if (!userId || !ctx.isAuthenticated) {
28
- ctx.body = {};
29
- return;
30
- }
31
- const user = yield getFullUser(ctx, userId);
32
- // this shouldn't be returned by the app self
33
- delete user.roles;
34
- // forward the csrf token from the session
35
- user.csrfToken = ctx.user.csrfToken;
36
- if (getAppId()) {
37
- const db = getAppDB();
38
- // remove the full roles structure
39
- delete user.roles;
40
- try {
41
- const userTable = yield db.get(InternalTables.USER_METADATA);
42
- const metadata = yield db.get(userId);
43
- // make sure there is never a stale csrf token
44
- delete metadata.csrfToken;
45
- // specifically needs to make sure is enriched
46
- ctx.body = yield outputProcessing(userTable, Object.assign(Object.assign({}, user), metadata));
27
+ function fetchSelf(ctx) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ let userId = ctx.user.userId || ctx.user._id;
30
+ /* istanbul ignore next */
31
+ if (!userId || !ctx.isAuthenticated) {
32
+ ctx.body = {};
33
+ return;
47
34
  }
48
- catch (err) {
49
- let response;
50
- // user didn't exist in app, don't pretend they do
51
- if (user.roleId === BUILTIN_ROLE_IDS.PUBLIC) {
52
- response = {};
35
+ const appId = backend_core_1.context.getAppId();
36
+ const user = yield (0, users_1.getFullUser)(ctx, userId);
37
+ // this shouldn't be returned by the app self
38
+ delete user.roles;
39
+ // forward the csrf token from the session
40
+ user.csrfToken = ctx.user.csrfToken;
41
+ if (appId) {
42
+ const db = backend_core_1.context.getAppDB();
43
+ // check for group permissions
44
+ if (!user.roleId || user.roleId === PUBLIC_ROLE) {
45
+ const groupRoleId = yield pro_1.groups.getGroupRoleId(user, appId);
46
+ user.roleId = groupRoleId || user.roleId;
53
47
  }
54
- // user has a role of some sort, return them
55
- else if (err.status === 404) {
56
- const metadata = Object.assign(Object.assign({}, user), { _id: userId });
57
- const dbResp = yield db.put(metadata);
58
- user._rev = dbResp.rev;
59
- response = user;
48
+ // remove the full roles structure
49
+ delete user.roles;
50
+ try {
51
+ const userTable = yield db.get(utils_1.InternalTables.USER_METADATA);
52
+ // specifically needs to make sure is enriched
53
+ ctx.body = yield (0, rowProcessor_1.outputProcessing)(userTable, user);
60
54
  }
61
- else {
62
- response = user;
55
+ catch (err) {
56
+ let response;
57
+ // user didn't exist in app, don't pretend they do
58
+ if (user.roleId === PUBLIC_ROLE) {
59
+ response = {};
60
+ }
61
+ // user has a role of some sort, return them
62
+ else if (err.status === 404) {
63
+ const metadata = Object.assign(Object.assign({}, user), { _id: userId });
64
+ const dbResp = yield db.put(metadata);
65
+ user._rev = dbResp.rev;
66
+ response = user;
67
+ }
68
+ else {
69
+ response = user;
70
+ }
71
+ ctx.body = response;
63
72
  }
64
- ctx.body = response;
65
73
  }
66
- }
67
- else {
68
- ctx.body = user;
69
- }
70
- addSessionAttributesToUser(ctx);
71
- });
74
+ else {
75
+ ctx.body = user;
76
+ }
77
+ addSessionAttributesToUser(ctx);
78
+ });
79
+ }
80
+ exports.fetchSelf = fetchSelf;
@@ -17,7 +17,7 @@ exports.fetch = function (ctx) {
17
17
  ctx.status = 200;
18
18
  const defs = yield getDefinitions();
19
19
  // for google sheets integration google verification
20
- if (featureFlags.isEnabled(featureFlags.FeatureFlag.GOOGLE_SHEETS)) {
20
+ if (featureFlags.isEnabled(featureFlags.TenantFeatureFlag.GOOGLE_SHEETS)) {
21
21
  defs[SourceName.GOOGLE_SHEETS] = googlesheets.schema;
22
22
  }
23
23
  ctx.body = defs;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const Router = require("@koa/router");
3
3
  const controller = require("../controllers/analytics");
4
- const router = Router();
4
+ const router = new Router();
5
5
  router.get("/api/bbtel", controller.isEnabled);
6
6
  router.post("/api/bbtel/ping", controller.ping);
7
7
  module.exports = router;
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/apikeys");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router
8
8
  .get("/api/keys", authorized(BUILDER), controller.fetch)
9
9
  .put("/api/keys/:key", authorized(BUILDER), controller.update);
@@ -1,6 +1,33 @@
1
1
  "use strict";
2
- const Router = require("@koa/router");
3
- const controller = require("../controllers/auth");
4
- const router = Router();
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/auth"));
31
+ const router = new router_1.default();
5
32
  router.get("/api/self", controller.fetchSelf);
6
- module.exports = router;
33
+ exports.default = router;
@@ -6,7 +6,7 @@ const { BUILDER, PermissionLevels, PermissionTypes, } = require("@budibase/backe
6
6
  const { bodyResource, paramResource } = require("../../middleware/resourceId");
7
7
  const { middleware: appInfoMiddleware, AppType, } = require("../../middleware/appInfo");
8
8
  const { automationValidator } = require("./utils/validators");
9
- const router = Router();
9
+ const router = new Router();
10
10
  router
11
11
  .get("/api/automations/trigger/list", authorized(BUILDER), controller.getTriggerList)
12
12
  .get("/api/automations/action/list", authorized(BUILDER), controller.getActionList)
@@ -3,6 +3,6 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/backup");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router.get("/api/backups/export", authorized(BUILDER), controller.exportAppDump);
8
8
  module.exports = router;
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/cloud");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router
8
8
  .get("/api/cloud/export", authorized(BUILDER), controller.exportApps)
9
9
  // has to be public, only run if apps don't exist
@@ -3,6 +3,6 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/component");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router.get("/api/:appId/components/definitions", authorized(BUILDER), controller.fetchAppComponentDefinitions);
8
8
  module.exports = router;
@@ -4,7 +4,7 @@ const datasourceController = require("../controllers/datasource");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER, PermissionLevels, PermissionTypes, } = require("@budibase/backend-core/permissions");
6
6
  const { datasourceValidator, datasourceQueryValidator, } = require("./utils/validators");
7
- const router = Router();
7
+ const router = new Router();
8
8
  router
9
9
  .get("/api/datasources", authorized(BUILDER), datasourceController.fetch)
10
10
  .get("/api/datasources/:datasourceId", authorized(PermissionTypes.TABLE, PermissionLevels.READ), datasourceController.find)
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/deploy");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router
8
8
  .get("/api/deployments", authorized(BUILDER), controller.fetchDeployments)
9
9
  .get("/api/deploy/:deploymentId", authorized(BUILDER), controller.deploymentProgress)
@@ -4,7 +4,7 @@ const controller = require("../controllers/dev");
4
4
  const env = require("../../environment");
5
5
  const authorized = require("../../middleware/authorized");
6
6
  const { BUILDER } = require("@budibase/backend-core/permissions");
7
- const router = Router();
7
+ const router = new Router();
8
8
  function redirectPath(path) {
9
9
  router
10
10
  .get(`/api/${path}/:devPath(.*)`, controller.buildRedirectGet(path))
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/integration");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router
8
8
  .get("/api/integrations", authorized(BUILDER), controller.fetch)
9
9
  .get("/api/integrations/:type", authorized(BUILDER), controller.find);
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const authorized = require("../../middleware/authorized");
4
4
  const { BUILDER } = require("@budibase/backend-core/permissions");
5
5
  const controller = require("../controllers/layout");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router
8
8
  .post("/api/layouts", authorized(BUILDER), controller.save)
9
9
  .delete("/api/layouts/:layoutId/:layoutRev", authorized(BUILDER), controller.destroy);
@@ -4,7 +4,7 @@ const controller = require("../controllers/metadata");
4
4
  const { middleware: appInfoMiddleware, AppType, } = require("../../middleware/appInfo");
5
5
  const authorized = require("../../middleware/authorized");
6
6
  const { BUILDER } = require("@budibase/backend-core/permissions");
7
- const router = Router();
7
+ const router = new Router();
8
8
  router
9
9
  .post("/api/metadata/:type/:entityId", authorized(BUILDER), appInfoMiddleware({ appType: AppType.DEV }), controller.saveMetadata)
10
10
  .delete("/api/metadata/:type/:entityId", authorized(BUILDER), appInfoMiddleware({ appType: AppType.DEV }), controller.deleteMetadata)
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const Router = require("@koa/router");
3
3
  const migrationsController = require("../controllers/migrations");
4
- const router = Router();
4
+ const router = new Router();
5
5
  const { internalApi } = require("@budibase/backend-core/auth");
6
6
  router
7
7
  .post("/api/migrations/run", internalApi, migrationsController.migrate)
@@ -4,7 +4,7 @@ const controller = require("../controllers/permission");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const { permissionValidator } = require("./utils/validators");
7
- const router = Router();
7
+ const router = new Router();
8
8
  router
9
9
  .get("/api/permission/builtin", authorized(BUILDER), controller.fetchBuiltin)
10
10
  .get("/api/permission/levels", authorized(BUILDER), controller.fetchLevels)
@@ -5,7 +5,7 @@ const authorized = require("../../middleware/authorized");
5
5
  const { PermissionLevels, PermissionTypes, BUILDER, } = require("@budibase/backend-core/permissions");
6
6
  const { bodyResource, bodySubResource, paramResource, } = require("../../middleware/resourceId");
7
7
  const { generateQueryPreviewValidation, generateQueryValidation, } = require("../controllers/query/validation");
8
- const router = Router();
8
+ const router = new Router();
9
9
  router
10
10
  .get("/api/queries", authorized(BUILDER), queryController.fetch)
11
11
  .post("/api/queries", bodySubResource("datasourceId", "_id"), authorized(BUILDER), generateQueryValidation(), queryController.save)
@@ -4,7 +4,7 @@ const controller = require("../controllers/role");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const { roleValidator } = require("./utils/validators");
7
- const router = Router();
7
+ const router = new Router();
8
8
  router
9
9
  .post("/api/roles", authorized(BUILDER), roleValidator(), controller.save)
10
10
  .get("/api/roles", authorized(BUILDER), controller.fetch)
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const authorized = require("../../middleware/authorized");
4
4
  const { BUILDER } = require("@budibase/backend-core/permissions");
5
5
  const controller = require("../controllers/routing");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router
8
8
  // gets correct structure for user role
9
9
  .get("/api/routing/client", controller.clientFetch)
@@ -4,7 +4,7 @@ const controller = require("../controllers/screen");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const { screenValidator } = require("./utils/validators");
7
- const router = Router();
7
+ const router = new Router();
8
8
  router
9
9
  .get("/api/screens", authorized(BUILDER), controller.fetch)
10
10
  .post("/api/screens", authorized(BUILDER), screenValidator(), controller.save)
@@ -3,6 +3,6 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/script");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router.post("/api/script", authorized(BUILDER), controller.save);
8
8
  module.exports = router;
@@ -5,7 +5,7 @@ const authorized = require("../../middleware/authorized");
5
5
  const { paramResource, bodyResource } = require("../../middleware/resourceId");
6
6
  const { BUILDER, PermissionLevels, PermissionTypes, } = require("@budibase/backend-core/permissions");
7
7
  const { tableValidator } = require("./utils/validators");
8
- const router = Router();
8
+ const router = new Router();
9
9
  router
10
10
  /**
11
11
  * @api {get} /api/tables Fetch all tables
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/templates");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router
8
8
  .get("/api/templates", authorized(BUILDER), controller.fetch)
9
9
  .get("/api/templates/:type/:name", authorized(BUILDER), controller.downloadTemplate);
@@ -3,7 +3,7 @@ const Router = require("@koa/router");
3
3
  const controller = require("../controllers/user");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { PermissionLevels, PermissionTypes, } = require("@budibase/backend-core/permissions");
6
- const router = Router();
6
+ const router = new Router();
7
7
  router
8
8
  .get("/api/users/metadata", authorized(PermissionTypes.USER, PermissionLevels.READ), controller.fetchMetadata)
9
9
  .get("/api/users/metadata/:id", authorized(PermissionTypes.USER, PermissionLevels.READ), controller.findMetadata)
@@ -5,7 +5,7 @@ const rowController = require("../controllers/row");
5
5
  const authorized = require("../../middleware/authorized");
6
6
  const { paramResource } = require("../../middleware/resourceId");
7
7
  const { BUILDER, PermissionTypes, PermissionLevels, } = require("@budibase/backend-core/permissions");
8
- const router = Router();
8
+ const router = new Router();
9
9
  router
10
10
  .get("/api/views/export", authorized(BUILDER), viewController.exportView)
11
11
  .get("/api/views/:viewName", paramResource("viewName"), authorized(PermissionTypes.VIEW, PermissionLevels.READ), rowController.fetchView)
@@ -4,7 +4,7 @@ const controller = require("../controllers/webhook");
4
4
  const authorized = require("../../middleware/authorized");
5
5
  const { BUILDER } = require("@budibase/backend-core/permissions");
6
6
  const { webhookValidator } = require("./utils/validators");
7
- const router = Router();
7
+ const router = new Router();
8
8
  router
9
9
  .get("/api/webhooks", authorized(BUILDER), controller.fetch)
10
10
  .put("/api/webhooks", authorized(BUILDER), webhookValidator(), controller.save)
@@ -30,6 +30,14 @@ exports.definition = {
30
30
  type: "string",
31
31
  title: "Send From",
32
32
  },
33
+ cc: {
34
+ type: "string",
35
+ title: "CC",
36
+ },
37
+ bcc: {
38
+ type: "string",
39
+ title: "BCC",
40
+ },
33
41
  subject: {
34
42
  type: "string",
35
43
  title: "Email Subject",
@@ -58,13 +66,13 @@ exports.definition = {
58
66
  };
59
67
  exports.run = function ({ inputs }) {
60
68
  return __awaiter(this, void 0, void 0, function* () {
61
- let { to, from, subject, contents } = inputs;
69
+ let { to, from, subject, contents, cc, bcc } = inputs;
62
70
  if (!contents) {
63
71
  contents = "<h1>No content</h1>";
64
72
  }
65
73
  to = to || undefined;
66
74
  try {
67
- let response = yield sendSmtpEmail(to, from, subject, contents, true);
75
+ let response = yield sendSmtpEmail(to, from, subject, contents, cc, bcc, true);
68
76
  return {
69
77
  success: true,
70
78
  response,
@@ -39,9 +39,9 @@ const checkAuthorized = (ctx, resourceRoles, permType, permLevel) => __awaiter(v
39
39
  const checkAuthorizedResource = (ctx, resourceRoles, permType, permLevel) => __awaiter(void 0, void 0, void 0, function* () {
40
40
  // get the user's roles
41
41
  const roleId = ctx.roleId || roles_1.BUILTIN_ROLE_IDS.PUBLIC;
42
- const userRoles = yield (0, roles_1.getUserRoleHierarchy)(roleId, {
42
+ const userRoles = (yield (0, roles_1.getUserRoleHierarchy)(roleId, {
43
43
  idOnly: false,
44
- });
44
+ }));
45
45
  const permError = "User does not have permission";
46
46
  // check if the user has the required role
47
47
  if (resourceRoles.length > 0) {
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "1.4.8-alpha.6",
4
+ "version": "1.4.8-alpha.8",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -77,11 +77,11 @@
77
77
  "license": "GPL-3.0",
78
78
  "dependencies": {
79
79
  "@apidevtools/swagger-parser": "10.0.3",
80
- "@budibase/backend-core": "1.4.8-alpha.6",
81
- "@budibase/client": "1.4.8-alpha.6",
82
- "@budibase/pro": "1.4.8-alpha.6",
83
- "@budibase/string-templates": "1.4.8-alpha.6",
84
- "@budibase/types": "1.4.8-alpha.6",
80
+ "@budibase/backend-core": "1.4.8-alpha.8",
81
+ "@budibase/client": "1.4.8-alpha.8",
82
+ "@budibase/pro": "1.4.8-alpha.8",
83
+ "@budibase/string-templates": "1.4.8-alpha.8",
84
+ "@budibase/types": "1.4.8-alpha.8",
85
85
  "@bull-board/api": "3.7.0",
86
86
  "@bull-board/koa": "3.9.4",
87
87
  "@elastic/elasticsearch": "7.10.0",