@budibase/server 0.9.136 → 0.9.140-alpha.0

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/builder/assets/discord.c14881e9.svg +10 -0
  2. package/builder/assets/{index.a0ab7774.js → index.0d1fa670.js} +35 -35
  3. package/builder/assets/{index.121692c9.css → index.79907e5c.css} +5 -5
  4. package/builder/assets/integromat.42212f11.png +0 -0
  5. package/builder/assets/slack.1e1f7cfb.svg +33 -0
  6. package/builder/assets/{vendor.7177f366.js → vendor.d39b3c1e.js} +2 -2
  7. package/builder/assets/zapier.3fbd8f5c.png +0 -0
  8. package/builder/index.html +3 -3
  9. package/coverage/clover.xml +2142 -2095
  10. package/coverage/coverage-final.json +120 -106
  11. package/coverage/lcov-report/api/controllers/analytics.js.html +3 -3
  12. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  13. package/coverage/lcov-report/api/controllers/application.js.html +84 -84
  14. package/coverage/lcov-report/api/controllers/auth.js.html +6 -6
  15. package/coverage/lcov-report/api/controllers/automation.js.html +182 -356
  16. package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
  17. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  18. package/coverage/lcov-report/api/controllers/datasource.js.html +12 -12
  19. package/coverage/lcov-report/api/controllers/dev.js.html +15 -15
  20. package/coverage/lcov-report/api/controllers/hosting.js.html +8 -8
  21. package/coverage/lcov-report/api/controllers/index.html +47 -32
  22. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  23. package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
  24. package/coverage/lcov-report/api/controllers/metadata.js.html +218 -0
  25. package/coverage/lcov-report/api/controllers/permission.js.html +14 -14
  26. package/coverage/lcov-report/api/controllers/query.js.html +17 -23
  27. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  28. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  29. package/coverage/lcov-report/api/controllers/row/external.js.html +15 -15
  30. package/coverage/lcov-report/api/controllers/row/index.html +29 -44
  31. package/coverage/lcov-report/api/controllers/row/index.js.html +48 -45
  32. package/coverage/lcov-report/api/controllers/row/internal.js.html +159 -126
  33. package/coverage/lcov-report/api/controllers/row/utils.js.html +17 -17
  34. package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
  35. package/coverage/lcov-report/api/controllers/script.js.html +5 -5
  36. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  37. package/coverage/lcov-report/api/controllers/table/index.js.html +40 -40
  38. package/coverage/lcov-report/api/controllers/table/utils.js.html +48 -48
  39. package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
  40. package/coverage/lcov-report/api/controllers/user.js.html +14 -11
  41. package/coverage/lcov-report/api/controllers/view/exporters.js.html +3 -3
  42. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/index.js.html +9 -9
  44. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +6 -6
  45. package/coverage/lcov-report/api/controllers/webhook.js.html +14 -14
  46. package/coverage/lcov-report/api/index.html +1 -1
  47. package/coverage/lcov-report/api/index.js.html +23 -23
  48. package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
  49. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  50. package/coverage/lcov-report/api/routes/application.js.html +8 -8
  51. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  52. package/coverage/lcov-report/api/routes/automation.js.html +41 -26
  53. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  54. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  55. package/coverage/lcov-report/api/routes/datasource.js.html +13 -13
  56. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  57. package/coverage/lcov-report/api/routes/dev.js.html +11 -11
  58. package/coverage/lcov-report/api/routes/hosting.js.html +8 -8
  59. package/coverage/lcov-report/api/routes/index.html +24 -9
  60. package/coverage/lcov-report/api/routes/index.js.html +36 -30
  61. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  62. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  63. package/coverage/lcov-report/api/routes/metadata.js.html +194 -0
  64. package/coverage/lcov-report/api/routes/permission.js.html +12 -12
  65. package/coverage/lcov-report/api/routes/query.js.html +13 -13
  66. package/coverage/lcov-report/api/routes/role.js.html +12 -12
  67. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  68. package/coverage/lcov-report/api/routes/row.js.html +10 -10
  69. package/coverage/lcov-report/api/routes/screen.js.html +11 -11
  70. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/static.js.html +13 -16
  72. package/coverage/lcov-report/api/routes/table.js.html +12 -12
  73. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  74. package/coverage/lcov-report/api/routes/user.js.html +9 -9
  75. package/coverage/lcov-report/api/routes/view.js.html +11 -11
  76. package/coverage/lcov-report/api/routes/webhook.js.html +11 -11
  77. package/coverage/lcov-report/automations/actions.js.html +57 -117
  78. package/coverage/lcov-report/automations/automationUtils.js.html +7 -7
  79. package/coverage/lcov-report/automations/bullboard.js.html +49 -16
  80. package/coverage/lcov-report/automations/index.html +67 -67
  81. package/coverage/lcov-report/automations/index.js.html +27 -129
  82. package/coverage/lcov-report/automations/steps/bash.js.html +37 -16
  83. package/coverage/lcov-report/automations/steps/createRow.js.html +15 -15
  84. package/coverage/lcov-report/automations/steps/delay.js.html +48 -9
  85. package/coverage/lcov-report/automations/steps/deleteRow.js.html +14 -14
  86. package/coverage/lcov-report/automations/steps/discord.js.html +329 -0
  87. package/coverage/lcov-report/automations/steps/executeQuery.js.html +22 -34
  88. package/coverage/lcov-report/automations/steps/executeScript.js.html +21 -33
  89. package/coverage/lcov-report/automations/steps/filter.js.html +28 -25
  90. package/coverage/lcov-report/automations/steps/index.html +140 -65
  91. package/coverage/lcov-report/automations/steps/integromat.js.html +341 -0
  92. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +44 -38
  93. package/coverage/lcov-report/automations/steps/queryRows.js.html +437 -0
  94. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +13 -13
  95. package/coverage/lcov-report/automations/steps/serverLog.js.html +23 -11
  96. package/coverage/lcov-report/automations/steps/{sendgridEmail.js.html → slack.js.html} +58 -88
  97. package/coverage/lcov-report/automations/steps/updateRow.js.html +12 -12
  98. package/coverage/lcov-report/automations/steps/utils.js.html +188 -0
  99. package/coverage/lcov-report/automations/steps/zapier.js.html +332 -0
  100. package/coverage/lcov-report/automations/thread.js.html +81 -78
  101. package/coverage/lcov-report/automations/triggerInfo/app.js.html +173 -0
  102. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +173 -0
  103. package/coverage/lcov-report/automations/triggerInfo/index.html +201 -0
  104. package/coverage/lcov-report/automations/triggerInfo/index.js.html +125 -0
  105. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +176 -0
  106. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +200 -0
  107. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +200 -0
  108. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +188 -0
  109. package/coverage/lcov-report/automations/triggers.js.html +67 -838
  110. package/coverage/lcov-report/automations/utils.js.html +557 -0
  111. package/coverage/lcov-report/constants/index.html +5 -5
  112. package/coverage/lcov-report/constants/index.js.html +32 -17
  113. package/coverage/lcov-report/constants/layouts.js.html +5 -5
  114. package/coverage/lcov-report/constants/screens.js.html +4 -4
  115. package/coverage/lcov-report/db/client.js.html +18 -18
  116. package/coverage/lcov-report/db/index.html +19 -19
  117. package/coverage/lcov-report/db/index.js.html +3 -3
  118. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +79 -79
  119. package/coverage/lcov-report/db/linkedRows/index.html +18 -18
  120. package/coverage/lcov-report/db/linkedRows/index.js.html +107 -149
  121. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +43 -43
  122. package/coverage/lcov-report/db/newid.js.html +4 -4
  123. package/coverage/lcov-report/db/utils.js.html +127 -76
  124. package/coverage/lcov-report/events/AutomationEmitter.js.html +7 -7
  125. package/coverage/lcov-report/events/index.html +1 -1
  126. package/coverage/lcov-report/events/index.js.html +6 -6
  127. package/coverage/lcov-report/events/utils.js.html +3 -3
  128. package/coverage/lcov-report/index.html +116 -101
  129. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  130. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  131. package/coverage/lcov-report/{automations/logic.js.html → middleware/appInfo.js.html} +35 -38
  132. package/coverage/lcov-report/middleware/authorized.js.html +16 -16
  133. package/coverage/lcov-report/middleware/builder.js.html +15 -15
  134. package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
  135. package/coverage/lcov-report/middleware/index.html +23 -8
  136. package/coverage/lcov-report/middleware/joi-validator.js.html +6 -6
  137. package/coverage/lcov-report/middleware/resourceId.js.html +28 -28
  138. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  139. package/coverage/lcov-report/middleware/usageQuota.js.html +8 -8
  140. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  141. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  142. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  143. package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
  144. package/coverage/lcov-report/utilities/global.js.html +33 -33
  145. package/coverage/lcov-report/utilities/index.html +28 -28
  146. package/coverage/lcov-report/utilities/index.js.html +178 -25
  147. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +18 -18
  148. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  149. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  150. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  151. package/coverage/lcov-report/utilities/rowProcessor/index.html +14 -14
  152. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +87 -51
  153. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +10 -10
  154. package/coverage/lcov-report/utilities/security.js.html +9 -9
  155. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  156. package/coverage/lcov-report/utilities/users.js.html +5 -5
  157. package/coverage/lcov-report/utilities/workerRequests.js.html +52 -52
  158. package/coverage/lcov.info +3250 -3213
  159. package/dist/api/controllers/automation.js +60 -127
  160. package/dist/api/controllers/deploy/index.js +17 -1
  161. package/dist/api/controllers/metadata.js +49 -0
  162. package/dist/api/controllers/query.js +0 -2
  163. package/dist/api/controllers/row/ExternalRequest.js +1 -1
  164. package/dist/api/controllers/row/index.js +1 -0
  165. package/dist/api/controllers/row/internal.js +33 -23
  166. package/dist/api/controllers/static/index.js +1 -28
  167. package/dist/api/controllers/static/templates/BudibaseApp.svelte +4 -1
  168. package/dist/api/controllers/user.js +1 -1
  169. package/dist/api/routes/automation.js +4 -5
  170. package/dist/api/routes/index.js +2 -0
  171. package/dist/api/routes/metadata.js +13 -0
  172. package/dist/api/routes/static.js +0 -1
  173. package/dist/api/routes/tests/utilities/TestFunctions.js +13 -0
  174. package/dist/app.js +1 -1
  175. package/dist/automations/actions.js +29 -46
  176. package/dist/automations/bullboard.js +11 -2
  177. package/dist/automations/index.js +11 -48
  178. package/dist/automations/steps/bash.js +12 -6
  179. package/dist/automations/steps/createRow.js +5 -5
  180. package/dist/automations/steps/delay.js +16 -3
  181. package/dist/automations/steps/deleteRow.js +5 -5
  182. package/dist/automations/steps/discord.js +91 -0
  183. package/dist/automations/steps/executeQuery.js +12 -15
  184. package/dist/automations/steps/executeScript.js +12 -15
  185. package/dist/automations/steps/filter.js +19 -18
  186. package/dist/automations/steps/integromat.js +94 -0
  187. package/dist/automations/steps/outgoingWebhook.js +19 -20
  188. package/dist/automations/steps/queryRows.js +129 -0
  189. package/dist/automations/steps/sendSmtpEmail.js +4 -4
  190. package/dist/automations/steps/serverLog.js +7 -3
  191. package/dist/automations/steps/slack.js +73 -0
  192. package/dist/automations/steps/updateRow.js +4 -4
  193. package/dist/automations/steps/utils.js +46 -0
  194. package/dist/automations/steps/zapier.js +91 -0
  195. package/dist/automations/tests/utilities/index.js +2 -12
  196. package/dist/automations/thread.js +23 -25
  197. package/dist/automations/triggerInfo/app.js +32 -0
  198. package/dist/automations/triggerInfo/cron.js +32 -0
  199. package/dist/automations/triggerInfo/index.js +15 -0
  200. package/dist/automations/triggerInfo/rowDeleted.js +33 -0
  201. package/dist/automations/triggerInfo/rowSaved.js +41 -0
  202. package/dist/automations/triggerInfo/rowUpdated.js +41 -0
  203. package/dist/automations/triggerInfo/webhook.js +37 -0
  204. package/dist/automations/triggers.js +27 -285
  205. package/dist/automations/utils.js +143 -0
  206. package/dist/constants/index.js +4 -0
  207. package/dist/db/linkedRows/index.js +20 -34
  208. package/dist/db/utils.js +14 -1
  209. package/dist/environment.js +2 -1
  210. package/dist/integrations/mysql.js +14 -2
  211. package/dist/middleware/appInfo.js +17 -0
  212. package/dist/middleware/usageQuota.js +1 -1
  213. package/dist/package.json +12 -11
  214. package/dist/tsconfig.tsbuildinfo +1 -1
  215. package/dist/utilities/appDirectoryTemplate/package.json +1 -1
  216. package/dist/utilities/fileSystem/clientLibrary.js +2 -2
  217. package/dist/utilities/fileSystem/index.js +2 -27
  218. package/dist/utilities/index.js +54 -0
  219. package/dist/utilities/redis.js +16 -1
  220. package/dist/utilities/rowProcessor/index.js +7 -4
  221. package/package.json +13 -12
  222. package/scripts/jestSetup.js +1 -0
  223. package/scripts/selfhost.js +8 -0
  224. package/src/api/controllers/automation.js +87 -145
  225. package/src/api/controllers/deploy/index.js +23 -1
  226. package/src/api/controllers/metadata.js +46 -0
  227. package/src/api/controllers/query.js +0 -2
  228. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  229. package/src/api/controllers/row/index.js +1 -0
  230. package/src/api/controllers/row/internal.js +34 -23
  231. package/src/api/controllers/static/index.js +1 -39
  232. package/src/api/controllers/static/templates/BudibaseApp.svelte +4 -1
  233. package/src/api/controllers/user.js +1 -0
  234. package/src/api/routes/automation.js +16 -11
  235. package/src/api/routes/index.js +2 -0
  236. package/src/api/routes/metadata.js +38 -0
  237. package/src/api/routes/static.js +0 -1
  238. package/src/api/routes/tests/automation.spec.js +4 -26
  239. package/src/api/routes/tests/metadata.spec.js +65 -0
  240. package/src/api/routes/tests/utilities/TestFunctions.js +14 -0
  241. package/src/app.ts +1 -1
  242. package/src/automations/actions.js +29 -49
  243. package/src/automations/bullboard.js +13 -2
  244. package/src/automations/index.js +11 -45
  245. package/src/automations/steps/bash.js +13 -6
  246. package/src/automations/steps/createRow.js +5 -5
  247. package/src/automations/steps/delay.js +16 -3
  248. package/src/automations/steps/deleteRow.js +5 -5
  249. package/src/automations/steps/discord.js +83 -0
  250. package/src/automations/steps/executeQuery.js +12 -16
  251. package/src/automations/steps/executeScript.js +12 -16
  252. package/src/automations/steps/filter.js +19 -18
  253. package/src/automations/steps/integromat.js +87 -0
  254. package/src/automations/steps/outgoingWebhook.js +20 -18
  255. package/src/automations/steps/queryRows.js +119 -0
  256. package/src/automations/steps/sendSmtpEmail.js +4 -4
  257. package/src/automations/steps/serverLog.js +7 -3
  258. package/src/automations/steps/slack.js +64 -0
  259. package/src/automations/steps/updateRow.js +4 -4
  260. package/src/automations/steps/utils.js +36 -0
  261. package/src/automations/steps/zapier.js +84 -0
  262. package/src/automations/tests/automation.spec.js +4 -67
  263. package/src/automations/tests/delay.spec.js +2 -2
  264. package/src/automations/tests/filter.spec.js +14 -14
  265. package/src/automations/tests/queryRows.spec.js +51 -0
  266. package/src/automations/tests/utilities/index.js +2 -13
  267. package/src/automations/thread.js +27 -26
  268. package/src/automations/triggerInfo/app.js +31 -0
  269. package/src/automations/triggerInfo/cron.js +31 -0
  270. package/src/automations/triggerInfo/index.js +15 -0
  271. package/src/automations/triggerInfo/rowDeleted.js +32 -0
  272. package/src/automations/triggerInfo/rowSaved.js +40 -0
  273. package/src/automations/triggerInfo/rowUpdated.js +40 -0
  274. package/src/automations/triggerInfo/webhook.js +36 -0
  275. package/src/automations/triggers.js +33 -290
  276. package/src/automations/utils.js +159 -0
  277. package/src/constants/index.js +5 -0
  278. package/src/db/linkedRows/index.js +21 -35
  279. package/src/db/tests/linkTests.spec.js +0 -12
  280. package/src/db/utils.js +17 -0
  281. package/src/environment.js +2 -1
  282. package/src/integrations/mysql.ts +15 -2
  283. package/src/middleware/appInfo.js +19 -0
  284. package/src/middleware/usageQuota.js +1 -1
  285. package/src/utilities/appDirectoryTemplate/package.json +1 -1
  286. package/src/utilities/fileSystem/clientLibrary.js +2 -2
  287. package/src/utilities/fileSystem/index.js +2 -36
  288. package/src/utilities/index.js +51 -0
  289. package/src/utilities/redis.js +18 -1
  290. package/src/utilities/rowProcessor/index.js +16 -4
  291. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +0 -1244
  292. package/dist/automations/logic.js +0 -17
  293. package/dist/automations/steps/sendgridEmail.js +0 -85
  294. package/src/automations/logic.js +0 -20
  295. package/src/automations/steps/sendgridEmail.js +0 -74
  296. package/src/automations/tests/sendEmail.spec.js +0 -36
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">92% </span>
26
+ <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>23/25</span>
28
+ <span class='fraction'>19/19</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">75% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>3/4</span>
35
+ <span class='fraction'>0/0</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
42
+ <span class='fraction'>0/0</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">92% </span>
47
+ <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>23/25</span>
49
+ <span class='fraction'>19/19</span>
50
50
  </div>
