@budibase/server 1.0.23-alpha.1 → 1.0.23

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 (234) hide show
  1. package/__mocks__/node-fetch.ts +0 -3
  2. package/builder/assets/{index.4a13c4cb.css → index.4fb3f887.css} +1 -1
  3. package/builder/assets/{index.c690e107.js → index.4fe1df08.js} +204 -208
  4. package/builder/assets/{vendor.f9faf6ab.js → vendor.470042a4.js} +88 -88
  5. package/builder/index.html +3 -3
  6. package/coverage/clover.xml +512 -589
  7. package/coverage/coverage-final.json +19 -20
  8. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/application.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/automation.js.html +10 -22
  13. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/datasource.js.html +14 -14
  17. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/index.html +43 -28
  20. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/{query/index.js.html → query.js.html} +27 -159
  25. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/user.js.html +9 -108
  42. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  44. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  46. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  47. package/coverage/lcov-report/api/controllers/webhook.js.html +6 -18
  48. package/coverage/lcov-report/api/index.html +1 -1
  49. package/coverage/lcov-report/api/index.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/index.html +9 -9
  63. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/query.js.html +98 -11
  69. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/static.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  77. package/coverage/lcov-report/api/routes/user.js.html +2 -32
  78. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  80. package/coverage/lcov-report/automations/actions.js.html +1 -1
  81. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  82. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  83. package/coverage/lcov-report/automations/index.html +20 -20
  84. package/coverage/lcov-report/automations/index.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/index.html +1 -1
  94. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -5
  96. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  98. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  99. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  106. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  107. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  109. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  110. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  111. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  112. package/coverage/lcov-report/automations/utils.js.html +11 -44
  113. package/coverage/lcov-report/constants/index.html +1 -1
  114. package/coverage/lcov-report/constants/index.js.html +22 -22
  115. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  116. package/coverage/lcov-report/constants/screens.js.html +1 -1
  117. package/coverage/lcov-report/db/client.js.html +18 -18
  118. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  119. package/coverage/lcov-report/db/index.html +15 -15
  120. package/coverage/lcov-report/db/index.js.html +3 -3
  121. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  122. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  123. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  124. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  125. package/coverage/lcov-report/db/newid.js.html +4 -4
  126. package/coverage/lcov-report/db/utils.js.html +64 -91
  127. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  128. package/coverage/lcov-report/events/index.html +1 -1
  129. package/coverage/lcov-report/events/index.js.html +1 -1
  130. package/coverage/lcov-report/events/utils.js.html +1 -1
  131. package/coverage/lcov-report/index.html +60 -75
  132. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  133. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  134. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  135. package/coverage/lcov-report/middleware/authorized.js.html +2 -2
  136. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  137. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  138. package/coverage/lcov-report/middleware/index.html +1 -1
  139. package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
  140. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  141. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  142. package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
  143. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  144. package/coverage/lcov-report/threads/automation.js.html +1 -1
  145. package/coverage/lcov-report/threads/index.html +19 -19
  146. package/coverage/lcov-report/threads/index.js.html +1 -1
  147. package/coverage/lcov-report/threads/query.js.html +12 -63
  148. package/coverage/lcov-report/threads/utils.js.html +1 -1
  149. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  150. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  151. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  152. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  153. package/coverage/lcov-report/utilities/global.js.html +1 -1
  154. package/coverage/lcov-report/utilities/index.html +19 -19
  155. package/coverage/lcov-report/utilities/index.js.html +33 -66
  156. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  157. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  158. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  159. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  160. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  161. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  162. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  163. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  164. package/coverage/lcov-report/utilities/security.js.html +2 -2
  165. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  166. package/coverage/lcov-report/utilities/users.js.html +1 -1
  167. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  168. package/coverage/lcov.info +851 -969
  169. package/dist/api/controllers/automation.js +5 -7
  170. package/dist/api/controllers/{query/index.js → query.js} +6 -42
  171. package/dist/api/controllers/user.js +1 -37
  172. package/dist/api/controllers/webhook.js +0 -4
  173. package/dist/api/routes/query.js +32 -2
  174. package/dist/api/routes/user.js +1 -3
  175. package/dist/automations/steps/outgoingWebhook.js +3 -2
  176. package/dist/automations/utils.js +0 -10
  177. package/dist/db/utils.js +0 -8
  178. package/dist/definitions/datasource.js +1 -6
  179. package/dist/integrations/rest.js +117 -207
  180. package/dist/package.json +4 -10
  181. package/dist/threads/query.js +2 -14
  182. package/dist/tsconfig.tsbuildinfo +1 -1
  183. package/dist/utilities/index.js +0 -10
  184. package/package.json +5 -11
  185. package/src/api/controllers/automation.js +4 -8
  186. package/src/api/controllers/{query/index.js → query.js} +6 -50
  187. package/src/api/controllers/user.js +0 -33
  188. package/src/api/controllers/webhook.js +0 -4
  189. package/src/api/routes/query.js +34 -5
  190. package/src/api/routes/user.js +0 -10
  191. package/src/automations/steps/outgoingWebhook.js +3 -2
  192. package/src/automations/utils.js +0 -11
  193. package/src/db/utils.js +0 -9
  194. package/src/definitions/common.ts +16 -2
  195. package/src/definitions/datasource.ts +1 -73
  196. package/src/integrations/base/IntegrationBase.ts +4 -4
  197. package/src/integrations/oracle.ts +1 -1
  198. package/src/integrations/rest.ts +137 -227
  199. package/src/integrations/tests/rest.spec.js +19 -167
  200. package/src/threads/query.js +2 -19
  201. package/src/utilities/index.js +0 -11
  202. package/builder/assets/bb-spaceship.8f6e81e1.svg +0 -227
  203. package/coverage/lcov-report/api/controllers/query/index.html +0 -126
  204. package/coverage/lcov-report/api/controllers/query/validation.js.html +0 -203
  205. package/dist/api/controllers/query/import/index.js +0 -79
  206. package/dist/api/controllers/query/import/sources/base/index.js +0 -63
  207. package/dist/api/controllers/query/import/sources/base/openapi.js +0 -42
  208. package/dist/api/controllers/query/import/sources/curl.js +0 -90
  209. package/dist/api/controllers/query/import/sources/openapi2.js +0 -139
  210. package/dist/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +0 -253
  211. package/dist/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +0 -1054
  212. package/dist/api/controllers/query/validation.js +0 -37
  213. package/src/api/controllers/query/import/index.ts +0 -85
  214. package/src/api/controllers/query/import/sources/base/index.ts +0 -85
  215. package/src/api/controllers/query/import/sources/base/openapi.ts +0 -24
  216. package/src/api/controllers/query/import/sources/curl.ts +0 -94
  217. package/src/api/controllers/query/import/sources/openapi2.ts +0 -159
  218. package/src/api/controllers/query/import/sources/tests/curl/curl.spec.js +0 -104
  219. package/src/api/controllers/query/import/sources/tests/curl/data/delete.txt +0 -1
  220. package/src/api/controllers/query/import/sources/tests/curl/data/empty-body.txt +0 -2
  221. package/src/api/controllers/query/import/sources/tests/curl/data/get.txt +0 -1
  222. package/src/api/controllers/query/import/sources/tests/curl/data/headers.txt +0 -3
  223. package/src/api/controllers/query/import/sources/tests/curl/data/patch.txt +0 -2
  224. package/src/api/controllers/query/import/sources/tests/curl/data/path.txt +0 -1
  225. package/src/api/controllers/query/import/sources/tests/curl/data/post.txt +0 -2
  226. package/src/api/controllers/query/import/sources/tests/curl/data/put.txt +0 -2
  227. package/src/api/controllers/query/import/sources/tests/curl/data/query.txt +0 -1
  228. package/src/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +0 -253
  229. package/src/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.yaml +0 -160
  230. package/src/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +0 -1054
  231. package/src/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.yaml +0 -711
  232. package/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js +0 -239
  233. package/src/api/controllers/query/import/tests/index.spec.js +0 -115
  234. package/src/api/controllers/query/validation.js +0 -41
