@budibase/server 1.3.13 → 1.3.15

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 (189) hide show
  1. package/builder/assets/{index.fb22f106.js → index.3953692d.js} +166 -165
  2. package/builder/assets/{index.e50bda9f.css → index.a70e216a.css} +1 -1
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +90 -68
  5. package/coverage/coverage-final.json +7 -7
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/backup.js.html +8 -5
  10. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/index.html +7 -7
  15. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  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/bulkFormula.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  44. package/coverage/lcov-report/api/index.html +1 -1
  45. package/coverage/lcov-report/api/index.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/index.html +1 -1
  57. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  74. package/coverage/lcov-report/automations/actions.js.html +1 -1
  75. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +24 -24
  78. package/coverage/lcov-report/automations/index.js.html +18 -9
  79. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/index.html +1 -1
  86. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggers.js.html +126 -24
  105. package/coverage/lcov-report/constants/index.html +1 -1
  106. package/coverage/lcov-report/constants/index.js.html +1 -1
  107. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  108. package/coverage/lcov-report/constants/screens.js.html +1 -1
  109. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  110. package/coverage/lcov-report/db/index.html +1 -1
  111. package/coverage/lcov-report/db/index.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  116. package/coverage/lcov-report/db/newid.js.html +1 -1
  117. package/coverage/lcov-report/db/utils.js.html +5 -5
  118. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  119. package/coverage/lcov-report/events/index.html +1 -1
  120. package/coverage/lcov-report/events/index.js.html +1 -1
  121. package/coverage/lcov-report/events/utils.js.html +1 -1
  122. package/coverage/lcov-report/index.html +34 -34
  123. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  124. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  125. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  126. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  127. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  128. package/coverage/lcov-report/middleware/index.html +1 -1
  129. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  130. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  131. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  132. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  133. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  134. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  135. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  136. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  137. package/coverage/lcov-report/utilities/global.js.html +1 -1
  138. package/coverage/lcov-report/utilities/index.html +19 -19
  139. package/coverage/lcov-report/utilities/index.js.html +40 -16
  140. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  141. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  142. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  143. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  144. package/coverage/lcov-report/utilities/rowProcessor/index.html +5 -5
  145. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  146. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +4 -4
  147. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  148. package/coverage/lcov-report/utilities/security.js.html +1 -1
  149. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  150. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  151. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +6 -3
  152. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  153. package/coverage/lcov-report/utilities/users.js.html +1 -1
  154. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  155. package/coverage/lcov.info +167 -127
  156. package/dist/api/controllers/application.js +1 -5
  157. package/dist/api/controllers/backup.js +2 -1
  158. package/dist/api/controllers/deploy/index.js +17 -2
  159. package/dist/api/controllers/row/ExternalRequest.js +1 -1
  160. package/dist/automations/index.js +10 -5
  161. package/dist/automations/triggers.js +39 -5
  162. package/dist/automations/utils.js +16 -7
  163. package/dist/environment.js +2 -2
  164. package/dist/integrations/rest.js +16 -1
  165. package/dist/package.json +6 -6
  166. package/dist/threads/automation.js +6 -0
  167. package/dist/tsconfig.build.tsbuildinfo +1 -1
  168. package/dist/utilities/fileSystem/index.js +16 -7
  169. package/dist/utilities/index.js +8 -0
  170. package/dist/utilities/rowProcessor/utils.js +1 -1
  171. package/dist/utilities/usageQuota/rows.js +2 -1
  172. package/package.json +7 -7
  173. package/src/api/controllers/application.ts +1 -5
  174. package/src/api/controllers/backup.js +2 -1
  175. package/src/api/controllers/deploy/index.ts +17 -4
  176. package/src/api/controllers/row/ExternalRequest.ts +1 -1
  177. package/src/api/routes/tests/query.spec.js +3 -3
  178. package/src/automations/index.js +6 -3
  179. package/src/automations/triggers.js +44 -10
  180. package/src/automations/utils.ts +21 -9
  181. package/src/definitions/datasource.ts +1 -0
  182. package/src/environment.js +2 -2
  183. package/src/integrations/rest.ts +14 -1
  184. package/src/integrations/tests/rest.spec.js +38 -3
  185. package/src/threads/automation.ts +6 -0
  186. package/src/utilities/fileSystem/index.js +15 -7
  187. package/src/utilities/index.js +8 -0
  188. package/src/utilities/rowProcessor/utils.js +1 -1
  189. package/src/utilities/usageQuota/rows.js +2 -1