51
51
 
52
52
 
@@ -121,56 +121,28 @@
121
121
  <a name='L62'></a><a href='#L62'>62</a>
122
122
  <a name='L63'></a><a href='#L63'>63</a>
123
123
  <a name='L64'></a><a href='#L64'>64</a>
124
- <a name='L65'></a><a href='#L65'>65</a>
125
- <a name='L66'></a><a href='#L66'>66</a>
126
- <a name='L67'></a><a href='#L67'>67</a>
127
- <a name='L68'></a><a href='#L68'>68</a>
128
- <a name='L69'></a><a href='#L69'>69</a>
129
- <a name='L70'></a><a href='#L70'>70</a>
130
- <a name='L71'></a><a href='#L71'>71</a>
131
- <a name='L72'></a><a href='#L72'>72</a>
132
- <a name='L73'></a><a href='#L73'>73</a>
133
- <a name='L74'></a><a href='#L74'>74</a>
134
- <a name='L75'></a><a href='#L75'>75</a>
135
- <a name='L76'></a><a href='#L76'>76</a>
136
- <a name='L77'></a><a href='#L77'>77</a>
137
- <a name='L78'></a><a href='#L78'>78</a>
138
- <a name='L79'></a><a href='#L79'>79</a>
139
- <a name='L80'></a><a href='#L80'>80</a>
140
- <a name='L81'></a><a href='#L81'>81</a>
141
- <a name='L82'></a><a href='#L82'>82</a>
142
- <a name='L83'></a><a href='#L83'>83</a>
143
- <a name='L84'></a><a href='#L84'>84</a>
144
- <a name='L85'></a><a href='#L85'>85</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
145
- <span class="cline-any cline-yes">33x</span>
146
- <span class="cline-any cline-yes">33x</span>
147
- <span class="cline-any cline-yes">33x</span>
148
- <span class="cline-any cline-yes">33x</span>
149
- <span class="cline-any cline-yes">33x</span>
150
- <span class="cline-any cline-yes">33x</span>
151
- <span class="cline-any cline-yes">33x</span>
152
- <span class="cline-any cline-yes">33x</span>
153
- <span class="cline-any cline-yes">33x</span>
154
- <span class="cline-any cline-yes">33x</span>
155
- <span class="cline-any cline-yes">33x</span>
156
- <span class="cline-any cline-neutral">&nbsp;</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
- <span class="cline-any cline-yes">33x</span>
160
- <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-yes">33x</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-neutral">&nbsp;</span>
164
- <span class="cline-any cline-neutral">&nbsp;</span>
165
- <span class="cline-any cline-neutral">&nbsp;</span>
166
- <span class="cline-any cline-neutral">&nbsp;</span>
167
- <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <a name='L65'></a><a href='#L65'>65</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
125
+ <span class="cline-any cline-yes">34x</span>
126
+ <span class="cline-any cline-yes">34x</span>
127
+ <span class="cline-any cline-yes">34x</span>
128
+ <span class="cline-any cline-yes">34x</span>
129
+ <span class="cline-any cline-yes">34x</span>
130
+ <span class="cline-any cline-yes">34x</span>
131
+ <span class="cline-any cline-yes">34x</span>
132
+ <span class="cline-any cline-yes">34x</span>
133
+ <span class="cline-any cline-yes">34x</span>
134
+ <span class="cline-any cline-yes">34x</span>
135
+ <span class="cline-any cline-yes">34x</span>
136
+ <span class="cline-any cline-yes">34x</span>
137
+ <span class="cline-any cline-yes">34x</span>
138
+ <span class="cline-any cline-yes">34x</span>
139
+ <span class="cline-any cline-yes">34x</span>
168
140
  <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-yes">34x</span>