@@ -12,12 +12,10 @@ const CouchDB = require("../../db");
12
12
  const actions = require("../../automations/actions");
13
13
  const triggers = require("../../automations/triggers");
14
14
  const { getAutomationParams, generateAutomationID } = require("../../db/utils");
15
- const { checkForWebhooks, updateTestHistory, removeDeprecated, } = require("../../automations/utils");
15
+ const { checkForWebhooks, updateTestHistory, } = require("../../automations/utils");
16
16
  const { deleteEntityMetadata } = require("../../utilities");
17
17
  const { MetadataTypes } = require("../../constants");
18
18
  const { setTestFlag, clearTestFlag } = require("../../utilities/redis");
19
- const ACTION_DEFS = removeDeprecated(actions.ACTION_DEFINITIONS);
20
- const TRIGGER_DEFS = removeDeprecated(triggers.TRIGGER_DEFINITIONS);
21
19
  /*************************
22
20
  * *
23
21
  * BUILDER FUNCTIONS *
@@ -139,19 +137,19 @@ exports.destroy = function (ctx) {
139
137
  };
140
138
  exports.getActionList = function (ctx) {
141
139
  return __awaiter(this, void 0, void 0, function* () {
142
- ctx.body = ACTION_DEFS;
140
+ ctx.body = actions.ACTION_DEFINITIONS;
143
141
  });
144
142
  };
145
143
  exports.getTriggerList = function (ctx) {
146
144
  return __awaiter(this, void 0, void 0, function* () {
147
- ctx.body = TRIGGER_DEFS;
145
+ ctx.body = triggers.TRIGGER_DEFINITIONS;
148
146
  });
149
147
  };
150
148
  module.exports.getDefinitionList = function (ctx) {
151
149
  return __awaiter(this, void 0, void 0, function* () {
152
150
  ctx.body = {
153
- trigger: TRIGGER_DEFS,
154
- action: ACTION_DEFS,
151
+ trigger: triggers.TRIGGER_DEFINITIONS,
152
+ action: actions.ACTION_DEFINITIONS,
155
153
  };
156
154
  });
157
155
  };
@@ -9,12 +9,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const { processString } = require("@budibase/string-templates");
12
- const CouchDB = require("../../../db");
13
- const { generateQueryID, getQueryParams, isProdAppID, } = require("../../../db/utils");
14
- const { BaseQueryVerbs } = require("../../../constants");
15
- const { Thread, ThreadType } = require("../../../threads");
16
- const { save: saveDatasource } = require("../datasource");
17
- const { RestImporter } = require("./import");
12
+ const CouchDB = require("../../db");
13
+ const { generateQueryID, getQueryParams, isProdAppID, } = require("../../db/utils");
14
+ const { BaseQueryVerbs } = require("../../constants");
15
+ const { Thread, ThreadType } = require("../../threads");
18
16
  const Runner = new Thread(ThreadType.QUERY, { timeoutMs: 10000 });
19
17
  // simple function to append "readable" to all read queries
20
18
  function enrichQueries(input) {
@@ -36,38 +34,6 @@ exports.fetch = function (ctx) {
36
34
  ctx.body = enrichQueries(body.rows.map(row => row.doc));
37
35
  });
38
36
  };
39
- exports.import = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
40
- const body = ctx.request.body;
41
- const data = body.data;
42
- const importer = new RestImporter(data);
43
- yield importer.init();
44
- let datasourceId;
45
- if (!body.datasourceId) {
46
- // construct new datasource
47
- const info = yield importer.getInfo();
48
- let datasource = {
49
- type: "datasource",
50
- source: "REST",
51
- config: {
52
- url: info.url,
53
- defaultHeaders: [],
54
- },
55
- name: info.name,
56
- };
57
- // save the datasource
58
- const datasourceCtx = Object.assign({}, ctx);
59
- datasourceCtx.request.body.datasource = datasource;
60
- yield saveDatasource(datasourceCtx);
61
- datasourceId = datasourceCtx.body.datasource._id;
62
- }
63
- else {
64
- // use existing datasource
65
- datasourceId = body.datasourceId;
66
- }
67
- const importResult = yield importer.importQueries(ctx.appId, datasourceId);
68
- ctx.body = Object.assign(Object.assign({}, importResult), { datasourceId });
69
- ctx.status = 200;
70
- });
71
37
  exports.save = function (ctx) {
72
38
  return __awaiter(this, void 0, void 0, function* () {
73
39
  const db = new CouchDB(ctx.appId);
@@ -112,7 +78,7 @@ function enrichQueryFields(fields, parameters = {}) {
112
78
  enrichedQuery.requestBody);
113
79
  }
114
80
  catch (err) {
115
- // no json found, ignore
81
+ throw { message: `JSON Invalid - error: ${err}` };
116
82
  }
117
83
  delete enrichedQuery.customData;
118
84
  }
@@ -138,7 +104,7 @@ exports.preview = function (ctx) {
138
104
  const { fields, parameters, queryVerb, transformer } = ctx.request.body;
139
105
  const enrichedQuery = yield enrichQueryFields(fields, parameters);
140
106
  try {
141
- const { rows, keys, info, extra } = yield Runner.run({
107
+ const { rows, keys } = yield Runner.run({
142
108
  datasource,
143
109
  queryVerb,
144
110
  query: enrichedQuery,
@@ -147,8 +113,6 @@ exports.preview = function (ctx) {
147
113
  ctx.body = {
148
114
  rows,
149
115
  schemaFields: [...new Set(keys)],
150
- info,
151
- extra,
152
116
  };
153
117
  }
154
118
  catch (err) {
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const CouchDB = require("../../db");
12
- const { generateUserMetadataID, getUserMetadataParams, generateUserFlagID, } = require("../../db/utils");
12
+ const { generateUserMetadataID, getUserMetadataParams, } = require("../../db/utils");
13
13
  const { InternalTables } = require("../../db/utils");
14
14
  const { getGlobalUsers, getRawGlobalUser } = require("../../utilities/global");
15
15
  const { getFullUser } = require("../../utilities/users");
@@ -189,39 +189,3 @@ exports.findMetadata = function (ctx) {
189
189
  ctx.body = yield getFullUser(ctx, ctx.params.id);
190
190
  });
191
191
  };
192
- exports.setFlag = function (ctx) {
193
- return __awaiter(this, void 0, void 0, function* () {
194
- const userId = ctx.user._id;
195
- const { flag, value } = ctx.request.body;
196
- if (!flag) {
197
- ctx.throw(400, "Must supply a 'flag' field in request body.");
198
- }
199
- const flagDocId = generateUserFlagID(userId);
200
- const db = new CouchDB(ctx.appId);
201
- let doc;
202
- try {
203
- doc = yield db.get(flagDocId);
204
- }
205
- catch (err) {
206
- doc = { _id: flagDocId };
207
- }
208
- doc[flag] = value || true;
209
- yield db.put(doc);
210
- ctx.body = { message: "Flag set successfully" };
211
- });
212
- };
213
- exports.getFlags = function (ctx) {
214
- return __awaiter(this, void 0, void 0, function* () {
215
- const userId = ctx.user._id;
216
- const docId = generateUserFlagID(userId);
217
- const db = new CouchDB(ctx.appId);
218
- let doc;
219
- try {
220
- doc = yield db.get(docId);
221
- }
222
- catch (err) {
223
- doc = { _id: docId };
224
- }
225
- ctx.body = doc;
226
- });
227
- };
@@ -65,10 +65,6 @@ exports.buildSchema = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
65
65
  let automation = yield db.get(webhook.action.target);
66
66
  const autoOutputs = automation.definition.trigger.schema.outputs;
67
67
  let properties = webhook.bodySchema.properties;
68
- // reset webhook outputs
69
- autoOutputs.properties = {
70
- body: autoOutputs.properties.body,
71
- };
72
68
  for (let prop of Object.keys(properties)) {
73
69
  autoOutputs.properties[prop] = {
74
70
  type: properties[prop].type,
@@ -2,14 +2,44 @@
2
2
  const Router = require("@koa/router");
3
3
  const queryController = require("../controllers/query");
4
4
  const authorized = require("../../middleware/authorized");
5
+ const Joi = require("joi");
5
6
  const { PermissionLevels, PermissionTypes, BUILDER, } = require("@budibase/auth/permissions");
7
+ const joiValidator = require("../../middleware/joi-validator");
6
8
  const { bodyResource, bodySubResource, paramResource, } = require("../../middleware/resourceId");
7
- const { generateQueryPreviewValidation, generateQueryValidation, } = require("../controllers/query/validation");
8
9
  const router = Router();
10
+ function generateQueryValidation() {
11
+ // prettier-ignore
12
+ return joiValidator.body(Joi.object({
13
+ _id: Joi.string(),
14
+ _rev: Joi.string(),
15
+ name: Joi.string().required(),
16
+ fields: Joi.object().required(),
17
+ datasourceId: Joi.string().required(),
18
+ readable: Joi.boolean(),
19
+ parameters: Joi.array().items(Joi.object({
20
+ name: Joi.string(),
21
+ default: Joi.string().allow(""),
22
+ })),
23
+ queryVerb: Joi.string().allow().required(),
24
+ extra: Joi.object().optional(),
25
+ schema: Joi.object({}).required().unknown(true),
26
+ transformer: Joi.string().optional(),
27
+ }));
28
+ }
29
+ function generateQueryPreviewValidation() {
30
+ // prettier-ignore
31
+ return joiValidator.body(Joi.object({
32
+ fields: Joi.object().required(),
33
+ queryVerb: Joi.string().allow().required(),
34
+ extra: Joi.object().optional(),
35
+ datasourceId: Joi.string().required(),
36
+ transformer: Joi.string().optional(),
37
+ parameters: Joi.object({}).required().unknown(true)
38
+ }));
39
+ }
9
40
  router
10
41
  .get("/api/queries", authorized(BUILDER), queryController.fetch)
11
42
  .post("/api/queries", bodySubResource("datasourceId", "_id"), authorized(BUILDER), generateQueryValidation(), queryController.save)
12
- .post("/api/queries/import", authorized(BUILDER), queryController.import)
13
43
  .post("/api/queries/preview", bodyResource("datasourceId"), authorized(BUILDER), generateQueryPreviewValidation(), queryController.preview)
14
44
  .get("/api/queries/:queryId", paramResource("queryId"), authorized(PermissionTypes.QUERY, PermissionLevels.READ), queryController.find)
15
45
  .post("/api/queries/:queryId", paramResource("queryId"), authorized(PermissionTypes.QUERY, PermissionLevels.WRITE), queryController.execute)
@@ -10,7 +10,5 @@ router
10
10
  .put("/api/users/metadata", authorized(PermissionTypes.USER, PermissionLevels.WRITE), controller.updateMetadata)
11
11
  .post("/api/users/metadata/self", authorized(PermissionTypes.USER, PermissionLevels.WRITE), controller.updateSelfMetadata)
12
12
  .delete("/api/users/metadata/:id", authorized(PermissionTypes.USER, PermissionLevels.WRITE), controller.destroyMetadata)
13
- .post("/api/users/metadata/sync/:id", authorized(PermissionTypes.USER, PermissionLevels.WRITE), controller.syncUser)
14
- .post("/api/users/flags", authorized(PermissionTypes.USER, PermissionLevels.WRITE), controller.setFlag)
15
- .get("/api/users/flags", authorized(PermissionTypes.USER, PermissionLevels.READ), controller.getFlags);
13
+ .post("/api/users/metadata/sync/:id", authorized(PermissionTypes.USER, PermissionLevels.WRITE), controller.syncUser);
16
14
  module.exports = router;
@@ -20,10 +20,11 @@ const RequestType = {
20
20
  };
21
21
  const BODY_REQUESTS = [RequestType.POST, RequestType.PUT, RequestType.PATCH];
22
22
  /**
23
- * NOTE: this functionality is deprecated - it no longer should be used.
23
+ * Note, there is some functionality in this that is not currently exposed as it
24
+ * is complex and maybe better to be opinionated here.
25
+ * GET/DELETE requests cannot handle body elements so they will not be sent if configured.
24
26
  */
