@budibase/server 1.0.79-alpha.7 → 1.0.79

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 (296) hide show
  1. package/__mocks__/mysql2/promise.ts +17 -0
  2. package/__mocks__/node-fetch.ts +0 -1
  3. package/builder/assets/{index.c57242d4.css → index.c8d1e8f0.css} +2 -2
  4. package/builder/assets/index.f28c5d54.js +1352 -0
  5. package/builder/assets/{vendor.6b00a24f.js → vendor.20f80cec.js} +216 -190
  6. package/builder/index.html +3 -3
  7. package/coverage/clover.xml +2229 -2277
  8. package/coverage/coverage-final.json +136 -137
  9. package/coverage/lcov-report/api/controllers/analytics.js.html +6 -6
  10. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  11. package/coverage/lcov-report/api/controllers/application.js.html +149 -152
  12. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  13. package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
  14. package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
  15. package/coverage/lcov-report/api/controllers/cloud.js.html +11 -11
  16. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  17. package/coverage/lcov-report/api/controllers/datasource.js.html +16 -16
  18. package/coverage/lcov-report/api/controllers/dev.js.html +19 -19
  19. package/coverage/lcov-report/api/controllers/index.html +16 -16
  20. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  21. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  22. package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
  23. package/coverage/lcov-report/api/controllers/migrations.js.html +4 -4
  24. package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
  25. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/query/index.js.html +26 -26
  27. package/coverage/lcov-report/api/controllers/query/validation.js.html +10 -10
  28. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  29. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  30. package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
  31. package/coverage/lcov-report/api/controllers/row/index.html +27 -27
  32. package/coverage/lcov-report/api/controllers/row/index.js.html +46 -46
  33. package/coverage/lcov-report/api/controllers/row/internal.js.html +82 -94
  34. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +204 -204
  35. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +24 -24
  36. package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -29
  37. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  38. package/coverage/lcov-report/api/controllers/script.js.html +4 -4
  39. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +49 -49
  40. package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
  41. package/coverage/lcov-report/api/controllers/table/index.html +11 -11
  42. package/coverage/lcov-report/api/controllers/table/index.js.html +44 -47
  43. package/coverage/lcov-report/api/controllers/table/internal.js.html +50 -50
  44. package/coverage/lcov-report/api/controllers/table/utils.js.html +80 -80
  45. package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
  46. package/coverage/lcov-report/api/controllers/user.js.html +19 -19
  47. package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
  48. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  49. package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
  50. package/coverage/lcov-report/api/controllers/view/utils.js.html +12 -12
  51. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
  52. package/coverage/lcov-report/api/controllers/webhook.js.html +27 -18
  53. package/coverage/lcov-report/api/index.html +10 -10
  54. package/coverage/lcov-report/api/index.js.html +28 -37
  55. package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
  56. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  57. package/coverage/lcov-report/api/routes/application.js.html +9 -9
  58. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  59. package/coverage/lcov-report/api/routes/automation.js.html +109 -19
  60. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  61. package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
  62. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  63. package/coverage/lcov-report/api/routes/datasource.js.html +156 -18
  64. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  65. package/coverage/lcov-report/api/routes/dev.js.html +13 -13
  66. package/coverage/lcov-report/api/routes/index.html +35 -35
  67. package/coverage/lcov-report/api/routes/index.js.html +32 -38
  68. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  69. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  70. package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
  71. package/coverage/lcov-report/api/routes/migrations.js.html +7 -7
  72. package/coverage/lcov-report/api/routes/permission.js.html +58 -16
  73. package/coverage/lcov-report/api/routes/query.js.html +10 -10
  74. package/coverage/lcov-report/api/routes/role.js.html +78 -15
  75. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  76. package/coverage/lcov-report/api/routes/row.js.html +14 -17
  77. package/coverage/lcov-report/api/routes/screen.js.html +95 -14
  78. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/static.js.html +13 -13
  80. package/coverage/lcov-report/api/routes/table.js.html +62 -17
  81. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  82. package/coverage/lcov-report/api/routes/user.js.html +8 -8
  83. package/coverage/lcov-report/api/routes/view.js.html +10 -10
  84. package/coverage/lcov-report/api/routes/webhook.js.html +62 -14
  85. package/coverage/lcov-report/automations/actions.js.html +24 -24
  86. package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
  87. package/coverage/lcov-report/automations/bullboard.js.html +16 -16
  88. package/coverage/lcov-report/automations/index.html +1 -1
  89. package/coverage/lcov-report/automations/index.js.html +7 -7
  90. package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
  91. package/coverage/lcov-report/automations/steps/createRow.js.html +7 -7
  92. package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
  93. package/coverage/lcov-report/automations/steps/deleteRow.js.html +7 -7
  94. package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
  95. package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
  96. package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
  97. package/coverage/lcov-report/automations/steps/filter.js.html +9 -12
  98. package/coverage/lcov-report/automations/steps/index.html +1 -1
  99. package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
  100. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
  101. package/coverage/lcov-report/automations/steps/queryRows.js.html +11 -11
  102. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
  103. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
  104. package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
  105. package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
  106. package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
  107. package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
  108. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  109. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  110. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  111. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  112. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  114. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  115. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  116. package/coverage/lcov-report/automations/triggers.js.html +26 -26
  117. package/coverage/lcov-report/automations/utils.js.html +35 -35
  118. package/coverage/lcov-report/constants/index.html +5 -5
  119. package/coverage/lcov-report/constants/index.js.html +28 -40
  120. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  121. package/coverage/lcov-report/constants/screens.js.html +4 -4
  122. package/coverage/lcov-report/db/client.js.html +18 -18
  123. package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
  124. package/coverage/lcov-report/db/index.html +15 -15
  125. package/coverage/lcov-report/db/index.js.html +3 -3
  126. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +21 -21
  127. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  128. package/coverage/lcov-report/db/linkedRows/index.js.html +36 -36
  129. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +30 -30
  130. package/coverage/lcov-report/db/newid.js.html +4 -4
  131. package/coverage/lcov-report/db/utils.js.html +87 -123
  132. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  133. package/coverage/lcov-report/events/index.html +1 -1
  134. package/coverage/lcov-report/events/index.js.html +8 -8
  135. package/coverage/lcov-report/events/utils.js.html +18 -18
  136. package/coverage/lcov-report/index.html +64 -79
  137. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  138. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  139. package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
  140. package/coverage/lcov-report/middleware/authorized.js.html +29 -29
  141. package/coverage/lcov-report/middleware/builder.js.html +16 -16
  142. package/coverage/lcov-report/middleware/currentapp.js.html +44 -44
  143. package/coverage/lcov-report/middleware/index.html +1 -1
  144. package/coverage/lcov-report/middleware/joi-validator.js.html +14 -14
  145. package/coverage/lcov-report/middleware/resourceId.js.html +29 -29
  146. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  147. package/coverage/lcov-report/middleware/usageQuota.js.html +17 -17
  148. package/coverage/lcov-report/middleware/utils.js.html +4 -4
  149. package/coverage/lcov-report/threads/automation.js.html +1 -1
  150. package/coverage/lcov-report/threads/index.html +1 -1
  151. package/coverage/lcov-report/threads/index.js.html +10 -10
  152. package/coverage/lcov-report/threads/query.js.html +1 -1
  153. package/coverage/lcov-report/threads/utils.js.html +14 -14
  154. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  155. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  156. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  157. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  158. package/coverage/lcov-report/utilities/global.js.html +28 -28
  159. package/coverage/lcov-report/utilities/index.html +18 -18
  160. package/coverage/lcov-report/utilities/index.js.html +24 -24
  161. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +9 -9
  162. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  163. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  164. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  165. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  166. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +60 -60
  167. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +13 -13
  168. package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
  169. package/coverage/lcov-report/utilities/security.js.html +8 -8
  170. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  171. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  172. package/coverage/lcov-report/utilities/usageQuota/index.js.html +12 -12
  173. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +8 -8
  174. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  175. package/coverage/lcov-report/utilities/users.js.html +5 -5
  176. package/coverage/lcov-report/utilities/workerRequests.js.html +53 -200
  177. package/coverage/lcov.info +3039 -3115
  178. package/dist/api/controllers/application.js +0 -1
  179. package/dist/api/controllers/row/internal.js +1 -4
  180. package/dist/api/controllers/table/index.js +1 -2
  181. package/dist/api/controllers/webhook.js +5 -3
  182. package/dist/api/index.js +1 -3
  183. package/dist/api/routes/automation.js +31 -3
  184. package/dist/api/routes/datasource.js +50 -3
  185. package/dist/api/routes/index.js +0 -2
  186. package/dist/api/routes/permission.js +14 -4
  187. package/dist/api/routes/role.js +19 -3
  188. package/dist/api/routes/row.js +4 -3
  189. package/dist/api/routes/screen.js +23 -2
  190. package/dist/api/routes/table.js +17 -3
  191. package/dist/api/routes/tests/utilities/index.js +0 -23
  192. package/dist/api/routes/webhook.js +17 -2
  193. package/dist/automations/steps/filter.js +2 -2
  194. package/dist/automations/steps/queryRows.js +1 -1
  195. package/dist/automations/utils.js +2 -2
  196. package/dist/constants/index.js +0 -3
  197. package/dist/db/utils.js +0 -11
  198. package/dist/integrations/mysql.js +81 -65
  199. package/dist/integrations/utils.js +1 -1
  200. package/dist/package.json +4 -8
  201. package/dist/tests/utilities/TestConfiguration.js +8 -25
  202. package/dist/tsconfig.tsbuildinfo +1 -1
  203. package/dist/utilities/workerRequests.js +15 -50
  204. package/package.json +5 -9
  205. package/scripts/integrations/postgres/init.sql +3 -5
  206. package/scripts/likeCypress.ts +6 -9
  207. package/src/api/controllers/application.js +0 -1
  208. package/src/api/controllers/row/internal.js +0 -4
  209. package/src/api/controllers/table/index.js +1 -2
  210. package/src/api/controllers/webhook.js +6 -3
  211. package/src/api/index.js +1 -4
  212. package/src/api/routes/automation.js +33 -3
  213. package/src/api/routes/datasource.js +52 -6
  214. package/src/api/routes/index.js +0 -2
  215. package/src/api/routes/permission.js +18 -4
  216. package/src/api/routes/role.js +24 -3
  217. package/src/api/routes/row.js +2 -3
  218. package/src/api/routes/screen.js +29 -2
  219. package/src/api/routes/table.js +19 -4
  220. package/src/api/routes/tests/utilities/index.js +0 -24
  221. package/src/api/routes/webhook.js +18 -2
  222. package/src/automations/steps/filter.js +2 -3
  223. package/src/automations/steps/queryRows.js +1 -1
  224. package/src/automations/utils.js +2 -2
  225. package/src/constants/index.js +0 -4
  226. package/src/db/utils.js +0 -12
  227. package/src/definitions/common.ts +0 -4
  228. package/src/integrations/mysql.ts +92 -85
  229. package/src/integrations/tests/mysql.spec.js +4 -4
  230. package/src/integrations/utils.ts +1 -1
  231. package/src/tests/utilities/TestConfiguration.js +2 -23
  232. package/src/utilities/workerRequests.js +16 -65
  233. package/builder/assets/index.ef62c13b.js +0 -1288
  234. package/coverage/lcov-report/api/routes/utils/index.html +0 -111
  235. package/coverage/lcov-report/api/routes/utils/validators.js.html +0 -737
  236. package/dist/api/controllers/public/applications.js +0 -94
  237. package/dist/api/controllers/public/mapping/applications.js +0 -29
  238. package/dist/api/controllers/public/mapping/index.js +0 -11
  239. package/dist/api/controllers/public/mapping/queries.js +0 -36
  240. package/dist/api/controllers/public/mapping/rows.js +0 -24
  241. package/dist/api/controllers/public/mapping/tables.js +0 -23
  242. package/dist/api/controllers/public/mapping/types.js +0 -2
  243. package/dist/api/controllers/public/mapping/users.js +0 -29
  244. package/dist/api/controllers/public/queries.js +0 -38
  245. package/dist/api/controllers/public/rows.js +0 -97
  246. package/dist/api/controllers/public/tables.js +0 -75
  247. package/dist/api/controllers/public/users.js +0 -95
  248. package/dist/api/controllers/public/utils.js +0 -49
  249. package/dist/api/routes/public/applications.js +0 -141
  250. package/dist/api/routes/public/index.js +0 -68
  251. package/dist/api/routes/public/middleware/mapper.js +0 -94
  252. package/dist/api/routes/public/queries.js +0 -77
  253. package/dist/api/routes/public/rows.js +0 -229
  254. package/dist/api/routes/public/tables.js +0 -154
  255. package/dist/api/routes/public/users.js +0 -137
  256. package/dist/api/routes/public/utils/Endpoint.js +0 -36
  257. package/dist/api/routes/utils/validators.js +0 -200
  258. package/dist/definitions/openapi.js +0 -6
  259. package/specs/generate.js +0 -83
  260. package/specs/openapi.json +0 -2222
  261. package/specs/openapi.yaml +0 -1530
  262. package/specs/parameters.js +0 -59
  263. package/specs/resources/application.js +0 -101
  264. package/specs/resources/index.js +0 -24
  265. package/specs/resources/misc.js +0 -12
  266. package/specs/resources/query.js +0 -189
  267. package/specs/resources/row.js +0 -125
  268. package/specs/resources/table.js +0 -191
  269. package/specs/resources/user.js +0 -126
  270. package/specs/resources/utils/Resource.js +0 -26
  271. package/specs/resources/utils/index.js +0 -11
  272. package/specs/security.js +0 -7
  273. package/src/api/controllers/public/applications.ts +0 -74
  274. package/src/api/controllers/public/mapping/applications.ts +0 -32
  275. package/src/api/controllers/public/mapping/index.ts +0 -13
  276. package/src/api/controllers/public/mapping/queries.ts +0 -39
  277. package/src/api/controllers/public/mapping/rows.ts +0 -31
  278. package/src/api/controllers/public/mapping/tables.ts +0 -26
  279. package/src/api/controllers/public/mapping/types.ts +0 -13
  280. package/src/api/controllers/public/mapping/users.ts +0 -32
  281. package/src/api/controllers/public/queries.ts +0 -20
  282. package/src/api/controllers/public/rows.ts +0 -77
  283. package/src/api/controllers/public/tables.ts +0 -56
  284. package/src/api/controllers/public/users.ts +0 -82
  285. package/src/api/controllers/public/utils.ts +0 -38
  286. package/src/api/routes/public/applications.ts +0 -156
  287. package/src/api/routes/public/index.ts +0 -82
  288. package/src/api/routes/public/middleware/mapper.ts +0 -81
  289. package/src/api/routes/public/queries.ts +0 -81
  290. package/src/api/routes/public/rows.ts +0 -242
  291. package/src/api/routes/public/tables.ts +0 -169
  292. package/src/api/routes/public/tests/compare.spec.js +0 -184
  293. package/src/api/routes/public/users.ts +0 -144
  294. package/src/api/routes/public/utils/Endpoint.ts +0 -51
  295. package/src/api/routes/utils/validators.js +0 -219
  296. package/src/definitions/openapi.ts +0 -943
