@budibase/server 2.0.39 → 2.0.40

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 (295) hide show
  1. package/__mocks__/mongodb.ts +1 -1
  2. package/__mocks__/node-fetch.ts +12 -2
  3. package/builder/assets/backups-default.8c011f1b.png +0 -0
  4. package/builder/assets/{index.e0ddd30b.css → index.442de33f.css} +2 -2
  5. package/builder/assets/{index.b20dee52.js → index.72aa3989.js} +340 -332
  6. package/builder/index.html +2 -2
  7. package/coverage/clover.xml +1125 -1250
  8. package/coverage/coverage-final.json +73 -77
  9. package/coverage/lcov-report/api/controllers/apikeys.js.html +6 -6
  10. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +79 -67
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +21 -21
  14. package/coverage/lcov-report/api/controllers/index.html +17 -47
  15. package/coverage/lcov-report/api/controllers/integration.js.html +4 -4
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +9 -9
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +4 -4
  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 +4 -4
  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 +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +13 -13
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +15 -15
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +13 -13
  30. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +12 -9
  32. package/coverage/lcov-report/api/controllers/table/external.js.html +10 -10
  33. package/coverage/lcov-report/api/controllers/table/index.html +16 -16
  34. package/coverage/lcov-report/api/controllers/table/index.js.html +5 -5
  35. package/coverage/lcov-report/api/controllers/templates.js.html +6 -6
  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 +3 -3
  40. package/coverage/lcov-report/api/controllers/view/utils.js.html +13 -13
  41. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +8 -8
  42. package/coverage/lcov-report/api/index.html +1 -1
  43. package/coverage/lcov-report/api/index.js.html +30 -30
  44. package/coverage/lcov-report/api/routes/analytics.js.html +7 -7
  45. package/coverage/lcov-report/api/routes/apikeys.js.html +8 -8
  46. package/coverage/lcov-report/api/routes/automation.js.html +11 -11
  47. package/coverage/lcov-report/api/routes/cloud.js.html +8 -8
  48. package/coverage/lcov-report/api/routes/component.js.html +8 -8
  49. package/coverage/lcov-report/api/routes/datasource.js.html +9 -9
  50. package/coverage/lcov-report/api/routes/deploy.js.html +8 -8
  51. package/coverage/lcov-report/api/routes/dev.js.html +13 -13
  52. package/coverage/lcov-report/api/routes/index.html +5 -35
  53. package/coverage/lcov-report/api/routes/integration.js.html +8 -8
  54. package/coverage/lcov-report/api/routes/layout.js.html +8 -8
  55. package/coverage/lcov-report/api/routes/metadata.js.html +9 -9
  56. package/coverage/lcov-report/api/routes/migrations.js.html +7 -7
  57. package/coverage/lcov-report/api/routes/permission.js.html +9 -9
  58. package/coverage/lcov-report/api/routes/query.js.html +10 -10
  59. package/coverage/lcov-report/api/routes/role.js.html +9 -9
  60. package/coverage/lcov-report/api/routes/routing.js.html +8 -8
  61. package/coverage/lcov-report/api/routes/screen.js.html +9 -9
  62. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/table.js.html +10 -10
  64. package/coverage/lcov-report/api/routes/templates.js.html +8 -8
  65. package/coverage/lcov-report/api/routes/user.js.html +8 -8
  66. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  67. package/coverage/lcov-report/api/routes/utils/validators.js.html +45 -45
  68. package/coverage/lcov-report/api/routes/view.js.html +10 -10
  69. package/coverage/lcov-report/automations/actions.js.html +1 -1
  70. package/coverage/lcov-report/automations/automationUtils.js.html +6 -6
  71. package/coverage/lcov-report/automations/bullboard.js.html +24 -84
  72. package/coverage/lcov-report/automations/index.html +21 -21
  73. package/coverage/lcov-report/automations/index.js.html +9 -9
  74. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  75. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  76. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  77. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  78. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/index.html +15 -15
  81. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/updateRow.js.html +3 -3
  89. package/coverage/lcov-report/automations/steps/utils.js.html +10 -10
  90. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  91. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  92. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  93. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  94. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  95. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggers.js.html +49 -49
  100. package/coverage/lcov-report/constants/index.html +5 -5
  101. package/coverage/lcov-report/constants/index.js.html +10 -28
  102. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  103. package/coverage/lcov-report/constants/screens.js.html +1 -1
  104. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  105. package/coverage/lcov-report/db/index.html +19 -19
  106. package/coverage/lcov-report/db/index.js.html +1 -1
  107. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +17 -17
  108. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  109. package/coverage/lcov-report/db/linkedRows/index.js.html +28 -28
  110. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +15 -15
  111. package/coverage/lcov-report/db/newid.js.html +2 -2
  112. package/coverage/lcov-report/db/utils.js.html +37 -316
  113. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  114. package/coverage/lcov-report/events/index.html +1 -1
  115. package/coverage/lcov-report/events/index.js.html +3 -3
  116. package/coverage/lcov-report/events/utils.js.html +9 -9
  117. package/coverage/lcov-report/index.html +88 -88
  118. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  119. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  120. package/coverage/lcov-report/middleware/appInfo.js.html +5 -5
  121. package/coverage/lcov-report/middleware/builder.js.html +19 -19
  122. package/coverage/lcov-report/middleware/currentapp.js.html +49 -49
  123. package/coverage/lcov-report/middleware/index.html +1 -1
  124. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  125. package/coverage/lcov-report/middleware/publicApi.js.html +5 -5
  126. package/coverage/lcov-report/middleware/resourceId.js.html +28 -28
  127. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  128. package/coverage/lcov-report/middleware/utils.js.html +4 -4
  129. package/coverage/lcov-report/utilities/budibaseDir.js.html +3 -3
  130. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  131. package/coverage/lcov-report/utilities/csvParser.js.html +15 -12
  132. package/coverage/lcov-report/utilities/global.js.html +31 -31
  133. package/coverage/lcov-report/utilities/index.html +28 -28
  134. package/coverage/lcov-report/utilities/index.js.html +8 -8
  135. package/coverage/lcov-report/utilities/plugins.js.html +1 -1
  136. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +52 -52
  137. package/coverage/lcov-report/utilities/queue/index.html +21 -21
  138. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  139. package/coverage/lcov-report/utilities/routing/index.js.html +6 -6
  140. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  141. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +72 -57
  142. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +15 -15
  143. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  144. package/coverage/lcov-report/utilities/security.js.html +2 -2
  145. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  146. package/coverage/lcov-report/utilities/usageQuota/index.html +14 -14
  147. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +23 -11
  148. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  149. package/coverage/lcov-report/utilities/users.js.html +1 -1
  150. package/coverage/lcov-report/utilities/workerRequests.js.html +46 -46
  151. package/coverage/lcov.info +1691 -1899
  152. package/dist/api/controllers/application.js +4 -7
  153. package/dist/api/controllers/backup.js +19 -13
  154. package/dist/api/controllers/cloud.js +38 -35
  155. package/dist/api/controllers/deploy/index.js +11 -2
  156. package/dist/api/controllers/dev.js +1 -1
  157. package/dist/api/controllers/query/index.js +7 -2
  158. package/dist/api/controllers/row/index.js +40 -66
  159. package/dist/api/controllers/row/internal.js +1 -1
  160. package/dist/api/controllers/static/index.js +3 -2
  161. package/dist/api/controllers/static/templates/BudibaseApp.svelte +11 -0
  162. package/dist/api/controllers/static/templates/preview.hbs +10 -0
  163. package/dist/api/controllers/table/bulkFormula.js +4 -3
  164. package/dist/api/controllers/table/external.js +5 -4
  165. package/dist/api/controllers/table/index.js +4 -4
  166. package/dist/api/controllers/table/internal.js +10 -3
  167. package/dist/api/controllers/table/utils.js +7 -49
  168. package/dist/api/controllers/view/index.js +2 -2
  169. package/dist/api/controllers/webhook.js +88 -89
  170. package/dist/api/routes/backup.js +34 -7
  171. package/dist/api/routes/index.js +9 -4
  172. package/dist/api/routes/utils/validators.js +2 -2
  173. package/dist/api/routes/webhook.js +39 -11
  174. package/dist/app.js +2 -68
  175. package/dist/automations/automationUtils.js +2 -2
  176. package/dist/automations/bullboard.js +12 -35
  177. package/dist/automations/index.js +4 -4
  178. package/dist/automations/steps/updateRow.js +2 -2
  179. package/dist/automations/triggers.js +6 -6
  180. package/dist/automations/utils.js +23 -49
  181. package/dist/constants/index.js +4 -8
  182. package/dist/db/utils.js +10 -75
  183. package/dist/index.js +1 -0
  184. package/dist/integrations/arangodb.js +2 -0
  185. package/dist/integrations/base/sqlTable.js +1 -0
  186. package/dist/integrations/mongodb.js +300 -11
  187. package/dist/integrations/rest.js +38 -5
  188. package/dist/migrations/functions/backfill/app/tables.js +5 -8
  189. package/dist/migrations/functions/{quotas1.js → syncQuotas.js} +3 -7
  190. package/dist/migrations/functions/usageQuotas/syncApps.js +0 -1
  191. package/dist/migrations/functions/{pluginCount.js → usageQuotas/syncPlugins.js} +1 -3
  192. package/dist/migrations/functions/usageQuotas/syncRows.js +9 -5
  193. package/dist/migrations/index.js +10 -38
  194. package/dist/package.json +14 -14
  195. package/dist/sdk/app/automations/index.js +29 -0
  196. package/dist/sdk/app/automations/webhook.js +54 -0
  197. package/dist/sdk/app/backups/constants.js +5 -0
  198. package/dist/sdk/app/backups/exports.js +172 -0
  199. package/dist/sdk/app/backups/imports.js +190 -0
  200. package/dist/sdk/app/backups/index.js +29 -0
  201. package/dist/sdk/app/backups/statistics.js +73 -0
  202. package/dist/sdk/app/tables/index.js +61 -0
  203. package/dist/sdk/index.js +17 -0
  204. package/dist/startup.js +152 -0
  205. package/dist/tests/utilities/TestConfiguration.js +12 -2
  206. package/dist/threads/automation.js +12 -17
  207. package/dist/tsconfig.build.tsbuildinfo +1 -1
  208. package/dist/utilities/csvParser.js +1 -0
  209. package/dist/utilities/fileSystem/index.js +3 -95
  210. package/dist/utilities/fileSystem/utilities.js +2 -1
  211. package/dist/utilities/rowProcessor/index.js +5 -0
  212. package/dist/utilities/usageQuota/rows.js +6 -4
  213. package/package.json +15 -15
  214. package/specs/openapi.json +3 -0
  215. package/specs/openapi.yaml +3 -0
  216. package/src/api/controllers/application.ts +5 -12
  217. package/src/api/controllers/{backup.js → backup.ts} +7 -7
  218. package/src/api/controllers/cloud.js +44 -40
  219. package/src/api/controllers/deploy/index.ts +20 -8
  220. package/src/api/controllers/dev.js +1 -1
  221. package/src/api/controllers/query/index.ts +8 -2
  222. package/src/api/controllers/row/index.ts +50 -65
  223. package/src/api/controllers/row/internal.js +1 -1
  224. package/src/api/controllers/static/index.ts +4 -2
  225. package/src/api/controllers/static/templates/BudibaseApp.svelte +11 -0
  226. package/src/api/controllers/static/templates/preview.hbs +10 -0
  227. package/src/api/controllers/table/bulkFormula.js +4 -3
  228. package/src/api/controllers/table/external.js +4 -4
  229. package/src/api/controllers/table/index.js +4 -4
  230. package/src/api/controllers/table/internal.ts +8 -9
  231. package/src/api/controllers/table/utils.ts +4 -53
  232. package/src/api/controllers/view/index.js +2 -2
  233. package/src/api/controllers/{webhook.js → webhook.ts} +33 -48
  234. package/src/api/routes/backup.ts +10 -0
  235. package/src/api/routes/index.ts +11 -5
  236. package/src/api/routes/tests/backup.spec.js +1 -1
  237. package/src/api/routes/tests/{deployment.spec.js → deployment.spec.ts} +4 -4
  238. package/src/api/routes/tests/row.spec.js +22 -27
  239. package/src/api/routes/utils/validators.js +2 -2
  240. package/src/api/routes/{webhook.js → webhook.ts} +7 -6
  241. package/src/app.ts +3 -91
  242. package/src/automations/automationUtils.js +2 -2
  243. package/src/automations/bullboard.js +14 -34
  244. package/src/automations/index.js +4 -4
  245. package/src/automations/steps/updateRow.js +2 -2
  246. package/src/automations/tests/automation.spec.js +1 -6
  247. package/src/automations/triggers.js +6 -6
  248. package/src/automations/utils.ts +30 -32
  249. package/src/constants/index.js +4 -10
  250. package/src/db/utils.js +17 -110
  251. package/src/definitions/automations.ts +1 -18
  252. package/src/definitions/datasource.ts +1 -0
  253. package/src/index.ts +1 -0
  254. package/src/integrations/arangodb.ts +2 -0
  255. package/src/integrations/base/sqlTable.ts +1 -0
  256. package/src/integrations/mongodb.ts +290 -27
  257. package/src/integrations/rest.ts +17 -5
  258. package/src/integrations/tests/mongo.spec.ts +19 -19
  259. package/src/integrations/tests/rest.spec.ts +38 -22
  260. package/src/migrations/functions/backfill/app/tables.ts +7 -13
  261. package/src/migrations/functions/backfill/global.ts +1 -1
  262. package/src/migrations/functions/{quotas1.ts → syncQuotas.ts} +3 -8
  263. package/src/migrations/functions/tests/{quotas1.spec.js → syncQuotas.spec.js} +6 -5
  264. package/src/migrations/functions/tests/userEmailViewCasing.spec.js +6 -4
  265. package/src/migrations/functions/usageQuotas/syncApps.ts +0 -1
  266. package/src/migrations/functions/usageQuotas/syncPlugins.ts +10 -0
  267. package/src/migrations/functions/usageQuotas/syncRows.ts +15 -6
  268. package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +9 -1
  269. package/src/migrations/index.ts +21 -45
  270. package/src/migrations/tests/index.spec.ts +0 -1
  271. package/src/sdk/app/automations/index.ts +5 -0
  272. package/src/sdk/app/automations/webhook.ts +43 -0
  273. package/src/sdk/app/backups/constants.ts +2 -0
  274. package/src/sdk/app/backups/exports.ts +171 -0
  275. package/src/sdk/app/backups/imports.ts +206 -0
  276. package/src/sdk/app/backups/index.ts +9 -0
  277. package/src/sdk/app/backups/statistics.ts +78 -0
  278. package/src/sdk/app/tables/index.ts +61 -0
  279. package/src/sdk/index.ts +15 -0
  280. package/src/startup.ts +138 -0
  281. package/src/tests/utilities/TestConfiguration.js +12 -2
  282. package/src/threads/automation.ts +20 -27
  283. package/src/utilities/csvParser.js +1 -0
  284. package/src/utilities/fileSystem/index.js +2 -119
  285. package/src/utilities/fileSystem/utilities.js +2 -0
  286. package/src/utilities/rowProcessor/index.js +5 -0
  287. package/src/utilities/usageQuota/rows.js +7 -3
  288. package/coverage/lcov-report/api/controllers/backup.js.html +0 -142
  289. package/coverage/lcov-report/api/controllers/webhook.js.html +0 -424
  290. package/coverage/lcov-report/api/routes/backup.js.html +0 -115
  291. package/coverage/lcov-report/api/routes/webhook.js.html +0 -163
  292. package/dist/automations/listeners.js +0 -102
  293. package/src/api/routes/backup.js +0 -10
  294. package/src/automations/listeners.ts +0 -78
  295. package/src/migrations/functions/pluginCount.ts +0 -12