169
142
  <span class="cline-any cline-neutral">&nbsp;</span>
170
143
  <span class="cline-any cline-neutral">&nbsp;</span>
171
144
  <span class="cline-any cline-neutral">&nbsp;</span>
172
145
  <span class="cline-any cline-neutral">&nbsp;</span>
173
- <span class="cline-any cline-yes">33x</span>
174
146
  <span class="cline-any cline-neutral">&nbsp;</span>
175
147
  <span class="cline-any cline-neutral">&nbsp;</span>
176
148
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -183,9 +155,9 @@
183
155
  <span class="cline-any cline-neutral">&nbsp;</span>
184
156
  <span class="cline-any cline-neutral">&nbsp;</span>
185
157
  <span class="cline-any cline-neutral">&nbsp;</span>
186
- <span class="cline-any cline-yes">33x</span>
187
158
  <span class="cline-any cline-neutral">&nbsp;</span>
188
159
  <span class="cline-any cline-neutral">&nbsp;</span>
160
+ <span class="cline-any cline-yes">34x</span>
189
161
  <span class="cline-any cline-neutral">&nbsp;</span>
190
162
  <span class="cline-any cline-neutral">&nbsp;</span>
191
163
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -208,25 +180,12 @@
208
180
  <span class="cline-any cline-neutral">&nbsp;</span>
