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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/builder/assets/{index.dc48c234.js → index.cf133375.js} +2 -2
  2. package/builder/assets/{vendor.4af73c18.js → vendor.d8e1ee7b.js} +1 -1
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +1659 -1493
  5. package/coverage/coverage-final.json +101 -87
  6. package/coverage/lcov-report/api/controllers/analytics.js.html +3 -3
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  8. package/coverage/lcov-report/api/controllers/application.js.html +39 -39
  9. package/coverage/lcov-report/api/controllers/auth.js.html +6 -6
  10. package/coverage/lcov-report/api/controllers/automation.js.html +151 -361
  11. package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
  12. package/coverage/lcov-report/api/controllers/component.js.html +5 -5
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/dev.js.html +15 -15
  15. package/coverage/lcov-report/api/controllers/hosting.js.html +8 -8
  16. package/coverage/lcov-report/api/controllers/index.html +39 -24
  17. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  18. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/metadata.js.html +218 -0
  20. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query.js.html +6 -12
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +9 -9
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +20 -20
  26. package/coverage/lcov-report/api/controllers/row/index.js.html +14 -14
  27. package/coverage/lcov-report/api/controllers/row/internal.js.html +95 -62
  28. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +10 -10
  30. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/index.js.html +24 -24
  34. package/coverage/lcov-report/api/controllers/table/utils.js.html +32 -32
  35. package/coverage/lcov-report/api/controllers/templates.js.html +5 -5
  36. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  42. package/coverage/lcov-report/api/index.html +1 -1
  43. package/coverage/lcov-report/api/index.js.html +23 -23
  44. package/coverage/lcov-report/api/routes/analytics.js.html +6 -6
  45. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  46. package/coverage/lcov-report/api/routes/application.js.html +8 -8
  47. package/coverage/lcov-report/api/routes/auth.js.html +6 -6
  48. package/coverage/lcov-report/api/routes/automation.js.html +41 -26
  49. package/coverage/lcov-report/api/routes/backup.js.html +8 -8
  50. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  51. package/coverage/lcov-report/api/routes/datasource.js.html +13 -13
  52. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  53. package/coverage/lcov-report/api/routes/dev.js.html +11 -11
  54. package/coverage/lcov-report/api/routes/hosting.js.html +8 -8
  55. package/coverage/lcov-report/api/routes/index.html +24 -9
  56. package/coverage/lcov-report/api/routes/index.js.html +36 -30
  57. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  58. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  59. package/coverage/lcov-report/api/routes/metadata.js.html +194 -0
  60. package/coverage/lcov-report/api/routes/permission.js.html +12 -12
  61. package/coverage/lcov-report/api/routes/query.js.html +13 -13
  62. package/coverage/lcov-report/api/routes/role.js.html +12 -12
  63. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  64. package/coverage/lcov-report/api/routes/row.js.html +10 -10
  65. package/coverage/lcov-report/api/routes/screen.js.html +11 -11
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/static.js.html +13 -13
  68. package/coverage/lcov-report/api/routes/table.js.html +12 -12
  69. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  70. package/coverage/lcov-report/api/routes/user.js.html +9 -9
  71. package/coverage/lcov-report/api/routes/view.js.html +11 -11
  72. package/coverage/lcov-report/api/routes/webhook.js.html +11 -11
  73. package/coverage/lcov-report/automations/actions.js.html +38 -107
  74. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  75. package/coverage/lcov-report/automations/bullboard.js.html +46 -16
  76. package/coverage/lcov-report/automations/index.html +67 -67
  77. package/coverage/lcov-report/automations/index.js.html +26 -128
  78. package/coverage/lcov-report/automations/steps/bash.js.html +33 -12
  79. package/coverage/lcov-report/automations/steps/createRow.js.html +8 -8
  80. package/coverage/lcov-report/automations/steps/delay.js.html +45 -6
  81. package/coverage/lcov-report/automations/steps/deleteRow.js.html +8 -8
  82. package/coverage/lcov-report/automations/steps/discord.js.html +329 -0
  83. package/coverage/lcov-report/automations/steps/executeQuery.js.html +19 -31
  84. package/coverage/lcov-report/automations/steps/executeScript.js.html +18 -30
  85. package/coverage/lcov-report/automations/steps/filter.js.html +22 -19
  86. package/coverage/lcov-report/automations/steps/index.html +125 -65
  87. package/coverage/lcov-report/automations/steps/integromat.js.html +341 -0
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +26 -32
  89. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +9 -9
  90. package/coverage/lcov-report/automations/steps/serverLog.js.html +20 -8
  91. package/coverage/lcov-report/automations/steps/{sendgridEmail.js.html → slack.js.html} +57 -87
  92. package/coverage/lcov-report/automations/steps/updateRow.js.html +7 -7
  93. package/coverage/lcov-report/automations/steps/utils.js.html +188 -0
  94. package/coverage/lcov-report/automations/steps/zapier.js.html +332 -0
  95. package/coverage/lcov-report/automations/thread.js.html +79 -76
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +173 -0
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +173 -0
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +201 -0
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +125 -0
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +176 -0
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +200 -0
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +200 -0
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +188 -0
  104. package/coverage/lcov-report/automations/triggers.js.html +54 -819
  105. package/coverage/lcov-report/automations/utils.js.html +557 -0
  106. package/coverage/lcov-report/constants/index.html +5 -5
  107. package/coverage/lcov-report/constants/index.js.html +19 -4
  108. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  109. package/coverage/lcov-report/constants/screens.js.html +2 -2
  110. package/coverage/lcov-report/db/client.js.html +1 -1
  111. package/coverage/lcov-report/db/index.html +19 -19
  112. package/coverage/lcov-report/db/index.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +73 -73
  114. package/coverage/lcov-report/db/linkedRows/index.html +17 -17
  115. package/coverage/lcov-report/db/linkedRows/index.js.html +79 -115
  116. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +31 -31
  117. package/coverage/lcov-report/db/newid.js.html +2 -2
  118. package/coverage/lcov-report/db/utils.js.html +79 -28
  119. package/coverage/lcov-report/events/AutomationEmitter.js.html +7 -7
  120. package/coverage/lcov-report/events/index.html +1 -1
  121. package/coverage/lcov-report/events/index.js.html +2 -2
  122. package/coverage/lcov-report/events/utils.js.html +1 -1
  123. package/coverage/lcov-report/index.html +115 -100
  124. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  125. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  126. package/coverage/lcov-report/{automations/logic.js.html → middleware/appInfo.js.html} +35 -38
  127. package/coverage/lcov-report/middleware/authorized.js.html +16 -16
  128. package/coverage/lcov-report/middleware/builder.js.html +15 -15
  129. package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
  130. package/coverage/lcov-report/middleware/index.html +23 -8
  131. package/coverage/lcov-report/middleware/joi-validator.js.html +6 -6
  132. package/coverage/lcov-report/middleware/resourceId.js.html +28 -28
  133. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  134. package/coverage/lcov-report/middleware/usageQuota.js.html +8 -8
  135. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  136. package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
  137. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  138. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  139. package/coverage/lcov-report/utilities/global.js.html +21 -21
  140. package/coverage/lcov-report/utilities/index.html +18 -18
  141. package/coverage/lcov-report/utilities/index.js.html +167 -14
  142. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +12 -12
  143. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  144. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  145. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  146. package/coverage/lcov-report/utilities/rowProcessor/index.html +14 -14
  147. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +87 -51
  148. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +8 -8
  149. package/coverage/lcov-report/utilities/security.js.html +2 -2
  150. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  151. package/coverage/lcov-report/utilities/users.js.html +1 -1
  152. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  153. package/coverage/lcov.info +2641 -2357
  154. package/dist/api/controllers/automation.js +49 -127
  155. package/dist/api/controllers/deploy/index.js +17 -1
  156. package/dist/api/controllers/metadata.js +49 -0
  157. package/dist/api/controllers/query.js +0 -2
  158. package/dist/api/controllers/row/internal.js +33 -23
  159. package/dist/api/routes/automation.js +4 -5
  160. package/dist/api/routes/index.js +2 -0
  161. package/dist/api/routes/metadata.js +13 -0
  162. package/dist/api/routes/tests/utilities/TestFunctions.js +13 -0
  163. package/dist/app.js +1 -1
  164. package/dist/automations/actions.js +26 -46
  165. package/dist/automations/bullboard.js +10 -2
  166. package/dist/automations/index.js +11 -48
  167. package/dist/automations/steps/bash.js +11 -5
  168. package/dist/automations/steps/createRow.js +4 -4
  169. package/dist/automations/steps/delay.js +15 -2
  170. package/dist/automations/steps/deleteRow.js +4 -4
  171. package/dist/automations/steps/discord.js +91 -0
  172. package/dist/automations/steps/executeQuery.js +11 -14
  173. package/dist/automations/steps/executeScript.js +11 -14
  174. package/dist/automations/steps/filter.js +18 -17
  175. package/dist/automations/steps/integromat.js +94 -0
  176. package/dist/automations/steps/outgoingWebhook.js +12 -16
  177. package/dist/automations/steps/sendSmtpEmail.js +3 -3
  178. package/dist/automations/steps/serverLog.js +6 -2
  179. package/dist/automations/steps/slack.js +73 -0
  180. package/dist/automations/steps/updateRow.js +3 -3
  181. package/dist/automations/steps/utils.js +46 -0
  182. package/dist/automations/steps/zapier.js +91 -0
  183. package/dist/automations/tests/utilities/index.js +2 -12
  184. package/dist/automations/thread.js +23 -25
  185. package/dist/automations/triggerInfo/app.js +32 -0
  186. package/dist/automations/triggerInfo/cron.js +32 -0
  187. package/dist/automations/triggerInfo/index.js +15 -0
  188. package/dist/automations/triggerInfo/rowDeleted.js +33 -0
  189. package/dist/automations/triggerInfo/rowSaved.js +41 -0
  190. package/dist/automations/triggerInfo/rowUpdated.js +41 -0
  191. package/dist/automations/triggerInfo/webhook.js +37 -0
  192. package/dist/automations/triggers.js +27 -284
  193. package/dist/automations/utils.js +143 -0
  194. package/dist/constants/index.js +4 -0
  195. package/dist/db/linkedRows/index.js +14 -26
  196. package/dist/db/utils.js +14 -1
  197. package/dist/environment.js +1 -0
  198. package/dist/integrations/mysql.js +1 -1
  199. package/dist/middleware/appInfo.js +17 -0
  200. package/dist/middleware/usageQuota.js +1 -1
  201. package/dist/package.json +7 -6
  202. package/dist/tsconfig.tsbuildinfo +1 -1
  203. package/dist/utilities/fileSystem/index.js +0 -26
  204. package/dist/utilities/index.js +54 -0
  205. package/dist/utilities/redis.js +16 -1
  206. package/dist/utilities/rowProcessor/index.js +7 -4
  207. package/package.json +8 -7
  208. package/scripts/selfhost.js +8 -0
  209. package/src/api/controllers/automation.js +75 -145
  210. package/src/api/controllers/deploy/index.js +23 -1
  211. package/src/api/controllers/metadata.js +46 -0
  212. package/src/api/controllers/query.js +0 -2
  213. package/src/api/controllers/row/internal.js +34 -23
  214. package/src/api/routes/automation.js +16 -11
  215. package/src/api/routes/index.js +2 -0
  216. package/src/api/routes/metadata.js +38 -0
  217. package/src/api/routes/tests/automation.spec.js +4 -26
  218. package/src/api/routes/tests/metadata.spec.js +65 -0
  219. package/src/api/routes/tests/utilities/TestFunctions.js +14 -0
  220. package/src/app.ts +1 -1
  221. package/src/automations/actions.js +26 -49
  222. package/src/automations/bullboard.js +12 -2
  223. package/src/automations/index.js +11 -45
  224. package/src/automations/steps/bash.js +12 -5
  225. package/src/automations/steps/createRow.js +4 -4
  226. package/src/automations/steps/delay.js +15 -2
  227. package/src/automations/steps/deleteRow.js +4 -4
  228. package/src/automations/steps/discord.js +83 -0
  229. package/src/automations/steps/executeQuery.js +11 -15
  230. package/src/automations/steps/executeScript.js +11 -15
  231. package/src/automations/steps/filter.js +18 -17
  232. package/src/automations/steps/integromat.js +87 -0
  233. package/src/automations/steps/outgoingWebhook.js +12 -14
  234. package/src/automations/steps/sendSmtpEmail.js +3 -3
  235. package/src/automations/steps/serverLog.js +6 -2
  236. package/src/automations/steps/slack.js +64 -0
  237. package/src/automations/steps/updateRow.js +3 -3
  238. package/src/automations/steps/utils.js +36 -0
  239. package/src/automations/steps/zapier.js +84 -0
  240. package/src/automations/tests/automation.spec.js +3 -66
  241. package/src/automations/tests/delay.spec.js +1 -1
  242. package/src/automations/tests/filter.spec.js +13 -13
  243. package/src/automations/tests/utilities/index.js +2 -13
  244. package/src/automations/thread.js +27 -26
  245. package/src/automations/triggerInfo/app.js +31 -0
  246. package/src/automations/triggerInfo/cron.js +31 -0
  247. package/src/automations/triggerInfo/index.js +15 -0
  248. package/src/automations/triggerInfo/rowDeleted.js +32 -0
  249. package/src/automations/triggerInfo/rowSaved.js +40 -0
  250. package/src/automations/triggerInfo/rowUpdated.js +40 -0
  251. package/src/automations/triggerInfo/webhook.js +36 -0
  252. package/src/automations/triggers.js +33 -288
  253. package/src/automations/utils.js +159 -0
  254. package/src/constants/index.js +5 -0
  255. package/src/db/linkedRows/index.js +15 -27
  256. package/src/db/tests/linkTests.spec.js +0 -12
  257. package/src/db/utils.js +17 -0
  258. package/src/environment.js +1 -0
  259. package/src/integrations/mysql.ts +1 -1
  260. package/src/middleware/appInfo.js +19 -0
  261. package/src/middleware/usageQuota.js +1 -1
  262. package/src/utilities/fileSystem/index.js +0 -30
  263. package/src/utilities/index.js +51 -0
  264. package/src/utilities/redis.js +18 -1
  265. package/src/utilities/rowProcessor/index.js +16 -4
  266. package/dist/automations/logic.js +0 -17
  267. package/dist/automations/steps/sendgridEmail.js +0 -85
  268. package/src/automations/logic.js +0 -20
  269. package/src/automations/steps/sendgridEmail.js +0 -74
  270. package/src/automations/tests/sendEmail.spec.js +0 -36
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">27.27% </span>
26
+ <span class="strong">30% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>3/11</span>
28
+ <span class='fraction'>3/10</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">27.27% </span>
47
+ <span class="strong">30% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>3/11</span>
49
+ <span class='fraction'>3/10</span>
50
50
  </div>
