@budibase/server 1.0.123-alpha.0 → 1.0.123

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 (330) hide show
  1. package/builder/assets/index.68a7f4e3.css +6 -0
  2. package/builder/assets/index.8d4a5b33.js +1291 -0
  3. package/builder/assets/{vendor.5240f480.js → vendor.8e34a169.js} +1 -1
  4. package/builder/index.html +3 -3
  5. package/coverage/clover.xml +1763 -758
  6. package/coverage/coverage-final.json +43 -28
  7. package/coverage/lcov-report/api/controllers/analytics.js.html +3 -8
  8. package/coverage/lcov-report/api/controllers/apikeys.js.html +4 -9
  9. package/coverage/lcov-report/api/controllers/application.js.html +1436 -0
  10. package/coverage/lcov-report/api/controllers/auth.js.html +3 -8
  11. package/coverage/lcov-report/api/controllers/automation.js.html +3 -8
  12. package/coverage/lcov-report/api/controllers/backup.js.html +3 -8
  13. package/coverage/lcov-report/api/controllers/cloud.js.html +3 -8
  14. package/coverage/lcov-report/api/controllers/component.js.html +3 -8
  15. package/coverage/lcov-report/api/controllers/datasource.js.html +6 -11
  16. package/coverage/lcov-report/api/controllers/dev.js.html +3 -8
  17. package/coverage/lcov-report/api/controllers/index.html +26 -16
  18. package/coverage/lcov-report/api/controllers/integration.js.html +3 -8
  19. package/coverage/lcov-report/api/controllers/layout.js.html +3 -8
  20. package/coverage/lcov-report/api/controllers/metadata.js.html +3 -8
  21. package/coverage/lcov-report/api/controllers/migrations.js.html +3 -8
  22. package/coverage/lcov-report/api/controllers/permission.js.html +3 -8
  23. package/coverage/lcov-report/api/controllers/query/index.html +26 -16
  24. package/coverage/lcov-report/api/controllers/query/index.js.html +713 -0
  25. package/coverage/lcov-report/api/controllers/query/validation.js.html +3 -8
  26. package/coverage/lcov-report/api/controllers/role.js.html +5 -10
  27. package/coverage/lcov-report/api/controllers/routing.js.html +4 -9
  28. package/coverage/lcov-report/api/controllers/row/external.js.html +3 -8
  29. package/coverage/lcov-report/api/controllers/row/index.html +35 -25
  30. package/coverage/lcov-report/api/controllers/row/index.js.html +524 -0
  31. package/coverage/lcov-report/api/controllers/row/internal.js.html +24 -32
  32. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +16 -21
  33. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +19 -24
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +19 -33
  35. package/coverage/lcov-report/api/controllers/screen.js.html +4 -9
  36. package/coverage/lcov-report/api/controllers/script.js.html +3 -8
  37. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +50 -55
  38. package/coverage/lcov-report/api/controllers/table/external.js.html +3 -8
  39. package/coverage/lcov-report/api/controllers/table/index.html +44 -19
  40. package/coverage/lcov-report/api/controllers/table/index.js.html +15 -20
  41. package/coverage/lcov-report/api/controllers/table/internal.js.html +620 -0
  42. package/coverage/lcov-report/api/controllers/table/utils.js.html +1331 -0
  43. package/coverage/lcov-report/api/controllers/templates.js.html +3 -8
  44. package/coverage/lcov-report/api/controllers/user.js.html +3 -8
  45. package/coverage/lcov-report/api/controllers/view/exporters.js.html +3 -8
  46. package/coverage/lcov-report/api/controllers/view/index.html +3 -8
  47. package/coverage/lcov-report/api/controllers/view/index.js.html +5 -10
  48. package/coverage/lcov-report/api/controllers/view/utils.js.html +3 -8
  49. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -8
  50. package/coverage/lcov-report/api/controllers/webhook.js.html +5 -10
  51. package/coverage/lcov-report/api/index.html +13 -18
  52. package/coverage/lcov-report/api/index.js.html +8 -28
  53. package/coverage/lcov-report/api/routes/analytics.js.html +3 -8
  54. package/coverage/lcov-report/api/routes/apikeys.js.html +3 -8
  55. package/coverage/lcov-report/api/routes/application.js.html +179 -0
  56. package/coverage/lcov-report/api/routes/auth.js.html +3 -8
  57. package/coverage/lcov-report/api/routes/automation.js.html +3 -8
  58. package/coverage/lcov-report/api/routes/backup.js.html +3 -8
  59. package/coverage/lcov-report/api/routes/cloud.js.html +3 -8
  60. package/coverage/lcov-report/api/routes/component.js.html +3 -8
  61. package/coverage/lcov-report/api/routes/datasource.js.html +3 -8
  62. package/coverage/lcov-report/api/routes/deploy.js.html +3 -8
  63. package/coverage/lcov-report/api/routes/dev.js.html +4 -9
  64. package/coverage/lcov-report/api/routes/index.html +68 -13
  65. package/coverage/lcov-report/api/routes/index.js.html +266 -0
  66. package/coverage/lcov-report/api/routes/integration.js.html +3 -8
  67. package/coverage/lcov-report/api/routes/layout.js.html +3 -8
  68. package/coverage/lcov-report/api/routes/metadata.js.html +3 -8
  69. package/coverage/lcov-report/api/routes/migrations.js.html +3 -8
  70. package/coverage/lcov-report/api/routes/permission.js.html +3 -8
  71. package/coverage/lcov-report/api/routes/query.js.html +3 -8
  72. package/coverage/lcov-report/api/routes/role.js.html +3 -8
  73. package/coverage/lcov-report/api/routes/routing.js.html +3 -8
  74. package/coverage/lcov-report/api/routes/row.js.html +908 -0
  75. package/coverage/lcov-report/api/routes/screen.js.html +3 -8
  76. package/coverage/lcov-report/api/routes/script.js.html +3 -8
  77. package/coverage/lcov-report/{automations/steps/loop.js.html → api/routes/static.js.html} +80 -70
  78. package/coverage/lcov-report/api/routes/table.js.html +3 -8
  79. package/coverage/lcov-report/api/routes/templates.js.html +3 -8
  80. package/coverage/lcov-report/api/routes/user.js.html +3 -8
  81. package/coverage/lcov-report/api/routes/utils/index.html +3 -8
  82. package/coverage/lcov-report/api/routes/utils/validators.js.html +3 -8
  83. package/coverage/lcov-report/api/routes/view.js.html +3 -8
  84. package/coverage/lcov-report/api/routes/webhook.js.html +3 -8
  85. package/coverage/lcov-report/automations/actions.js.html +7 -21
  86. package/coverage/lcov-report/automations/automationUtils.js.html +23 -64
  87. package/coverage/lcov-report/automations/bullboard.js.html +3 -8
  88. package/coverage/lcov-report/automations/index.html +37 -27
  89. package/coverage/lcov-report/automations/index.js.html +3 -8
  90. package/coverage/lcov-report/automations/steps/bash.js.html +3 -8
  91. package/coverage/lcov-report/automations/steps/createRow.js.html +380 -0
  92. package/coverage/lcov-report/automations/steps/delay.js.html +3 -8
  93. package/coverage/lcov-report/automations/steps/deleteRow.js.html +347 -0
  94. package/coverage/lcov-report/automations/steps/discord.js.html +3 -8
  95. package/coverage/lcov-report/automations/steps/executeQuery.js.html +3 -8
  96. package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -8
  97. package/coverage/lcov-report/automations/steps/filter.js.html +3 -8
  98. package/coverage/lcov-report/automations/steps/index.html +41 -31
  99. package/coverage/lcov-report/automations/steps/integromat.js.html +3 -8
  100. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +4 -9
  101. package/coverage/lcov-report/automations/steps/queryRows.js.html +4 -9
  102. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +3 -8
  103. package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -8
  104. package/coverage/lcov-report/automations/steps/slack.js.html +3 -8
  105. package/coverage/lcov-report/automations/steps/updateRow.js.html +3 -8
  106. package/coverage/lcov-report/automations/steps/utils.js.html +9 -14
  107. package/coverage/lcov-report/automations/steps/zapier.js.html +3 -8
  108. package/coverage/lcov-report/automations/triggerInfo/app.js.html +3 -8
  109. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +3 -8
  110. package/coverage/lcov-report/automations/triggerInfo/index.html +3 -8
  111. package/coverage/lcov-report/automations/triggerInfo/index.js.html +3 -8
  112. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +3 -8
  113. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +3 -8
  114. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +3 -8
  115. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +3 -8
  116. package/coverage/lcov-report/automations/triggers.js.html +11 -16
  117. package/coverage/lcov-report/automations/utils.js.html +665 -0
  118. package/coverage/lcov-report/block-navigation.js +0 -8
  119. package/coverage/lcov-report/constants/index.html +3 -8
  120. package/coverage/lcov-report/constants/index.js.html +42 -41
  121. package/coverage/lcov-report/constants/layouts.js.html +3 -8
  122. package/coverage/lcov-report/constants/screens.js.html +3 -8
  123. package/coverage/lcov-report/db/inMemoryView.js.html +3 -8
  124. package/coverage/lcov-report/db/index.html +3 -8
  125. package/coverage/lcov-report/db/index.js.html +4 -9
  126. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +23 -25
  127. package/coverage/lcov-report/db/linkedRows/index.html +12 -17
  128. package/coverage/lcov-report/db/linkedRows/index.js.html +17 -22
  129. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +7 -12
  130. package/coverage/lcov-report/db/newid.js.html +6 -11
  131. package/coverage/lcov-report/db/utils.js.html +79 -84
  132. package/coverage/lcov-report/events/AutomationEmitter.js.html +9 -14
  133. package/coverage/lcov-report/events/index.html +3 -8
  134. package/coverage/lcov-report/events/index.js.html +4 -9
  135. package/coverage/lcov-report/events/utils.js.html +13 -18
  136. package/coverage/lcov-report/index.html +132 -137
  137. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +3 -8
  138. package/coverage/lcov-report/integrations/tests/index.html +3 -8
  139. package/coverage/lcov-report/middleware/appInfo.js.html +3 -8
  140. package/coverage/lcov-report/middleware/authorized.js.html +458 -0
  141. package/coverage/lcov-report/middleware/builder.js.html +3 -8
  142. package/coverage/lcov-report/middleware/currentapp.js.html +15 -65
  143. package/coverage/lcov-report/middleware/index.html +50 -25
  144. package/coverage/lcov-report/middleware/joi-validator.js.html +4 -9
  145. package/coverage/lcov-report/middleware/publicApi.js.html +3 -8
  146. package/coverage/lcov-report/middleware/resourceId.js.html +3 -8
  147. package/coverage/lcov-report/middleware/selfhost.js.html +4 -9
  148. package/coverage/lcov-report/middleware/usageQuota.js.html +572 -0
  149. package/coverage/lcov-report/middleware/utils.js.html +3 -8
  150. package/coverage/lcov-report/sorter.js +0 -26
  151. package/coverage/lcov-report/threads/automation.js.html +90 -581
  152. package/coverage/lcov-report/threads/index.html +40 -30
  153. package/coverage/lcov-report/threads/index.js.html +296 -0
  154. package/coverage/lcov-report/threads/query.js.html +4 -9
  155. package/coverage/lcov-report/threads/utils.js.html +9 -17
  156. package/coverage/lcov-report/utilities/bcrypt.js.html +3 -8
  157. package/coverage/lcov-report/utilities/budibaseDir.js.html +3 -8
  158. package/coverage/lcov-report/utilities/centralPath.js.html +3 -8
  159. package/coverage/lcov-report/utilities/csvParser.js.html +5 -10
  160. package/coverage/lcov-report/utilities/global.js.html +4 -9
  161. package/coverage/lcov-report/utilities/index.html +3 -8
  162. package/coverage/lcov-report/utilities/index.js.html +6 -11
  163. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +9 -32
  164. package/coverage/lcov-report/utilities/queue/index.html +7 -12
  165. package/coverage/lcov-report/utilities/routing/index.html +3 -8
  166. package/coverage/lcov-report/utilities/routing/index.js.html +3 -8
  167. package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -32
  168. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +71 -67
  169. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +106 -27
  170. package/coverage/lcov-report/utilities/scriptRunner.js.html +3 -8
  171. package/coverage/lcov-report/utilities/security.js.html +4 -9
  172. package/coverage/lcov-report/utilities/statusCodes.js.html +3 -8
  173. package/coverage/lcov-report/utilities/usageQuota/index.html +34 -24
  174. package/coverage/lcov-report/utilities/usageQuota/index.js.html +359 -0
  175. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +39 -44
  176. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +3 -8
  177. package/coverage/lcov-report/utilities/users.js.html +3 -8
  178. package/coverage/lcov-report/utilities/workerRequests.js.html +4 -9
  179. package/coverage/lcov.info +3061 -1290
  180. package/dist/api/controllers/application.js +73 -145
  181. package/dist/api/controllers/deploy/index.js +36 -68
  182. package/dist/api/controllers/public/applications.js +9 -29
  183. package/dist/api/controllers/public/queries.js +7 -27
  184. package/dist/api/controllers/public/rows.js +12 -32
  185. package/dist/api/controllers/public/tables.js +2 -2
  186. package/dist/api/controllers/public/users.js +8 -8
  187. package/dist/api/controllers/public/utils.js +1 -1
  188. package/dist/api/controllers/query/import/index.js +3 -3
  189. package/dist/api/controllers/query/index.js +44 -57
  190. package/dist/api/controllers/row/ExternalRequest.js +27 -27
  191. package/dist/api/controllers/row/index.js +60 -83
  192. package/dist/api/controllers/row/internal.js +1 -2
  193. package/dist/api/controllers/row/utils.js +1 -2
  194. package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -3
  195. package/dist/api/controllers/table/bulkFormula.js +1 -2
  196. package/dist/api/controllers/table/internal.js +55 -40
  197. package/dist/api/controllers/table/utils.js +229 -271
  198. package/dist/api/index.js +0 -5
  199. package/dist/api/routes/application.js +13 -39
  200. package/dist/api/routes/index.js +56 -61
  201. package/dist/api/routes/public/index.js +9 -6
  202. package/dist/api/routes/public/queries.js +1 -1
  203. package/dist/api/routes/public/rows.js +1 -1
  204. package/dist/api/routes/public/tables.js +3 -3
  205. package/dist/api/routes/public/users.js +1 -1
  206. package/dist/api/routes/row.js +17 -43
  207. package/dist/api/routes/static.js +13 -40
  208. package/dist/api/routes/tests/utilities/TestFunctions.js +33 -75
  209. package/dist/app.js +4 -8
  210. package/dist/automations/actions.js +0 -3
  211. package/dist/automations/automationUtils.js +0 -10
  212. package/dist/automations/steps/createRow.js +12 -12
  213. package/dist/automations/steps/deleteRow.js +16 -13
  214. package/dist/automations/tests/utilities/index.js +11 -13
  215. package/dist/automations/utils.js +133 -187
  216. package/dist/constants/index.js +7 -5
  217. package/dist/db/linkedRows/LinkController.js +1 -0
  218. package/dist/definitions/datasource.js +0 -1
  219. package/dist/environment.js +3 -2
  220. package/dist/index.js +0 -4
  221. package/dist/integrations/base/sql.js +2 -2
  222. package/dist/integrations/base/sqlTable.js +2 -2
  223. package/dist/integrations/googlesheets.js +1 -1
  224. package/dist/integrations/index.js +0 -4
  225. package/dist/integrations/microsoftSqlServer.js +8 -8
  226. package/dist/integrations/mysql.js +9 -9
  227. package/dist/integrations/oracle.js +7 -7
  228. package/dist/integrations/postgres.js +7 -7
  229. package/dist/integrations/queries/sql.js +2 -2
  230. package/dist/integrations/rest.js +1 -1
  231. package/dist/middleware/authorized.js +51 -51
  232. package/dist/middleware/currentapp.js +1 -15
  233. package/dist/middleware/usageQuota.js +154 -0
  234. package/dist/migrations/functions/appUrls.js +1 -1
  235. package/dist/migrations/functions/quotas1.js +2 -6
  236. package/dist/migrations/functions/usageQuotas/index.js +4 -0
  237. package/dist/migrations/functions/usageQuotas/syncApps.js +7 -4
  238. package/dist/migrations/functions/usageQuotas/syncRows.js +8 -5
  239. package/dist/migrations/index.js +1 -17
  240. package/dist/package.json +4 -10
  241. package/dist/threads/automation.js +27 -149
  242. package/dist/threads/index.js +10 -36
  243. package/dist/threads/utils.js +0 -1
  244. package/dist/tsconfig.tsbuildinfo +1 -0
  245. package/dist/utilities/queue/inMemoryQueue.js +1 -6
  246. package/dist/utilities/rowProcessor/index.js +11 -6
  247. package/dist/utilities/rowProcessor/utils.js +27 -1
  248. package/dist/utilities/usageQuota/index.js +86 -0
  249. package/nodemon.json +1 -1
  250. package/package.json +9 -15
  251. package/scripts/dev/manage.js +0 -2
  252. package/src/api/controllers/{application.ts → application.js} +51 -118
  253. package/src/api/controllers/deploy/{index.ts → index.js} +29 -53
  254. package/src/api/controllers/public/applications.ts +2 -2
  255. package/src/api/controllers/public/queries.ts +1 -1
  256. package/src/api/controllers/public/rows.ts +1 -1
  257. package/src/api/controllers/query/{index.ts → index.js} +48 -51
  258. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  259. package/src/api/controllers/row/{index.ts → index.js} +17 -24
  260. package/src/api/controllers/row/internal.js +1 -2
  261. package/src/api/controllers/row/utils.js +1 -4
  262. package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -3
  263. package/src/api/controllers/table/bulkFormula.js +1 -1
  264. package/src/api/controllers/table/{internal.ts → internal.js} +48 -27
  265. package/src/api/controllers/table/{utils.ts → utils.js} +69 -86
  266. package/src/api/index.js +0 -5
  267. package/src/api/routes/{application.ts → application.js} +14 -8
  268. package/src/api/routes/index.js +62 -0
  269. package/src/api/routes/public/index.ts +4 -1
  270. package/src/api/routes/{row.ts → row.js} +15 -7
  271. package/src/api/routes/{static.ts → static.js} +11 -11
  272. package/src/api/routes/tests/misc.spec.js +37 -39
  273. package/src/api/routes/tests/routing.spec.js +0 -1
  274. package/src/api/routes/tests/utilities/{TestFunctions.ts → TestFunctions.js} +33 -57
  275. package/src/app.ts +2 -1
  276. package/src/automations/actions.js +0 -3
  277. package/src/automations/automationUtils.js +0 -12
  278. package/src/automations/steps/{createRow.ts → createRow.js} +15 -9
  279. package/src/automations/steps/{deleteRow.ts → deleteRow.js} +16 -10
  280. package/src/automations/tests/automation.spec.js +1 -0
  281. package/src/automations/tests/{createRow.spec.ts → createRow.spec.js} +15 -4
  282. package/src/automations/tests/{deleteRow.spec.ts → deleteRow.spec.js} +5 -3
  283. package/src/automations/tests/utilities/index.js +10 -12
  284. package/src/automations/{utils.ts → utils.js} +28 -39
  285. package/src/constants/index.js +8 -6
  286. package/src/db/linkedRows/LinkController.js +1 -0
  287. package/src/definitions/datasource.ts +0 -1
  288. package/src/environment.js +3 -2
  289. package/src/index.ts +0 -3
  290. package/src/integrations/index.ts +0 -4
  291. package/src/middleware/{authorized.ts → authorized.js} +14 -20
  292. package/src/middleware/currentapp.js +1 -16
  293. package/src/middleware/tests/usageQuota.spec.js +120 -0
  294. package/src/middleware/usageQuota.js +164 -0
  295. package/src/migrations/functions/tests/quotas1.spec.js +2 -0
  296. package/src/migrations/functions/usageQuotas/index.ts +5 -0
  297. package/src/migrations/functions/usageQuotas/syncApps.ts +6 -3
  298. package/src/migrations/functions/usageQuotas/syncRows.ts +6 -3
  299. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +41 -0
  300. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +45 -0
  301. package/src/migrations/index.ts +1 -13
  302. package/src/threads/automation.js +34 -196
  303. package/src/threads/{index.ts → index.js} +14 -18
  304. package/src/threads/utils.js +0 -1
  305. package/src/utilities/queue/inMemoryQueue.js +1 -7
  306. package/src/utilities/rowProcessor/index.js +12 -9
  307. package/src/utilities/rowProcessor/utils.js +29 -1
  308. package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
  309. package/src/utilities/usageQuota/index.js +93 -0
  310. package/tsconfig.json +2 -2
  311. package/builder/assets/index.89795487.css +0 -6
  312. package/builder/assets/index.be9a1b80.js +0 -1299
  313. package/dist/automations/steps/loop.js +0 -51
  314. package/dist/integrations/redis.js +0 -158
  315. package/dist/migrations/functions/developerQuota.js +0 -49
  316. package/dist/migrations/functions/publishedAppsQuota.js +0 -47
  317. package/dist/migrations/functions/usageQuotas/syncDevelopers.js +0 -24
  318. package/dist/migrations/functions/usageQuotas/syncPublishedApps.js +0 -26
  319. package/dist/tsconfig.build.tsbuildinfo +0 -1
  320. package/src/api/routes/index.ts +0 -60
  321. package/src/automations/steps/loop.js +0 -50
  322. package/src/integrations/redis.ts +0 -152
  323. package/src/integrations/tests/redis.spec.js +0 -60
  324. package/src/migrations/functions/developerQuota.ts +0 -15
  325. package/src/migrations/functions/publishedAppsQuota.ts +0 -13
  326. package/src/migrations/functions/usageQuotas/syncDevelopers.ts +0 -19
  327. package/src/migrations/functions/usageQuotas/syncPublishedApps.ts +0 -21
  328. package/src/migrations/functions/usageQuotas/tests/syncApps.spec.ts +0 -34
  329. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +0 -40
  330. package/tsconfig.build.json +0 -10
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -31,60 +8,50 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
31
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
32
9
  });