209
181
  <span class="cline-any cline-neutral">&nbsp;</span>
210
182
  <span class="cline-any cline-neutral">&nbsp;</span>
211
- <span class="cline-any cline-yes">33x</span>
212
- <span class="cline-any cline-yes">28x</span>
213
- <span class="cline-any cline-yes">28x</span>
214
- <span class="cline-any cline-yes">13x</span>
215
183
  <span class="cline-any cline-neutral">&nbsp;</span>
216
184
  <span class="cline-any cline-neutral">&nbsp;</span>
217
185
  <span class="cline-any cline-neutral">&nbsp;</span>
218
186
  <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-no">&nbsp;</span>
220
- <span class="cline-any cline-no">&nbsp;</span>
221
- <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-yes">13x</span>
223
- <span class="cline-any cline-neutral">&nbsp;</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-yes">33x</span>
227
- <span class="cline-any cline-yes">33x</span>
228
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const sendgridEmail = require("./steps/sendgridEmail")
229
- const sendSmtpEmail = require("./steps/sendSmtpEmail")
187
+ <span class="cline-any cline-yes">34x</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const sendSmtpEmail = require("./steps/sendSmtpEmail")
230
189
  const createRow = require("./steps/createRow")
231
190
  const updateRow = require("./steps/updateRow")