51
51
 
52
52
 
@@ -172,6 +172,7 @@
172
172
  <span class="cline-any cline-neutral">&nbsp;</span>
173
173
  <span class="cline-any cline-neutral">&nbsp;</span>
174
174
  <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
176
  <span class="cline-any cline-yes">33x</span>
176
177
  <span class="cline-any cline-no">&nbsp;</span>
177
178
  <span class="cline-any cline-no">&nbsp;</span>
@@ -185,7 +186,6 @@
185
186
  <span class="cline-any cline-neutral">&nbsp;</span>
186
187
  <span class="cline-any cline-neutral">&nbsp;</span>
187
188
  <span class="cline-any cline-no">&nbsp;</span>
188
- <span class="cline-any cline-no">&nbsp;</span>
189
189
  <span class="cline-any cline-neutral">&nbsp;</span>
190
190
  <span class="cline-any cline-neutral">&nbsp;</span>
191
191
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -193,12 +193,13 @@
193
193
  <span class="cline-any cline-neutral">&nbsp;</span>
194
194
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { sendSmtpEmail } = require("../../utilities/workerRequests")
195
195
  &nbsp;
196
- module.exports.definition = {
196
+ exports.definition = {
197
197
  description: "Send an email using SMTP",
198
198
  tagline: "Send SMTP email to {{inputs.to}}",
199
199
  icon: "ri-mail-open-line",
200
200
  name: "Send Email (SMTP)",
201
201
  type: "ACTION",
202
+ internal: true,
202
203
  stepId: "SEND_EMAIL_SMTP",
203
204
  inputs: {},
204
205
  schema: {
@@ -239,7 +240,7 @@ module.exports.definition = {
239
240
  },
240
241
  }
241
242
  &nbsp;
242
- module.exports.run = <span class="fstat-no" title="function not covered" >as</span>ync function ({ inputs }) {
243
+ exports.run = <span class="fstat-no" title="function not covered" >as</span>ync function ({ inputs }) {
243
244
  let { to, from, subject, contents } = <span class="cstat-no" title="statement not covered" >inputs</span>
244
245
  <span class="cstat-no" title="statement not covered" > if (!contents) {</span>
245
246
  <span class="cstat-no" title="statement not covered" > contents = "&lt;h1&gt;No content&lt;/h1&gt;"</span>
@@ -251,7 +252,6 @@ module.exports.run = <span class="fstat-no" title="function not covered" >as</sp
251
252
  response,
252
253
  }
253
254
  } catch (err) {
254
- <span class="cstat-no" title="statement not covered" > console.error(err)</span>
255
255
  <span class="cstat-no" title="statement not covered" > return {</span>
256
256
  success: false,
257
257
  response: err,
@@ -265,7 +265,7 @@ module.exports.run = <span class="fstat-no" title="function not covered" >as</sp
265
265
  <div class='footer quiet pad2 space-top1 center small'>
266
266
  Code coverage generated by
267
267
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
268
- at Tue Sep 14 2021 10:25:14 GMT+0000 (Coordinated Universal Time)
268
+ at Wed Sep 15 2021 15:55:32 GMT+0000 (Coordinated Universal Time)
269
269
  </div>
270
270
  </div>
271
271
  <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">66.67% </span>
26
+ <span class="strong">50% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>2/3</span>
28
+ <span class='fraction'>2/4</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">66.67% </span>
47
+ <span class="strong">50% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>2/3</span>
49
+ <span class='fraction'>2/4</span>
50
50
  </div>
51
51
 
52
52
 
@@ -98,7 +98,11 @@
98
98
  <a name='L39'></a><a href='#L39'>39</a>
99
99
  <a name='L40'></a><a href='#L40'>40</a>
100
100
  <a name='L41'></a><a href='#L41'>41</a>
101
- <a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
101
+ <a name='L42'></a><a href='#L42'>42</a>
102
+ <a name='L43'></a><a href='#L43'>43</a>
103
+ <a name='L44'></a><a href='#L44'>44</a>
104
+ <a name='L45'></a><a href='#L45'>45</a>
105
+ <a name='L46'></a><a href='#L46'>46</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
102
106
  <span class="cline-any cline-neutral">&nbsp;</span>
103
107
  <span class="cline-any cline-neutral">&nbsp;</span>
104
108
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -136,8 +140,12 @@
136
140
  <span class="cline-any cline-neutral">&nbsp;</span>
137
141
  <span class="cline-any cline-neutral">&nbsp;</span>
138
142
  <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
139
144
  <span class="cline-any cline-yes">33x</span>
140
145
  <span class="cline-any cline-no">&nbsp;</span>
146
+ <span class="cline-any cline-no">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
149
  <span class="cline-any cline-neutral">&nbsp;</span>
142
150
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/**
143
151
  * Note, there is some functionality in this that is not currently exposed as it
@@ -145,12 +153,13 @@
145
153
  * GET/DELETE requests cannot handle body elements so they will not be sent if configured.
146
154
  */
147
155
  &nbsp;
148
- module.exports.definition = {
156
+ exports.definition = {
149
157
  name: "Backend log",
150
158
  tagline: "Console log a value in the backend",
151
159
  icon: "ri-server-line",
152
160
  description: "Logs the given text to the server (using console.log)",
153
161
  type: "ACTION",
162
+ internal: true,
154
163
  stepId: "SERVER_LOG",
155
164
  inputs: {
156
165
  text: "",
@@ -177,8 +186,11 @@ module.exports.definition = {
177
186
  },
178
187
  }
179
188
  &nbsp;
180
- module.exports.run = <span class="fstat-no" title="function not covered" >as</span>ync function ({ inputs, appId }) {
189
+ exports.run = <span class="fstat-no" title="function not covered" >as</span>ync function ({ inputs, appId }) {
181
190
  <span class="cstat-no" title="statement not covered" > console.log(`App ${appId} - ${inputs.text}`)</span>
191
+ <span class="cstat-no" title="statement not covered" > return {</span>
192
+ success: true,
193
+ }
182
194
  }
183
195
  &nbsp;</pre></td></tr></table></pre>
184
196
 
@@ -187,7 +199,7 @@ module.exports.run = <span class="fstat-no" title="function not covered" >as</sp
187
199
  <div class='footer quiet pad2 space-top1 center small'>
188
200
  Code coverage generated by
189
201
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
190
- at Tue Sep 14 2021 10:25:14 GMT+0000 (Coordinated Universal Time)
202
+ at Wed Sep 15 2021 15:55:32 GMT+0000 (Coordinated Universal Time)
191
203
  </div>
192
204
  </div>
193
205
  <script src="../../prettify.js"></script>
@@ -3,7 +3,7 @@
3
3
  <html lang="en">
4
4
 
5
5
  <head>
6
- <title>Code coverage report for automations/steps/sendgridEmail.js</title>
6
+ <title>Code coverage report for automations/steps/slack.js</title>
7
7
  <meta charset="utf-8" />
8
8
  <link rel="stylesheet" href="../../prettify.css" />
9
9
  <link rel="stylesheet" href="../../base.css" />
@@ -19,34 +19,34 @@
19
19
  <body>
20
20
  <div class='wrapper'>
21
21
  <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">automations/steps</a> sendgridEmail.js</h1>
22
+ <h1><a href="../../index.html">All files</a> / <a href="index.html">automations/steps</a> slack.js</h1>
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">50% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>10/10</span>
28
+ <span class='fraction'>4/8</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">50% </span>
33
+ <span class="strong">100% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1/2</span>
35
+ <span class='fraction'>0/0</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">50% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>10/10</span>
49
+ <span class='fraction'>4/8</span>
50
50
  </div>
51
51
 
52
52
 
@@ -55,7 +55,7 @@
55
55
  Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
56
  </p>
57
57
  </div>
58
- <div class='status-line high'></div>
58
+ <div class='status-line medium'></div>
59
59
  <pre><table class="coverage">
60
60
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
61
61
  <a name='L2'></a><a href='#L2'>2</a>
@@ -121,25 +121,10 @@
121
121
  <a name='L62'></a><a href='#L62'>62</a>
122
122
  <a name='L63'></a><a href='#L63'>63</a>
123
123
  <a name='L64'></a><a href='#L64'>64</a>
124
- <a name='L65'></a><a href='#L65'>65</a>
125
- <a name='L66'></a><a href='#L66'>66</a>
126
- <a name='L67'></a><a href='#L67'>67</a>
127
- <a name='L68'></a><a href='#L68'>68</a>
128
- <a name='L69'></a><a href='#L69'>69</a>
129
- <a name='L70'></a><a href='#L70'>70</a>
130
- <a name='L71'></a><a href='#L71'>71</a>
131
- <a name='L72'></a><a href='#L72'>72</a>
132
- <a name='L73'></a><a href='#L73'>73</a>
133
- <a name='L74'></a><a href='#L74'>74</a>
134
- <a name='L75'></a><a href='#L75'>75</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
135
- <span class="cline-any cline-neutral">&nbsp;</span>
136
- <span class="cline-any cline-neutral">&nbsp;</span>
137
- <span class="cline-any cline-neutral">&nbsp;</span>
138
- <span class="cline-any cline-neutral">&nbsp;</span>
139
- <span class="cline-any cline-neutral">&nbsp;</span>
140
- <span class="cline-any cline-neutral">&nbsp;</span>
141
- <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <a name='L65'></a><a href='#L65'>65</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
125
+ <span class="cline-any cline-yes">33x</span>
142
126
  <span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-yes">33x</span>
143
128
  <span class="cline-any cline-neutral">&nbsp;</span>
144
129
  <span class="cline-any cline-neutral">&nbsp;</span>
145
130
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -182,101 +167,86 @@
182
167
  <span class="cline-any cline-neutral">&nbsp;</span>
183
168
  <span class="cline-any cline-neutral">&nbsp;</span>
184
169
  <span class="cline-any cline-yes">33x</span>
185
- <span class="cline-any cline-yes">2x</span>
186
- <span class="cline-any cline-yes">2x</span>
187
- <span class="cline-any cline-yes">2x</span>
170
+ <span class="cline-any cline-no">&nbsp;</span>
171
+ <span class="cline-any cline-no">&nbsp;</span>
188
172
  <span class="cline-any cline-neutral">&nbsp;</span>
189
173
  <span class="cline-any cline-neutral">&nbsp;</span>
190
174
  <span class="cline-any cline-neutral">&nbsp;</span>
191
175
  <span class="cline-any cline-neutral">&nbsp;</span>
192
176
  <span class="cline-any cline-neutral">&nbsp;</span>
193
177
  <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-yes">2x</span>
195
- <span class="cline-any cline-yes">2x</span>
196
- <span class="cline-any cline-yes">1x</span>
197
178
  <span class="cline-any cline-neutral">&nbsp;</span>
198
179
  <span class="cline-any cline-neutral">&nbsp;</span>
199
180
  <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-no">&nbsp;</span>
182
+ <span class="cline-any cline-no">&nbsp;</span>
200
183
  <span class="cline-any cline-neutral">&nbsp;</span>
201
- <span class="cline-any cline-yes">1x</span>
202
- <span class="cline-any cline-yes">1x</span>
203
184
  <span class="cline-any cline-neutral">&nbsp;</span>
204
185
  <span class="cline-any cline-neutral">&nbsp;</span>
205
186
  <span class="cline-any cline-neutral">&nbsp;</span>
206
187
  <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">module.exports.definition = {
209
- description: "Send an email using SendGrid",
210
- tagline: "Send email to {{inputs.to}}",
211
- icon: "ri-mail-open-line",
212
- name: "Send Email (SendGrid)",
188
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const fetch = require("node-fetch")
189
+ const { getFetchResponse } = require("./utils")
190
+ &nbsp;
191
+ exports.definition = {
192
+ name: "Slack Message",
193
+ tagline: "Send a message to Slack",
194
+ description: "Send a message to Slack",
195
+ icon: "ri-slack-line",
196
+ stepId: "slack",
213
197
  type: "ACTION",
214
- stepId: "SEND_EMAIL",
198
+ internal: false,
215
199
  inputs: {},
216
200
  schema: {
217
201
  inputs: {
218
202
  properties: {
219
- apiKey: {
220
- type: "string",
221
- title: "SendGrid API key",
222
- },
223
- to: {
224
- type: "string",
225
- title: "Send To",
226
- },
227
- from: {
228
- type: "string",
229
- title: "Send From",
230
- },
231
- subject: {
203
+ url: {
232
204
  type: "string",
233
- title: "Email Subject",
205
+ title: "Incoming Webhook URL",
234
206
  },
235
- contents: {
207
+ text: {
236
208
  type: "string",
237
- title: "Email Contents",
209
+ title: "Message",
238
210
  },
239
211
  },
240
- required: ["to", "from", "subject", "contents"],
212
+ required: ["url", "text"],
241
213
  },
242
214
  outputs: {
243
215
  properties: {
216
+ httpStatus: {
217
+ type: "number",
218
+ description: "The HTTP status code of the request",
219
+ },
244
220
  success: {
245
221
  type: "boolean",
246
- description: "Whether the email was sent",
222
+ description: "Whether the message sent successfully",
247
223
  },
248
224
  response: {
249
- type: "object",
250
- description: "A response from the email client, this may be an error",
225
+ type: "string",
226
+ description: "The response from the Slack Webhook",
251
227
  },
252
228
  },
253
- required: ["success"],
254
229
  },
255
230
  },
256
231
  }
257
232
  &nbsp;
258
- module.exports.run = async function ({ inputs }) {
259
- const sgMail = require("@sendgrid/mail")
260
- sgMail.setApiKey(inputs.apiKey)
261
- const msg = {
262
- to: inputs.to,
263
- from: inputs.from,
264
- subject: inputs.subject,
265
- text: inputs.contents ? <span class="branch-0 cbranch-no" title="branch not covered" >inputs.contents </span>: "Empty",
266
- }
233
+ exports.run = <span class="fstat-no" title="function not covered" >as</span>ync function ({ inputs }) {
234
+ let { url, text } = <span class="cstat-no" title="statement not covered" >inputs</span>
235
+ const response = <span class="cstat-no" title="statement not covered" >await fetch(url, {</span>
236
+ method: "post",
237
+ body: JSON.stringify({
238
+ text,
239
+ }),
240
+ headers: {
241
+ "Content-Type": "application/json",
242
+ },
243
+ })
267
244
  &nbsp;
268
- try {
269
- let response = await sgMail.send(msg)
270
- return {
271
- success: true,
272
- response,
273
- }
274
- } catch (err) {
275
- console.error(err)
276
- return {
277
- success: false,
278
- response: err,
279
- }
245
+ const { status, message } = <span class="cstat-no" title="statement not covered" >await getFetchResponse(response)</span>
246
+ <span class="cstat-no" title="statement not covered" > return {</span>
247
+ httpStatus: status,
248
+ response: message,
249
+ success: status === 200,
280
250
  }
281
251
  }
282
252
  &nbsp;</pre></td></tr></table></pre>
@@ -286,7 +256,7 @@ module.exports.run = async function ({ inputs }) {
286
256
  <div class='footer quiet pad2 space-top1 center small'>
287
257
  Code coverage generated by
288
258
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
289
- at Tue Sep 14 2021 10:25:14 GMT+0000 (Coordinated Universal Time)
259
+ at Wed Sep 15 2021 15:55:32 GMT+0000 (Coordinated Universal Time)
290
260
  </div>
291
261
  </div>
292
262
  <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'>16/16</span>
28
+ <span class='fraction'>15/15</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'>16/16</span>
49
+ <span class='fraction'>15/15</span>
50
50
  </div>
51
51
 
52
52
 
@@ -221,6 +221,7 @@
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
222
  <span class="cline-any cline-neutral">&nbsp;</span>
223
223
  <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
225
  <span class="cline-any cline-yes">33x</span>
225
226
  <span class="cline-any cline-yes">3x</span>
226
227
  <span class="cline-any cline-yes">1x</span>
@@ -269,7 +270,6 @@
269
270
  <span class="cline-any cline-neutral">&nbsp;</span>
270
271
  <span class="cline-any cline-neutral">&nbsp;</span>
271
272
  <span class="cline-any cline-yes">1x</span>
272
- <span class="cline-any cline-yes">1x</span>
273
273
  <span class="cline-any cline-neutral">&nbsp;</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
275
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -278,12 +278,13 @@
278
278
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const rowController = require("../../api/controllers/row")
279
279
  const automationUtils = require("../automationUtils")
280
280
  &nbsp;
281
- module.exports.definition = {
281
+ exports.definition = {
282
282
  name: "Update Row",
283
283
  tagline: "Update a {{inputs.enriched.table.name}} row",
284
284
  icon: "ri-refresh-line",
285
285
  description: "Update a row in your database",
286
286
  type: "ACTION",
287
+ internal: true,
287
288
  stepId: "UPDATE_ROW",
288
289
  inputs: {},
289
290
  schema: {
@@ -330,7 +331,7 @@ module.exports.definition = {
330
331
  },
331
332
  }
332
333
  &nbsp;
333
- module.exports.run = async function ({ inputs, appId, emitter }) {
334
+ exports.run = async function ({ inputs, appId, emitter }) {
334
335
  if (inputs.rowId == null || inputs.row == null) {
335
336
  return {
336
337
  success: false,
@@ -377,7 +378,6 @@ module.exports.run = async function ({ inputs, appId, emitter }) {
377
378
  success: ctx.status === 200,
378
379
  }
379
380
  } catch (err) {
380
- console.error(err)
381
381
  return {
382
382
  success: false,
383
383
  response: err,
@@ -391,7 +391,7 @@ module.exports.run = async function ({ inputs, appId, emitter }) {
391
391
  <div class='footer quiet pad2 space-top1 center small'>
392
392
  Code coverage generated by
393
393
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
394
- at Tue Sep 14 2021 10:25:14 GMT+0000 (Coordinated Universal Time)
394
+ at Wed Sep 15 2021 15:55:32 GMT+0000 (Coordinated Universal Time)
395
395
  </div>
396
396
  </div>
397
397
  <script src="../../prettify.js"></script>