@budibase/server 0.9.125-alpha.4 → 0.9.125-alpha.8

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 (270) hide show
  1. package/builder/assets/{index.dc48c234.js → index.cf133375.js} +2 -2
  2. package/builder/assets/{vendor.4af73c18.js → vendor.d8e1ee7b.js} +1 -1
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +1659 -1493
  5. package/coverage/coverage-final.json +101 -87
  6. package/coverage/lcov-report/api/controllers/analytics.js.html +3 -3
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  8. package/coverage/lcov-report/api/controllers/application.js.html +39 -39
  9. package/coverage/lcov-report/api/controllers/auth.js.html +6 -6
  10. package/coverage/lcov-report/api/controllers/automation.js.html +151 -361
  11. package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
  12. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/dev.js.html +15 -15
  15. package/coverage/lcov-report/api/controllers/hosting.js.html +8 -8
  16. package/coverage/lcov-report/api/controllers/index.html +39 -24
  17. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  18. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/metadata.js.html +218 -0
  20. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query.js.html +6 -12
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +20 -20
  26. package/coverage/lcov-report/api/controllers/row/index.js.html +14 -14
  27. package/coverage/lcov-report/api/controllers/row/internal.js.html +95 -62
  28. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +10 -10
  30. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/index.js.html +24 -24
  34. package/coverage/lcov-report/api/controllers/table/utils.js.html +32 -32
  35. package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
  36. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  42. package/coverage/lcov-report/api/index.html +1 -1
  43. package/coverage/lcov-report/api/index.js.html +23 -23
  44. package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
  45. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  46. package/coverage/lcov-report/api/routes/application.js.html +8 -8
  47. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  48. package/coverage/lcov-report/api/routes/automation.js.html +41 -26
  49. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  50. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  51. package/coverage/lcov-report/api/routes/datasource.js.html +13 -13
  52. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  53. package/coverage/lcov-report/api/routes/dev.js.html +11 -11
  54. package/coverage/lcov-report/api/routes/hosting.js.html +8 -8
  55. package/coverage/lcov-report/api/routes/index.html +24 -9
  56. package/coverage/lcov-report/api/routes/index.js.html +36 -30
  57. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  58. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  59. package/coverage/lcov-report/api/routes/metadata.js.html +194 -0
  60. package/coverage/lcov-report/api/routes/permission.js.html +12 -12
  61. package/coverage/lcov-report/api/routes/query.js.html +13 -13
  62. package/coverage/lcov-report/api/routes/role.js.html +12 -12
  63. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  64. package/coverage/lcov-report/api/routes/row.js.html +10 -10
  65. package/coverage/lcov-report/api/routes/screen.js.html +11 -11
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/static.js.html +13 -13
  68. package/coverage/lcov-report/api/routes/table.js.html +12 -12
  69. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  70. package/coverage/lcov-report/api/routes/user.js.html +9 -9
  71. package/coverage/lcov-report/api/routes/view.js.html +11 -11
  72. package/coverage/lcov-report/api/routes/webhook.js.html +11 -11
  73. package/coverage/lcov-report/automations/actions.js.html +38 -107
  74. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  75. package/coverage/lcov-report/automations/bullboard.js.html +46 -16
  76. package/coverage/lcov-report/automations/index.html +67 -67
  77. package/coverage/lcov-report/automations/index.js.html +26 -128
  78. package/coverage/lcov-report/automations/steps/bash.js.html +33 -12
  79. package/coverage/lcov-report/automations/steps/createRow.js.html +8 -8
  80. package/coverage/lcov-report/automations/steps/delay.js.html +45 -6
  81. package/coverage/lcov-report/automations/steps/deleteRow.js.html +8 -8
  82. package/coverage/lcov-report/automations/steps/discord.js.html +329 -0
  83. package/coverage/lcov-report/automations/steps/executeQuery.js.html +19 -31
  84. package/coverage/lcov-report/automations/steps/executeScript.js.html +18 -30
  85. package/coverage/lcov-report/automations/steps/filter.js.html +22 -19
  86. package/coverage/lcov-report/automations/steps/index.html +125 -65
  87. package/coverage/lcov-report/automations/steps/integromat.js.html +341 -0
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +26 -32
  89. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +9 -9
  90. package/coverage/lcov-report/automations/steps/serverLog.js.html +20 -8
  91. package/coverage/lcov-report/automations/steps/{sendgridEmail.js.html → slack.js.html} +57 -87
  92. package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
  93. package/coverage/lcov-report/automations/steps/utils.js.html +188 -0
  94. package/coverage/lcov-report/automations/steps/zapier.js.html +332 -0
  95. package/coverage/lcov-report/automations/thread.js.html +79 -76
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +173 -0
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +173 -0
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +201 -0
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +125 -0
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +176 -0
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +200 -0
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +200 -0
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +188 -0
  104. package/coverage/lcov-report/automations/triggers.js.html +54 -819
  105. package/coverage/lcov-report/automations/utils.js.html +557 -0
  106. package/coverage/lcov-report/constants/index.html +5 -5
  107. package/coverage/lcov-report/constants/index.js.html +19 -4
  108. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  109. package/coverage/lcov-report/constants/screens.js.html +2 -2
  110. package/coverage/lcov-report/db/client.js.html +1 -1
  111. package/coverage/lcov-report/db/index.html +19 -19
  112. package/coverage/lcov-report/db/index.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +73 -73
  114. package/coverage/lcov-report/db/linkedRows/index.html +17 -17
  115. package/coverage/lcov-report/db/linkedRows/index.js.html +79 -115
  116. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +31 -31
  117. package/coverage/lcov-report/db/newid.js.html +2 -2
  118. package/coverage/lcov-report/db/utils.js.html +79 -28
  119. package/coverage/lcov-report/events/AutomationEmitter.js.html +7 -7
  120. package/coverage/lcov-report/events/index.html +1 -1
  121. package/coverage/lcov-report/events/index.js.html +2 -2
  122. package/coverage/lcov-report/events/utils.js.html +1 -1
  123. package/coverage/lcov-report/index.html +115 -100
  124. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  125. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  126. package/coverage/lcov-report/{automations/logic.js.html → middleware/appInfo.js.html} +35 -38
  127. package/coverage/lcov-report/middleware/authorized.js.html +16 -16
  128. package/coverage/lcov-report/middleware/builder.js.html +15 -15
  129. package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
  130. package/coverage/lcov-report/middleware/index.html +23 -8
  131. package/coverage/lcov-report/middleware/joi-validator.js.html +6 -6
  132. package/coverage/lcov-report/middleware/resourceId.js.html +28 -28
  133. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  134. package/coverage/lcov-report/middleware/usageQuota.js.html +8 -8
  135. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  136. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  137. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  138. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  139. package/coverage/lcov-report/utilities/global.js.html +21 -21
  140. package/coverage/lcov-report/utilities/index.html +18 -18
  141. package/coverage/lcov-report/utilities/index.js.html +167 -14
  142. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +12 -12
  143. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  144. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  145. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  146. package/coverage/lcov-report/utilities/rowProcessor/index.html +14 -14
  147. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +87 -51
  148. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +8 -8
  149. package/coverage/lcov-report/utilities/security.js.html +2 -2
  150. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  151. package/coverage/lcov-report/utilities/users.js.html +1 -1
  152. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  153. package/coverage/lcov.info +2641 -2357
  154. package/dist/api/controllers/automation.js +49 -127
  155. package/dist/api/controllers/deploy/index.js +17 -1
  156. package/dist/api/controllers/metadata.js +49 -0
  157. package/dist/api/controllers/query.js +0 -2
  158. package/dist/api/controllers/row/internal.js +33 -23
  159. package/dist/api/routes/automation.js +4 -5
  160. package/dist/api/routes/index.js +2 -0
  161. package/dist/api/routes/metadata.js +13 -0
  162. package/dist/api/routes/tests/utilities/TestFunctions.js +13 -0
  163. package/dist/app.js +1 -1
  164. package/dist/automations/actions.js +26 -46
  165. package/dist/automations/bullboard.js +10 -2
  166. package/dist/automations/index.js +11 -48
  167. package/dist/automations/steps/bash.js +11 -5
  168. package/dist/automations/steps/createRow.js +4 -4
  169. package/dist/automations/steps/delay.js +15 -2
  170. package/dist/automations/steps/deleteRow.js +4 -4
  171. package/dist/automations/steps/discord.js +91 -0
  172. package/dist/automations/steps/executeQuery.js +11 -14
  173. package/dist/automations/steps/executeScript.js +11 -14
  174. package/dist/automations/steps/filter.js +18 -17
  175. package/dist/automations/steps/integromat.js +94 -0
  176. package/dist/automations/steps/outgoingWebhook.js +12 -16
  177. package/dist/automations/steps/sendSmtpEmail.js +3 -3
  178. package/dist/automations/steps/serverLog.js +6 -2
  179. package/dist/automations/steps/slack.js +73 -0
  180. package/dist/automations/steps/updateRow.js +3 -3
  181. package/dist/automations/steps/utils.js +46 -0
  182. package/dist/automations/steps/zapier.js +91 -0
  183. package/dist/automations/tests/utilities/index.js +2 -12
  184. package/dist/automations/thread.js +23 -25
  185. package/dist/automations/triggerInfo/app.js +32 -0
  186. package/dist/automations/triggerInfo/cron.js +32 -0
  187. package/dist/automations/triggerInfo/index.js +15 -0
  188. package/dist/automations/triggerInfo/rowDeleted.js +33 -0
  189. package/dist/automations/triggerInfo/rowSaved.js +41 -0
  190. package/dist/automations/triggerInfo/rowUpdated.js +41 -0
  191. package/dist/automations/triggerInfo/webhook.js +37 -0
  192. package/dist/automations/triggers.js +27 -284
  193. package/dist/automations/utils.js +143 -0
  194. package/dist/constants/index.js +4 -0
  195. package/dist/db/linkedRows/index.js +14 -26
  196. package/dist/db/utils.js +14 -1
  197. package/dist/environment.js +1 -0
  198. package/dist/integrations/mysql.js +1 -1
  199. package/dist/middleware/appInfo.js +17 -0
  200. package/dist/middleware/usageQuota.js +1 -1
  201. package/dist/package.json +7 -6
  202. package/dist/tsconfig.tsbuildinfo +1 -1
  203. package/dist/utilities/fileSystem/index.js +0 -26
  204. package/dist/utilities/index.js +54 -0
  205. package/dist/utilities/redis.js +16 -1
  206. package/dist/utilities/rowProcessor/index.js +7 -4
  207. package/package.json +8 -7
  208. package/scripts/selfhost.js +8 -0
  209. package/src/api/controllers/automation.js +75 -145
  210. package/src/api/controllers/deploy/index.js +23 -1
  211. package/src/api/controllers/metadata.js +46 -0
  212. package/src/api/controllers/query.js +0 -2
  213. package/src/api/controllers/row/internal.js +34 -23
  214. package/src/api/routes/automation.js +16 -11
  215. package/src/api/routes/index.js +2 -0
  216. package/src/api/routes/metadata.js +38 -0
  217. package/src/api/routes/tests/automation.spec.js +4 -26
  218. package/src/api/routes/tests/metadata.spec.js +65 -0
  219. package/src/api/routes/tests/utilities/TestFunctions.js +14 -0
  220. package/src/app.ts +1 -1
  221. package/src/automations/actions.js +26 -49
  222. package/src/automations/bullboard.js +12 -2
  223. package/src/automations/index.js +11 -45
  224. package/src/automations/steps/bash.js +12 -5
  225. package/src/automations/steps/createRow.js +4 -4
  226. package/src/automations/steps/delay.js +15 -2
  227. package/src/automations/steps/deleteRow.js +4 -4
  228. package/src/automations/steps/discord.js +83 -0
  229. package/src/automations/steps/executeQuery.js +11 -15
  230. package/src/automations/steps/executeScript.js +11 -15
  231. package/src/automations/steps/filter.js +18 -17
  232. package/src/automations/steps/integromat.js +87 -0
  233. package/src/automations/steps/outgoingWebhook.js +12 -14
  234. package/src/automations/steps/sendSmtpEmail.js +3 -3
  235. package/src/automations/steps/serverLog.js +6 -2
  236. package/src/automations/steps/slack.js +64 -0
  237. package/src/automations/steps/updateRow.js +3 -3
  238. package/src/automations/steps/utils.js +36 -0
  239. package/src/automations/steps/zapier.js +84 -0
  240. package/src/automations/tests/automation.spec.js +3 -66
  241. package/src/automations/tests/delay.spec.js +1 -1
  242. package/src/automations/tests/filter.spec.js +13 -13
  243. package/src/automations/tests/utilities/index.js +2 -13
  244. package/src/automations/thread.js +27 -26
  245. package/src/automations/triggerInfo/app.js +31 -0
  246. package/src/automations/triggerInfo/cron.js +31 -0
  247. package/src/automations/triggerInfo/index.js +15 -0
  248. package/src/automations/triggerInfo/rowDeleted.js +32 -0
  249. package/src/automations/triggerInfo/rowSaved.js +40 -0
  250. package/src/automations/triggerInfo/rowUpdated.js +40 -0
  251. package/src/automations/triggerInfo/webhook.js +36 -0
  252. package/src/automations/triggers.js +33 -288
  253. package/src/automations/utils.js +159 -0
  254. package/src/constants/index.js +5 -0
  255. package/src/db/linkedRows/index.js +15 -27
  256. package/src/db/tests/linkTests.spec.js +0 -12
  257. package/src/db/utils.js +17 -0
  258. package/src/environment.js +1 -0
  259. package/src/integrations/mysql.ts +1 -1
  260. package/src/middleware/appInfo.js +19 -0
  261. package/src/middleware/usageQuota.js +1 -1
  262. package/src/utilities/fileSystem/index.js +0 -30
  263. package/src/utilities/index.js +51 -0
  264. package/src/utilities/redis.js +18 -1
  265. package/src/utilities/rowProcessor/index.js +16 -4
  266. package/dist/automations/logic.js +0 -17
  267. package/dist/automations/steps/sendgridEmail.js +0 -85
  268. package/src/automations/logic.js +0 -20
  269. package/src/automations/steps/sendgridEmail.js +0 -74
  270. package/src/automations/tests/sendEmail.spec.js +0 -36
