@budibase/server 1.2.45 → 1.2.48

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 (169) hide show
  1. package/builder/assets/{index.0956c8bc.js → index.69ff2260.js} +2 -2
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +49 -45
  4. package/coverage/coverage-final.json +4 -4
  5. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  6. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/index.html +1 -1
  14. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  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/utils.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  43. package/coverage/lcov-report/api/index.html +1 -1
  44. package/coverage/lcov-report/api/index.js.html +1 -1
  45. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/index.html +1 -1
  56. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  73. package/coverage/lcov-report/automations/actions.js.html +1 -1
  74. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  75. package/coverage/lcov-report/automations/bullboard.js.html +13 -7
  76. package/coverage/lcov-report/automations/index.html +12 -12
  77. package/coverage/lcov-report/automations/index.js.html +1 -1
  78. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/index.html +15 -15
  85. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/queryRows.js.html +32 -8
  89. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  95. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  104. package/coverage/lcov-report/constants/index.html +1 -1
  105. package/coverage/lcov-report/constants/index.js.html +1 -1
  106. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  107. package/coverage/lcov-report/constants/screens.js.html +1 -1
  108. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  109. package/coverage/lcov-report/db/index.html +1 -1
  110. package/coverage/lcov-report/db/index.js.html +1 -1
  111. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  115. package/coverage/lcov-report/db/newid.js.html +1 -1
  116. package/coverage/lcov-report/db/utils.js.html +1 -1
  117. package/coverage/lcov-report/events/AutomationEmitter.js.html +5 -5
  118. package/coverage/lcov-report/events/index.html +1 -1
  119. package/coverage/lcov-report/events/index.js.html +1 -1
  120. package/coverage/lcov-report/events/utils.js.html +1 -1
  121. package/coverage/lcov-report/index.html +23 -23
  122. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  123. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  124. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  125. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  126. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  127. package/coverage/lcov-report/middleware/index.html +1 -1
  128. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  129. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  130. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  131. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  132. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  133. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  134. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  135. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  136. package/coverage/lcov-report/utilities/global.js.html +1 -1
  137. package/coverage/lcov-report/utilities/index.html +1 -1
  138. package/coverage/lcov-report/utilities/index.js.html +1 -1
  139. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +16 -4
  140. package/coverage/lcov-report/utilities/queue/index.html +5 -5
  141. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  142. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  143. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  144. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  145. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  146. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  147. package/coverage/lcov-report/utilities/security.js.html +1 -1
  148. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  149. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  150. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  151. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  152. package/coverage/lcov-report/utilities/users.js.html +1 -1
  153. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  154. package/coverage/lcov.info +77 -69
  155. package/dist/automations/bullboard.js +2 -0
  156. package/dist/automations/listeners.js +102 -0
  157. package/dist/automations/steps/queryRows.js +8 -0
  158. package/dist/automations/utils.js +6 -2
  159. package/dist/package.json +6 -6
  160. package/dist/threads/automation.js +27 -11
  161. package/dist/tsconfig.build.tsbuildinfo +1 -1
  162. package/dist/utilities/queue/inMemoryQueue.js +3 -0
  163. package/package.json +7 -7
  164. package/src/automations/bullboard.js +2 -0
  165. package/src/automations/listeners.ts +78 -0
  166. package/src/automations/steps/queryRows.js +8 -0
  167. package/src/automations/utils.ts +7 -6
  168. package/src/threads/automation.ts +35 -16
  169. package/src/utilities/queue/inMemoryQueue.js +4 -0
@@ -37,9 +37,9 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">54.54% </span>
40
+ <span class="strong">58.33% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/11</span>
42
+ <span class='fraction'>7/12</span>
43
43
  </div>
44
44
 
45
45
 
@@ -181,7 +181,11 @@
181
181
  <a name='L116'></a><a href='#L116'>116</a>
182
182
  <a name='L117'></a><a href='#L117'>117</a>
183
183
  <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
185
189
  <span class="cline-any cline-neutral">&nbsp;</span>
186
190
  <span class="cline-any cline-neutral">&nbsp;</span>
187
191
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -298,6 +302,10 @@
298
302
  <span class="cline-any cline-neutral">&nbsp;</span>
299
303
  <span class="cline-any cline-neutral">&nbsp;</span>
300
304
  <span class="cline-any cline-neutral">&nbsp;</span>