@@ -163,7 +163,7 @@
163
163
  <div class='footer quiet pad2 space-top1 center small'>
164
164
  Code coverage generated by
165
165
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
166
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
166
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
167
167
  </div>
168
168
  <script src="../../prettify.js"></script>
169
169
  <script>
@@ -191,7 +191,7 @@
191
191
  <div class='footer quiet pad2 space-top1 center small'>
192
192
  Code coverage generated by
193
193
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
194
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
194
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
195
195
  </div>
196
196
  <script src="../../prettify.js"></script>
197
197
  <script>
@@ -115,7 +115,7 @@ exports.definitions = {
115
115
  <div class='footer quiet pad2 space-top1 center small'>
116
116
  Code coverage generated by
117
117
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
118
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
118
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
119
119
  </div>
120
120
  <script src="../../prettify.js"></script>
121
121
  <script>
@@ -166,7 +166,7 @@
166
166
  <div class='footer quiet pad2 space-top1 center small'>
167
167
  Code coverage generated by
168
168
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
169
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
169
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
170
170
  </div>
171
171
  <script src="../../prettify.js"></script>
172
172
  <script>
@@ -190,7 +190,7 @@
190
190
  <div class='footer quiet pad2 space-top1 center small'>
191
191
  Code coverage generated by
192
192
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
193
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
193
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
194
194
  </div>
195
195
  <script src="../../prettify.js"></script>
196
196
  <script>
@@ -190,7 +190,7 @@
190
190
  <div class='footer quiet pad2 space-top1 center small'>
191
191
  Code coverage generated by
192
192
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
193
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
193
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
194
194
  </div>
195
195
  <script src="../../prettify.js"></script>
196
196
  <script>
@@ -178,7 +178,7 @@
178
178
  <div class='footer quiet pad2 space-top1 center small'>
179
179
  Code coverage generated by
180
180
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
181
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
181
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
182
182
  </div>
183
183
  <script src="../../prettify.js"></script>
184
184
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.65% </span>
26
+ <span class="strong">90.32% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>44/46</span>
28
+ <span class='fraction'>56/62</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">81.48% </span>
33
+ <span class="strong">75.75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>22/27</span>
35
+ <span class='fraction'>25/33</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'>8/8</span>
42
+ <span class='fraction'>11/11</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.65% </span>
47
+ <span class="strong">90.16% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>44/46</span>
49
+ <span class='fraction'>55/61</span>
50
50
  </div>
51
51
 
52
52
 
@@ -176,7 +176,41 @@
176
176
  <a name='L111'></a><a href='#L111'>111</a>
177
177
  <a name='L112'></a><a href='#L112'>112</a>
178
178
  <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
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>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">45x</span>
180
214
  <span class="cline-any cline-yes">45x</span>
181
215
  <span class="cline-any cline-yes">45x</span>
182
216
  <span class="cline-any cline-yes">45x</span>
@@ -187,6 +221,7 @@
187
221
  <span class="cline-any cline-yes">45x</span>
188
222
  <span class="cline-any cline-yes">45x</span>
189
223
  <span class="cline-any cline-yes">45x</span>
224
+ <span class="cline-any cline-yes">45x</span>
190
225
  <span class="cline-any cline-neutral">&nbsp;</span>
191
226
  <span class="cline-any cline-yes">45x</span>
192
227
  <span class="cline-any cline-yes">45x</span>
@@ -195,21 +230,24 @@
195
230
  <span class="cline-any cline-neutral">&nbsp;</span>
196
231
  <span class="cline-any cline-neutral">&nbsp;</span>
197
232
  <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-yes">23x</span>
234
+ <span class="cline-any cline-yes">23x</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-yes">23x</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
198
241
  <span class="cline-any cline-yes">17x</span>
199
242
  <span class="cline-any cline-no">&nbsp;</span>
200
243
  <span class="cline-any cline-neutral">&nbsp;</span>
201
244
  <span class="cline-any cline-neutral">&nbsp;</span>
202
245
  <span class="cline-any cline-yes">17x</span>
203
246
  <span class="cline-any cline-yes">17x</span>
204
- <span class="cline-any cline-yes">17x</span>
205
- <span class="cline-any cline-neutral">&nbsp;</span>
206
- <span class="cline-any cline-neutral">&nbsp;</span>
207
247
  <span class="cline-any cline-neutral">&nbsp;</span>
208
248
  <span class="cline-any cline-neutral">&nbsp;</span>
209
249
  <span class="cline-any cline-yes">17x</span>
210
250
  <span class="cline-any cline-yes">4x</span>
211
- <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-yes">4x</span>
213
251
  <span class="cline-any cline-yes">4x</span>
214
252
  <span class="cline-any cline-neutral">&nbsp;</span>
215
253
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -289,6 +327,36 @@
289
327
  <span class="cline-any cline-neutral">&nbsp;</span>
290
328
  <span class="cline-any cline-neutral">&nbsp;</span>
291
329
  <span class="cline-any cline-yes">45x</span>
330
+ <span class="cline-any cline-neutral">&nbsp;</span>
331
+ <span class="cline-any cline-neutral">&nbsp;</span>
332
+ <span class="cline-any cline-yes">32x</span>
333
+ <span class="cline-any cline-no">&nbsp;</span>
334
+ <span class="cline-any cline-neutral">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-neutral">&nbsp;</span>
337
+ <span class="cline-any cline-yes">32x</span>
338
+ <span class="cline-any cline-yes">32x</span>
339
+ <span class="cline-any cline-yes">6x</span>
340
+ <span class="cline-any cline-yes">6x</span>
341
+ <span class="cline-any cline-yes">6x</span>
342
+ <span class="cline-any cline-yes">6x</span>
343
+ <span class="cline-any cline-no">&nbsp;</span>
344
+ <span class="cline-any cline-no">&nbsp;</span>
345
+ <span class="cline-any cline-neutral">&nbsp;</span>
346
+ <span class="cline-any cline-neutral">&nbsp;</span>
347
+ <span class="cline-any cline-neutral">&nbsp;</span>
348
+ <span class="cline-any cline-neutral">&nbsp;</span>
349
+ <span class="cline-any cline-neutral">&nbsp;</span>
350
+ <span class="cline-any cline-neutral">&nbsp;</span>
351
+ <span class="cline-any cline-no">&nbsp;</span>
352
+ <span class="cline-any cline-neutral">&nbsp;</span>
353
+ <span class="cline-any cline-neutral">&nbsp;</span>
354
+ <span class="cline-any cline-yes">6x</span>
355
+ <span class="cline-any cline-neutral">&nbsp;</span>
356
+ <span class="cline-any cline-neutral">&nbsp;</span>
357
+ <span class="cline-any cline-neutral">&nbsp;</span>
358
+ <span class="cline-any cline-neutral">&nbsp;</span>
359
+ <span class="cline-any cline-yes">45x</span>
292
360
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const emitter = require("../events/index")
293
361
  const { getAutomationParams } = require("../db/utils")
294
362
  const { coerce } = require("../utilities/rowProcessor")
@@ -300,6 +368,7 @@ const { checkTestFlag } = require("../utilities/redis")
300
368
  const utils = require("./utils")
301
369
  const env = require("../environment")
302
370
  const { doInAppContext, getAppDB } = require("@budibase/backend-core/context")
371
+ const { getAllApps } = require("@budibase/backend-core/db")
303
372
  &nbsp;
304
373
  const TRIGGER_DEFINITIONS = definitions
305
374
  const JOB_OPTS = {
@@ -307,24 +376,27 @@ const JOB_OPTS = {
307
376
  removeOnFail: true,
308
377
  }
309
378
  &nbsp;
379
+ async function getAllAutomations() {
380
+ const db = getAppDB()
381
+ let automations = await db.allDocs(
382
+ getAutomationParams(null, { include_docs: true })
383
+ )
384
+ return automations.rows.map(row =&gt; row.doc)
385
+ }
386
+ &nbsp;
310
387
  async function queueRelevantRowAutomations(event, eventType) {
311
388
  <span class="missing-if-branch" title="if path not taken" >I</span>if (event.appId == null) {
312
389
  <span class="cstat-no" title="statement not covered" > throw `No appId specified for ${eventType} - check event emitters.`</span>
313
390
  }
314
391
  &nbsp;
315
392
  doInAppContext(event.appId, async () =&gt; {
316
- const db = getAppDB()
317
- let automations = await db.allDocs(
318
- getAutomationParams(null, { include_docs: true })
319
- )
393
+ let automations = await getAllAutomations()
320
394
  &nbsp;
321
395
  // filter down to the correct event type
322
- automations = automations.rows
323
- .map(automation =&gt; automation.doc)
324
- .filter(automation =&gt; {
325
- const trigger = automation.definition.trigger
326
- return trigger &amp;&amp; trigger.event === eventType
327
- })
396
+ automations = automations.filter(automation =&gt; {
397
+ const trigger = automation.definition.trigger
398
+ return trigger &amp;&amp; trigger.event === eventType
399
+ })
328
400
  &nbsp;
329
401
  for (let automation of automations) {
330
402
  let automationDef = automation.definition
@@ -401,6 +473,36 @@ exports.externalTrigger = async function (
401
473
  }
402
474
  }
403
475
  &nbsp;
476
+ exports.rebootTrigger = async () =&gt; {
477
+ // reboot cron option is only available on the main thread at
478
+ // startup and only usable in self host
479
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (env.isInThread() || !env.SELF_HOSTED) {
480
+ <span class="cstat-no" title="statement not covered" > return</span>
481
+ }
482
+ // iterate through all production apps, find the reboot crons
483
+ // and trigger events for them
484
+ const appIds = await getAllApps({ dev: false, idsOnly: true })
485
+ for (let prodAppId of appIds) {
486
+ await doInAppContext(prodAppId, async () =&gt; {
487
+ let automations = await getAllAutomations()
488
+ let rebootEvents = []
489
+ for (let automation of automations) {
490
+ <span class="cstat-no" title="statement not covered" > if (utils.isRebootTrigger(automation)) {</span>
491
+ const job = <span class="cstat-no" title="statement not covered" >{</span>
492
+ automation,
493
+ event: {
494
+ appId: prodAppId,
495
+ timestamp: Date.now(),
496
+ },
497
+ }
498
+ <span class="cstat-no" title="statement not covered" > rebootEvents.push(queue.add(job, JOB_OPTS))</span>
499
+ }
500
+ }
501
+ await Promise.all(rebootEvents)
502
+ })
503
+ }
504
+ }
505
+ &nbsp;
404
506
  exports.TRIGGER_DEFINITIONS = TRIGGER_DEFINITIONS
405
507
  &nbsp;</pre></td></tr></table></pre>
406
508
 
@@ -409,7 +511,7 @@ exports.TRIGGER_DEFINITIONS = TRIGGER_DEFINITIONS
409
511
  <div class='footer quiet pad2 space-top1 center small'>
410
512
  Code coverage generated by
411
513
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
412
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
514
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
413
515
  </div>
414
516
  <script src="../prettify.js"></script>
415
517
  <script>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
134
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
135
135
  </div>
136
136
  <script src="../prettify.js"></script>
137
137
  <script>
@@ -712,7 +712,7 @@ exports.MAX_AUTOMATION_RECURRING_ERRORS = 5
712
712
  <div class='footer quiet pad2 space-top1 center small'>
713
713
  Code coverage generated by
714
714
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
715
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
715
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
716
716
  </div>
717
717
  <script src="../prettify.js"></script>
718
718
  <script>
@@ -529,7 +529,7 @@ module.exports = {
529
529
  <div class='footer quiet pad2 space-top1 center small'>
530
530
  Code coverage generated by
531
531
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
532
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
532
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
533
533
  </div>
534
534
  <script src="../prettify.js"></script>
535
535
  <script>
@@ -208,7 +208,7 @@ exports.createHomeScreen = () =&gt; ({
208
208
  <div class='footer quiet pad2 space-top1 center small'>
209
209
  Code coverage generated by
210
210
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
211
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
211
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
212
212
  </div>
213
213
  <script src="../prettify.js"></script>
214
214
  <script>
@@ -217,7 +217,7 @@ exports.runView = <span class="fstat-no" title="function not covered" >as</span>
217
217
  <div class='footer quiet pad2 space-top1 center small'>
218
218
  Code coverage generated by
219
219
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
220
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
220
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
221
221
  </div>
222
222
  <script src="../prettify.js"></script>
223
223
  <script>
@@ -146,7 +146,7 @@
146
146
  <div class='footer quiet pad2 space-top1 center small'>
147
147
  Code coverage generated by
148
148
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
149
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
149
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
150
150
  </div>
151
151
  <script src="../prettify.js"></script>
152
152
  <script>
@@ -118,7 +118,7 @@ exports.init = () =&gt; {
118
118
  <div class='footer quiet pad2 space-top1 center small'>
119
119
  Code coverage generated by
120
120
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
121
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
121
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
122
122
  </div>
123
123
  <script src="../prettify.js"></script>
124
124
  <script>
@@ -1465,7 +1465,7 @@ module.exports = LinkController
1465
1465
  <div class='footer quiet pad2 space-top1 center small'>
1466
1466
  Code coverage generated by
1467
1467
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1468
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
1468
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
1469
1469
  </div>
1470
1470
  <script src="../../prettify.js"></script>
1471
1471
  <script>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
134
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
135
135
  </div>
136
136
  <script src="../../prettify.js"></script>
137
137
  <script>
@@ -706,7 +706,7 @@ exports.squashLinksToPrimaryDisplay = async (table, enriched) =&gt; {
706
706
  <div class='footer quiet pad2 space-top1 center small'>
707
707
  Code coverage generated by
708
708
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
709
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
709
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
710
710
  </div>
711
711
  <script src="../../prettify.js"></script>
712
712
  <script>
@@ -418,7 +418,7 @@ exports.getRelatedTableForField = (table, fieldName) =&gt; {
418
418
  <div class='footer quiet pad2 space-top1 center small'>
419
419
  Code coverage generated by
420
420
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
421
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
421
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
422
422
  </div>
423
423
  <script src="../../prettify.js"></script>
424
424
  <script>
@@ -85,7 +85,7 @@ module.exports = function () {
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
88
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
88
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
89
89
  </div>
90
90
  <script src="../prettify.js"></script>
91
91
  <script>
@@ -544,10 +544,10 @@
544
544
  <span class="cline-any cline-neutral">&nbsp;</span>
545
545
  <span class="cline-any cline-neutral">&nbsp;</span>
546
546
  <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-yes">875x</span>
548
- <span class="cline-any cline-yes">858x</span>
547
+ <span class="cline-any cline-yes">881x</span>
548
+ <span class="cline-any cline-yes">864x</span>
549
549
  <span class="cline-any cline-neutral">&nbsp;</span>
550
- <span class="cline-any cline-yes">875x</span>
550
+ <span class="cline-any cline-yes">881x</span>
551
551
  <span class="cline-any cline-neutral">&nbsp;</span>
552
552
  <span class="cline-any cline-neutral">&nbsp;</span>
553
553
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -643,7 +643,7 @@
643
643
  <span class="cline-any cline-neutral">&nbsp;</span>
644
644
  <span class="cline-any cline-neutral">&nbsp;</span>
645
645
  <span class="cline-any cline-yes">59x</span>
646
- <span class="cline-any cline-yes">274x</span>
646
+ <span class="cline-any cline-yes">280x</span>
647
647
  <span class="cline-any cline-neutral">&nbsp;</span>
648
648
  <span class="cline-any cline-neutral">&nbsp;</span>
649
649
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1213,7 +1213,7 @@ exports.getMultiIDParams = ids =&gt; {
1213
1213
  <div class='footer quiet pad2 space-top1 center small'>
1214
1214
  Code coverage generated by
1215
1215
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1216
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
1216
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
1217
1217
  </div>
1218
1218
  <script src="../prettify.js"></script>
1219
1219
  <script>
@@ -229,7 +229,7 @@ module.exports = AutomationEmitter
229
229
  <div class='footer quiet pad2 space-top1 center small'>
230
230
  Code coverage generated by
231
231
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
232
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
232
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
233
233
  </div>
234
234
  <script src="../prettify.js"></script>
235
235
  <script>
@@ -131,7 +131,7 @@
131
131
  <div class='footer quiet pad2 space-top1 center small'>
132
132
  Code coverage generated by
133
133
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
134
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
134
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
135
135
  </div>
136
136
  <script src="../prettify.js"></script>
137
137
  <script>
@@ -160,7 +160,7 @@ module.exports = emitter
160
160
  <div class='footer quiet pad2 space-top1 center small'>
161
161
  Code coverage generated by
162
162
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
163
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
163
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
164
164
  </div>
165
165
  <script src="../prettify.js"></script>
166
166
  <script>
@@ -184,7 +184,7 @@ exports.tableEmission = ({ emitter, eventName, appId, table, metadata }) =&gt; {
184
184
  <div class='footer quiet pad2 space-top1 center small'>
185
185
  Code coverage generated by
186
186
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
187
- at Mon Sep 12 2022 08:31:07 GMT+0000 (Coordinated Universal Time)
187
+ at Mon Sep 12 2022 14:50:25 GMT+0000 (Coordinated Universal Time)
188
188
  </div>
189
189
  <script src="../prettify.js"></script>
190
190
  <script>