@budibase/server 1.0.212-alpha.1 → 1.0.212-alpha.12

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 (174) hide show
  1. package/builder/assets/{index.c6912819.css → index.969c2236.css} +1 -1
  2. package/builder/assets/{index.0da107e0.js → index.a895b27f.js} +157 -491
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +205 -177
  5. package/coverage/coverage-final.json +4 -4
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +63 -9
  14. package/coverage/lcov-report/api/controllers/index.html +16 -16
  15. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +19 -19
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +95 -11
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  44. package/coverage/lcov-report/api/index.html +1 -1
  45. package/coverage/lcov-report/api/index.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/index.html +1 -1
  57. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  74. package/coverage/lcov-report/automations/actions.js.html +1 -1
  75. package/coverage/lcov-report/automations/automationUtils.js.html +57 -12
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +15 -15
  78. package/coverage/lcov-report/automations/index.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/index.html +1 -1
  86. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  105. package/coverage/lcov-report/constants/index.html +1 -1
  106. package/coverage/lcov-report/constants/index.js.html +1 -1
  107. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  108. package/coverage/lcov-report/constants/screens.js.html +1 -1
  109. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  110. package/coverage/lcov-report/db/index.html +1 -1
  111. package/coverage/lcov-report/db/index.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  116. package/coverage/lcov-report/db/newid.js.html +1 -1
  117. package/coverage/lcov-report/db/utils.js.html +1 -1
  118. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  119. package/coverage/lcov-report/events/index.html +1 -1
  120. package/coverage/lcov-report/events/index.js.html +1 -1
  121. package/coverage/lcov-report/events/utils.js.html +1 -1
  122. package/coverage/lcov-report/index.html +35 -35
  123. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  124. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  125. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  126. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  127. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  128. package/coverage/lcov-report/middleware/index.html +1 -1
  129. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  130. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  131. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  132. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  133. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  134. package/coverage/lcov-report/threads/automation.js.html +2 -2
  135. package/coverage/lcov-report/threads/index.html +1 -1
  136. package/coverage/lcov-report/threads/query.js.html +1 -1
  137. package/coverage/lcov-report/threads/utils.js.html +1 -1
  138. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  139. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  140. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  141. package/coverage/lcov-report/utilities/global.js.html +1 -1
  142. package/coverage/lcov-report/utilities/index.html +1 -1
  143. package/coverage/lcov-report/utilities/index.js.html +1 -1
  144. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  145. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  146. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  147. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  148. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  151. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  152. package/coverage/lcov-report/utilities/security.js.html +1 -1
  153. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  154. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  157. package/coverage/lcov-report/utilities/users.js.html +1 -1
  158. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  159. package/coverage/lcov.info +377 -329
  160. package/dist/api/controllers/application.js +16 -14
  161. package/dist/api/controllers/dev.js +15 -0
  162. package/dist/api/controllers/row/internalSearch.js +22 -1
  163. package/dist/automations/automationUtils.js +16 -4
  164. package/dist/environment.js +2 -1
  165. package/dist/package.json +6 -6
  166. package/dist/threads/automation.js +1 -1
  167. package/dist/tsconfig.build.tsbuildinfo +1 -1
  168. package/package.json +7 -7
  169. package/src/api/controllers/application.ts +16 -13
  170. package/src/api/controllers/dev.js +18 -0
  171. package/src/api/controllers/row/internalSearch.js +28 -0
  172. package/src/automations/automationUtils.js +19 -4
  173. package/src/environment.js +3 -1
  174. package/src/threads/automation.js +1 -1
@@ -33,7 +33,7 @@ const { getTenantId, isMultiTenant } = require("@budibase/backend-core/tenancy")
33
33
  const user_1 = require("./user");
34
34
  const { app: appCache } = require("@budibase/backend-core/cache");
35
35
  const utils_2 = require("../../automations/utils");
36
- const { getAppDB, getProdAppDB, updateAppId, } = require("@budibase/backend-core/context");
36
+ const { getAppDB, getProdAppDB, updateAppId, doInAppContext, } = require("@budibase/backend-core/context");
37
37
  const rows_1 = require("../../utilities/usageQuota/rows");
38
38
  const pro_1 = require("@budibase/pro");
39
39
  const backend_core_1 = require("@budibase/backend-core");
@@ -486,19 +486,21 @@ const sync = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
486
486
  });
487
487
  exports.sync = sync;