305
+ <span class="cline-any cline-neutral">&nbsp;</span>
306
+ <span class="cline-any cline-neutral">&nbsp;</span>
307
+ <span class="cline-any cline-neutral">&nbsp;</span>
308
+ <span class="cline-any cline-neutral">&nbsp;</span>
301
309
  <span class="cline-any cline-yes">45x</span>
302
310
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">let events = require("events")
303
311
  &nbsp;
@@ -414,6 +422,10 @@ class InMemoryQueue {
414
422
  <span class="fstat-no" title="function not covered" > as</span>ync getJob() {
415
423
  <span class="cstat-no" title="statement not covered" > return {}</span>
416
424
  }
425
+ &nbsp;
426
+ on() {
427
+ // do nothing
428
+ }
417
429
  }
418
430
  &nbsp;
419
431
  module.exports = InMemoryQueue
@@ -424,7 +436,7 @@ module.exports = InMemoryQueue
424
436
  <div class='footer quiet pad2 space-top1 center small'>
425
437
  Code coverage generated by
426
438
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
427
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
439
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
428
440
  </div>
429
441
  <script src="../../prettify.js"></script>
430
442
  <script>
@@ -37,9 +37,9 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">54.54% </span>
40
+ <span class="strong">58.33% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>6/11</span>
42
+ <span class='fraction'>7/12</span>
43
43
  </div>
44
44
 
45
45
 
@@ -87,8 +87,8 @@
87
87
  <td data-value="23" class="abs medium">18/23</td>
88
88
  <td data-value="57.14" class="pct medium">57.14%</td>
89
89
  <td data-value="7" class="abs medium">4/7</td>
90
- <td data-value="54.54" class="pct medium">54.54%</td>
91
- <td data-value="11" class="abs medium">6/11</td>
90
+ <td data-value="58.33" class="pct medium">58.33%</td>
91
+ <td data-value="12" class="abs medium">7/12</td>
92
92
  <td data-value="78.26" class="pct medium">78.26%</td>
93
93
  <td data-value="23" class="abs medium">18/23</td>
94
94
  </tr>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
104
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
104
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -145,7 +145,7 @@ exports.createRoutingView = createRoutingView
145
145
  <div class='footer quiet pad2 space-top1 center small'>
146
146
  Code coverage generated by
147
147
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
148
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
148
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
149
149
  </div>
150
150
  <script src="../../prettify.js"></script>
151
151
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
119
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -1096,7 +1096,7 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt
1096
1096
  <div class='footer quiet pad2 space-top1 center small'>
1097
1097
  Code coverage generated by
1098
1098
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1099
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
1099
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
1100
1100
  </div>
1101
1101
  <script src="../../prettify.js"></script>
1102
1102
  <script>