@@ -1,141 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const applications_1 = __importDefault(require("../../controllers/public/applications"));
7
- const Endpoint_1 = __importDefault(require("./utils/Endpoint"));
8
- const { nameValidator, applicationValidator } = require("../utils/validators");
9
- const read = [], write = [];
10
- /**
11
- * @openapi
12
- * /applications:
13
- * post:
14
- * summary: Create an application
15
- * tags:
16
- * - applications
17
- * parameters:
18
- * - $ref: '#/components/parameters/appId'
19
- * requestBody:
20
- * required: true
21
- * content:
22
- * application/json:
23
- * schema:
24
- * $ref: '#/components/schemas/application'
25
- * responses:
26
- * 200:
27
- * description: Returns the created application.
28
- * content:
29
- * application/json:
30
- * schema:
31
- * $ref: '#/components/schemas/applicationOutput'
32
- * examples:
33
- * application:
34
- * $ref: '#/components/examples/application'
35
- */
36
- write.push(new Endpoint_1.default("post", "/applications", applications_1.default.create).addMiddleware(applicationValidator()));
37
- /**
38
- * @openapi
39
- * /applications/{appId}:
40
- * put:
41
- * summary: Update an application
42
- * tags:
43
- * - applications
44
- * parameters:
45
- * - $ref: '#/components/parameters/appIdUrl'
46
- * requestBody:
47
- * required: true
48
- * content:
49
- * application/json:
50
- * schema:
51
- * $ref: '#/components/schemas/application'
52
- * responses:
53
- * 200:
54
- * description: Returns the updated application.
55
- * content:
56
- * application/json:
57
- * schema:
58
- * $ref: '#/components/schemas/applicationOutput'
59
- * examples:
60
- * application:
61
- * $ref: '#/components/examples/application'
62
- */
63
- write.push(new Endpoint_1.default("put", "/applications/:appId", applications_1.default.update).addMiddleware(applicationValidator()));
64
- /**
65
- * @openapi
66
- * /applications/{appId}:
67
- * delete:
68
- * summary: Delete an application
69
- * tags:
70
- * - applications
71
- * parameters:
72
- * - $ref: '#/components/parameters/appIdUrl'
73
- * responses:
74
- * 200:
75
- * description: Returns the deleted application.
76
- * content:
77
- * application/json:
78
- * schema:
79
- * $ref: '#/components/schemas/applicationOutput'
80
- * examples:
81
- * application:
82
- * $ref: '#/components/examples/application'
83
- */
84
- write.push(new Endpoint_1.default("delete", "/applications/:appId", applications_1.default.destroy));
85
- /**
86
- * @openapi
87
- * /applications/{appId}:
88
- * get:
89
- * summary: Retrieve an application
90
- * tags:
91
- * - applications
92
- * parameters:
93
- * - $ref: '#/components/parameters/appIdUrl'
94
- * responses:
95
- * 200:
96
- * description: Returns the retrieved application.
97
- * content:
98
- * application/json:
99
- * schema:
100
- * $ref: '#/components/schemas/applicationOutput'
101
- * examples:
102
- * application:
103
- * $ref: '#/components/examples/application'
104
- */
105
- read.push(new Endpoint_1.default("get", "/applications/:appId", applications_1.default.read));
106
- /**
107
- * @openapi
108
- * /applications/search:
109
- * post:
110
- * summary: Search for applications
111
- * description: Based on application properties (currently only name) search for applications.
112
- * tags:
113
- * - applications
114
- * parameters:
115
- * - $ref: '#/components/parameters/appId'
116
- * requestBody:
117
- * required: true
118
- * content:
119
- * application/json:
120
- * schema:
121
- * $ref: '#/components/schemas/nameSearch'
122
- * responses:
123
- * 200:
124
- * description: Returns the applications that were found based on the search parameters.
125
- * content:
126
- * application/json:
127
- * schema:
128
- * type: object
129
- * required:
130
- * - data
131
- * properties:
132
- * data:
133
- * type: array
134
- * items:
135
- * $ref: '#/components/schemas/application'
136
- * examples:
137
- * applications:
138
- * $ref: '#/components/examples/applications'
139
- */
140
- read.push(new Endpoint_1.default("post", "/applications/search", applications_1.default.search).addMiddleware(nameValidator()));
141
- exports.default = { read, write };
@@ -1,68 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const applications_1 = __importDefault(require("./applications"));
7
- const queries_1 = __importDefault(require("./queries"));
8
- const tables_1 = __importDefault(require("./tables"));
9
- const rows_1 = __importDefault(require("./rows"));
10
- const users_1 = __importDefault(require("./users"));
11
- const usageQuota_1 = __importDefault(require("../../../middleware/usageQuota"));
12
- const authorized_1 = __importDefault(require("../../../middleware/authorized"));
13
- const resourceId_1 = require("../../../middleware/resourceId");
14
- const mapper_1 = __importDefault(require("./middleware/mapper"));
15
- const Router = require("@koa/router");
16
- const { PermissionLevels, PermissionTypes, } = require("@budibase/backend-core/permissions");
17
- const PREFIX = "/api/public/v1";
18
- const publicRouter = new Router({
19
- prefix: PREFIX,
20
- });
21
- function addMiddleware(endpoints, middleware, opts = { output: false }) {
22
- if (!endpoints) {
23
- return;
24
- }
25
- if (!Array.isArray(endpoints)) {
26
- endpoints = [endpoints];
27
- }
28
- for (let endpoint of endpoints) {
29
- if (opts === null || opts === void 0 ? void 0 : opts.output) {
30
- endpoint.addOutputMiddleware(middleware);
31
- }
32
- else {
33
- endpoint.addMiddleware(middleware);
34
- }
35
- }
36
- }
37
- function addToRouter(endpoints) {
38
- if (endpoints) {
39
- for (let endpoint of endpoints) {
40
- endpoint.apply(publicRouter);
41
- }
42
- }
43
- }
44
- function applyRoutes(endpoints, permType, resource, subResource) {
45
- const paramMiddleware = subResource
46
- ? resourceId_1.paramSubResource(resource, subResource)
47
- : resourceId_1.paramResource(resource);
48
- // add the parameter capture middleware
49
- addMiddleware(endpoints.read, paramMiddleware);
50
- addMiddleware(endpoints.write, paramMiddleware);
51
- // add the authorization middleware, using the correct perm type
52
- addMiddleware(endpoints.read, authorized_1.default(permType, PermissionLevels.READ));
53
- addMiddleware(endpoints.write, authorized_1.default(permType, PermissionLevels.WRITE));
54
- // add the usage quota middleware
55
- addMiddleware(endpoints.write, usageQuota_1.default);
56
- // add the output mapper middleware
57
- addMiddleware(endpoints.read, mapper_1.default, { output: true });
58
- addMiddleware(endpoints.write, mapper_1.default, { output: true });
59
- addToRouter(endpoints.read);
60
- addToRouter(endpoints.write);
61
- }
62
- applyRoutes(applications_1.default, PermissionTypes.APP, "appId");
63
- applyRoutes(tables_1.default, PermissionTypes.TABLE, "tableId");
64
- applyRoutes(users_1.default, PermissionTypes.USER, "userId");
65
- applyRoutes(queries_1.default, PermissionTypes.QUERY, "queryId");
66
- // needs to be applied last for routing purposes, don't override other endpoints
67
- applyRoutes(rows_1.default, PermissionTypes.TABLE, "tableId", "rowId");
68
- module.exports = publicRouter;
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- const mapping_1 = __importDefault(require("../../../controllers/public/mapping"));
16
- var Resources;
17
- (function (Resources) {
18
- Resources["APPLICATION"] = "applications";
19
- Resources["TABLES"] = "tables";
20
- Resources["ROWS"] = "rows";
21
- Resources["USERS"] = "users";
22
- Resources["QUERIES"] = "queries";
23
- Resources["SEARCH"] = "search";
24
- })(Resources || (Resources = {}));
25
- function isArrayResponse(ctx) {
26
- return ctx.url.endsWith(Resources.SEARCH) || Array.isArray(ctx.body);
27
- }
28
- function processApplications(ctx) {
29
- if (isArrayResponse(ctx)) {
30
- return mapping_1.default.mapApplications(ctx);
31
- }
32
- else {
33
- return mapping_1.default.mapApplication(ctx);
34
- }
35
- }
36
- function processTables(ctx) {
37
- if (isArrayResponse(ctx)) {
38
- return mapping_1.default.mapTables(ctx);
39
- }
40
- else {
41
- return mapping_1.default.mapTable(ctx);
42
- }
43
- }
44
- function processRows(ctx) {
45
- if (isArrayResponse(ctx)) {
46
- return mapping_1.default.mapRowSearch(ctx);
47
- }
48
- else {
49
- return mapping_1.default.mapRow(ctx);
50
- }
51
- }
52
- function processUsers(ctx) {
53
- if (isArrayResponse(ctx)) {
54
- return mapping_1.default.mapUsers(ctx);
55
- }
56
- else {
57
- return mapping_1.default.mapUser(ctx);
58
- }
59
- }
60
- function processQueries(ctx) {
61
- if (isArrayResponse(ctx)) {
62
- return mapping_1.default.mapQueries(ctx);
63
- }
64
- else {
65
- return mapping_1.default.mapQueryExecution(ctx);
66
- }
67
- }
68
- exports.default = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
69
- let urlParts = ctx.url.split("/");
70
- urlParts = urlParts.slice(4, urlParts.length);
71
- let body = {};
72
- switch (urlParts[0]) {
73
- case Resources.APPLICATION:
74
- body = processApplications(ctx);
75
- break;
76
- case Resources.TABLES:
77
- if (urlParts[2] === Resources.ROWS) {
78
- body = processRows(ctx);
79
- }
80
- else {
81
- body = processTables(ctx);
82
- }
83
- break;
84
- case Resources.USERS:
85
- body = processUsers(ctx);
86
- break;
87
- case Resources.QUERIES:
88
- body = processQueries(ctx);
89
- break;
90
- }
91
- // update the body based on what has occurred in the mapper
92
- ctx.body = body;
93
- yield next();
94
- });
@@ -1,77 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const queries_1 = __importDefault(require("../../controllers/public/queries"));
7
- const Endpoint_1 = __importDefault(require("./utils/Endpoint"));
8
- const validators_1 = require("../utils/validators");
9
- const read = [], write = [];
10
- /**
11
- * @openapi
12
- * /queries/{queryId}:
13
- * post:
14
- * summary: Execute a query
15
- * description: Queries which have been created within a Budibase app can be executed using this,
16
- * tags:
17
- * - queries
18
- * parameters:
19
- * - $ref: '#/components/parameters/queryId'
20
- * - $ref: '#/components/parameters/appId'
21
- * requestBody:
22
- * required: true
23
- * content:
24
- * application/json:
25
- * schema:
26
- * $ref: '#/components/schemas/executeQuery'
27
- * responses:
28
- * 200:
29
- * description: Returns the result of the query execution.
30
- * content:
31
- * application/json:
32
- * schema:
33
- * $ref: '#/components/schemas/executeQueryOutput'
34
- * examples:
35
- * REST:
36
- * $ref: '#/components/examples/restResponse'
37
- * SQL:
38
- * $ref: '#/components/examples/sqlResponse'
39
- *
40
- */
41
- write.push(new Endpoint_1.default("post", "/queries/:queryId", queries_1.default.execute));
42
- /**
43
- * @openapi
44
- * /queries/search:
45
- * post:
46
- * summary: Search for queries
47
- * description: Based on query properties (currently only name) search for queries.
48
- * tags:
49
- * - queries
50
- * parameters:
51
- * - $ref: '#/components/parameters/appId'
52
- * requestBody:
53
- * required: true
54
- * content:
55
- * application/json:
56
- * schema:
57
- * $ref: '#/components/schemas/nameSearch'
58
- * responses:
59
- * 200:
60
- * description: Returns the queries found based on the search parameters.
61
- * content:
62
- * application/json:
63
- * schema:
64
- * type: object
65
- * required:
66
- * - data
67
- * properties:
68
- * data:
69
- * type: array
70
- * items:
71
- * $ref: '#/components/schemas/query'
72
- * examples:
73
- * queries:
74
- * $ref: '#/components/examples/queries'
75
- */
76
- read.push(new Endpoint_1.default("post", "/queries/search", queries_1.default.search).addMiddleware(validators_1.nameValidator()));
77
- exports.default = { read, write };
@@ -1,229 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const rows_1 = __importDefault(require("../../controllers/public/rows"));
7
- const Endpoint_1 = __importDefault(require("./utils/Endpoint"));
8
- const validators_1 = require("../utils/validators");
9
- const read = [], write = [];
10
- /**
11
- * @openapi
12
- * /tables/{tableId}/rows:
13
- * post:
14
- * summary: Create a row
15
- * description: Creates a row within the specified table.
16
- * tags:
17
- * - rows
18
- * parameters:
19
- * - $ref: '#/components/parameters/tableId'
20
- * - $ref: '#/components/parameters/appId'
21
- * requestBody:
22
- * required: true
23
- * content:
24
- * application/json:
25
- * schema:
26
- * $ref: '#/components/schemas/row'
27
- * examples:
28
- * row:
29
- * $ref: '#/components/examples/inputRow'
30
- * responses:
31
- * 200:
32
- * description: Returns the created row, including the ID which has been generated for it.
33
- * This can be found in the Budibase portal, viewed under the developer information.
34
- * content:
35
- * application/json:
36
- * schema:
37
- * $ref: '#/components/schemas/rowOutput'
38
- * examples:
39
- * row:
40
- * $ref: '#/components/examples/row'
41
- */
42
- write.push(new Endpoint_1.default("post", "/tables/:tableId/rows", rows_1.default.create));
43
- /**
44
- * @openapi
45
- * /tables/{tableId}/rows/{rowId}:
46
- * put:
47
- * summary: Update a row
48
- * description: Updates a row within the specified table.
49
- * tags:
50
- * - rows
51
- * parameters:
52
- * - $ref: '#/components/parameters/tableId'
53
- * - $ref: '#/components/parameters/rowId'
54
- * - $ref: '#/components/parameters/appId'
55
- * requestBody:
56
- * required: true
57
- * content:
58
- * application/json:
59
- * schema:
60
- * $ref: '#/components/schemas/row'
61
- * examples:
62
- * row:
63
- * $ref: '#/components/examples/inputRow'
64
- * responses:
65
- * 200:
66
- * description: Returns the created row, including the ID which has been generated for it.
67
- * content:
68
- * application/json:
69
- * schema:
70
- * $ref: '#/components/schemas/rowOutput'
71
- * examples:
72
- * row:
73
- * $ref: '#/components/examples/row'
74
- */
75
- write.push(new Endpoint_1.default("put", "/tables/:tableId/rows/:rowId", rows_1.default.update));
76
- /**
77
- * @openapi
78
- * /tables/{tableId}/rows/{rowId}:
79
- * delete:
80
- * summary: Delete a row
81
- * description: Deletes a row within the specified table.
82
- * tags:
83
- * - rows
84
- * parameters:
85
- * - $ref: '#/components/parameters/tableId'
86
- * - $ref: '#/components/parameters/rowId'
87
- * - $ref: '#/components/parameters/appId'
88
- * responses:
89
- * 200:
90
- * description: Returns the deleted row, including the ID which has been generated for it.
91
- * content:
92
- * application/json:
93
- * schema:
94
- * $ref: '#/components/schemas/rowOutput'
95
- * examples:
96
- * row:
97
- * $ref: '#/components/examples/row'
98
- */
99
- write.push(new Endpoint_1.default("delete", "/tables/:tableId/rows/:rowId", rows_1.default.destroy));
100
- /**
101
- * @openapi
102
- * /tables/{tableId}/rows/{rowId}:
103
- * get:
104
- * summary: Retrieve a row
105
- * description: This gets a single row, it will be enriched with the full related rows, rather than
106
- * the squashed "primaryDisplay" format returned by the search endpoint.
107
- * tags:
108
- * - rows
109
- * parameters:
110
- * - $ref: '#/components/parameters/tableId'
111
- * - $ref: '#/components/parameters/rowId'
112
- * - $ref: '#/components/parameters/appId'
113
- * responses:
114
- * 200:
115
- * description: Returns the retrieved row.
116
- * content:
117
- * application/json:
118
- * schema:
119
- * $ref: '#/components/schemas/rowOutput'
120
- * examples:
121
- * enrichedRow:
122
- * $ref: '#/components/examples/enrichedRow'
123
- */
124
- read.push(new Endpoint_1.default("get", "/tables/:tableId/rows/:rowId", rows_1.default.read));
125
- /**
126
- * @openapi
127
- * /tables/{tableId}/rows/search:
128
- * post:
129
- * summary: Search for rows
130
- * tags:
131
- * - rows
132
- * parameters:
133
- * - $ref: '#/components/parameters/tableId'
134
- * - $ref: '#/components/parameters/appId'
135
- * requestBody:
136
- * required: true
137
- * content:
138
- * application/json:
139
- * schema:
140
- * type: object
141
- * required:
142
- * - query
143
- * properties:
144
- * query:
145
- * type: object
146
- * properties:
147
- * string:
148
- * type: object
149
- * example:
150
- * columnName1: value
151
- * columnName2: value
152
- * description: A map of field name to the string to search for,
153
- * this will look for rows that have a value starting with the
154
- * string value.
155
- * additionalProperties:
156
- * type: string
157
- * description: The value to search for in the column.
158
- * fuzzy:
159
- * type: object
160
- * description: A fuzzy search, only supported by internal tables.
161
- * range:
162
- * type: object
163
- * description: Searches within a range, the format of this must be
164
- * columnName -> [low, high].
165
- * example:
166
- * columnName1: [10, 20]
167
- * equal:
168
- * type: object
169
- * description: Searches for rows that have a column value that is
170
- * exactly the value set.
171
- * notEqual:
172
- * type: object
173
- * description: Searches for any row which does not contain the specified
174
- * column value.
175
- * empty:
176
- * type: object
177
- * description: Searches for rows which do not contain the specified column.
178
- * The object should simply contain keys of the column names, these
179
- * can map to any value.
180
- * example:
181
- * columnName1: ""
182
- * notEmpty:
183
- * type: object
184
- * description: Searches for rows which have the specified column.
185
- * oneOf:
186
- * type: object
187
- * description: Searches for rows which have a column value that is any
188
- * of the specified values. The format of this must be columnName -> [value1, value2].
189
- * paginate:
190
- * type: boolean
191
- * description: Enables pagination, by default this is disabled.
192
- * bookmark:
193
- * oneOf:
194
- * - type: string
195
- * - type: integer
196
- * description: If retrieving another page, the bookmark from the previous request must be supplied.
197
- * limit:
198
- * type: integer
199
- * description: The maximum number of rows to return, useful when paginating, for internal tables this
200
- * will be limited to 1000, for SQL tables it will be 5000.
201
- * sort:
202
- * type: object
203
- * description: A set of parameters describing the sort behaviour of the search.
204
- * properties:
205
- * order:
206
- * type: string
207
- * enum: [ascending, descending]
208
- * description: The order of the sort, by default this is ascending.
209
- * column:
210
- * type: string
211
- * description: The name of the column by which the rows will be sorted.
212
- * type:
213
- * type: string
214
- * enum: [string, number]
215
- * description: Defines whether the column should be treated as a string
216
- * or as numbers when sorting.
217
- * responses:
218
- * 200:
219
- * description: The response will contain an array of rows that match the search parameters.
220
- * content:
221
- * application/json:
222
- * schema:
223
- * $ref: '#/components/schemas/searchOutput'
224
- * examples:
225
- * search:
226
- * $ref: '#/components/examples/rows'
227
- */
228
- read.push(new Endpoint_1.default("post", "/tables/:tableId/rows/search", rows_1.default.search).addMiddleware(validators_1.externalSearchValidator()));
229
- exports.default = { read, write };