@@ -1,424 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for api/controllers/webhook.js</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">api/controllers</a> webhook.js</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">91.66% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>55/60</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">40% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>4/10</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>7/7</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">91.52% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>54/59</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
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
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
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>
180
- <span class="cline-any cline-yes">45x</span>
181
- <span class="cline-any cline-yes">45x</span>
182
- <span class="cline-any cline-yes">45x</span>
183
- <span class="cline-any cline-yes">45x</span>
184
- <span class="cline-any cline-yes">45x</span>
185
- <span class="cline-any cline-yes">45x</span>
186
- <span class="cline-any cline-neutral">&nbsp;</span>
187
- <span class="cline-any cline-yes">45x</span>
188
- <span class="cline-any cline-neutral">&nbsp;</span>
189
- <span class="cline-any cline-neutral">&nbsp;</span>
190
- <span class="cline-any cline-yes">1x</span>
191
- <span class="cline-any cline-yes">1x</span>
192
- <span class="cline-any cline-yes">1x</span>
193
- <span class="cline-any cline-neutral">&nbsp;</span>
194
- <span class="cline-any cline-neutral">&nbsp;</span>
195
- <span class="cline-any cline-neutral">&nbsp;</span>
196
- <span class="cline-any cline-neutral">&nbsp;</span>
197
- <span class="cline-any cline-neutral">&nbsp;</span>
198
- <span class="cline-any cline-yes">45x</span>
199
- <span class="cline-any cline-neutral">&nbsp;</span>
200
- <span class="cline-any cline-yes">45x</span>
201
- <span class="cline-any cline-yes">2x</span>
202
- <span class="cline-any cline-yes">2x</span>
203
- <span class="cline-any cline-neutral">&nbsp;</span>
204
- <span class="cline-any cline-neutral">&nbsp;</span>
205
- <span class="cline-any cline-neutral">&nbsp;</span>
206
- <span class="cline-any cline-neutral">&nbsp;</span>
207
- <span class="cline-any cline-yes">2x</span>
208
- <span class="cline-any cline-neutral">&nbsp;</span>
209
- <span class="cline-any cline-neutral">&nbsp;</span>
210
- <span class="cline-any cline-yes">45x</span>
211
- <span class="cline-any cline-yes">10x</span>
212
- <span class="cline-any cline-yes">10x</span>
213
- <span class="cline-any cline-yes">10x</span>
214
- <span class="cline-any cline-neutral">&nbsp;</span>
215
- <span class="cline-any cline-neutral">&nbsp;</span>
216
- <span class="cline-any cline-yes">10x</span>
217
- <span class="cline-any cline-no">&nbsp;</span>
218
- <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-yes">10x</span>
220
- <span class="cline-any cline-neutral">&nbsp;</span>
221
- <span class="cline-any cline-yes">10x</span>
222
- <span class="cline-any cline-yes">10x</span>
223
- <span class="cline-any cline-yes">10x</span>
224
- <span class="cline-any cline-neutral">&nbsp;</span>
225
- <span class="cline-any cline-neutral">&nbsp;</span>
226
- <span class="cline-any cline-neutral">&nbsp;</span>
227
- <span class="cline-any cline-neutral">&nbsp;</span>
228
- <span class="cline-any cline-neutral">&nbsp;</span>
229
- <span class="cline-any cline-yes">45x</span>
230
- <span class="cline-any cline-yes">1x</span>
231
- <span class="cline-any cline-yes">1x</span>
232
- <span class="cline-any cline-neutral">&nbsp;</span>
233
- <span class="cline-any cline-neutral">&nbsp;</span>
234
- <span class="cline-any cline-yes">45x</span>
235
- <span class="cline-any cline-yes">1x</span>
236
- <span class="cline-any cline-yes">1x</span>
237
- <span class="cline-any cline-yes">1x</span>
238
- <span class="cline-any cline-yes">1x</span>
239
- <span class="cline-any cline-neutral">&nbsp;</span>
240
- <span class="cline-any cline-yes">1x</span>
241
- <span class="cline-any cline-yes">1x</span>
242
- <span class="cline-any cline-yes">1x</span>
243
- <span class="cline-any cline-yes">1x</span>
244
- <span class="cline-any cline-neutral">&nbsp;</span>
245
- <span class="cline-any cline-yes">1x</span>
246
- <span class="cline-any cline-neutral">&nbsp;</span>
247
- <span class="cline-any cline-neutral">&nbsp;</span>
248
- <span class="cline-any cline-yes">1x</span>
249
- <span class="cline-any cline-yes">1x</span>
250
- <span class="cline-any cline-neutral">&nbsp;</span>
251
- <span class="cline-any cline-neutral">&nbsp;</span>
252
- <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-neutral">&nbsp;</span>
254
- <span class="cline-any cline-yes">1x</span>
255
- <span class="cline-any cline-neutral">&nbsp;</span>
256
- <span class="cline-any cline-yes">1x</span>
257
- <span class="cline-any cline-neutral">&nbsp;</span>
258
- <span class="cline-any cline-neutral">&nbsp;</span>
259
- <span class="cline-any cline-yes">45x</span>
260
- <span class="cline-any cline-yes">1x</span>
261
- <span class="cline-any cline-yes">1x</span>
262
- <span class="cline-any cline-yes">1x</span>
263
- <span class="cline-any cline-yes">1x</span>
264
- <span class="cline-any cline-yes">1x</span>
265
- <span class="cline-any cline-neutral">&nbsp;</span>
266
- <span class="cline-any cline-yes">1x</span>
267
- <span class="cline-any cline-no">&nbsp;</span>
268
- <span class="cline-any cline-neutral">&nbsp;</span>
269
- <span class="cline-any cline-yes">1x</span>
270
- <span class="cline-any cline-yes">1x</span>
271
- <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-neutral">&nbsp;</span>
273
- <span class="cline-any cline-yes">1x</span>
274
- <span class="cline-any cline-neutral">&nbsp;</span>
275
- <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-neutral">&nbsp;</span>
277
- <span class="cline-any cline-neutral">&nbsp;</span>
278
- <span class="cline-any cline-neutral">&nbsp;</span>
279
- <span class="cline-any cline-yes">1x</span>
280
- <span class="cline-any cline-yes">1x</span>
281
- <span class="cline-any cline-neutral">&nbsp;</span>
282
- <span class="cline-any cline-neutral">&nbsp;</span>
283
- <span class="cline-any cline-neutral">&nbsp;</span>
284
- <span class="cline-any cline-no">&nbsp;</span>
285
- <span class="cline-any cline-no">&nbsp;</span>
286
- <span class="cline-any cline-no">&nbsp;</span>
287
- <span class="cline-any cline-neutral">&nbsp;</span>
288
- <span class="cline-any cline-neutral">&nbsp;</span>
289
- <span class="cline-any cline-neutral">&nbsp;</span>
290
- <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-neutral">&nbsp;</span>
292
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { generateWebhookID, getWebhookParams } = require("../../db/utils")
293
- const toJsonSchema = require("to-json-schema")
294
- const validate = require("jsonschema").validate
295
- const { WebhookType } = require("../../constants")
296
- const triggers = require("../../automations/triggers")
297
- const { getProdAppID } = require("@budibase/backend-core/db")
298
- const { getAppDB, updateAppId } = require("@budibase/backend-core/context")
299
- &nbsp;
300
- const AUTOMATION_DESCRIPTION = "Generated from Webhook Schema"
301
- &nbsp;
302
- function Webhook(name, type, target) {
303
- this.live = true
304
- this.name = name
305
- this.action = {
306
- type,
307
- target,
308
- }
309
- }
310
- &nbsp;
311
- exports.Webhook = Webhook
312
- &nbsp;
313
- exports.fetch = async ctx =&gt; {
314
- const db = getAppDB()
315
- const response = await db.allDocs(
316
- getWebhookParams(null, {
317
- include_docs: true,
318
- })
319
- )
320
- ctx.body = response.rows.map(row =&gt; row.doc)
321
- }
322
- &nbsp;
323
- exports.save = async ctx =&gt; {
324
- const db = getAppDB()
325
- const webhook = ctx.request.body
326
- webhook.appId = ctx.appId
327
- &nbsp;
328
- // check that the webhook exists
329
- <span class="missing-if-branch" title="if path not taken" >I</span>if (webhook._id) {
330
- <span class="cstat-no" title="statement not covered" > await db.get(webhook._id)</span>
331
- } else {
332
- webhook._id = generateWebhookID()
333
- }
334
- const response = await db.put(webhook)
335
- webhook._rev = response.rev
336
- ctx.body = {
337
- message: "Webhook created successfully",
338
- webhook,
339
- }
340
- }
341
- &nbsp;
342
- exports.destroy = async ctx =&gt; {
343
- const db = getAppDB()
344
- ctx.body = await db.remove(ctx.params.id, ctx.params.rev)
345
- }
346
- &nbsp;
347
- exports.buildSchema = async ctx =&gt; {
348
- await updateAppId(ctx.params.instance)
349
- const db = getAppDB()
350
- const webhook = await db.get(ctx.params.id)
351
- webhook.bodySchema = toJsonSchema(ctx.request.body)
352
- // update the automation outputs
353
- <span class="missing-if-branch" title="else path not taken" >E</span>if (webhook.action.type === WebhookType.AUTOMATION) {
354
- let automation = await db.get(webhook.action.target)
355
- const autoOutputs = automation.definition.trigger.schema.outputs
356
- let properties = webhook.bodySchema.properties
357
- // reset webhook outputs
358
- autoOutputs.properties = {
359
- body: autoOutputs.properties.body,
360
- }
361
- for (let prop of Object.keys(properties)) {
362
- autoOutputs.properties[prop] = {
363
- type: properties[prop].type,
364
- description: AUTOMATION_DESCRIPTION,
365
- }
366
- }
367
- await db.put(automation)
368
- }
369
- ctx.body = await db.put(webhook)
370
- }
371
- &nbsp;
372
- exports.trigger = async ctx =&gt; {
373
- const prodAppId = getProdAppID(ctx.params.instance)
374
- await updateAppId(prodAppId)
375
- try {
376
- const db = getAppDB()
377
- const webhook = await db.get(ctx.params.id)
378
- // validate against the schema
379
- <span class="missing-if-branch" title="if path not taken" >I</span>if (webhook.bodySchema) {
380
- <span class="cstat-no" title="statement not covered" > validate(ctx.request.body, webhook.bodySchema)</span>
381
- }
382
- const target = await db.get(webhook.action.target)
383
- <span class="missing-if-branch" title="else path not taken" >E</span>if (webhook.action.type === WebhookType.AUTOMATION) {
384
- // trigger with both the pure request and then expand it
385
- // incase the user has produced a schema to bind to
386
- await triggers.externalTrigger(target, {
387
- body: ctx.request.body,
388
- ...ctx.request.body,
389
- appId: prodAppId,
390
- })
391
- }
392
- ctx.status = 200
393
- ctx.body = {
394
- message: "Webhook trigger fired successfully",
395
- }
396
- } catch (err) {
397
- <span class="cstat-no" title="statement not covered" > if (err.status === 404) {</span>
398
- <span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
399
- <span class="cstat-no" title="statement not covered" > ctx.body = {</span>
400
- message: "Application not deployed yet.",
401
- }
402
- }
403
- }
404
- }
405
- &nbsp;</pre></td></tr></table></pre>
406
-
407
- <div class='push'></div><!-- for sticky footer -->
408
- </div><!-- /wrapper -->
409
- <div class='footer quiet pad2 space-top1 center small'>
410
- Code coverage generated by
411
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
412
- at Mon Oct 31 2022 11:02:40 GMT+0000 (Coordinated Universal Time)
413
- </div>
414
- <script src="../../prettify.js"></script>
415
- <script>
416
- window.onload = function () {
417
- prettyPrint();
418
- };
419
- </script>
420
- <script src="../../sorter.js"></script>
421
- <script src="../../block-navigation.js"></script>
422
- </body>
423
- </html>
424
-
@@ -1,115 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for api/routes/backup.js</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">api/routes</a> backup.js</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>7/7</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>0/0</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>7/7</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
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
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">28x</span>
77
- <span class="cline-any cline-yes">28x</span>
78
- <span class="cline-any cline-yes">28x</span>
79
- <span class="cline-any cline-yes">28x</span>
80
- <span class="cline-any cline-neutral">&nbsp;</span>
81
- <span class="cline-any cline-yes">28x</span>
82
- <span class="cline-any cline-neutral">&nbsp;</span>
83
- <span class="cline-any cline-yes">28x</span>
84
- <span class="cline-any cline-neutral">&nbsp;</span>
85
- <span class="cline-any cline-yes">28x</span>
86
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const Router = require("@koa/router")
87
- const controller = require("../controllers/backup")
88
- const authorized = require("../../middleware/authorized")
89
- const { BUILDER } = require("@budibase/backend-core/permissions")
90
- &nbsp;
91
- const router = new Router()
92
- &nbsp;
93
- router.get("/api/backups/export", authorized(BUILDER), controller.exportAppDump)
94
- &nbsp;
95
- module.exports = router
96
- &nbsp;</pre></td></tr></table></pre>
97
-
98
- <div class='push'></div><!-- for sticky footer -->
99
- </div><!-- /wrapper -->
100
- <div class='footer quiet pad2 space-top1 center small'>
101
- Code coverage generated by
102
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
103
- at Mon Oct 31 2022 11:02:40 GMT+0000 (Coordinated Universal Time)
104
- </div>
105
- <script src="../../prettify.js"></script>
106
- <script>
107
- window.onload = function () {
108
- prettyPrint();
109
- };
110
- </script>
111
- <script src="../../sorter.js"></script>
112
- <script src="../../block-navigation.js"></script>
113
- </body>
114
- </html>
115
-