@budibase/server 1.0.167 → 1.0.170

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 (175) hide show
  1. package/__mocks__/pg.ts +3 -1
  2. package/builder/assets/{index.9ee2182c.js → index.12a8256a.js} +1 -1
  3. package/builder/index.html +1 -1
  4. package/coverage/clover.xml +64 -51
  5. package/coverage/coverage-final.json +5 -5
  6. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/index.html +1 -1
  16. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  45. package/coverage/lcov-report/api/index.html +1 -1
  46. package/coverage/lcov-report/api/index.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/index.html +1 -1
  58. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  72. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  75. package/coverage/lcov-report/automations/actions.js.html +1 -1
  76. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  77. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  78. package/coverage/lcov-report/automations/index.html +1 -1
  79. package/coverage/lcov-report/automations/index.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/index.html +1 -1
  87. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  106. package/coverage/lcov-report/constants/index.html +1 -1
  107. package/coverage/lcov-report/constants/index.js.html +1 -1
  108. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  109. package/coverage/lcov-report/constants/screens.js.html +1 -1
  110. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  111. package/coverage/lcov-report/db/index.html +1 -1
  112. package/coverage/lcov-report/db/index.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  116. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  117. package/coverage/lcov-report/db/newid.js.html +1 -1
  118. package/coverage/lcov-report/db/utils.js.html +6 -6
  119. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  120. package/coverage/lcov-report/events/index.html +1 -1
  121. package/coverage/lcov-report/events/index.js.html +1 -1
  122. package/coverage/lcov-report/events/utils.js.html +1 -1
  123. package/coverage/lcov-report/index.html +18 -18
  124. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  125. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  126. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  127. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  128. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  129. package/coverage/lcov-report/middleware/index.html +1 -1
  130. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  131. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  132. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  133. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  134. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  135. package/coverage/lcov-report/threads/automation.js.html +1 -1
  136. package/coverage/lcov-report/threads/index.html +1 -1
  137. package/coverage/lcov-report/threads/query.js.html +1 -1
  138. package/coverage/lcov-report/threads/utils.js.html +1 -1
  139. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  140. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  141. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  142. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  143. package/coverage/lcov-report/utilities/global.js.html +1 -1
  144. package/coverage/lcov-report/utilities/index.html +19 -19
  145. package/coverage/lcov-report/utilities/index.js.html +2 -2
  146. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  147. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  148. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  149. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  152. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  153. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  154. package/coverage/lcov-report/utilities/security.js.html +1 -1
  155. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  157. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +23 -23
  158. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  159. package/coverage/lcov-report/utilities/users.js.html +73 -10
  160. package/coverage/lcov-report/utilities/workerRequests.js.html +13 -13
  161. package/coverage/lcov.info +101 -78
  162. package/dist/api/controllers/application.js +7 -0
  163. package/dist/api/controllers/public/users.js +3 -23
  164. package/dist/environment.js +5 -1
  165. package/dist/integrations/postgres.js +36 -16
  166. package/dist/package.json +5 -5
  167. package/dist/tsconfig.build.tsbuildinfo +1 -1
  168. package/dist/utilities/users.js +21 -0
  169. package/package.json +6 -6
  170. package/scripts/load/users.js +97 -0
  171. package/src/api/controllers/application.ts +9 -0
  172. package/src/api/controllers/public/users.ts +3 -24
  173. package/src/environment.js +6 -1
  174. package/src/integrations/postgres.ts +35 -14
  175. package/src/utilities/users.js +21 -0
@@ -11,28 +11,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.destroy = exports.update = exports.read = exports.create = exports.search = void 0;
13
13
  const workerRequests_1 = require("../../../utilities/workerRequests");
14
+ const users_1 = require("../../../utilities/users");
14
15
  const utils_1 = require("./utils");