33
10
  };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- exports.runInProd = exports.testAutomation = exports.getDB = exports.checkPermissionsEndpoint = exports.checkBuilderEndpoint = exports.createRequest = exports.clearAllAutomations = exports.clearAllApps = exports.getAllTableRows = void 0;
36
- const rowController = __importStar(require("../../../controllers/row"));
37
- const appController = __importStar(require("../../../controllers/application"));
38
- const utils_1 = require("../../../../db/utils");
39
- const roles_1 = require("@budibase/backend-core/roles");
40
- const tenancy_1 = require("@budibase/backend-core/tenancy");
41
- const structures_1 = require("../../../../tests/utilities/structures");
42
- const context_1 = require("@budibase/backend-core/context");
43
- const env = __importStar(require("../../../../environment"));
44
- class Request {
45
- constructor(appId, params) {
46
- this.appId = appId;
47
- this.params = params;
48
- this.request = {};
49
- }
11
+ const rowController = require("../../../controllers/row");
12
+ const appController = require("../../../controllers/application");
13
+ const { AppStatus } = require("../../../../db/utils");
14
+ const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles");
15
+ const { TENANT_ID } = require("../../../../tests/utilities/structures");
16
+ const { doInAppContext } = require("@budibase/backend-core/context");
17
+ const env = require("../../../../environment");
18
+ function Request(appId, params) {
19
+ this.appId = appId;
20
+ this.params = params;
21
+ this.request = {};
50
22
  }
51
23
  function runRequest(appId, controlFunc, request) {
52
- return (0, context_1.doInAppContext)(appId, () => __awaiter(this, void 0, void 0, function* () {
24
+ return doInAppContext(appId, () => __awaiter(this, void 0, void 0, function* () {
53
25
  return controlFunc(request);
54
26
  }));
55
27
  }
56
- const getAllTableRows = (config) => __awaiter(void 0, void 0, void 0, function* () {
28
+ exports.getAllTableRows = (config) => __awaiter(void 0, void 0, void 0, function* () {
57
29
  const req = new Request(config.appId, { tableId: config.table._id });
58
30
  yield runRequest(config.appId, rowController.fetch, req);
59
31
  return req.body;
60
32
  });
61
- exports.getAllTableRows = getAllTableRows;
62
- const clearAllApps = (tenantId = structures_1.TENANT_ID) => __awaiter(void 0, void 0, void 0, function* () {
63
- yield (0, tenancy_1.doInTenant)(tenantId, () => __awaiter(void 0, void 0, void 0, function* () {
64
- const req = { query: { status: utils_1.AppStatus.DEV }, user: { tenantId } };
65
- yield appController.fetch(req);
66
- const apps = req.body;
67
- if (!apps || apps.length <= 0) {
68
- return;
69
- }
70
- for (let app of apps) {
71
- const { appId } = app;
72
- const req = new Request(null, { appId });
73
- yield runRequest(appId, appController.destroy, req);
74
- }
75
- }));
33
+ exports.clearAllApps = (tenantId = TENANT_ID) => __awaiter(void 0, void 0, void 0, function* () {
34
+ const req = { query: { status: AppStatus.DEV }, user: { tenantId } };
35
+ yield appController.fetch(req);
36
+ const apps = req.body;
37
+ if (!apps || apps.length <= 0) {
38
+ return;
39
+ }
40
+ for (let app of apps) {
41
+ const { appId } = app;
42
+ const req = new Request(null, { appId });
43
+ yield runRequest(appId, appController.delete, req);
44
+ }
76
45
  });
77
- exports.clearAllApps = clearAllApps;
78
- const clearAllAutomations = (config) => __awaiter(void 0, void 0, void 0, function* () {
46
+ exports.clearAllAutomations = (config) => __awaiter(void 0, void 0, void 0, function* () {
79
47
  const automations = yield config.getAllAutomations();
80
48
  for (let auto of automations) {
81
- yield (0, context_1.doInAppContext)(config.appId, () => __awaiter(void 0, void 0, void 0, function* () {
49
+ yield doInAppContext(config.appId, () => __awaiter(void 0, void 0, void 0, function* () {
82
50
  yield config.deleteAutomation(auto);
83
51
  }));
84
52
  }
85
53
  });
86
- exports.clearAllAutomations = clearAllAutomations;
87
- const createRequest = (request, method, url, body) => {
54
+ exports.createRequest = (request, method, url, body) => {
88
55
  let req;
89
56
  if (method === "POST")
90
57
  req = request.post(url).send(body);
@@ -98,8 +65,7 @@ const createRequest = (request, method, url, body) => {
98
65
  req = request.put(url).send(body);
99
66
  return req;
100
67
  };
101
- exports.createRequest = createRequest;
102
- const checkBuilderEndpoint = ({ config, method, url, body, }) => __awaiter(void 0, void 0, void 0, function* () {
68
+ exports.checkBuilderEndpoint = ({ config, method, url, body }) => __awaiter(void 0, void 0, void 0, function* () {
103
69
  const headers = yield config.login({
104
70
  userId: "us_fail",
105
71
  builder: false,
@@ -110,8 +76,7 @@ const checkBuilderEndpoint = ({ config, method, url, body, }) => __awaiter(void
110
76
  .set(headers)
111
77
  .expect(403);
112
78
  });
113
- exports.checkBuilderEndpoint = checkBuilderEndpoint;
114
- const checkPermissionsEndpoint = ({ config, method, url, body, passRole, failRole, }) => __awaiter(void 0, void 0, void 0, function* () {
79
+ exports.checkPermissionsEndpoint = ({ config, method, url, body, passRole, failRole, }) => __awaiter(void 0, void 0, void 0, function* () {
115
80
  const passHeader = yield config.login({
116
81
  roleId: passRole,
117
82
  prodApp: true,
@@ -121,7 +86,7 @@ const checkPermissionsEndpoint = ({ config, method, url, body, passRole, failRol
121
86
  .set(passHeader)
122
87
  .expect(200);
123
88
  let failHeader;
124
- if (failRole === roles_1.BUILTIN_ROLE_IDS.PUBLIC) {
89
+ if (failRole === BUILTIN_ROLE_IDS.PUBLIC) {
125
90
  failHeader = config.publicHeaders({ prodApp: true });
126
91
  }
127
92
  else {
@@ -136,12 +101,7 @@ const checkPermissionsEndpoint = ({ config, method, url, body, passRole, failRol
136
101
  .set(failHeader)
137
102
  .expect(403);
138
103
  });
139
- exports.checkPermissionsEndpoint = checkPermissionsEndpoint;
140
- const getDB = () => {
141
- return (0, context_1.getAppDB)();
142
- };
143
- exports.getDB = getDB;
144
- const testAutomation = (config, automation) => __awaiter(void 0, void 0, void 0, function* () {
104
+ exports.testAutomation = (config, automation) => __awaiter(void 0, void 0, void 0, function* () {
145
105
  return runRequest(automation.appId, () => __awaiter(void 0, void 0, void 0, function* () {
146
106
  return yield config.request
147
107
  .post(`/api/automations/${automation._id}/test`)
@@ -156,8 +116,7 @@ const testAutomation = (config, automation) => __awaiter(void 0, void 0, void 0,
156
116
  .expect(200);
157
117
  }));
158
118
  });
159
- exports.testAutomation = testAutomation;
160
- const runInProd = (func) => __awaiter(void 0, void 0, void 0, function* () {
119
+ exports.runInProd = (func) => __awaiter(void 0, void 0, void 0, function* () {
161
120
  const nodeEnv = env.NODE_ENV;
162
121
  const workerId = env.JEST_WORKER_ID;
163
122
  env._set("NODE_ENV", "PRODUCTION");
@@ -166,4 +125,3 @@ const runInProd = (func) => __awaiter(void 0, void 0, void 0, function* () {
166
125
  env._set("NODE_ENV", nodeEnv);
167
126
  env._set("JEST_WORKER_ID", workerId);
168
127
  });
169
- exports.runInProd = runInProd;
package/dist/app.js CHANGED
@@ -1,11 +1,7 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
9
5
  }) : (function(o, m, k, k2) {
10
6
  if (k2 === undefined) k2 = k;
11
7
  o[k2] = m[k];
@@ -49,7 +45,7 @@ const automations = require("./automations/index");
49
45
  const Sentry = require("@sentry/node");
50
46
  const fileSystem = require("./utilities/fileSystem");
51
47
  const bullboard = require("./automations/bullboard");
52
- const redis_1 = __importDefault(require("./utilities/redis"));
48
+ const redis = require("./utilities/redis");
53
49
  const migrations = __importStar(require("./migrations"));
54
50
  const app = new Koa();
55
51
  // set up top level koa middleware
@@ -93,14 +89,14 @@ server.on("close", () => __awaiter(void 0, void 0, void 0, function* () {
93
89
  if (env.NODE_ENV !== "jest") {
94
90
  console.log("Server Closed");
95
91
  }
96
- yield redis_1.default.shutdown();
92
+ yield redis.shutdown();
97
93
  }));
98
94
  module.exports = server.listen(env.PORT || 0, () => __awaiter(void 0, void 0, void 0, function* () {
99
95
  console.log(`Budibase running on ${JSON.stringify(server.address())}`);
100
96
  env._set("PORT", server.address().port);
101
97
  eventEmitter.emitPort(env.PORT);
102
98
  fileSystem.init();
103
- yield redis_1.default.init();
99
+ yield redis.init();
104
100
  yield automations.init();
105
101
  }));
106
102
  const shutdown = () => {
@@ -23,7 +23,6 @@ const integromat = require("./steps/integromat");
23
23
  let filter = require("./steps/filter");
24
24
  let delay = require("./steps/delay");
25
25
  let queryRow = require("./steps/queryRows");
26
- let loop = require("./steps/loop");
27
26
  const env = require("../environment");
28
27
  const ACTION_IMPLS = {
29
28
  SEND_EMAIL_SMTP: sendSmtpEmail.run,
@@ -37,7 +36,6 @@ const ACTION_IMPLS = {
37
36
  DELAY: delay.run,
38
37
  FILTER: filter.run,
39
38
  QUERY_ROWS: queryRow.run,
40
- LOOP: loop.run,
41
39
  // these used to be lowercase step IDs, maintain for backwards compat
42
40
  discord: discord.run,
43
41
  slack: slack.run,
@@ -56,7 +54,6 @@ const ACTION_DEFINITIONS = {
56
54
  DELAY: delay.definition,
57
55
  FILTER: filter.definition,
58
56
  QUERY_ROWS: queryRow.definition,
59
- LOOP: loop.definition,
60
57
  // these used to be lowercase step IDs, maintain for backwards compat
61
58
  discord: discord.definition,
62
59
  slack: slack.definition,
@@ -9,7 +9,6 @@ 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");
13
12
  /**
14
13
  * When values are input to the system generally they will be of type string as this is required for template strings.
15
14
  * This can generate some odd scenarios as the Schema of the automation requires a number but the builder might supply
@@ -80,12 +79,3 @@ exports.getError = err => {
80
79
  }
81
80
  return typeof err !== "string" ? err.toString() : err;
82
81
  };
83
- exports.substituteLoopStep = (hbsString, substitute) => {
84
- let blocks = findHBSBlocks(hbsString);
85
- for (let block of blocks) {
86
- let oldBlock = block;
87
- block = block.replace(/loop/, substitute);
88
- hbsString = hbsString.replace(new RegExp(oldBlock, "g"), block);
89
- }
90
- return hbsString;
91
- };
@@ -8,11 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.run = exports.definition = void 0;
13
- const row_1 = require("../../api/controllers/row");
14
- const automationUtils_1 = require("../automationUtils");
15
- const utils_1 = require("./utils");
11
+ const rowController = require("../../api/controllers/row");
12
+ const automationUtils = require("../automationUtils");
13
+ const usage = require("../../utilities/usageQuota");
14
+ const { buildCtx } = require("./utils");
16
15
  exports.definition = {
17
16
  name: "Create Row",
18
17
  tagline: "Create a {{inputs.enriched.table.name}} row",
@@ -68,7 +67,7 @@ exports.definition = {
68
67
  },
69
68
  },
70
69
  };
71
- function run({ inputs, appId, emitter }) {
70
+ exports.run = function ({ inputs, appId, emitter }) {
72
71
  return __awaiter(this, void 0, void 0, function* () {
73
72
  if (inputs.row == null || inputs.row.tableId == null) {
74
73
  return {
@@ -79,15 +78,17 @@ function run({ inputs, appId, emitter }) {
79
78
  };
80
79
  }
81
80
  // have to clean up the row, remove the table from it
82
- const ctx = (0, utils_1.buildCtx)(appId, emitter, {
81
+ const ctx = buildCtx(appId, emitter, {
83
82
  body: inputs.row,
84
83
  params: {
85
84
  tableId: inputs.row.tableId,
86
85
  },
87
86
  });
88
87
  try {
89
- inputs.row = yield (0, automationUtils_1.cleanUpRow)(inputs.row.tableId, inputs.row);
90
- yield (0, row_1.save)(ctx);
88
+ inputs.row = yield automationUtils.cleanUpRow(inputs.row.tableId, inputs.row);
89
+ yield usage.update(usage.Properties.ROW, 1, { dryRun: true });
90
+ yield rowController.save(ctx);
91
+ yield usage.update(usage.Properties.ROW, 1);
91
92
  return {
92
93
  row: inputs.row,
93
94
  response: ctx.body,
@@ -99,9 +100,8 @@ function run({ inputs, appId, emitter }) {
99
100
  catch (err) {
100
101
  return {
101
102
  success: false,
102
- response: (0, automationUtils_1.getError)(err),
103
+ response: automationUtils.getError(err),
103
104
  };
104
105
  }
105
106
  });
106
- }
107
- exports.run = run;
107
+ };
@@ -8,11 +8,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.run = exports.definition = void 0;
13
- const row_1 = require("../../api/controllers/row");
14
- const utils_1 = require("./utils");
15
- const automationUtils_1 = require("../automationUtils");
11
+ const rowController = require("../../api/controllers/row");
12
+ const usage = require("../../utilities/usageQuota");
13
+ const { buildCtx } = require("./utils");
14
+ const automationUtils = require("../automationUtils");
16
15
  exports.definition = {
17
16
  description: "Delete a row from your database",
18
17
  icon: "TableRowRemoveCenter",
@@ -34,8 +33,12 @@ exports.definition = {
34
33
  type: "string",
35
34
  title: "Row ID",
36
35
  },
36
+ revision: {
37
+ type: "string",
38
+ title: "Row Revision",
39
+ },
37
40
  },
38
- required: ["tableId", "id"],
41
+ required: ["tableId", "id", "revision"],
39
42
  },
40
43
  outputs: {
41
44
  properties: {
@@ -57,9 +60,9 @@ exports.definition = {
57
60
  },
58
61
  },
59
62
  };
60
- function run({ inputs, appId, emitter }) {
63
+ exports.run = function ({ inputs, appId, emitter }) {
61
64
  return __awaiter(this, void 0, void 0, function* () {
62
- if (inputs.id == null) {
65
+ if (inputs.id == null || inputs.revision == null) {
63
66
  return {
64
67
  success: false,
65
68
  response: {
@@ -67,7 +70,7 @@ function run({ inputs, appId, emitter }) {
67
70
  },
68
71
  };
69
72
  }
70
- let ctx = (0, utils_1.buildCtx)(appId, emitter, {
73
+ let ctx = buildCtx(appId, emitter, {
71
74
  body: {
72
75
  _id: inputs.id,
73
76
  _rev: inputs.revision,
@@ -77,7 +80,8 @@ function run({ inputs, appId, emitter }) {
77
80
  },
78
81
  });
79
82
  try {
80
- yield (0, row_1.destroy)(ctx);
83
+ yield usage.update(usage.Properties.ROW, -1);
84
+ yield rowController.destroy(ctx);
81
85
  return {
82
86
  response: ctx.body,
83
87
  row: ctx.row,
@@ -87,9 +91,8 @@ function run({ inputs, appId, emitter }) {
87
91
  catch (err) {
88
92
  return {
89
93
  success: false,
90
- response: (0, automationUtils_1.getError)(err),
94
+ response: automationUtils.getError(err),
91
95
  };
92
96
  }
93
97
  });
94
- }
95
- exports.run = run;
98
+ };
@@ -9,8 +9,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  const TestConfig = require("../../../tests/utilities/TestConfiguration");
12
- const { TENANT_ID } = require("../../../tests/utilities/structures");
13
- const { doInTenant } = require("@budibase/backend-core/tenancy");
14
12
  const actions = require("../../actions");
15
13
  const emitter = require("../../../events/index");
16
14
  const env = require("../../../environment");
@@ -26,6 +24,7 @@ exports.afterAll = () => {
26
24
  };
27
25
  exports.runInProd = (fn) => __awaiter(void 0, void 0, void 0, function* () {
28
26
  env._set("NODE_ENV", "production");
27
+ env._set("USE_QUOTAS", 1);
29
28
  let error;
30
29
  try {
31
30
  yield fn();
@@ -34,23 +33,22 @@ exports.runInProd = (fn) => __awaiter(void 0, void 0, void 0, function* () {
34
33
  error = err;
35
34
  }
36
35
  env._set("NODE_ENV", "jest");
36
+ env._set("USE_QUOTAS", null);
37
37
  if (error) {
38
38
  throw error;
39
39
  }
40
40
  });
41
41
  exports.runStep = function runStep(stepId, inputs) {
42
42
  return __awaiter(this, void 0, void 0, function* () {
43
- return doInTenant(TENANT_ID, () => __awaiter(this, void 0, void 0, function* () {
44
- let step = yield actions.getAction(stepId);
45
- expect(step).toBeDefined();
46
- return step({
47
- inputs,
48
- appId: config ? config.getAppId() : null,
49
- // don't really need an API key, mocked out usage quota, not being tested here
50
- apiKey: exports.apiKey,
51
- emitter,
52
- });
53
- }));
43
+ let step = yield actions.getAction(stepId);
44
+ expect(step).toBeDefined();
45
+ return step({
46
+ inputs,
47
+ appId: config ? config.getAppId() : null,
48
+ // don't really need an API key, mocked out usage quota, not being tested here
49
+ apiKey: exports.apiKey,
50
+ emitter,
51
+ });
54
52
  });
55
53
  };
56
54
  exports.apiKey = "test";