@budibase/server 0.9.185-alpha.1 → 0.9.185-alpha.13

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 (234) hide show
  1. package/Dockerfile +1 -1
  2. package/builder/assets/bb-space-man.5be51a45.svg +290 -0
  3. package/builder/assets/index.4a7c5636.css +1 -0
  4. package/builder/assets/index.dc495306.js +1317 -0
  5. package/builder/assets/vendor.470042a4.js +152 -0
  6. package/builder/assets/vendor.5e1fe644.css +1 -0
  7. package/builder/index.html +4 -4
  8. package/coverage/clover.xml +689 -598
  9. package/coverage/coverage-final.json +89 -87
  10. package/coverage/lcov-report/api/controllers/analytics.js.html +2 -2
  11. package/coverage/lcov-report/api/controllers/apikeys.js.html +2 -2
  12. package/coverage/lcov-report/api/controllers/application.js.html +43 -13
  13. package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
  14. package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
  15. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/component.js.html +4 -4
  18. package/coverage/lcov-report/api/controllers/datasource.js.html +129 -21
  19. package/coverage/lcov-report/api/controllers/dev.js.html +16 -7
  20. package/coverage/lcov-report/api/controllers/hosting.js.html +10 -10
  21. package/coverage/lcov-report/api/controllers/index.html +83 -83
  22. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/layout.js.html +3 -3
  24. package/coverage/lcov-report/api/controllers/metadata.js.html +3 -3
  25. package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
  26. package/coverage/lcov-report/api/controllers/query.js.html +48 -210
  27. package/coverage/lcov-report/api/controllers/role.js.html +9 -9
  28. package/coverage/lcov-report/api/controllers/routing.js.html +3 -3
  29. package/coverage/lcov-report/api/controllers/row/external.js.html +2 -2
  30. package/coverage/lcov-report/api/controllers/row/index.html +10 -10
  31. package/coverage/lcov-report/api/controllers/row/index.js.html +2 -2
  32. package/coverage/lcov-report/api/controllers/row/internal.js.html +9 -9
  33. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
  34. package/coverage/lcov-report/api/controllers/row/utils.js.html +2 -2
  35. package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
  36. package/coverage/lcov-report/api/controllers/script.js.html +3 -3
  37. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/table/index.html +11 -11
  39. package/coverage/lcov-report/api/controllers/table/index.js.html +3 -3
  40. package/coverage/lcov-report/api/controllers/table/internal.js.html +2 -2
  41. package/coverage/lcov-report/api/controllers/table/utils.js.html +8 -8
  42. package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
  43. package/coverage/lcov-report/api/controllers/user.js.html +33 -18
  44. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  45. package/coverage/lcov-report/api/controllers/view/index.html +9 -9
  46. package/coverage/lcov-report/api/controllers/view/index.js.html +5 -5
  47. package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
  48. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -3
  49. package/coverage/lcov-report/api/controllers/webhook.js.html +4 -4
  50. package/coverage/lcov-report/api/index.html +1 -1
  51. package/coverage/lcov-report/api/index.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/application.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/dev.js.html +2 -2
  63. package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/index.html +4 -4
  65. package/coverage/lcov-report/api/routes/index.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/query.js.html +5 -2
  71. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/row.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  75. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  76. package/coverage/lcov-report/api/routes/static.js.html +2 -2
  77. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  78. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  79. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  80. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  81. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  82. package/coverage/lcov-report/automations/actions.js.html +2 -2
  83. package/coverage/lcov-report/automations/automationUtils.js.html +3 -3
  84. package/coverage/lcov-report/automations/bullboard.js.html +71 -20
  85. package/coverage/lcov-report/automations/index.html +33 -48
  86. package/coverage/lcov-report/automations/index.js.html +2 -2
  87. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/discord.js.html +3 -3
  92. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -3
  94. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/index.html +14 -14
  96. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  97. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +3 -3
  98. package/coverage/lcov-report/automations/steps/queryRows.js.html +3 -3
  99. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  100. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  101. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  102. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  103. package/coverage/lcov-report/automations/steps/utils.js.html +7 -7
  104. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
  106. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
  107. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  108. package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
  109. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
  110. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
  111. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
  112. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
  113. package/coverage/lcov-report/automations/triggers.js.html +22 -10
  114. package/coverage/lcov-report/automations/utils.js.html +42 -12
  115. package/coverage/lcov-report/constants/index.html +5 -5
  116. package/coverage/lcov-report/constants/index.js.html +25 -4
  117. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  118. package/coverage/lcov-report/constants/screens.js.html +1 -1
  119. package/coverage/lcov-report/db/client.js.html +2 -2
  120. package/coverage/lcov-report/db/inMemoryView.js.html +2 -2
  121. package/coverage/lcov-report/db/index.html +2 -2
  122. package/coverage/lcov-report/db/index.js.html +1 -1
  123. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +6 -6
  124. package/coverage/lcov-report/db/linkedRows/index.html +10 -10
  125. package/coverage/lcov-report/db/linkedRows/index.js.html +5 -5
  126. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +6 -6
  127. package/coverage/lcov-report/db/newid.js.html +1 -1
  128. package/coverage/lcov-report/db/utils.js.html +1 -1
  129. package/coverage/lcov-report/events/AutomationEmitter.js.html +6 -6
  130. package/coverage/lcov-report/events/index.html +6 -6
  131. package/coverage/lcov-report/events/index.js.html +1 -1
  132. package/coverage/lcov-report/events/utils.js.html +5 -5
  133. package/coverage/lcov-report/index.html +83 -68
  134. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  135. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  136. package/coverage/lcov-report/middleware/appInfo.js.html +2 -2
  137. package/coverage/lcov-report/middleware/authorized.js.html +4 -4
  138. package/coverage/lcov-report/middleware/builder.js.html +16 -7
  139. package/coverage/lcov-report/middleware/currentapp.js.html +6 -6
  140. package/coverage/lcov-report/middleware/index.html +21 -21
  141. package/coverage/lcov-report/middleware/joi-validator.js.html +2 -2
  142. package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
  143. package/coverage/lcov-report/middleware/selfhost.js.html +2 -2
  144. package/coverage/lcov-report/middleware/usageQuota.js.html +4 -4
  145. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  146. package/coverage/lcov-report/{automations/thread.js.html → threads/automation.js.html} +83 -32
  147. package/coverage/lcov-report/threads/index.html +141 -0
  148. package/coverage/lcov-report/threads/index.js.html +260 -0
  149. package/coverage/lcov-report/threads/query.js.html +269 -0
  150. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  151. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  152. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  153. package/coverage/lcov-report/utilities/csvParser.js.html +2 -2
  154. package/coverage/lcov-report/utilities/global.js.html +2 -2
  155. package/coverage/lcov-report/utilities/index.html +21 -21
  156. package/coverage/lcov-report/utilities/index.js.html +12 -9
  157. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +30 -9
  158. package/coverage/lcov-report/utilities/queue/index.html +14 -14
  159. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  160. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  161. package/coverage/lcov-report/utilities/rowProcessor/index.html +4 -4
  162. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +2 -2
  163. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +3 -3
  164. package/coverage/lcov-report/utilities/scriptRunner.js.html +16 -7
  165. package/coverage/lcov-report/utilities/security.js.html +3 -3
  166. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  167. package/coverage/lcov-report/utilities/users.js.html +1 -1
  168. package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
  169. package/coverage/lcov.info +1136 -972
  170. package/dist/api/controllers/application.js +11 -1
  171. package/dist/api/controllers/datasource.js +31 -7
  172. package/dist/api/controllers/deploy/index.js +2 -0
  173. package/dist/api/controllers/dev.js +4 -1
  174. package/dist/api/controllers/query.js +27 -57
  175. package/dist/api/controllers/user.js +10 -6
  176. package/dist/api/routes/query.js +1 -1
  177. package/dist/app.js +2 -11
  178. package/dist/automations/bullboard.js +37 -10
  179. package/dist/automations/triggers.js +7 -3
  180. package/dist/automations/utils.js +11 -2
  181. package/dist/constants/index.js +6 -0
  182. package/dist/integrations/base/IntegrationBase.js +2 -0
  183. package/dist/integrations/base/sql.js +36 -8
  184. package/dist/integrations/mysql.js +3 -1
  185. package/dist/integrations/utils.js +7 -1
  186. package/dist/middleware/builder.js +4 -1
  187. package/dist/package.json +7 -6
  188. package/dist/{automations/thread.js → threads/automation.js} +23 -7
  189. package/dist/threads/index.js +58 -0
  190. package/dist/threads/query.js +61 -0
  191. package/dist/tsconfig.tsbuildinfo +1 -1
  192. package/dist/utilities/index.js +1 -0
  193. package/dist/utilities/queue/inMemoryQueue.js +8 -0
  194. package/dist/utilities/scriptRunner.js +4 -1
  195. package/package.json +8 -7
  196. package/scripts/likeCypress.ts +33 -0
  197. package/src/api/controllers/application.js +11 -1
  198. package/src/api/controllers/datasource.js +45 -9
  199. package/src/api/controllers/deploy/index.js +2 -0
  200. package/src/api/controllers/dev.js +4 -1
  201. package/src/api/controllers/query.js +26 -80
  202. package/src/api/controllers/user.js +15 -10
  203. package/src/api/routes/query.js +1 -0
  204. package/src/app.ts +2 -10
  205. package/src/automations/bullboard.js +28 -11
  206. package/src/automations/tests/automation.spec.js +3 -4
  207. package/src/automations/triggers.js +7 -3
  208. package/src/automations/utils.js +12 -2
  209. package/src/constants/index.js +7 -0
  210. package/src/integrations/airtable.ts +2 -1
  211. package/src/integrations/arangodb.ts +2 -1
  212. package/src/integrations/base/IntegrationBase.ts +6 -0
  213. package/src/integrations/base/datasourcePlus.ts +2 -1
  214. package/src/integrations/base/sql.ts +38 -9
  215. package/src/integrations/couchdb.ts +2 -1
  216. package/src/integrations/dynamodb.ts +2 -1
  217. package/src/integrations/elasticsearch.ts +2 -1
  218. package/src/integrations/mongodb.ts +2 -1
  219. package/src/integrations/mysql.ts +1 -1
  220. package/src/integrations/rest.ts +2 -1
  221. package/src/integrations/s3.ts +2 -1
  222. package/src/integrations/utils.ts +6 -1
  223. package/src/middleware/builder.js +4 -1
  224. package/src/{automations/thread.js → threads/automation.js} +24 -7
  225. package/src/threads/index.js +60 -0
  226. package/src/threads/query.js +63 -0
  227. package/src/utilities/index.js +1 -0
  228. package/src/utilities/queue/inMemoryQueue.js +7 -0
  229. package/src/utilities/scriptRunner.js +4 -1
  230. package/tsconfig.json +1 -1
  231. package/builder/assets/index.4feb6e69.js +0 -201
  232. package/builder/assets/index.a79ec0ef.css +0 -29
  233. package/builder/assets/vendor.278a305c.js +0 -9
  234. package/builder/assets/vendor.d75d5eb7.css +0 -1
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">63.64% </span>
33
+ <span class="strong">63.63% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>7/11</span>
36
36
  </div>