488
488
  const updateAppPackage = (appPackage, appId) => __awaiter(void 0, void 0, void 0, function* () {
489
- const db = getAppDB();
490
- const application = yield db.get(utils_1.DocumentTypes.APP_METADATA);
491
- const newAppPackage = Object.assign(Object.assign({}, application), appPackage);
492
- if (appPackage._rev !== application._rev) {
493
- newAppPackage._rev = application._rev;
494
- }
495
- // the locked by property is attached by server but generated from
496
- // Redis, shouldn't ever store it
497
- delete newAppPackage.lockedBy;
498
- yield db.put(newAppPackage);
499
- // remove any cached metadata, so that it will be updated
500
- yield appCache.invalidateAppMetadata(appId);
501
- return newAppPackage;
489
+ return doInAppContext(appId, () => __awaiter(void 0, void 0, void 0, function* () {
490
+ const db = getAppDB();
491
+ const application = yield db.get(utils_1.DocumentTypes.APP_METADATA);
492
+ const newAppPackage = Object.assign(Object.assign({}, application), appPackage);
493
+ if (appPackage._rev !== application._rev) {
494
+ newAppPackage._rev = application._rev;
495
+ }
496
+ // the locked by property is attached by server but generated from
497
+ // Redis, shouldn't ever store it
498
+ delete newAppPackage.lockedBy;
499
+ yield db.put(newAppPackage);
500
+ // remove any cached metadata, so that it will be updated
501
+ yield appCache.invalidateAppMetadata(appId);
502
+ return newAppPackage;
503
+ }));
502
504
  });
503
505
  const createEmptyAppPackage = (ctx, app) => __awaiter(void 0, void 0, void 0, function* () {
504
506
  const db = getAppDB();
@@ -131,6 +131,20 @@ exports.getBudibaseVersion = (ctx) => __awaiter(void 0, void 0, void 0, function
131
131
  });
132
132
  // TODO: remove as part of beta program
133
133
  exports.checkBetaAccess = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
134
+ // go to the cloud platform if running self hosted
135
+ if (env.SELF_HOSTED || !env.MULTI_TENANCY) {
136
+ let baseUrl = "";
137
+ if (env.ACCOUNT_PORTAL_URL) {
138
+ baseUrl = env.ACCOUNT_PORTAL_URL.replace("account.", "");
139
+ }
140
+ else {
141
+ baseUrl = "https://budibase.app";
142
+ }
143
+ const response = yield fetch(`${baseUrl}/api/beta/access?email=${ctx.query.email}`);
144
+ const json = yield response.json();
145
+ ctx.body = json;
146
+ return;
147
+ }
134
148
  const userToCheck = ctx.query.email;
135
149
  const BETA_USERS_DB = "app_bb_f9b77d06b9db4e3ca185476ab87a2364";
136
150
  const BETA_USERS_TABLE = "ta_8c2c6df1c03f49cfb6340e85e066dd15";
@@ -149,6 +163,7 @@ exports.checkBetaAccess = (ctx) => __awaiter(void 0, void 0, void 0, function* (
149
163
  ctx.body = { access };
150
164
  }
151
165
  catch (err) {
166
+ console.error(err);
152
167
  ctx.body = { access: false };
153
168
  }
154
169
  });
@@ -18,7 +18,7 @@ const { getAppId } = require("@budibase/backend-core/context");
18
18
  */