25
27
  exports.definition = {
26
- deprecated: true,
27
28
  name: "Outgoing webhook",
28
29
  tagline: "Send a {{inputs.requestMethod}} request",
29
30
  icon: "Send",
@@ -17,7 +17,6 @@ const newid = require("../db/newid");
17
17
  const { updateEntityMetadata } = require("../utilities");
18
18
  const { MetadataTypes } = require("../constants");
19
19
  const { getDeployedAppID } = require("@budibase/auth/db");
20
- const { cloneDeep } = require("lodash/fp");
21
20
  const WH_STEP_ID = definitions.WEBHOOK.stepId;
22
21
  const CRON_STEP_ID = definitions.CRON.stepId;
23
22
  const Runner = new Thread(ThreadType.AUTOMATION);
@@ -44,15 +43,6 @@ exports.updateTestHistory = (appId, automation, history) => __awaiter(void 0, vo
44
43
  return metadata;
45
44
  });
46
45
  });
47
- exports.removeDeprecated = definitions => {
48
- const base = cloneDeep(definitions);
49
- for (let key of Object.keys(base)) {
50
- if (base[key].deprecated) {
51
- delete base[key];
52
- }
53
- }
54
- return base;
55
- };
56
46
  // end the repetition and the job itself
57
47
  exports.disableAllCrons = (appId) => __awaiter(void 0, void 0, void 0, function* () {
58
48
  const promises = [];
package/dist/db/utils.js CHANGED
@@ -28,7 +28,6 @@ const DocumentTypes = {
28
28
  DEPLOYMENTS: "deployments",
29
29
  METADATA: "metadata",
30
30
  MEM_VIEW: "view",
31
- USER_FLAG: "flag",
32
31
  };
33
32
  const ViewNames = {
34
33
  LINK: "by_link",
@@ -272,13 +271,6 @@ exports.getQueryParams = (datasourceId = null, otherProps = {}) => {
272
271
  }
273
272
  return getDocParams(DocumentTypes.QUERY, `${datasourceId}${SEPARATOR}`, otherProps);
274
273
  };
275
- /**
276
- * Generates a new flag document ID.
277
- * @returns {string} The ID of the flag document that was generated.
278
- */
279
- exports.generateUserFlagID = userId => {
280
- return `${DocumentTypes.USER_FLAG}${SEPARATOR}${userId}`;
281
- };
282
274
  exports.generateMetadataID = (type, entityId) => {
283
275
  return `${DocumentTypes.METADATA}${SEPARATOR}${type}${SEPARATOR}${entityId}`;
284
276
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AuthType = exports.FilterTypes = exports.IncludeRelationships = exports.SourceNames = exports.DatasourceFieldTypes = exports.QueryTypes = exports.SortDirection = exports.Operation = void 0;
3
+ exports.FilterTypes = exports.IncludeRelationships = exports.SourceNames = exports.DatasourceFieldTypes = exports.QueryTypes = exports.SortDirection = exports.Operation = void 0;
4
4
  var Operation;
5
5
  (function (Operation) {
6
6
  Operation["CREATE"] = "CREATE";
@@ -66,8 +66,3 @@ var FilterTypes;
66
66
  FilterTypes["NOT_EMPTY"] = "notEmpty";
67
67
  FilterTypes["ONE_OF"] = "oneOf";
68
68
  })(FilterTypes = exports.FilterTypes || (exports.FilterTypes = {}));
69
- var AuthType;
70
- (function (AuthType) {
71
- AuthType["BASIC"] = "basic";
72
- AuthType["BEARER"] = "bearer";
73
- })(AuthType = exports.AuthType || (exports.AuthType = {}));