@@ -378,7 +378,7 @@ exports.run = async function ({ inputs, appId }) {
378
378
  const { tableId, filters, sortColumn, sortOrder, limit } = inputs
379
379
  const table = await getTable(appId, tableId)
380
380
  let sortType = FieldTypes.STRING
381
- <span class="missing-if-branch" title="else path not taken" >E</span>if (table &amp;&amp; table.schema &amp;&amp; sortColumn) {
381
+ if (table &amp;&amp; table.schema &amp;&amp; sortColumn) {
382
382
  const fieldType = table.schema[sortColumn].type
383
383
  sortType =
384
384
  fieldType === FieldTypes.NUMBER ? <span class="branch-0 cbranch-no" title="branch not covered" >FieldTypes.NUMBER </span>: FieldTypes.STRING
@@ -415,7 +415,7 @@ exports.run = async function ({ inputs, appId }) {
415
415
  <div class='footer quiet pad2 space-top1 center small'>
416
416
  Code coverage generated by
417
417
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
418
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
418
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
419
419
  </div>
420
420
  </div>
421
421
  <script src="../../prettify.js"></script>
@@ -268,7 +268,7 @@ exports.run = <span class="fstat-no" title="function not covered" >as</span>ync
268
268
  <div class='footer quiet pad2 space-top1 center small'>
269
269
  Code coverage generated by
270
270
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
271
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
271
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
272
272
  </div>
273
273
  </div>
274
274
  <script src="../../prettify.js"></script>
@@ -199,7 +199,7 @@ exports.run = <span class="fstat-no" title="function not covered" >as</span>ync
199
199
  <div class='footer quiet pad2 space-top1 center small'>
200
200
  Code coverage generated by
201
201
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
202
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
202
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
203
203
  </div>
204
204
  </div>
205
205
  <script src="../../prettify.js"></script>
@@ -256,7 +256,7 @@ exports.run = <span class="fstat-no" title="function not covered" >as</span>ync
256
256
  <div class='footer quiet pad2 space-top1 center small'>
257
257
  Code coverage generated by
258
258
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
259
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
259
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
260
260
  </div>
261
261
  </div>
262
262
  <script src="../../prettify.js"></script>
@@ -382,7 +382,7 @@ exports.run = async function ({ inputs, appId, emitter }) {
382
382
  <div class='footer quiet pad2 space-top1 center small'>
383
383
  Code coverage generated by
384
384
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
385
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
385
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
386
386
  </div>
387
387
  </div>
388
388
  <script src="../../prettify.js"></script>
@@ -23,14 +23,14 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">88.24% </span>
26
+ <span class="strong">88.23% </span>
27
27
  <span class="quiet">Statements</span>
28
28
  <span class='fraction'>15/17</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">66.67% </span>
33
+ <span class="strong">66.66% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>6/9</span>
36
36
  </div>
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">88.24% </span>
47
+ <span class="strong">88.23% </span>
48
48
  <span class="quiet">Lines</span>
49
49
  <span class='fraction'>15/17</span>
50
50
  </div>
@@ -134,9 +134,9 @@
134
134
  message
135
135
  const contentType = fetched.headers.get("content-type")
136
136
  try {
137
- <span class="missing-if-branch" title="else path not taken" >E</span>if (contentType &amp;&amp; contentType.indexOf("application/json") !== -1) {
137
+ if (contentType &amp;&amp; contentType.indexOf("application/json") !== -1) {
138
138
  message = await fetched.json()
139
- } else {
139
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
140
140
  <span class="cstat-no" title="statement not covered" > message = await fetched.text()</span>
141
141
  }
142
142
  } catch (err) {
@@ -160,7 +160,7 @@ exports.buildCtx = (appId, emitter, { body, params } = <span class="branch-0 cbr
160
160
  if (body) {
161
161
  ctx.request = { body }
162
162
  }
163
- <span class="missing-if-branch" title="else path not taken" >E</span>if (params) {
163
+ if (params) {
164
164
  ctx.params = params
165
165
  }
166
166
  return ctx
@@ -172,7 +172,7 @@ exports.buildCtx = (appId, emitter, { body, params } = <span class="branch-0 cbr
172
172
  <div class='footer quiet pad2 space-top1 center small'>
173
173
  Code coverage generated by
174
174
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
175
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
175
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
176
176
  </div>
177
177
  </div>
178
178
  <script src="../../prettify.js"></script>
@@ -316,7 +316,7 @@ exports.run = <span class="fstat-no" title="function not covered" >as</span>ync
316
316
  <div class='footer quiet pad2 space-top1 center small'>
317
317
  Code coverage generated by
318
318
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
319
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
319
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
320
320
  </div>
321
321
  </div>
322
322
  <script src="../../prettify.js"></script>
@@ -89,7 +89,7 @@
89
89
  <a name='L30'></a><a href='#L30'>30</a>
90
90
  <a name='L31'></a><a href='#L31'>31</a>
91
91
  <a name='L32'></a><a href='#L32'>32</a>
92
- <a name='L33'></a><a href='#L33'>33</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
92
+ <a name='L33'></a><a href='#L33'>33</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
93
93
  <span class="cline-any cline-neutral">&nbsp;</span>
94
94
  <span class="cline-any cline-neutral">&nbsp;</span>
95
95
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -160,7 +160,7 @@
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">istanbul</a>
163
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
163
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
164
164
  </div>
165
165
  </div>
166
166
  <script src="../../prettify.js"></script>
@@ -88,7 +88,7 @@
88
88
  <a name='L29'></a><a href='#L29'>29</a>
89
89
  <a name='L30'></a><a href='#L30'>30</a>
90
90
  <a name='L31'></a><a href='#L31'>31</a>
91
- <a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
91
+ <a name='L32'></a><a href='#L32'>32</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
92
92
  <span class="cline-any cline-neutral">&nbsp;</span>
93
93
  <span class="cline-any cline-neutral">&nbsp;</span>
94
94
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -157,7 +157,7 @@
157
157
  <div class='footer quiet pad2 space-top1 center small'>
158
158
  Code coverage generated by
159
159
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
160
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
160
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
161
161
  </div>
162
162
  </div>
163
163
  <script src="../../prettify.js"></script>
@@ -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 Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
188
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
189
189
  </div>
190
190
  </div>
191
191
  <script src="../../prettify.js"></script>
@@ -72,14 +72,14 @@
72
72
  <a name='L13'></a><a href='#L13'>13</a>
73
73
  <a name='L14'></a><a href='#L14'>14</a>
74
74
  <a name='L15'></a><a href='#L15'>15</a>
75
- <a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
76
- <span class="cline-any cline-yes">33x</span>
77
- <span class="cline-any cline-yes">33x</span>
78
- <span class="cline-any cline-yes">33x</span>
79
- <span class="cline-any cline-yes">33x</span>
80
- <span class="cline-any cline-yes">33x</span>
75
+ <a name='L16'></a><a href='#L16'>16</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
76
+ <span class="cline-any cline-yes">34x</span>
77
+ <span class="cline-any cline-yes">34x</span>
78
+ <span class="cline-any cline-yes">34x</span>
79
+ <span class="cline-any cline-yes">34x</span>
80
+ <span class="cline-any cline-yes">34x</span>
81
81
  <span class="cline-any cline-neutral">&nbsp;</span>
82
- <span class="cline-any cline-yes">33x</span>
82
+ <span class="cline-any cline-yes">34x</span>
83
83
  <span class="cline-any cline-neutral">&nbsp;</span>
84
84
  <span class="cline-any cline-neutral">&nbsp;</span>
85
85
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -109,7 +109,7 @@ exports.definitions = {
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
112
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
112
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
113
113
  </div>
114
114
  </div>
115
115
  <script src="../../prettify.js"></script>
@@ -89,7 +89,7 @@
89
89
  <a name='L30'></a><a href='#L30'>30</a>
90
90
  <a name='L31'></a><a href='#L31'>31</a>
91
91
  <a name='L32'></a><a href='#L32'>32</a>
92
- <a name='L33'></a><a href='#L33'>33</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
92
+ <a name='L33'></a><a href='#L33'>33</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
93
93
  <span class="cline-any cline-neutral">&nbsp;</span>
94
94
  <span class="cline-any cline-neutral">&nbsp;</span>
95
95
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -160,7 +160,7 @@
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">istanbul</a>
163
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
163
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
164
164
  </div>
165
165
  </div>
166
166
  <script src="../../prettify.js"></script>
@@ -97,7 +97,7 @@
97
97
  <a name='L38'></a><a href='#L38'>38</a>
98
98
  <a name='L39'></a><a href='#L39'>39</a>
99
99
  <a name='L40'></a><a href='#L40'>40</a>
100
- <a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
100
+ <a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
101
101
  <span class="cline-any cline-neutral">&nbsp;</span>
102
102
  <span class="cline-any cline-neutral">&nbsp;</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -184,7 +184,7 @@
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">istanbul</a>
187
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
187
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
188
188
  </div>
189
189
  </div>
190
190
  <script src="../../prettify.js"></script>
@@ -97,7 +97,7 @@
97
97
  <a name='L38'></a><a href='#L38'>38</a>
98
98
  <a name='L39'></a><a href='#L39'>39</a>
99
99
  <a name='L40'></a><a href='#L40'>40</a>
100
- <a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
100
+ <a name='L41'></a><a href='#L41'>41</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
101
101
  <span class="cline-any cline-neutral">&nbsp;</span>
102
102
  <span class="cline-any cline-neutral">&nbsp;</span>
103
103
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -184,7 +184,7 @@
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">istanbul</a>
187
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
187
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
188
188
  </div>
189
189
  </div>
190
190
  <script src="../../prettify.js"></script>
@@ -93,7 +93,7 @@
93
93
  <a name='L34'></a><a href='#L34'>34</a>
94
94
  <a name='L35'></a><a href='#L35'>35</a>
95
95
  <a name='L36'></a><a href='#L36'>36</a>
96
- <a name='L37'></a><a href='#L37'>37</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
96
+ <a name='L37'></a><a href='#L37'>37</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
97
97
  <span class="cline-any cline-neutral">&nbsp;</span>
98
98
  <span class="cline-any cline-neutral">&nbsp;</span>
99
99
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -172,7 +172,7 @@
172
172
  <div class='footer quiet pad2 space-top1 center small'>
173
173
  Code coverage generated by
174
174
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
175
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
175
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
176
176
  </div>
177
177
  </div>
178
178
  <script src="../../prettify.js"></script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">95.45% </span>
26
+ <span class="strong">95.55% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>42/44</span>
28
+ <span class='fraction'>43/45</span>
29
29
  </div>
30
30
 
31
31
 
@@ -44,9 +44,9 @@
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">95.45% </span>
47
+ <span class="strong">95.55% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>42/44</span>
49
+ <span class='fraction'>43/45</span>
50
50
  </div>
51
51
 
52
52
 
@@ -164,7 +164,11 @@
164
164
  <a name='L105'></a><a href='#L105'>105</a>
165
165
  <a name='L106'></a><a href='#L106'>106</a>
166
166
  <a name='L107'></a><a href='#L107'>107</a>
167
- <a name='L108'></a><a href='#L108'>108</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
167
+ <a name='L108'></a><a href='#L108'>108</a>
168
+ <a name='L109'></a><a href='#L109'>109</a>
169
+ <a name='L110'></a><a href='#L110'>110</a>
170
+ <a name='L111'></a><a href='#L111'>111</a>
171
+ <a name='L112'></a><a href='#L112'>112</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
168
172
  <span class="cline-any cline-yes">33x</span>
169
173
  <span class="cline-any cline-yes">33x</span>
170
174
  <span class="cline-any cline-yes">33x</span>
@@ -177,6 +181,10 @@
177
181
  <span class="cline-any cline-yes">33x</span>
178
182
  <span class="cline-any cline-neutral">&nbsp;</span>
179
183
  <span class="cline-any cline-yes">33x</span>
184
+ <span class="cline-any cline-yes">33x</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
188
  <span class="cline-any cline-neutral">&nbsp;</span>
181
189
  <span class="cline-any cline-neutral">&nbsp;</span>
182
190
  <span class="cline-any cline-yes">16x</span>
@@ -284,6 +292,10 @@ const utils = require("./utils")
284
292
  const env = require("../environment")
285
293
  &nbsp;
286
294
  const TRIGGER_DEFINITIONS = definitions
295
+ const JOB_OPTS = {
296
+ removeOnComplete: true,
297
+ removeOnFail: true,
298
+ }
287
299
  &nbsp;
288
300
  async function queueRelevantRowAutomations(event, eventType) {
289
301
  <span class="missing-if-branch" title="if path not taken" >I</span>if (event.appId == null) {
@@ -316,11 +328,11 @@ async function queueRelevantRowAutomations(event, eventType) {
316
328
  ) {
317
329
  <span class="cstat-no" title="statement not covered" > continue</span>
318
330
  }
319
- <span class="missing-if-branch" title="else path not taken" >E</span>if (
331
+ if (
320
332
  automationTrigger.inputs &amp;&amp;
321
333
  automationTrigger.inputs.tableId === event.row.tableId
322
334
  ) {
323
- await queue.add({ automation, event })
335
+ await queue.add({ automation, event }, JOB_OPTS)
324
336
  }
325
337
  }
326
338
  }
@@ -359,7 +371,7 @@ exports.externalTrigger = async function (
359
371
  automation.definition.trigger != null &amp;&amp;
360
372
  automation.definition.trigger.stepId === definitions.APP.stepId &amp;&amp;
361
373
  automation.definition.trigger.stepId === "APP" &amp;&amp;
362
- !checkTestFlag(automation._id)
374
+ !(await checkTestFlag(automation._id))
363
375
  ) {
364
376
  // values are likely to be submitted as strings, so we shall convert to correct type
365
377
  const coercedFields = {}
@@ -373,7 +385,7 @@ exports.externalTrigger = async function (
373
385
  if (getResponses) {
374
386
  return utils.processEvent({ data })
375
387
  } else {
376
- return queue.add(data)
388
+ return queue.add(data, JOB_OPTS)
377
389
  }
378
390
  }
379
391
  &nbsp;
@@ -385,7 +397,7 @@ exports.TRIGGER_DEFINITIONS = TRIGGER_DEFINITIONS
385
397
  <div class='footer quiet pad2 space-top1 center small'>
386
398
  Code coverage generated by
387
399
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
388
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
400
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
389
401
  </div>
390
402
  </div>
391
403
  <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">79.69% </span>
26
+ <span class="strong">79.1% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>51/64</span>
28
+ <span class='fraction'>53/67</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">80.56% </span>
33
+ <span class="strong">80.55% </span>
34
34
  <span class="quiet">Branches</span>
35
35
  <span class='fraction'>29/36</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">88.88% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>8/8</span>
42
+ <span class='fraction'>8/9</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">79.69% </span>
47
+ <span class="strong">79.1% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>51/64</span>
49
+ <span class='fraction'>53/67</span>
50
50
  </div>
51
51
 
52
52
 
@@ -221,7 +221,17 @@
221
221
  <a name='L162'></a><a href='#L162'>162</a>
222
222
  <a name='L163'></a><a href='#L163'>163</a>
223
223
  <a name='L164'></a><a href='#L164'>164</a>
224
- <a name='L165'></a><a href='#L165'>165</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
224
+ <a name='L165'></a><a href='#L165'>165</a>
225
+ <a name='L166'></a><a href='#L166'>166</a>
226
+ <a name='L167'></a><a href='#L167'>167</a>
227
+ <a name='L168'></a><a href='#L168'>168</a>
228
+ <a name='L169'></a><a href='#L169'>169</a>
229
+ <a name='L170'></a><a href='#L170'>170</a>
230
+ <a name='L171'></a><a href='#L171'>171</a>
231
+ <a name='L172'></a><a href='#L172'>172</a>
232
+ <a name='L173'></a><a href='#L173'>173</a>
233
+ <a name='L174'></a><a href='#L174'>174</a>
234
+ <a name='L175'></a><a href='#L175'>175</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
225
235
  <span class="cline-any cline-yes">33x</span>
226
236
  <span class="cline-any cline-yes">33x</span>
227
237
  <span class="cline-any cline-yes">33x</span>
@@ -233,6 +243,7 @@
233
243
  <span class="cline-any cline-neutral">&nbsp;</span>
234
244
  <span class="cline-any cline-yes">33x</span>
235
245
  <span class="cline-any cline-yes">33x</span>
246
+ <span class="cline-any cline-yes">33x</span>
236
247
  <span class="cline-any cline-neutral">&nbsp;</span>
237
248
  <span class="cline-any cline-yes">33x</span>
238
249
  <span class="cline-any cline-yes">10x</span>
@@ -385,7 +396,16 @@
385
396
  <span class="cline-any cline-neutral">&nbsp;</span>
386
397
  <span class="cline-any cline-yes">23x</span>
387
398
  <span class="cline-any cline-neutral">&nbsp;</span>
388
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const runner = require("./thread")
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-neutral">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-yes">33x</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { Thread, ThreadType } = require("../threads")
389
409
  const { definitions } = require("./triggerInfo")
390
410
  const webhooks = require("../api/controllers/webhook")
391
411
  const CouchDB = require("../db")
@@ -397,11 +417,12 @@ const { getDeployedAppID } = require("@budibase/auth/db")
397
417
  &nbsp;
398
418
  const WH_STEP_ID = definitions.WEBHOOK.stepId
399
419
  const CRON_STEP_ID = definitions.CRON.stepId
420
+ const Runner = new Thread(ThreadType.AUTOMATION)
400
421
  &nbsp;
401
422
  exports.processEvent = async job =&gt; {
402
423
  try {
403
424
  // need to actually await these so that an error can be captured properly
404
- return await runner(job)
425
+ return await Runner.run(job)
405
426
  } catch (err) {
406
427
  <span class="cstat-no" title="statement not covered" > console.error(</span>
407
428
  `${job.data.automation.appId} automation ${job.data.automation._id} was unable to run - ${err}`
@@ -511,7 +532,7 @@ exports.checkForWebhooks = async ({ appId, oldAuto, newAuto }) =&gt; {
511
532
  params: { id: webhook._id, rev: webhook._rev },
512
533
  }
513
534
  // might be updating - reset the inputs to remove the URLs
514
- <span class="missing-if-branch" title="else path not taken" >E</span>if (newTrigger) {
535
+ if (newTrigger) {
515
536
  delete newTrigger.webhookId
516
537
  newTrigger.inputs = {}
517
538
  }
@@ -549,6 +570,15 @@ exports.checkForWebhooks = async ({ appId, oldAuto, newAuto }) =&gt; {
549
570
  }
550
571
  return newAuto
551
572
  }
573
+ &nbsp;
574
+ /**
575
+ * When removing an app/unpublishing it need to make sure automations are cleaned up (cron).
576
+ * @param appId {string} the app that is being removed.
577
+ * @return {Promise&lt;void&gt;} clean is complete if this succeeds.
578
+ */
579
+ exports.cleanupAutomations = <span class="fstat-no" title="function not covered" >as</span>ync appId =&gt; {
580
+ <span class="cstat-no" title="statement not covered" > await exports.disableAllCrons(appId)</span>
581
+ }
552
582
  &nbsp;</pre></td></tr></table></pre>
553
583
 
554
584
  <div class='push'></div><!-- for sticky footer -->
@@ -556,7 +586,7 @@ exports.checkForWebhooks = async ({ appId, oldAuto, newAuto }) =&gt; {
556
586
  <div class='footer quiet pad2 space-top1 center small'>
557
587
  Code coverage generated by
558
588
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
559
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
589
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
560
590
  </div>
561
591
  </div>
562
592
  <script src="../prettify.js"></script>
@@ -25,7 +25,7 @@
25
25
  <div class='fl pad1y space-right2'>
26
26
  <span class="strong">100% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>28/28</span>
28
+ <span class='fraction'>29/29</span>
29
29
  </div>
30
30
 
31
31
 
@@ -46,7 +46,7 @@
46
46
  <div class='fl pad1y space-right2'>
47
47
  <span class="strong">100% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>27/27</span>
49
+ <span class='fraction'>28/28</span>
50
50
  </div>
51
51
 
52
52
 
@@ -78,13 +78,13 @@
78
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
80
  <td data-value="100" class="pct high">100%</td>
81
- <td data-value="20" class="abs high">20/20</td>
81
+ <td data-value="21" class="abs high">21/21</td>
82
82
  <td data-value="100" class="pct high">100%</td>
83
83
  <td data-value="0" class="abs high">0/0</td>
84
84
  <td data-value="100" class="pct high">100%</td>
85
85
  <td data-value="0" class="abs high">0/0</td>
86
86
  <td data-value="100" class="pct high">100%</td>
87
- <td data-value="20" class="abs high">20/20</td>
87
+ <td data-value="21" class="abs high">21/21</td>
88
88
  </tr>
89
89
 
90
90
  <tr>
@@ -125,7 +125,7 @@
125
125
  <div class='footer quiet pad2 space-top1 center small'>
126
126
  Code coverage generated by
127
127
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
128
- at Mon Nov 15 2021 14:40:16 GMT+0000 (Coordinated Universal Time)
128
+ at Mon Nov 22 2021 11:11:02 GMT+0000 (Coordinated Universal Time)
129
129
  </div>
130
130
  </div>
131
131
  <script src="../prettify.js"></script>