19
19
  class QueryBuilder {
20
20
  constructor(base) {
21
- this.query = Object.assign({ string: {}, fuzzy: {}, range: {}, equal: {}, notEqual: {}, empty: {}, notEmpty: {} }, base);
21
+ this.query = Object.assign({ string: {}, fuzzy: {}, range: {}, equal: {}, notEqual: {}, empty: {}, notEmpty: {}, oneOf: {} }, base);
22
22
  this.limit = 50;
23
23
  this.sortOrder = "ascending";
24
24
  this.sortType = "string";
@@ -96,6 +96,10 @@ class QueryBuilder {
96
96
  this.query.notEmpty[key] = value;
97
97
  return this;
98
98
  }
99
+ addOneOf(key, value) {
100
+ this.query.oneOf[key] = value;
101
+ return this;
102
+ }
99
103
  /**
100
104
  * Preprocesses a value before going into a lucene search.
101
105
  * Transforms strings to lowercase and wraps strings and bools in quotes.
@@ -201,6 +205,23 @@ class QueryBuilder {
201
205
  if (this.query.notEmpty) {
202
206
  build(this.query.notEmpty, key => `${key}:["" TO *]`);
203
207
  }
208
+ if (this.query.oneOf) {
209
+ build(this.query.oneOf, (key, value) => {
210
+ if (!Array.isArray(value)) {
211
+ if (typeof value === "string") {
212
+ value = value.split(",");
213
+ }
214
+ else {
215
+ return "";
216
+ }
217
+ }
218
+ let orStatement = `${builder.preprocess(value[0], allPreProcessingOpts)}`;
219
+ for (let i = 1; i < value.length; i++) {
220
+ orStatement += ` OR ${builder.preprocess(value[i], allPreProcessingOpts)}`;
221
+ }
222
+ return `${key}:(${orStatement})`;
223
+ });
224
+ }
204
225
  return query;
205
226
  }
206
227
  buildSearchBody() {
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const { getTable } = require("../api/controllers/table/utils");
12
- const { findHBSBlocks } = require("@budibase/string-templates");
12
+ const { findHBSBlocks, decodeJSBinding, isJSBinding, encodeJSBinding, } = require("@budibase/string-templates");
13
13
  /**
14
14
  * When values are input to the system generally they will be of type string as this is required for template strings.
15
15
  * This can generate some odd scenarios as the Schema of the automation requires a number but the builder might supply
@@ -81,11 +81,23 @@ exports.getError = err => {
81
81
  return typeof err !== "string" ? err.toString() : err;
82
82
  };
83
83
  exports.substituteLoopStep = (hbsString, substitute) => {
84
- let blocks = findHBSBlocks(hbsString);
84
+ let blocks = [];
85
+ let checkForJS = isJSBinding(hbsString);
86
+ if (checkForJS) {
87
+ hbsString = decodeJSBinding(hbsString);
88
+ blocks.push(hbsString);
89
+ }
90
+ else {
91
+ blocks = findHBSBlocks(hbsString);
92
+ }
85
93
  for (let block of blocks) {
86
- let oldBlock = block;
87
94
  block = block.replace(/loop/, substitute);
88
- hbsString = hbsString.replace(new RegExp(oldBlock, "g"), block);
95
+ if (checkForJS) {
96
+ hbsString = encodeJSBinding(block);
97
+ }
98
+ else {
99
+ hbsString = block;
100
+ }
89
101
  }
90
102
  return hbsString;
91
103
  };
@@ -56,7 +56,8 @@ module.exports = {
56
56
  SALT_ROUNDS: process.env.SALT_ROUNDS,
57
57
  LOGGER: process.env.LOGGER,
58
58
  LOG_LEVEL: process.env.LOG_LEVEL,
59
- AUTOMATION_MAX_ITERATIONS: process.env.AUTOMATION_MAX_ITERATIONS,
59
+ ACCOUNT_PORTAL_URL: process.env.ACCOUNT_PORTAL_URL,
60
+ AUTOMATION_MAX_ITERATIONS: parseIntSafe(process.env.AUTOMATION_MAX_ITERATIONS) || 200,
60
61
  SENDGRID_API_KEY: process.env.SENDGRID_API_KEY,
61
62
  DYNAMO_ENDPOINT: process.env.DYNAMO_ENDPOINT,
62
63
  QUERY_THREAD_TIMEOUT: parseIntSafe(process.env.QUERY_THREAD_TIMEOUT),
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.212-alpha.0",
4
+ "version": "1.0.212-alpha.11",
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.0.212-alpha.0",
81
- "@budibase/client": "^1.0.212-alpha.0",
82
- "@budibase/pro": "1.0.212-alpha.0",
83
- "@budibase/string-templates": "^1.0.212-alpha.0",
84
- "@budibase/types": "^1.0.212-alpha.0",
80
+ "@budibase/backend-core": "^1.0.212-alpha.11",
81
+ "@budibase/client": "^1.0.212-alpha.11",
82
+ "@budibase/pro": "1.0.212-alpha.11",
83
+ "@budibase/string-templates": "^1.0.212-alpha.11",
84
+ "@budibase/types": "^1.0.212-alpha.11",
85
85
  "@bull-board/api": "3.7.0",
86
86
  "@bull-board/koa": "3.9.4",
87
87
  "@elastic/elasticsearch": "7.10.0",
@@ -195,7 +195,7 @@ class Orchestrator {
195
195
  }
196
196
  }
197
197
  }
198
- if (index === parseInt(env.AUTOMATION_MAX_ITERATIONS) ||
198
+ if (index === env.AUTOMATION_MAX_ITERATION ||
199
199
  index === parseInt(loopStep.inputs.iterations)) {
200
200
  this.updateContextAndOutput(loopStepNumber, step, tempOutput, {
201
201
  status: AutomationErrors.MAX_ITERATIONS,