@@ -346,7 +346,7 @@ exports.processDates = <span class="fstat-no" title="function not covered" >(t</
346
346
  <div class='footer quiet pad2 space-top1 center small'>
347
347
  Code coverage generated by
348
348
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
349
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
349
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
350
350
  </div>
351
351
  <script src="../../prettify.js"></script>
352
352
  <script>
@@ -142,7 +142,7 @@ module.exports = ScriptRunner
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
145
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  <script src="../prettify.js"></script>
148
148
  <script>
@@ -283,7 +283,7 @@ exports.CURRENTLY_SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
283
283
  <div class='footer quiet pad2 space-top1 center small'>
284
284
  Code coverage generated by
285
285
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
286
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
286
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
287
287
  </div>
288
288
  <script src="../prettify.js"></script>
289
289
  <script>
@@ -91,7 +91,7 @@
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
94
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
94
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  <script src="../prettify.js"></script>
97
97
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
119
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -307,7 +307,7 @@ exports.getUniqueRows = async appIds =&gt; {
307
307
  <div class='footer quiet pad2 space-top1 center small'>
308
308
  Code coverage generated by
309
309
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
310
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
310
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
311
311
  </div>
312
312
  <script src="../../prettify.js"></script>
313
313
  <script>
@@ -124,7 +124,7 @@ function <span class="fstat-no" title="function not covered" >resetQuotasIfRequi
124
124
  <div class='footer quiet pad2 space-top1 center small'>
125
125
  Code coverage generated by
126
126
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
127
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
127
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
128
128
  </div>
129
129
  <script src="../../prettify.js"></script>
130
130
  <script>
@@ -205,7 +205,7 @@ exports.publicApiUserFix = ctx =&gt; {
205
205
  <div class='footer quiet pad2 space-top1 center small'>
206
206
  Code coverage generated by
207
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
208
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
208
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
209
209
  </div>
210
210
  <script src="../prettify.js"></script>
211
211
  <script>
@@ -535,7 +535,7 @@ exports.getChecklist = <span class="fstat-no" title="function not covered" >as</
535
535
  <div class='footer quiet pad2 space-top1 center small'>
536
536
  Code coverage generated by
537
537
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
538
- at Fri Aug 19 2022 14:42:14 GMT+0000 (Coordinated Universal Time)
538
+ at Tue Aug 23 2022 10:37:49 GMT+0000 (Coordinated Universal Time)
539
539
  </div>
540
540
  <script src="../prettify.js"></script>
541
541
  <script>
@@ -4619,10 +4619,10 @@ BRH:21
4619
4619
  end_of_record
4620
4620
  TN:
4621
4621
  SF:src/automations/bullboard.js
4622
- FN:18,cleanup
4623
- FN:24,(anonymous_1)
4624
- FN:29,(anonymous_2)
4625
- FN:48,(anonymous_3)
4622
+ FN:20,cleanup
4623
+ FN:26,(anonymous_1)
4624
+ FN:31,(anonymous_2)
4625
+ FN:50,(anonymous_3)
4626
4626
  FNF:4
4627
4627
  FNH:0
4628
4628
  FNDA:0,cleanup
@@ -4637,41 +4637,43 @@ DA:5,45
4637
4637
  DA:8,45
4638
4638
  DA:9,45
4639
4639
  DA:10,45
4640
- DA:12,45
4640
+ DA:11,45
4641
4641
  DA:13,45
4642
4642
  DA:14,45
4643
- DA:16,45
4644
- DA:19,0
4645
- DA:22,45
4643
+ DA:15,45
4644
+ DA:17,45
4645
+ DA:18,45
4646
+ DA:21,0
4646
4647
  DA:24,45
4647
- DA:26,0
4648
- DA:27,0
4648
+ DA:26,45
4649
+ DA:28,0
4649
4650
  DA:29,0
4650
- DA:30,0
4651
- DA:34,0
4652
- DA:35,0
4651
+ DA:31,0
4652
+ DA:32,0
4653
4653
  DA:36,0
4654
4654
  DA:37,0
4655
4655
  DA:38,0
4656
+ DA:39,0
4656
4657
  DA:40,0
4657
- DA:44,0
4658
- DA:45,0
4659
- DA:48,45
4660
- DA:49,0
4661
- DA:50,0
4658
+ DA:42,0
4659
+ DA:46,0
4660
+ DA:47,0
4661
+ DA:50,45
4662
4662
  DA:51,0
4663
4663
  DA:52,0
4664
- DA:56,45
4665
- LF:33
4666
- LH:16
4664
+ DA:53,0
4665
+ DA:54,0
4666
+ DA:58,45
4667
+ LF:35
4668
+ LH:18
4667
4669
  BRDA:5,0,0,45
4668
4670
  BRDA:5,0,1,0
4669
- BRDA:13,1,0,45
4670
- BRDA:13,1,1,45
4671
- BRDA:26,2,0,0
4672
- BRDA:26,2,1,0
4673
- BRDA:49,3,0,0
4674
- BRDA:49,3,1,0
4671
+ BRDA:14,1,0,45
4672
+ BRDA:14,1,1,45
4673
+ BRDA:28,2,0,0
4674
+ BRDA:28,2,1,0
4675
+ BRDA:51,3,0,0
4676
+ BRDA:51,3,1,0
4675
4677
  BRF:8
4676
4678
  BRH:3
4677
4679
  end_of_record
@@ -5116,20 +5118,22 @@ DA:124,1
5116
5118
  DA:126,45
5117
5119
  DA:127,5
5118
5120
  DA:128,5
5119
- DA:129,5
5120
- DA:130,5
5121
- DA:131,5
5122
- DA:132,5
5123
- DA:135,5
5124
- DA:149,5
5125
- DA:152,5
5126
- DA:157,2
5127
- DA:159,3
5128
- DA:160,3
5129
- DA:163,5
5130
- DA:168,0
5131
- LF:42
5132
- LH:38
5121
+ DA:129,0
5122
+ DA:136,5
5123
+ DA:137,5
5124
+ DA:138,5
5125
+ DA:139,5
5126
+ DA:140,5
5127
+ DA:143,5
5128
+ DA:157,5
5129
+ DA:160,5
5130
+ DA:165,2
5131
+ DA:167,3
5132
+ DA:168,3
5133
+ DA:171,5
5134
+ DA:176,0
5135
+ LF:44
5136
+ LH:39
5133
5137
  BRDA:102,0,0,0
5134
5138
  BRDA:102,0,1,5
5135
5139
  BRDA:102,1,0,5
@@ -5146,27 +5150,29 @@ BRDA:123,6,0,2
5146
5150
  BRDA:123,6,1,1
5147
5151
  BRDA:124,7,0,1
5148
5152
  BRDA:124,7,1,0
5149
- BRDA:130,8,0,5
5150
- BRDA:130,8,1,0
5151
- BRDA:130,9,0,5
5152
- BRDA:130,9,1,5
5153
- BRDA:130,9,2,5
5154
- BRDA:130,9,3,5
5155
- BRDA:133,10,0,0
5156
- BRDA:133,10,1,5
5157
- BRDA:143,11,0,5
5158
- BRDA:143,11,1,0
5159
- BRDA:145,12,0,5
5160
- BRDA:145,12,1,0
5161
- BRDA:152,13,0,2
5162
- BRDA:152,13,1,3
5163
- BRDA:153,14,0,5
5164
- BRDA:153,14,1,2
5165
- BRDA:153,14,2,2
5166
- BRDA:160,15,0,3
5167
- BRDA:160,15,1,0
5168
- BRF:35
5169
- BRH:25
5153
+ BRDA:128,8,0,0
5154
+ BRDA:128,8,1,5
5155
+ BRDA:138,9,0,5
5156
+ BRDA:138,9,1,0
5157
+ BRDA:138,10,0,5
5158
+ BRDA:138,10,1,5
5159
+ BRDA:138,10,2,5
5160
+ BRDA:138,10,3,5
5161
+ BRDA:141,11,0,0
5162
+ BRDA:141,11,1,5
5163
+ BRDA:151,12,0,5
5164
+ BRDA:151,12,1,0
5165
+ BRDA:153,13,0,5
5166
+ BRDA:153,13,1,0
5167
+ BRDA:160,14,0,2
5168
+ BRDA:160,14,1,3
5169
+ BRDA:161,15,0,5
5170
+ BRDA:161,15,1,2
5171
+ BRDA:161,15,2,2
5172
+ BRDA:168,16,0,3
5173
+ BRDA:168,16,1,0
5174
+ BRF:37
5175
+ BRH:26
5170
5176
  end_of_record
5171
5177
  TN:
5172
5178
  SF:src/automations/steps/sendSmtpEmail.js
@@ -6380,9 +6386,9 @@ FNH:2
6380
6386
  FNDA:6,(anonymous_0)
6381
6387
  FNDA:5,(anonymous_1)
6382
6388
  FNDA:0,(anonymous_2)
6383
- DA:1,3
6384
- DA:2,3
6385
- DA:5,3
6389
+ DA:1,44
6390
+ DA:2,44
6391
+ DA:5,44
6386
6392
  DA:15,6
6387
6393
  DA:16,6
6388
6394
  DA:23,5
@@ -6391,7 +6397,7 @@ DA:26,4
6391
6397
  DA:38,0
6392
6398
  DA:39,0
6393
6399
  DA:41,0
6394
- DA:51,3
6400
+ DA:51,44
6395
6401
  LF:12
6396
6402
  LH:9
6397
6403
  BRDA:21,0,0,0
@@ -7647,8 +7653,9 @@ FN:97,(anonymous_7)
7647
7653
  FN:102,(anonymous_8)
7648
7654
  FN:109,(anonymous_9)
7649
7655
  FN:113,(anonymous_10)
7650
- FNF:11
7651
- FNH:6
7656
+ FN:117,(anonymous_11)
7657
+ FNF:12
7658
+ FNH:7
7652
7659
  FNDA:8,newJob
7653
7660
  FNDA:45,(anonymous_1)
7654
7661
  FNDA:32,(anonymous_2)
@@ -7660,6 +7667,7 @@ FNDA:253,(anonymous_7)
7660
7667
  FNDA:0,(anonymous_8)
7661
7668
  FNDA:0,(anonymous_9)
7662
7669
  FNDA:0,(anonymous_10)
7670
+ FNDA:45,(anonymous_11)
7663
7671
  DA:1,45
7664
7672
  DA:13,8
7665
7673
  DA:33,45
@@ -7682,7 +7690,7 @@ DA:91,0
7682
7690
  DA:98,253
7683
7691
  DA:110,0
7684
7692
  DA:114,0
7685
- DA:118,45
7693
+ DA:122,45
7686
7694
  LF:23
7687
7695
  LH:18
7688
7696
  BRDA:32,0,0,0
@@ -18,10 +18,12 @@ const Queue = env.isTest()
18
18
  const { JobQueues } = require("../constants");
19
19
  const { utils } = require("@budibase/backend-core/redis");
20
20
  const { opts, redisProtocolUrl } = utils.getRedisOptions();
21
+ const listeners = require("./listeners");
21
22
  const CLEANUP_PERIOD_MS = 60 * 1000;
22
23
  const queueConfig = redisProtocolUrl || { redis: opts };
23
24
  let cleanupInternal = null;
24
25
  let automationQueue = new Queue(JobQueues.AUTOMATIONS, queueConfig);
26
+ listeners.addListeners(automationQueue);
25
27
  function cleanup() {
26
28
  return __awaiter(this, void 0, void 0, function* () {
27
29
  yield automationQueue.clean(CLEANUP_PERIOD_MS, "completed");
@@ -0,0 +1,102 @@
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
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.addListeners = void 0;
36
+ const automation = __importStar(require("../threads/automation"));
37
+ const addListeners = (queue) => {
38
+ logging(queue);
39
+ handleStalled(queue);
40
+ };
41
+ exports.addListeners = addListeners;
42
+ const handleStalled = (queue) => {
43
+ queue.on("stalled", (job) => __awaiter(void 0, void 0, void 0, function* () {
44
+ yield automation.removeStalled(job);
45
+ }));
46
+ };
47
+ const logging = (queue) => {
48
+ var _a;
49
+ if ((_a = process.env.NODE_DEBUG) === null || _a === void 0 ? void 0 : _a.includes("bull")) {
50
+ queue
51
+ .on("error", (error) => {
52
+ // An error occurred.
53
+ console.error(`automation-event=error error=${JSON.stringify(error)}`);
54
+ })
55
+ .on("waiting", (jobId) => {
56
+ // A Job is waiting to be processed as soon as a worker is idling.
57
+ console.log(`automation-event=waiting jobId=${jobId}`);
58
+ })
59
+ .on("active", (job, jobPromise) => {
60
+ // A job has started. You can use `jobPromise.cancel()`` to abort it.
61
+ console.log(`automation-event=active jobId=${job.id}`);
62
+ })
63
+ .on("stalled", (job) => {
64
+ // A job has been marked as stalled. This is useful for debugging job
65
+ // workers that crash or pause the event loop.
66
+ console.error(`automation-event=stalled jobId=${job.id} job=${JSON.stringify(job)}`);
67
+ })
68
+ .on("progress", (job, progress) => {
69
+ // A job's progress was updated!
70
+ console.log(`automation-event=progress jobId=${job.id} progress=${progress}`);
71
+ })
72
+ .on("completed", (job, result) => {
73
+ // A job successfully completed with a `result`.
74
+ console.log(`automation-event=completed jobId=${job.id} result=${result}`);
75
+ })
76
+ .on("failed", (job, err) => {
77
+ // A job failed with reason `err`!
78
+ console.log(`automation-event=failed jobId=${job.id} error=${err}`);
79
+ })
80
+ .on("paused", () => {
81
+ // The queue has been paused.
82
+ console.log(`automation-event=paused`);
83
+ })
84
+ .on("resumed", (job) => {
85
+ // The queue has been resumed.
86
+ console.log(`automation-event=paused jobId=${job.id}`);
87
+ })
88
+ .on("cleaned", (jobs, type) => {
89
+ // Old jobs have been cleaned from the queue. `jobs` is an array of cleaned
90
+ // jobs, and `type` is the type of jobs cleaned.
91
+ console.log(`automation-event=cleaned length=${jobs.length} type=${type}`);
92
+ })
93
+ .on("drained", () => {
94
+ // Emitted every time the queue has processed all the waiting jobs (even if there can be some delayed jobs not yet processed)
95
+ console.log(`automation-event=drained`);
96
+ })
97
+ .on("removed", (job) => {
98
+ // A job successfully removed.
99
+ console.log(`automation-event=removed jobId=${job.id}`);
100
+ });
101
+ }
102
+ };
@@ -128,6 +128,14 @@ const hasNullFilters = filters => filters.length === 0 ||
128
128
  exports.run = function ({ inputs, appId }) {
129
129
  return __awaiter(this, void 0, void 0, function* () {
130
130
  const { tableId, filters, sortColumn, sortOrder, limit } = inputs;
131
+ if (!tableId) {
132
+ return {
133
+ success: false,
134
+ response: {
135
+ message: "You must select a table to query.",
136
+ },
137
+ };
138
+ }
131
139
  const table = yield getTable(appId, tableId);
132
140
  let sortType = FieldTypes.STRING;
133
141
  if (table && table.schema && table.schema[sortColumn] && sortColumn) {
@@ -52,10 +52,13 @@ const pro_1 = require("@budibase/pro");
52
52
  const WH_STEP_ID = triggerInfo_1.definitions.WEBHOOK.stepId;
53
53
  const CRON_STEP_ID = triggerInfo_1.definitions.CRON.stepId;
54
54
  const Runner = new threads_1.Thread(threads_1.ThreadType.AUTOMATION);
55
+ const jobMessage = (job, message) => {
56
+ return `app=${job.data.event.appId} automation=${job.data.automation._id} jobId=${job.id} trigger=${job.data.automation.definition.trigger.event} : ${message}`;
57
+ };
55
58
  function processEvent(job) {
56
59
  return __awaiter(this, void 0, void 0, function* () {
57
60
  try {
58
- console.log(`${job.data.automation.appId} automation ${job.data.automation._id} running. jobId=${job.id}`);
61
+ console.log(jobMessage(job, "running"));
59
62
  // need to actually await these so that an error can be captured properly
60
63
  const tenantId = backend_core_1.tenancy.getTenantIDFromAppID(job.data.event.appId);
61
64
  return yield backend_core_1.tenancy.doInTenant(tenantId, () => __awaiter(this, void 0, void 0, function* () {
@@ -65,7 +68,7 @@ function processEvent(job) {
65
68
  }
66
69
  catch (err) {
67
70
  const errJson = JSON.stringify(err);
68
- console.error(`${job.data.automation.appId} automation ${job.data.automation._id} was unable to run - ${errJson}`);
71
+ console.error(jobMessage(job, `was unable to run - ${errJson}`));
69
72
  console.trace(err);
70
73
  return { err };
71
74
  }
@@ -119,6 +122,7 @@ function disableCron(jobId, jobKey) {
119
122
  return __awaiter(this, void 0, void 0, function* () {
120
123
  yield bullboard_1.queue.removeRepeatableByKey(jobKey);
121
124
  yield bullboard_1.queue.removeJobs(jobId);
125
+ console.log(`jobId=${jobId} disabled`);
122
126
  });
123
127
  }
124
128
  exports.disableCron = disableCron;
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "1.2.44",
4
+ "version": "1.2.47",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -77,11 +77,11 @@
77
77
  "license": "GPL-3.0",
78
78
  "dependencies": {
79
79
  "@apidevtools/swagger-parser": "10.0.3",
80
- "@budibase/backend-core": "^1.2.44",
81
- "@budibase/client": "^1.2.44",
82
- "@budibase/pro": "1.2.44",
83
- "@budibase/string-templates": "^1.2.44",
84
- "@budibase/types": "^1.2.44",
80
+ "@budibase/backend-core": "^1.2.47",
81
+ "@budibase/client": "^1.2.47",
82
+ "@budibase/pro": "1.2.47",
83
+ "@budibase/string-templates": "^1.2.47",
84
+ "@budibase/types": "^1.2.47",
85
85
  "@bull-board/api": "3.7.0",
86
86
  "@bull-board/koa": "3.9.4",
87
87
  "@elastic/elasticsearch": "7.10.0",