@@ -340,7 +340,7 @@ module.exports.cleanUpRowById = async (appId, rowId, row) => {
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 14 2021 10:25:14 GMT+0000 (Coordinated Universal Time)
343
+ at Wed Sep 15 2021 15:55:32 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">60% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>6/14</span>
28
+ <span class='fraction'>12/20</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">50% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
35
+ <span class='fraction'>1/2</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">60% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>6/14</span>
49
+ <span class='fraction'>12/20</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,32 @@
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">32x</span>
91
+ <span class="cline-any cline-yes">32x</span>
92
+ <span class="cline-any cline-yes">32x</span>
93
+ <span class="cline-any cline-yes">32x</span>
94
+ <span class="cline-any cline-yes">32x</span>
84
95
  <span class="cline-any cline-neutral">&nbsp;</span>
85
- <span class="cline-any cline-yes">22x</span>
86
96
  <span class="cline-any cline-neutral">&nbsp;</span>
87
- <span class="cline-any cline-yes">22x</span>
97
+ <span class="cline-any cline-yes">32x</span>
98
+ <span class="cline-any cline-yes">32x</span>
99
+ <span class="cline-any cline-yes">32x</span>
100
+ <span class="cline-any cline-neutral">&nbsp;</span>
101
+ <span class="cline-any cline-yes">32x</span>
102
+ <span class="cline-any cline-neutral">&nbsp;</span>
103
+ <span class="cline-any cline-yes">32x</span>
104
+ <span class="cline-any cline-neutral">&nbsp;</span>
105
+ <span class="cline-any cline-yes">32x</span>
88
106
  <span class="cline-any cline-no">&nbsp;</span>
89
107
  <span class="cline-any cline-neutral">&nbsp;</span>
90
108
  <span class="cline-any cline-no">&nbsp;</span>
@@ -97,17 +115,27 @@
97
115
  <span class="cline-any cline-no">&nbsp;</span>
98
116
  <span class="cline-any cline-no">&nbsp;</span>
99
117
  <span class="cline-any cline-neutral">&nbsp;</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-yes">32x</span>
100
120
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { createBullBoard } = require("bull-board")
101
121
  const { BullAdapter } = require("bull-board/bullAdapter")
102
- const { getQueues } = require("./triggers")
103
122
  const express = require("express")
123
+ const env = require("../environment")
124
+ const Queue = env.isTest()
125
+ ? require("../utilities/queue/inMemoryQueue")
126
+ : <span class="branch-1 cbranch-no" title="branch not covered" >require("bull")</span>
127
+ const { JobQueues } = require("../constants")
128
+ const { utils } = require("@budibase/auth/redis")
129
+ const { opts } = utils.getRedisOptions()
130
+ &nbsp;
131
+ let automationQueue = new Queue(JobQueues.AUTOMATIONS, { redis: opts })
104
132
  &nbsp;
105
133
  exports.pathPrefix = "/bulladmin"
106
134
  &nbsp;
107
135
  exports.init = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
108
136
  const expressApp = <span class="cstat-no" title="statement not covered" >express()</span>
109
137
  // Set up queues for bull board admin
110
- const queues = <span class="cstat-no" title="statement not covered" >getQueues()</span>
138
+ const queues = <span class="cstat-no" title="statement not covered" >[automationQueue]</span>
111
139
  const adapters = <span class="cstat-no" title="statement not covered" >[]</span>
112
140
  <span class="cstat-no" title="statement not covered" > for (let queue of queues) {</span>
113
141
  <span class="cstat-no" title="statement not covered" > adapters.push(new BullAdapter(queue))</span>
@@ -117,6 +145,8 @@ exports.init = <span class="fstat-no" title="function not covered" >()</span> =&
117
145
  <span class="cstat-no" title="statement not covered" > expressApp.use(exports.pathPrefix, router)</span>
118
146
  <span class="cstat-no" title="statement not covered" > return expressApp</span>
119
147
  }
148
+ &nbsp;
149
+ exports.queue = automationQueue
120
150
  &nbsp;</pre></td></tr></table></pre>
121
151
 
122
152
  <div class='push'></div><!-- for sticky footer -->
@@ -124,7 +154,7 @@ exports.init = <span class="fstat-no" title="function not covered" >()</span> =&
124
154
  <div class='footer quiet pad2 space-top1 center small'>
125
155
  Code coverage generated by
126
156
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
127
- at Tue Sep 14 2021 10:25:14 GMT+0000 (Coordinated Universal Time)
157
+ at Wed Sep 15 2021 15:55:32 GMT+0000 (Coordinated Universal Time)
128
158
  </div>
129
159
  </div>
130
160
  <script src="../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">89.12% </span>
26
+ <span class="strong">84.02% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>213/239</span>
28
+ <span class='fraction'>205/244</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">74.71% </span>
33
+ <span class="strong">72.63% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>65/87</span>
35
+ <span class='fraction'>69/95</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">92.59% </span>
40
+ <span class="strong">82.76% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>25/27</span>
42
+ <span class='fraction'>24/29</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">89.12% </span>
47
+ <span class="strong">84.02% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>213/239</span>
49
+ <span class='fraction'>205/244</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,17 +74,17 @@
74
74
  </thead>
75
75
  <tbody><tr>
76
76
  <td class="file high" data-value="actions.js"><a href="actions.js.html">actions.js</a></td>
77
- <td data-value="92" class="pic high">
78
- <div class="chart"><div class="cover-fill" style="width: 92%"></div><div class="cover-empty" style="width: 8%"></div></div>
77
+ <td data-value="100" class="pic high">
78
+ <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
79
79
  </td>
80
- <td data-value="92" class="pct high">92%</td>
81
- <td data-value="25" class="abs high">23/25</td>
82
- <td data-value="75" class="pct medium">75%</td>
83
- <td data-value="4" class="abs medium">3/4</td>
84
80
  <td data-value="100" class="pct high">100%</td>
85
- <td data-value="1" class="abs high">1/1</td>
86
- <td data-value="92" class="pct high">92%</td>
87
- <td data-value="25" class="abs high">23/25</td>
81
+ <td data-value="18" class="abs high">18/18</td>
82
+ <td data-value="100" class="pct high">100%</td>
83
+ <td data-value="0" class="abs high">0/0</td>
84
+ <td data-value="100" class="pct high">100%</td>
85
+ <td data-value="0" class="abs high">0/0</td>
86
+ <td data-value="100" class="pct high">100%</td>
87
+ <td data-value="18" class="abs high">18/18</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -103,78 +103,78 @@
103
103
  </tr>
104
104
 
105
105
  <tr>
106
- <td class="file low" data-value="bullboard.js"><a href="bullboard.js.html">bullboard.js</a></td>
107
- <td data-value="42.86" class="pic low">
108
- <div class="chart"><div class="cover-fill" style="width: 42%"></div><div class="cover-empty" style="width: 58%"></div></div>
106
+ <td class="file medium" data-value="bullboard.js"><a href="bullboard.js.html">bullboard.js</a></td>
107
+ <td data-value="60" class="pic medium">
108
+ <div class="chart"><div class="cover-fill" style="width: 60%"></div><div class="cover-empty" style="width: 40%"></div></div>
109
109
  </td>
110
- <td data-value="42.86" class="pct low">42.86%</td>
111
- <td data-value="14" class="abs low">6/14</td>
112
- <td data-value="100" class="pct high">100%</td>
113
- <td data-value="0" class="abs high">0/0</td>
110
+ <td data-value="60" class="pct medium">60%</td>
111
+ <td data-value="20" class="abs medium">12/20</td>
112
+ <td data-value="50" class="pct medium">50%</td>
113
+ <td data-value="2" class="abs medium">1/2</td>
114
114
  <td data-value="0" class="pct low">0%</td>
115
115
  <td data-value="1" class="abs low">0/1</td>
116
- <td data-value="42.86" class="pct low">42.86%</td>
117
- <td data-value="14" class="abs low">6/14</td>
116
+ <td data-value="60" class="pct medium">60%</td>
117
+ <td data-value="20" class="abs medium">12/20</td>
118
118
  </tr>
119
119
 
120
120
  <tr>
121
121
  <td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
122
- <td data-value="100" class="pic high">
123
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
122
+ <td data-value="87.5" class="pic high">
123
+ <div class="chart"><div class="cover-fill" style="width: 87%"></div><div class="cover-empty" style="width: 13%"></div></div>
124
124
  </td>
125
+ <td data-value="87.5" class="pct high">87.5%</td>
126
+ <td data-value="8" class="abs high">7/8</td>
125
127
  <td data-value="100" class="pct high">100%</td>
126
- <td data-value="26" class="abs high">26/26</td>
127
- <td data-value="100" class="pct high">100%</td>
128
- <td data-value="6" class="abs high">6/6</td>
129
- <td data-value="100" class="pct high">100%</td>
130
- <td data-value="6" class="abs high">6/6</td>
131
- <td data-value="100" class="pct high">100%</td>
132
- <td data-value="26" class="abs high">26/26</td>
128
+ <td data-value="0" class="abs high">0/0</td>
129
+ <td data-value="66.67" class="pct medium">66.67%</td>
130
+ <td data-value="3" class="abs medium">2/3</td>
131
+ <td data-value="87.5" class="pct high">87.5%</td>
132
+ <td data-value="8" class="abs high">7/8</td>
133
133
  </tr>
134
134
 
135
135
  <tr>
136
- <td class="file high" data-value="logic.js"><a href="logic.js.html">logic.js</a></td>
137
- <td data-value="100" class="pic high">
138
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
136
+ <td class="file high" data-value="thread.js"><a href="thread.js.html">thread.js</a></td>
137
+ <td data-value="91.07" class="pic high">
138
+ <div class="chart"><div class="cover-fill" style="width: 91%"></div><div class="cover-empty" style="width: 9%"></div></div>
139
139
  </td>
140
+ <td data-value="91.07" class="pct high">91.07%</td>
141
+ <td data-value="56" class="abs high">51/56</td>
142
+ <td data-value="60" class="pct medium">60%</td>
143
+ <td data-value="15" class="abs medium">9/15</td>
140
144
  <td data-value="100" class="pct high">100%</td>
141
- <td data-value="8" class="abs high">8/8</td>
142
- <td data-value="50" class="pct medium">50%</td>
143
- <td data-value="2" class="abs medium">1/2</td>
144
- <td data-value="100" class="pct high">100%</td>
145
- <td data-value="1" class="abs high">1/1</td>
146
- <td data-value="100" class="pct high">100%</td>
147
- <td data-value="8" class="abs high">8/8</td>
145
+ <td data-value="7" class="abs high">7/7</td>
146
+ <td data-value="91.07" class="pct high">91.07%</td>
147
+ <td data-value="56" class="abs high">51/56</td>
148
148
  </tr>
149
149
 
150
150
  <tr>
151
- <td class="file high" data-value="thread.js"><a href="thread.js.html">thread.js</a></td>
152
- <td data-value="83.64" class="pic high">
153
- <div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
151
+ <td class="file high" data-value="triggers.js"><a href="triggers.js.html">triggers.js</a></td>
152
+ <td data-value="95.56" class="pic high">
153
+ <div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
154
154
  </td>
155
- <td data-value="83.64" class="pct high">83.64%</td>
156
- <td data-value="55" class="abs high">46/55</td>
157
- <td data-value="45.45" class="pct low">45.45%</td>
158
- <td data-value="22" class="abs low">10/22</td>
155
+ <td data-value="95.56" class="pct high">95.56%</td>
156
+ <td data-value="45" class="abs high">43/45</td>
157
+ <td data-value="79.17" class="pct medium">79.17%</td>
158
+ <td data-value="24" class="abs medium">19/24</td>
159
159
  <td data-value="100" class="pct high">100%</td>
160
- <td data-value="6" class="abs high">6/6</td>
161
- <td data-value="83.64" class="pct high">83.64%</td>
162
- <td data-value="55" class="abs high">46/55</td>
160
+ <td data-value="7" class="abs high">7/7</td>
161
+ <td data-value="95.56" class="pct high">95.56%</td>
162
+ <td data-value="45" class="abs high">43/45</td>
163
163
  </tr>
164
164
 
165
165
  <tr>
166
- <td class="file high" data-value="triggers.js"><a href="triggers.js.html">triggers.js</a></td>
167
- <td data-value="93.42" class="pic high">
168
- <div class="chart"><div class="cover-fill" style="width: 93%"></div><div class="cover-empty" style="width: 7%"></div></div>
166
+ <td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
167
+ <td data-value="66.13" class="pic medium">
168
+ <div class="chart"><div class="cover-fill" style="width: 66%"></div><div class="cover-empty" style="width: 34%"></div></div>
169
169
  </td>
170
- <td data-value="93.42" class="pct high">93.42%</td>
171
- <td data-value="76" class="abs high">71/76</td>
172
- <td data-value="82.86" class="pct high">82.86%</td>
173
- <td data-value="35" class="abs high">29/35</td>
174
- <td data-value="88.89" class="pct high">88.89%</td>
175
- <td data-value="9" class="abs high">8/9</td>
176
- <td data-value="93.42" class="pct high">93.42%</td>
177
- <td data-value="76" class="abs high">71/76</td>
170
+ <td data-value="66.13" class="pct medium">66.13%</td>
171
+ <td data-value="62" class="abs medium">41/62</td>
172
+ <td data-value="66.67" class="pct medium">66.67%</td>
173
+ <td data-value="36" class="abs medium">24/36</td>
174
+ <td data-value="62.5" class="pct medium">62.5%</td>
175
+ <td data-value="8" class="abs medium">5/8</td>
176
+ <td data-value="66.13" class="pct medium">66.13%</td>
177
+ <td data-value="62" class="abs medium">41/62</td>
178
178
  </tr>
179
179
 
180
180
  </tbody>
@@ -185,7 +185,7 @@
185
185
  <div class='footer quiet pad2 space-top1 center small'>
186
186
  Code coverage generated by
187
187
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
188
- at Tue Sep 14 2021 10:25:14 GMT+0000 (Coordinated Universal Time)
188
+ at Wed Sep 15 2021 15:55:32 GMT+0000 (Coordinated Universal Time)
189
189
  </div>
190
190
  </div>
191
191
  <script src="../prettify.js"></script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">87.5% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>26/26</span>
28
+ <span class='fraction'>7/8</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
33
  <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>6/6</span>
35
+ <span class='fraction'>0/0</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">66.67% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/6</span>
42
+ <span class='fraction'>2/3</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">87.5% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>26/26</span>
49
+ <span class='fraction'>7/8</span>
50
50
  </div>
51
51
 
52
52
 
@@ -74,142 +74,40 @@
74
74
  <a name='L15'></a><a href='#L15'>15</a>
75
75
  <a name='L16'></a><a href='#L16'>16</a>
76
76
  <a name='L17'></a><a href='#L17'>17</a>
77
- <a name='L18'></a><a href='#L18'>18</a>
78
- <a name='L19'></a><a href='#L19'>19</a>
79
- <a name='L20'></a><a href='#L20'>20</a>
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>
92
- <a name='L33'></a><a href='#L33'>33</a>
93
- <a name='L34'></a><a href='#L34'>34</a>
94
- <a name='L35'></a><a href='#L35'>35</a>
95
- <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a>
97
- <a name='L38'></a><a href='#L38'>38</a>
98
- <a name='L39'></a><a href='#L39'>39</a>
99
- <a name='L40'></a><a href='#L40'>40</a>
100
- <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a>
102
- <a name='L43'></a><a href='#L43'>43</a>
103
- <a name='L44'></a><a href='#L44'>44</a>
104
- <a name='L45'></a><a href='#L45'>45</a>
105
- <a name='L46'></a><a href='#L46'>46</a>
106
- <a name='L47'></a><a href='#L47'>47</a>
107
- <a name='L48'></a><a href='#L48'>48</a>
108
- <a name='L49'></a><a href='#L49'>49</a>
109
- <a name='L50'></a><a href='#L50'>50</a>
110
- <a name='L51'></a><a href='#L51'>51</a>
111
- <a name='L52'></a><a href='#L52'>52</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
112
- <span class="cline-any cline-yes">23x</span>
113
- <span class="cline-any cline-yes">23x</span>
114
- <span class="cline-any cline-yes">23x</span>
115
- <span class="cline-any cline-yes">23x</span>
116
- <span class="cline-any cline-yes">23x</span>
117
- <span class="cline-any cline-neutral">&nbsp;</span>
118
- <span class="cline-any cline-yes">23x</span>
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">2x</span>
122
- <span class="cline-any cline-yes">2x</span>
123
- <span class="cline-any cline-yes">2x</span>
124
- <span class="cline-any cline-yes">1x</span>
125
- <span class="cline-any cline-neutral">&nbsp;</span>
126
- <span class="cline-any cline-yes">1x</span>
127
- <span class="cline-any cline-neutral">&nbsp;</span>
128
- <span class="cline-any cline-neutral">&nbsp;</span>
129
- <span class="cline-any cline-neutral">&nbsp;</span>
130
- <span class="cline-any cline-neutral">&nbsp;</span>
131
- <span class="cline-any cline-neutral">&nbsp;</span>
132
- <span class="cline-any cline-neutral">&nbsp;</span>
133
- <span class="cline-any cline-yes">2x</span>
134
- <span class="cline-any cline-yes">2x</span>
135
- <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-yes">2x</span>
137
- <span class="cline-any cline-yes">2x</span>
77
+ <a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
78
+ <span class="cline-any cline-yes">24x</span>
138
79
  <span class="cline-any cline-neutral">&nbsp;</span>
139
80
  <span class="cline-any cline-neutral">&nbsp;</span>
140
81
  <span class="cline-any cline-neutral">&nbsp;</span>
141
82
  <span class="cline-any cline-neutral">&nbsp;</span>
83
+ <span class="cline-any cline-yes">24x</span>
142
84
  <span class="cline-any cline-neutral">&nbsp;</span>
143
- <span class="cline-any cline-yes">23x</span>
144
- <span class="cline-any cline-yes">28x</span>
145
- <span class="cline-any cline-yes">25x</span>
146
- <span class="cline-any cline-yes">10x</span>
147
- <span class="cline-any cline-yes">10x</span>
148
- <span class="cline-any cline-yes">2x</span>
149
- <span class="cline-any cline-neutral">&nbsp;</span>
150
- <span class="cline-any cline-yes">10x</span>
151
- <span class="cline-any cline-yes">2x</span>
152
- <span class="cline-any cline-neutral">&nbsp;</span>
85
+ <span class="cline-any cline-yes">27x</span>
153
86
  <span class="cline-any cline-yes">8x</span>
154
87
  <span class="cline-any cline-neutral">&nbsp;</span>
155
88
  <span class="cline-any cline-neutral">&nbsp;</span>
156
- <span class="cline-any cline-yes">1x</span>
157
- <span class="cline-any cline-neutral">&nbsp;</span>
158
- <span class="cline-any cline-neutral">&nbsp;</span>
159
89
  <span class="cline-any cline-neutral">&nbsp;</span>
90
+ <span class="cline-any cline-yes">24x</span>
91
+ <span class="cline-any cline-no">&nbsp;</span>
160
92
  <span class="cline-any cline-neutral">&nbsp;</span>
161
- <span class="cline-any cline-neutral">&nbsp;</span>
162
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const triggers = require("./triggers")
163
- const actions = require("./actions")
164
- const env = require("../environment")
165
- const workerFarm = require("worker-farm")
166
- const singleThread = require("./thread")
167
- const { getAPIKey, update, Properties } = require("../utilities/usageQuota")
168
- &nbsp;
169
- let workers = workerFarm(require.resolve("./thread"))
170
- &nbsp;
171
- function runWorker(job) {
172
- return new Promise((resolve, reject) =&gt; {
173
- workers(job, err =&gt; {
174
- if (err) {
175
- reject(err)
176
- } else {
177
- resolve()
178
- }
179
- })
180
- })
181
- }
182
- &nbsp;
183
- async function updateQuota(automation) {
184
- const appId = automation.appId
185
- const apiObj = await getAPIKey(appId)
186
- // this will fail, causing automation to escape if limits reached
187
- await update(apiObj.apiKey, Properties.AUTOMATION, 1)
188
- return apiObj.apiKey
189
- }
93
+ <span class="cline-any cline-yes">24x</span>
94
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { processEvent } = require("./utils")
95
+ const { queue } = require("./bullboard")
190
96
  &nbsp;
191
97
  /**
192
98
  * This module is built purely to kick off the worker farm and manage the inputs/outputs
193
99
  */
194
- module.exports.init = async function () {
195
- await actions.init()
196
- triggers.automationQueue.process(async job =&gt; {
197
- try {
198
- if (env.USE_QUOTAS) {
199
- job.data.automation.apiKey = await updateQuota(job.data.automation)
200
- }
201
- if (env.isProd()) {
202
- await runWorker(job)
203
- } else {
204
- await singleThread(job)
205
- }
206
- } catch (err) {
207
- console.error(
208
- `${job.data.automation.appId} automation ${job.data.automation._id} was unable to run - ${err}`
209
- )
210
- }
100
+ exports.init = function () {
101
+ // this promise will not complete
102
+ return queue.process(async job =&gt; {
103
+ await processEvent(job)
211
104
  })
212
105
  }
106
+ &nbsp;
107
+ exports.getQueues = <span class="fstat-no" title="function not covered" >()</span> =&gt; {
108
+ <span class="cstat-no" title="statement not covered" > return [queue]</span>
109
+ }
110
+ exports.queue = queue
213
111
  &nbsp;</pre></td></tr></table></pre>
214
112
 
215
113
  <div class='push'></div><!-- for sticky footer -->
@@ -217,7 +115,7 @@ module.exports.init = async function () {
217
115
  <div class='footer quiet pad2 space-top1 center small'>
218
116
  Code coverage generated by
219
117
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
220
- at Tue Sep 14 2021 10:25:14 GMT+0000 (Coordinated Universal Time)
118
+ at Wed Sep 15 2021 15:55:32 GMT+0000 (Coordinated Universal Time)
221
119
  </div>
222
120
  </div>
223
121
  <script src="../prettify.js"></script>