15
- const { getProdAppID } = require("@budibase/backend-core/db");
16
- function fixUser(ctx) {
17
- if (!ctx.request.body) {
18
- return ctx;
19
- }
20
- if (!ctx.request.body._id && ctx.params.userId) {
21
- ctx.request.body._id = ctx.params.userId;
22
- }
23
- if (!ctx.request.body.roles) {
24
- ctx.request.body.roles = {};
25
- }
26
- else {
27
- const newRoles = {};
28
- for (let [appId, role] of Object.entries(ctx.request.body.roles)) {
29
- // @ts-ignore
30
- newRoles[getProdAppID(appId)] = role;
31
- }
32
- ctx.request.body.roles = newRoles;
33
- }
34
- return ctx;
35
- }
36
16
  function getUser(ctx, userId) {
37
17
  var _a;
38
18
  if (userId) {
@@ -54,7 +34,7 @@ function search(ctx, next) {
54
34
  exports.search = search;
55
35
  function create(ctx, next) {
56
36
  return __awaiter(this, void 0, void 0, function* () {
57
- const response = yield (0, workerRequests_1.saveGlobalUser)(fixUser(ctx));
37
+ const response = yield (0, workerRequests_1.saveGlobalUser)((0, users_1.publicApiUserFix)(ctx));
58
38
  ctx.body = yield getUser(ctx, response._id);
59
39
  yield next();
60
40
  });
@@ -71,7 +51,7 @@ function update(ctx, next) {
71
51
  return __awaiter(this, void 0, void 0, function* () {
72
52
  const user = yield (0, workerRequests_1.readGlobalUser)(ctx);
73
53
  ctx.request.body = Object.assign(Object.assign({}, ctx.request.body), { _rev: user._rev });
74
- const response = yield (0, workerRequests_1.saveGlobalUser)(fixUser(ctx));
54
+ const response = yield (0, workerRequests_1.saveGlobalUser)((0, users_1.publicApiUserFix)(ctx));
75
55
  ctx.body = yield getUser(ctx, response._id);
76
56
  yield next();
77
57
  });
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ const { join } = require("path");
2
3
  function isTest() {
3
4
  return (process.env.NODE_ENV === "jest" ||
4
5
  process.env.NODE_ENV === "cypress" ||
@@ -14,7 +15,9 @@ function isCypress() {
14
15
  }
15
16
  let LOADED = false;
16
17
  if (!LOADED && isDev() && !isTest()) {
17
- require("dotenv").config();
18
+ require("dotenv").config({
19
+ path: join(__dirname, "..", ".env"),
20
+ });
18
21
  LOADED = true;
19
22
  }
20
23
  function parseIntSafe(number) {
@@ -48,6 +51,7 @@ module.exports = {
48
51
  JEST_WORKER_ID: process.env.JEST_WORKER_ID,
49
52
  BUDIBASE_ENVIRONMENT: process.env.BUDIBASE_ENVIRONMENT,
50
53
  DISABLE_ACCOUNT_PORTAL: process.env.DISABLE_ACCOUNT_PORTAL,
54
+ DISABLE_AUTO_PROD_APP_SYNC: process.env.DISABLE_AUTO_PROD_APP_SYNC,
51
55
  // minor
52
56
  SALT_ROUNDS: process.env.SALT_ROUNDS,
53
57
  LOGGER: process.env.LOGGER,
@@ -107,7 +107,7 @@ var PostgresModule;
107
107
  }
108
108
  : undefined });
109
109
  this.client = new Client(newConfig);
110
- this.setSchema();
110
+ this.open = false;
111
111
  }
112
112
  getBindingIdentifier() {
113
113
  return `$${this.index++}`;
@@ -115,8 +115,36 @@ var PostgresModule;
115
115
  getStringConcat(parts) {
116
116
  return parts.join(" || ");
117
117
  }
118
+ openConnection() {
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ yield this.client.connect();
121
+ if (!this.config.schema) {
122
+ this.config.schema = "public";
123
+ }
124
+ this.client.query(`SET search_path TO ${this.config.schema}`);
125
+ this.COLUMNS_SQL = `select * from information_schema.columns where table_schema = '${this.config.schema}'`;
126
+ this.open = true;
127
+ });
128
+ }
129
+ closeConnection() {
130
+ const pg = this;
131
+ return new Promise((resolve, reject) => {
132
+ this.client.end((err) => {
133
+ pg.open = false;
134
+ if (err) {
135
+ reject(err);
136
+ }
137
+ else {
138
+ resolve();
139
+ }
140
+ });
141
+ });
142
+ }
118
143
  internalQuery(query, close = true) {
119
144
  return __awaiter(this, void 0, void 0, function* () {
145
+ if (!this.open) {
146
+ yield this.openConnection();
147
+ }
120
148
  const client = this.client;
121
149
  this.index = 1;
122
150
  // need to handle a specific issue with json data types in postgres,
@@ -134,24 +162,15 @@ var PostgresModule;
134
162
  return yield client.query(query.sql, query.bindings || []);
135
163
  }
136
164
  catch (err) {
137
- yield this.client.end();
165
+ yield this.closeConnection();
138
166
  // @ts-ignore
139
167
  throw new Error(err);
140
168
  }
141
169
  finally {
142
- if (close)
143
- yield this.client.end();
144
- }
145
- });
146
- }
147
- setSchema() {
148
- return __awaiter(this, void 0, void 0, function* () {
149
- yield this.client.connect();
150
- if (!this.config.schema) {
151
- this.config.schema = "public";
170
+ if (close) {
171
+ yield this.closeConnection();
172
+ }
152
173
  }
153
- this.client.query(`SET search_path TO ${this.config.schema}`);
154
- this.COLUMNS_SQL = `select * from information_schema.columns where table_schema = '${this.config.schema}'`;
155
174
  });
156
175
  }
157
176
  /**
@@ -162,6 +181,7 @@ var PostgresModule;
162
181
  buildSchema(datasourceId, entities) {
163
182
  return __awaiter(this, void 0, void 0, function* () {
164
183
  let tableKeys = {};
184
+ yield this.openConnection();
165
185
  try {
166
186
  const primaryKeysResponse = yield this.client.query(this.PRIMARY_KEYS_SQL);
167
187
  for (let table of primaryKeysResponse.rows) {
@@ -212,7 +232,7 @@ var PostgresModule;
212
232
  throw new Error(err);
213
233
  }
214
234
  finally {
215
- yield this.client.end();
235
+ yield this.closeConnection();
216
236
  }
217
237
  });
218
238
  }
@@ -249,7 +269,7 @@ var PostgresModule;
249
269
  for (let query of input) {
250
270
  responses.push(yield this.internalQuery(query, false));
251
271
  }
252
- yield this.client.end();
272
+ yield this.closeConnection();
253
273
  return responses;
254
274
  }
255
275
  else {
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.0.166",
4
+ "version": "1.0.169",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -69,10 +69,10 @@
69
69
  "license": "GPL-3.0",
70
70
  "dependencies": {
71
71
  "@apidevtools/swagger-parser": "^10.0.3",
72
- "@budibase/backend-core": "^1.0.166",
73
- "@budibase/client": "^1.0.166",
74
- "@budibase/pro": "1.0.166",
75
- "@budibase/string-templates": "^1.0.166",
72
+ "@budibase/backend-core": "^1.0.169",
73
+ "@budibase/client": "^1.0.169",
74
+ "@budibase/pro": "1.0.169",
75
+ "@budibase/string-templates": "^1.0.169",
76
76
  "@bull-board/api": "^3.7.0",
77
77
  "@bull-board/koa": "^3.7.0",
78
78
  "@elastic/elasticsearch": "7.10.0",