232
191
  const deleteRow = require("./steps/deleteRow")
@@ -235,15 +194,15 @@ const bash = require("./steps/bash")
235
194
  const executeQuery = require("./steps/executeQuery")
236
195
  const outgoingWebhook = require("./steps/outgoingWebhook")
237
196
  const serverLog = require("./steps/serverLog")
238
- const env = require("../environment")
239
- const Sentry = require("@sentry/node")
240
- const {
241
- automationInit,
242
- getExternalAutomationStep,
243
- } = require("../utilities/fileSystem")
197
+ const discord = require("./steps/discord")
198
+ const slack = require("./steps/slack")
199
+ const zapier = require("./steps/zapier")
200
+ const integromat = require("./steps/integromat")
201
+ let filter = require("./steps/filter")
202
+ let delay = require("./steps/delay")
203
+ let queryRow = require("./steps/queryRows")
244
204
  &nbsp;
245
- const BUILTIN_ACTIONS = {
246
- SEND_EMAIL: sendgridEmail.run,
205
+ const ACTION_IMPLS = {
247
206
  SEND_EMAIL_SMTP: sendSmtpEmail.run,
248
207
  CREATE_ROW: createRow.run,
249
208
  UPDATE_ROW: updateRow.run,
@@ -253,9 +212,16 @@ const BUILTIN_ACTIONS = {
253
212
  EXECUTE_BASH: bash.run,
254
213
  EXECUTE_QUERY: executeQuery.run,
255
214
  SERVER_LOG: serverLog.run,
215
+ DELAY: delay.run,
216
+ FILTER: filter.run,
217
+ QUERY_ROWS: queryRow.run,
218
+ // these used to be lowercase step IDs, maintain for backwards compat
219
+ discord: discord.run,
220
+ slack: slack.run,
221
+ zapier: zapier.run,
222
+ integromat: integromat.run,
256
223
  }
257
- const BUILTIN_DEFINITIONS = {
258
- SEND_EMAIL: sendgridEmail.definition,
224
+ const ACTION_DEFINITIONS = {
259
225
  SEND_EMAIL_SMTP: sendSmtpEmail.definition,
260
226
  CREATE_ROW: createRow.definition,
261
227
  UPDATE_ROW: updateRow.definition,
@@ -265,50 +231,24 @@ const BUILTIN_DEFINITIONS = {
265
231
  EXECUTE_QUERY: executeQuery.definition,
266
232
  EXECUTE_BASH: bash.definition,
267
233
  SERVER_LOG: serverLog.definition,
234
+ DELAY: delay.definition,
235
+ FILTER: filter.definition,
236
+ QUERY_ROWS: queryRow.definition,
237
+ // these used to be lowercase step IDs, maintain for backwards compat
238
+ discord: discord.definition,
239
+ slack: slack.definition,
240
+ zapier: zapier.definition,
241
+ integromat: integromat.definition,
268
242
  }
269
243
  &nbsp;
270
- let MANIFEST = null
271
- &nbsp;
272
244
  /* istanbul ignore next */
273
- function buildBundleName(pkgName, version) {
274
- return `${pkgName}@${version}.min.js`
275
- }
276
- &nbsp;
277
- /* istanbul ignore next */
278
- module.exports.getAction = async function (actionName) {
279
- if (BUILTIN_ACTIONS[actionName] != null) {
280
- return BUILTIN_ACTIONS[actionName]
281
- }
282
- // worker pools means that a worker may not have manifest
283
- if (env.isProd() &amp;&amp; MANIFEST == null) {
284
- MANIFEST = await module.exports.init()
285
- }
286
- // env setup to get async packages
287
- if (!MANIFEST || !MANIFEST.packages || !MANIFEST.packages[actionName]) {
288
- return null
289
- }
290
- const pkg = MANIFEST.packages[actionName]
291
- const bundleName = buildBundleName(pkg.stepId, pkg.version)
292
- return getExternalAutomationStep(pkg.stepId, pkg.version, bundleName)
293
- }
294
- &nbsp;
295
- module.exports.init = async function () {
296
- try {
297
- MANIFEST = await automationInit()
298
- module.exports.DEFINITIONS =
299
- MANIFEST &amp;&amp; MANIFEST.packages
300
- ? Object.assign(MANIFEST.packages, BUILTIN_DEFINITIONS)
301
- : <span class="branch-1 cbranch-no" title="branch not covered" >BUILTIN_DEFINITIONS</span>
302
- } catch (err) {
303
- <span class="cstat-no" title="statement not covered" > console.error(err)</span>
304
- <span class="cstat-no" title="statement not covered" > Sentry.captureException(err)</span>
245
+ exports.getAction = async function (actionName) {
246
+ if (ACTION_IMPLS[actionName] != null) {
247
+ return ACTION_IMPLS[actionName]
305
248
  }
306
- return MANIFEST
307
249
  }
308
250
  &nbsp;
309
- // definitions will have downloaded ones added to it, while builtin won't
310
- module.exports.DEFINITIONS = BUILTIN_DEFINITIONS
311
- module.exports.BUILTIN_DEFINITIONS = BUILTIN_DEFINITIONS
251
+ exports.ACTION_DEFINITIONS = ACTION_DEFINITIONS
312
252
  &nbsp;</pre></td></tr></table></pre>
313
253
 
314
254
  <div class='push'></div><!-- for sticky footer -->
@@ -316,7 +256,7 @@ module.exports.BUILTIN_DEFINITIONS = BUILTIN_DEFINITIONS
316
256
  <div class='footer quiet pad2 space-top1 center small'>
317
257
  Code coverage generated by
318
258
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
319
- at Tue Sep 21 2021 13:44:17 GMT+0000 (Coordinated Universal Time)
259
+ at Tue Sep 21 2021 20:54:54 GMT+0000 (Coordinated Universal Time)
320
260
  </div>
321
261
  </div>
322
262
  <script src="../prettify.js"></script>
@@ -149,12 +149,12 @@
149
149
  <a name='L90'></a><a href='#L90'>90</a>
150
150
  <a name='L91'></a><a href='#L91'>91</a>
151
151
  <a name='L92'></a><a href='#L92'>92</a>
152
- <a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
152
+ <a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
153
153
  <span class="cline-any cline-neutral">&nbsp;</span>
154
154
  <span class="cline-any cline-neutral">&nbsp;</span>
155
155
  <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-yes">33x</span>
157
- <span class="cline-any cline-yes">33x</span>
156
+ <span class="cline-any cline-yes">34x</span>
157
+ <span class="cline-any cline-yes">34x</span>
158
158
  <span class="cline-any cline-neutral">&nbsp;</span>
159
159
  <span class="cline-any cline-neutral">&nbsp;</span>
160
160
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -172,7 +172,7 @@
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
173
  <span class="cline-any cline-neutral">&nbsp;</span>
174
174
  <span class="cline-any cline-neutral">&nbsp;</span>
175
- <span class="cline-any cline-yes">33x</span>
175
+ <span class="cline-any cline-yes">34x</span>
176
176
  <span class="cline-any cline-yes">15x</span>
177
177
  <span class="cline-any cline-yes">1x</span>
178
178
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -214,7 +214,7 @@
214
214
  <span class="cline-any cline-neutral">&nbsp;</span>
215
215
  <span class="cline-any cline-neutral">&nbsp;</span>
216
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-yes">33x</span>
217
+ <span class="cline-any cline-yes">34x</span>
218
218
  <span class="cline-any cline-yes">9x</span>
219
219
  <span class="cline-any cline-neutral">&nbsp;</span>
220
220
  <span class="cline-any cline-yes">9x</span>
@@ -236,7 +236,7 @@
236
236
  <span class="cline-any cline-neutral">&nbsp;</span>
237
237
  <span class="cline-any cline-neutral">&nbsp;</span>
238
238
  <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-yes">33x</span>
239
+ <span class="cline-any cline-yes">34x</span>
240
240
  <span class="cline-any cline-yes">2x</span>
241
241
  <span class="cline-any cline-yes">2x</span>
242
242
  <span class="cline-any cline-yes">1x</span>
@@ -340,7 +340,7 @@ module.exports.cleanUpRowById = async (appId, rowId, row) =&gt; {
340
340
  <div class='footer quiet pad2 space-top1 center small'>
341
341
  Code coverage generated by
342
342
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
343
- at Tue Sep 21 2021 13:44:17 GMT+0000 (Coordinated Universal Time)
343
+ at Tue Sep 21 2021 20:54:54 GMT+0000 (Coordinated Universal Time)
344
344
  </div>
345
345
  </div>
346
346
  <script src="../prettify.js"></script>
@@ -23,16 +23,16 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">42.86% </span>
26
+ <span class="strong">61.9% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>6/14</span>
28
+ <span class='fraction'>13/21</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
35
+ <span class='fraction'>3/4</span>
36
36
  </div>
37
37
 
38
38
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">42.86% </span>
47
+ <span class="strong">61.9% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>6/14</span>
49
+ <span class='fraction'>13/21</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line low'></div>
58
+ <div class='status-line medium'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -77,14 +77,34 @@
77
77
  <a name='L18'></a><a href='#L18'>18</a>
78
78
  <a name='L19'></a><a href='#L19'>19</a>
79
79
  <a name='L20'></a><a href='#L20'>20</a>
80
- <a name='L21'></a><a href='#L21'>21</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">22x</span>
81
- <span class="cline-any cline-yes">22x</span>
82
- <span class="cline-any cline-yes">22x</span>
83
- <span class="cline-any cline-yes">22x</span>
80
+ <a name='L21'></a><a href='#L21'>21</a>
81
+ <a name='L22'></a><a href='#L22'>22</a>
82
+ <a name='L23'></a><a href='#L23'>23</a>
83
+ <a name='L24'></a><a href='#L24'>24</a>
84
+ <a name='L25'></a><a href='#L25'>25</a>
85
+ <a name='L26'></a><a href='#L26'>26</a>
86
+ <a name='L27'></a><a href='#L27'>27</a>
87
+ <a name='L28'></a><a href='#L28'>28</a>
88
+ <a name='L29'></a><a href='#L29'>29</a>
89
+ <a name='L30'></a><a href='#L30'>30</a>
90
+ <a name='L31'></a><a href='#L31'>31</a>
91
+ <a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
92
+ <span class="cline-any cline-yes">33x</span>
93
+ <span class="cline-any cline-yes">33x</span>
94
+ <span class="cline-any cline-yes">33x</span>
95
+ <span class="cline-any cline-yes">33x</span>
84
96
  <span class="cline-any cline-neutral">&nbsp;</span>
85
- <span class="cline-any cline-yes">22x</span>
86
97
  <span class="cline-any cline-neutral">&nbsp;</span>
87
- <span class="cline-any cline-yes">22x</span>
98
+ <span class="cline-any cline-yes">33x</span>
99
+ <span class="cline-any cline-yes">33x</span>
100
+ <span class="cline-any cline-yes">33x</span>
101
+ <span class="cline-any cline-neutral">&nbsp;</span>
102
+ <span class="cline-any cline-yes">33x</span>
103
+ <span class="cline-any cline-yes">33x</span>
104
+ <span class="cline-any cline-neutral">&nbsp;</span>
105
+ <span class="cline-any cline-yes">33x</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-yes">33x</span>
88
108
  <span class="cline-any cline-no">&nbsp;</span>
89
109
  <span class="cline-any cline-neutral">&nbsp;</span>
90
110
  <span class="cline-any cline-no">&nbsp;</span>
@@ -97,17 +117,28 @@
97
117
  <span class="cline-any cline-no">&nbsp;</span>
98
118
  <span class="cline-any cline-no">&nbsp;</span>
99
119
  <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-yes">33x</span>
100
122
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { createBullBoard } = require("bull-board")
101
123
  const { BullAdapter } = require("bull-board/bullAdapter")
102
- const { getQueues } = require("./triggers")
103
124
  const express = require("express")
125
+ const env = require("../environment")
126
+ const Queue = env.isTest()
127
+ ? require("../utilities/queue/inMemoryQueue")
128
+ : <span class="branch-1 cbranch-no" title="branch not covered" >require("bull")</span>
129
+ const { JobQueues } = require("../constants")
130
+ const { utils } = require("@budibase/auth/redis")
131
+ const { opts, redisProtocolUrl } = utils.getRedisOptions()
132
+ &nbsp;
133
+ const redisConfig = redisProtocolUrl || { redis: opts }
134
+ let automationQueue = new Queue(JobQueues.AUTOMATIONS, redisConfig)
104
135
  &nbsp;
105
136
  exports.pathPrefix = "/bulladmin"
106
137
  &nbsp;
107
138
  exports.init = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
108
139
  const expressApp = <span class="cstat-no" title="statement not covered" >express()</span>
109
140
  // Set up queues for bull board admin
110
- const queues = <span class="cstat-no" title="statement not covered" >getQueues()</span>
141
+ const queues = <span class="cstat-no" title="statement not covered" >[automationQueue]</span>
111
142
  const adapters = <span class="cstat-no" title="statement not covered" >[]</span>
112
143
  <span class="cstat-no" title="statement not covered" > for (let queue of queues) {</span>
113
144
  <span class="cstat-no" title="statement not covered" > adapters.push(new BullAdapter(queue))</span>
@@ -117,6 +148,8 @@ exports.init = <span class="fstat-no" title="function not covered" >()</span> =&
117
148
  <span class="cstat-no" title="statement not covered" > expressApp.use(exports.pathPrefix, router)</span>
118
149
  <span class="cstat-no" title="statement not covered" > return expressApp</span>
119
150
  }
151
+ &nbsp;
152
+ exports.queue = automationQueue
120
153
  &nbsp;</pre></td></tr></table></pre>
121
154
 
122
155
  <div class='push'></div><!-- for sticky footer -->
@@ -124,7 +157,7 @@ exports.init = <span class="fstat-no" title="function not covered" >()</span> =&
124
157
  <div class='footer quiet pad2 space-top1 center small'>
125
158
  Code coverage generated by
126
159
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
127
- at Tue Sep 21 2021 13:44:17 GMT+0000 (Coordinated Universal Time)
160
+ at Tue Sep 21 2021 20:54:54 GMT+0000 (Coordinated Universal Time)
128
161
  </div>
129
162
  </div>
130
163
  <script src="../prettify.js"></script>