@budibase/server 1.3.17 → 1.3.19-alpha.0

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 (282) hide show
  1. package/__mocks__/mongodb.ts +1 -1
  2. package/builder/assets/{index.a70e216a.css → index.3850883f.css} +2 -2
  3. package/builder/assets/index.fdade753.js +995 -0
  4. package/builder/index.html +2 -4
  5. package/coverage/clover.xml +409 -361
  6. package/coverage/coverage-final.json +18 -18
  7. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  10. package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/component.js.html +68 -11
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +73 -34
  14. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/index.html +38 -38
  16. package/coverage/lcov-report/api/controllers/integration.js.html +6 -6
  17. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  22. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  25. package/coverage/lcov-report/api/controllers/row/external.js.html +2 -2
  26. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  30. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/screen.js.html +207 -12
  32. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  36. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  44. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  45. package/coverage/lcov-report/api/index.html +1 -1
  46. package/coverage/lcov-report/api/index.js.html +12 -12
  47. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  56. package/coverage/lcov-report/api/routes/dev.js.html +1 -1
  57. package/coverage/lcov-report/api/routes/index.html +1 -1
  58. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/table.js.html +2 -2
  69. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/index.html +5 -5
  72. package/coverage/lcov-report/api/routes/utils/validators.js.html +9 -6
  73. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  74. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  75. package/coverage/lcov-report/automations/actions.js.html +1 -1
  76. package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
  77. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  78. package/coverage/lcov-report/automations/index.html +1 -1
  79. package/coverage/lcov-report/automations/index.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  86. package/coverage/lcov-report/automations/steps/index.html +1 -1
  87. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  96. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  105. package/coverage/lcov-report/automations/triggers.js.html +1 -1
  106. package/coverage/lcov-report/constants/index.html +1 -1
  107. package/coverage/lcov-report/constants/index.js.html +1 -1
  108. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  109. package/coverage/lcov-report/constants/screens.js.html +1 -1
  110. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  111. package/coverage/lcov-report/db/index.html +18 -18
  112. package/coverage/lcov-report/db/index.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  116. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  117. package/coverage/lcov-report/db/newid.js.html +2 -2
  118. package/coverage/lcov-report/db/utils.js.html +56 -20
  119. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  120. package/coverage/lcov-report/events/index.html +1 -1
  121. package/coverage/lcov-report/events/index.js.html +1 -1
  122. package/coverage/lcov-report/events/utils.js.html +1 -1
  123. package/coverage/lcov-report/index.html +30 -30
  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/middleware/appInfo.js.html +1 -1
  127. package/coverage/lcov-report/middleware/builder.js.html +12 -12
  128. package/coverage/lcov-report/middleware/currentapp.js.html +33 -33
  129. package/coverage/lcov-report/middleware/index.html +1 -1
  130. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  131. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  132. package/coverage/lcov-report/middleware/resourceId.js.html +7 -7
  133. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  134. package/coverage/lcov-report/middleware/utils.js.html +2 -2
  135. package/coverage/lcov-report/utilities/budibaseDir.js.html +3 -3
  136. package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
  137. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  138. package/coverage/lcov-report/utilities/global.js.html +16 -16
  139. package/coverage/lcov-report/utilities/index.html +1 -1
  140. package/coverage/lcov-report/utilities/index.js.html +24 -24
  141. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
  142. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  143. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  144. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  145. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  146. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  147. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  148. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  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/usageQuota/index.html +1 -1
  152. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  153. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  154. package/coverage/lcov-report/utilities/users.js.html +1 -1
  155. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  156. package/coverage/lcov.info +725 -623
  157. package/dist/api/controllers/application.js +5 -4
  158. package/dist/api/controllers/component.js +14 -1
  159. package/dist/api/controllers/datasource.js +21 -8
  160. package/dist/api/controllers/integration.js +4 -4
  161. package/dist/api/controllers/plugin/file.js +24 -0
  162. package/dist/api/controllers/plugin/github.js +69 -0
  163. package/dist/api/controllers/plugin/index.js +197 -0
  164. package/dist/api/controllers/plugin/npm.js +58 -0
  165. package/dist/api/controllers/plugin/uploaders.js +11 -0
  166. package/dist/api/controllers/plugin/url.js +24 -0
  167. package/dist/api/controllers/plugin/utils.js +26 -0
  168. package/dist/api/controllers/row/external.js +1 -1
  169. package/dist/api/controllers/screen.js +52 -2
  170. package/dist/api/controllers/static/index.js +1 -0
  171. package/dist/api/controllers/static/templates/BudibaseApp.svelte +10 -0
  172. package/dist/api/controllers/static/templates/preview.hbs +5 -1
  173. package/dist/api/routes/application.js +3 -2
  174. package/dist/api/routes/index.js +2 -0
  175. package/dist/api/routes/plugin.js +39 -0
  176. package/dist/api/routes/public/tables.js +1 -1
  177. package/dist/api/routes/table.js +1 -1
  178. package/dist/api/routes/utils/validators.js +2 -1
  179. package/dist/app.js +11 -0
  180. package/dist/db/utils.js +10 -1
  181. package/dist/environment.js +1 -0
  182. package/dist/integrations/airtable.js +126 -129
  183. package/dist/integrations/arangodb.js +86 -89
  184. package/dist/integrations/base/query.js +2 -2
  185. package/dist/integrations/base/sqlTable.js +3 -1
  186. package/dist/integrations/couchdb.js +80 -83
  187. package/dist/integrations/dynamodb.js +161 -164
  188. package/dist/integrations/elasticsearch.js +135 -138
  189. package/dist/integrations/firebase.js +154 -157
  190. package/dist/integrations/googlesheets.js +323 -327
  191. package/dist/integrations/index.js +99 -51
  192. package/dist/integrations/microsoftSqlServer.js +240 -243
  193. package/dist/integrations/mongodb.js +239 -242
  194. package/dist/integrations/mysql.js +215 -219
  195. package/dist/integrations/oracle.js +318 -322
  196. package/dist/integrations/postgres.js +262 -265
  197. package/dist/integrations/redis.js +134 -139
  198. package/dist/integrations/rest.js +289 -292
  199. package/dist/integrations/s3.js +61 -64
  200. package/dist/integrations/snowflake.js +83 -86
  201. package/dist/package.json +9 -6
  202. package/dist/tests/utilities/TestConfiguration.js +1 -1
  203. package/dist/threads/query.js +2 -2
  204. package/dist/tsconfig.build.tsbuildinfo +1 -1
  205. package/dist/utilities/fileSystem/index.js +110 -1
  206. package/dist/watch.js +77 -0
  207. package/dist/websocket.js +22 -0
  208. package/package.json +10 -7
  209. package/scripts/dev/manage.js +1 -0
  210. package/specs/openapi.json +3 -3
  211. package/specs/openapi.yaml +3 -3
  212. package/specs/resources/query.js +1 -1
  213. package/src/api/controllers/application.ts +1 -1
  214. package/src/api/controllers/component.js +21 -2
  215. package/src/api/controllers/datasource.js +21 -8
  216. package/src/api/controllers/integration.js +4 -4
  217. package/src/api/controllers/plugin/file.ts +15 -0
  218. package/src/api/controllers/plugin/github.ts +75 -0
  219. package/src/api/controllers/plugin/index.ts +212 -0
  220. package/src/api/controllers/plugin/npm.ts +56 -0
  221. package/src/api/controllers/plugin/uploaders.ts +4 -0
  222. package/src/api/controllers/plugin/url.ts +12 -0
  223. package/src/api/controllers/plugin/utils.ts +19 -0
  224. package/src/api/controllers/row/external.js +1 -1
  225. package/src/api/controllers/screen.js +66 -1
  226. package/src/api/controllers/static/index.ts +1 -0
  227. package/src/api/controllers/static/templates/BudibaseApp.svelte +10 -0
  228. package/src/api/controllers/static/templates/preview.hbs +5 -1
  229. package/src/api/routes/application.ts +13 -2
  230. package/src/api/routes/index.ts +2 -0
  231. package/src/api/routes/plugin.ts +14 -0
  232. package/src/api/routes/public/tables.ts +1 -1
  233. package/src/api/routes/table.js +1 -1
  234. package/src/api/routes/tests/query.spec.js +8 -25
  235. package/src/api/routes/utils/validators.js +2 -1
  236. package/src/app.ts +14 -0
  237. package/src/db/utils.js +12 -0
  238. package/src/definitions/openapi.ts +3 -3
  239. package/src/environment.js +1 -0
  240. package/src/integrations/airtable.ts +116 -118
  241. package/src/integrations/arangodb.ts +87 -89
  242. package/src/integrations/base/query.ts +2 -2
  243. package/src/integrations/base/sqlTable.ts +3 -1
  244. package/src/integrations/couchdb.ts +83 -89
  245. package/src/integrations/dynamodb.ts +173 -175
  246. package/src/integrations/elasticsearch.ts +120 -122
  247. package/src/integrations/firebase.ts +157 -159
  248. package/src/integrations/googlesheets.ts +328 -338
  249. package/src/integrations/index.ts +64 -21
  250. package/src/integrations/microsoftSqlServer.ts +249 -251
  251. package/src/integrations/mongodb.ts +261 -258
  252. package/src/integrations/mysql.ts +229 -234
  253. package/src/integrations/oracle.ts +373 -380
  254. package/src/integrations/postgres.ts +264 -268
  255. package/src/integrations/redis.ts +128 -132
  256. package/src/integrations/rest.ts +324 -329
  257. package/src/integrations/s3.ts +68 -71
  258. package/src/integrations/snowflake.ts +80 -82
  259. package/src/integrations/tests/{airtable.spec.js → airtable.spec.ts} +21 -18
  260. package/src/integrations/tests/{arangodb.spec.js → arangodb.spec.ts} +12 -9
  261. package/src/integrations/tests/{couchdb.spec.js → couchdb.spec.ts} +33 -27
  262. package/src/integrations/tests/{dynamodb.spec.js → dynamodb.spec.ts} +45 -41
  263. package/src/integrations/tests/{elasticsearch.spec.js → elasticsearch.spec.ts} +22 -21
  264. package/src/integrations/tests/{firebase.spec.js → firebase.spec.ts} +33 -28
  265. package/src/integrations/tests/{microsoftSqlServer.spec.js → microsoftSqlServer.spec.ts} +12 -11
  266. package/src/integrations/tests/{mongo.spec.js → mongo.spec.ts} +46 -35
  267. package/src/integrations/tests/{mysql.spec.js → mysql.spec.ts} +17 -15
  268. package/src/integrations/tests/{oracle.spec.js → oracle.spec.ts} +19 -17
  269. package/src/integrations/tests/{postgres.spec.js → postgres.spec.ts} +19 -17
  270. package/src/integrations/tests/{redis.spec.js → redis.spec.ts} +27 -18
  271. package/src/integrations/tests/{rest.spec.js → rest.spec.ts} +22 -14
  272. package/src/integrations/tests/{s3.spec.js → s3.spec.ts} +10 -8
  273. package/src/integrations/tests/{sql.spec.js → sql.spec.ts} +228 -177
  274. package/src/module.d.ts +2 -0
  275. package/src/tests/utilities/TestConfiguration.js +1 -1
  276. package/src/threads/query.ts +2 -2
  277. package/src/utilities/fileSystem/index.js +129 -0
  278. package/src/watch.ts +38 -0
  279. package/src/websocket.ts +26 -0
  280. package/builder/assets/index.8f5f192a.js +0 -876
  281. package/builder/assets/vendor.5e1fe644.css +0 -1
  282. package/builder/assets/vendor.67dbd8fa.js +0 -248
@@ -232,7 +232,7 @@ exports.update = async function (ctx) {
232
232
  <div class='footer quiet pad2 space-top1 center small'>
233
233
  Code coverage generated by
234
234
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
235
- at Tue Sep 13 2022 09:52:04 GMT+0000 (Coordinated Universal Time)
235
+ at Thu Sep 15 2022 09:33:26 GMT+0000 (Coordinated Universal Time)
236
236
  </div>
237
237
  <script src="../../prettify.js"></script>
238
238
  <script>
@@ -244,7 +244,7 @@ exports.fetchSelf = async ctx =&gt; {
244
244
  <div class='footer quiet pad2 space-top1 center small'>
245
245
  Code coverage generated by
246
246
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
247
- at Tue Sep 13 2022 09:52:04 GMT+0000 (Coordinated Universal Time)
247
+ at Thu Sep 15 2022 09:33:26 GMT+0000 (Coordinated Universal Time)
248
248
  </div>
249
249
  <script src="../../prettify.js"></script>
250
250
  <script>
@@ -925,7 +925,7 @@ exports.test = async function (ctx) {
925
925
  <div class='footer quiet pad2 space-top1 center small'>
926
926
  Code coverage generated by
927
927
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
928
- at Tue Sep 13 2022 09:52:04 GMT+0000 (Coordinated Universal Time)
928
+ at Thu Sep 15 2022 09:33:26 GMT+0000 (Coordinated Universal Time)
929
929
  </div>
930
930
  <script src="../../prettify.js"></script>
931
931
  <script>
@@ -127,7 +127,7 @@ exports.exportAppDump = async function (ctx) {
127
127
  <div class='footer quiet pad2 space-top1 center small'>
128
128
  Code coverage generated by
129
129
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
130
- at Tue Sep 13 2022 09:52:04 GMT+0000 (Coordinated Universal Time)
130
+ at Thu Sep 15 2022 09:33:26 GMT+0000 (Coordinated Universal Time)
131
131
  </div>
132
132
  <script src="../../prettify.js"></script>
133
133
  <script>
@@ -409,7 +409,7 @@ exports.importApps = <span class="fstat-no" title="function not covered" >as</sp
409
409
  <div class='footer quiet pad2 space-top1 center small'>
410
410
  Code coverage generated by
411
411
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
412
- at Tue Sep 13 2022 09:52:04 GMT+0000 (Coordinated Universal Time)
412
+ at Thu Sep 15 2022 09:33:26 GMT+0000 (Coordinated Universal Time)
413
413
  </div>
414
414
  <script src="../../prettify.js"></script>
415
415
  <script>
@@ -23,9 +23,9 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">94.73% </span>
26
+ <span class="strong">81.48% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>18/19</span>
28
+ <span class='fraction'>22/27</span>
29
29
  </div>
30
30
 
31
31
 
@@ -37,16 +37,16 @@
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">40% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>2/2</span>
42
+ <span class='fraction'>2/5</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">94.73% </span>
47
+ <span class="strong">81.48% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>18/19</span>
49
+ <span class='fraction'>22/27</span>
50
50
  </div>
51
51
 
52
52
 
@@ -101,7 +101,27 @@
101
101
  <a name='L36'></a><a href='#L36'>36</a>
102
102
  <a name='L37'></a><a href='#L37'>37</a>
103
103
  <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">28x</span>
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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">28x</span>
124
+ <span class="cline-any cline-yes">28x</span>
105
125
  <span class="cline-any cline-yes">28x</span>
106
126
  <span class="cline-any cline-yes">28x</span>
107
127
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -113,7 +133,6 @@
113
133
  <span class="cline-any cline-yes">1x</span>
114
134
  <span class="cline-any cline-neutral">&nbsp;</span>
115
135
  <span class="cline-any cline-yes">1x</span>
116
- <span class="cline-any cline-neutral">&nbsp;</span>
117
136
  <span class="cline-any cline-yes">1x</span>
118
137
  <span class="cline-any cline-neutral">&nbsp;</span>
119
138
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -134,14 +153,34 @@
134
153
  <span class="cline-any cline-neutral">&nbsp;</span>
135
154
  <span class="cline-any cline-neutral">&nbsp;</span>
136
155
  <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-yes">1x</span>
159
+ <span class="cline-any cline-yes">1x</span>
160
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-yes">1x</span>
165
+ <span class="cline-any cline-no">&nbsp;</span>
166
+ <span class="cline-any cline-no">&nbsp;</span>
167
+ <span class="cline-any cline-neutral">&nbsp;</span>
168
+ <span class="cline-any cline-no">&nbsp;</span>
169
+ <span class="cline-any cline-no">&nbsp;</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span>
171
+ <span class="cline-any cline-neutral">&nbsp;</span>
172
+ <span class="cline-any cline-neutral">&nbsp;</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
137
175
  <span class="cline-any cline-yes">1x</span>
138
176
  <span class="cline-any cline-neutral">&nbsp;</span>
139
177
  <span class="cline-any cline-no">&nbsp;</span>
140
178
  <span class="cline-any cline-neutral">&nbsp;</span>
141
179
  <span class="cline-any cline-neutral">&nbsp;</span>
142
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { DocumentType } = require("../../db/utils")
180
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { DocumentType, getPluginParams } = require("../../db/utils")
143
181
  const { getComponentLibraryManifest } = require("../../utilities/fileSystem")
144
182
  const { getAppDB } = require("@budibase/backend-core/context")
183
+ const { getGlobalDB } = require("@budibase/backend-core/tenancy")
145
184
  &nbsp;
146
185
  exports.fetchAppComponentDefinitions = async function (ctx) {
147
186
  try {
@@ -151,7 +190,6 @@ exports.fetchAppComponentDefinitions = async function (ctx) {
151
190
  let componentManifests = await Promise.all(
152
191
  app.componentLibraries.map(async library =&gt; {
153
192
  let manifest = await getComponentLibraryManifest(library)
154
- &nbsp;
155
193
  return {
156
194
  manifest,
157
195
  library,
@@ -172,6 +210,25 @@ exports.fetchAppComponentDefinitions = async function (ctx) {
172
210
  }
173
211
  }
174
212
  }
213
+ &nbsp;
214
+ // Add custom components
215
+ const globalDB = getGlobalDB()
216
+ const response = await globalDB.allDocs(
217
+ getPluginParams(null, {
218
+ include_docs: true,
219
+ })
220
+ )
221
+ response.rows
222
+ .map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; <span class="cstat-no" title="statement not covered" >row.doc)</span>
223
+ .filter(<span class="fstat-no" title="function not covered" >pl</span>ugin =&gt; <span class="cstat-no" title="statement not covered" >plugin.schema.type === "component")</span>
224
+ .forEach(<span class="fstat-no" title="function not covered" >pl</span>ugin =&gt; {
225
+ const fullComponentName = <span class="cstat-no" title="statement not covered" >`plugin/${plugin.name}`</span>
226
+ <span class="cstat-no" title="statement not covered" > definitions[fullComponentName] = {</span>
227
+ component: fullComponentName,
228
+ ...plugin.schema.schema,
229
+ }
230
+ })
231
+ &nbsp;
175
232
  ctx.body = definitions
176
233
  } catch (err) {
177
234
  <span class="cstat-no" title="statement not covered" > console.error(`component-definitions=failed`, err)</span>
@@ -184,7 +241,7 @@ exports.fetchAppComponentDefinitions = async function (ctx) {
184
241
  <div class='footer quiet pad2 space-top1 center small'>
185
242
  Code coverage generated by
186
243
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
187
- at Tue Sep 13 2022 09:52:04 GMT+0000 (Coordinated Universal Time)
244
+ at Thu Sep 15 2022 09:33:26 GMT+0000 (Coordinated Universal Time)
188
245
  </div>
189
246
  <script src="../../prettify.js"></script>
190
247
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">61.48% </span>
26
+ <span class="strong">58.45% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>83/135</span>
28
+ <span class='fraction'>83/142</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">37.73% </span>
33
+ <span class="strong">32.78% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>20/53</span>
35
+ <span class='fraction'>20/61</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">57.89% </span>
40
+ <span class="strong">55% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>11/19</span>
42
+ <span class='fraction'>11/20</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">61.19% </span>
47
+ <span class="strong">58.15% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>82/134</span>
49
+ <span class='fraction'>82/141</span>
50
50
  </div>
51
51
 
52
52
 
@@ -326,7 +326,20 @@
326
326
  <a name='L261'></a><a href='#L261'>261</a>
327
327
  <a name='L262'></a><a href='#L262'>262</a>
328
328
  <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
329
+ <a name='L264'></a><a href='#L264'>264</a>
330
+ <a name='L265'></a><a href='#L265'>265</a>
331
+ <a name='L266'></a><a href='#L266'>266</a>
332
+ <a name='L267'></a><a href='#L267'>267</a>
333
+ <a name='L268'></a><a href='#L268'>268</a>
334
+ <a name='L269'></a><a href='#L269'>269</a>
335
+ <a name='L270'></a><a href='#L270'>270</a>
336
+ <a name='L271'></a><a href='#L271'>271</a>
337
+ <a name='L272'></a><a href='#L272'>272</a>
338
+ <a name='L273'></a><a href='#L273'>273</a>
339
+ <a name='L274'></a><a href='#L274'>274</a>
340
+ <a name='L275'></a><a href='#L275'>275</a>
341
+ <a name='L276'></a><a href='#L276'>276</a>
342
+ <a name='L277'></a><a href='#L277'>277</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
330
343
  <span class="cline-any cline-neutral">&nbsp;</span>
331
344
  <span class="cline-any cline-neutral">&nbsp;</span>
332
345
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -378,9 +391,23 @@
378
391
  <span class="cline-any cline-yes">45x</span>
379
392
  <span class="cline-any cline-no">&nbsp;</span>
380
393
  <span class="cline-any cline-no">&nbsp;</span>
394
+ <span class="cline-any cline-no">&nbsp;</span>
381
395
  <span class="cline-any cline-neutral">&nbsp;</span>
382
396
  <span class="cline-any cline-no">&nbsp;</span>
383
397
  <span class="cline-any cline-no">&nbsp;</span>
398
+ <span class="cline-any cline-no">&nbsp;</span>
399
+ <span class="cline-any cline-no">&nbsp;</span>
400
+ <span class="cline-any cline-neutral">&nbsp;</span>
401
+ <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-no">&nbsp;</span>
403
+ <span class="cline-any cline-no">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-no">&nbsp;</span>
406
+ <span class="cline-any cline-neutral">&nbsp;</span>
407
+ <span class="cline-any cline-neutral">&nbsp;</span>
408
+ <span class="cline-any cline-neutral">&nbsp;</span>
409
+ <span class="cline-any cline-no">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
384
411
  <span class="cline-any cline-neutral">&nbsp;</span>
385
412
  <span class="cline-any cline-no">&nbsp;</span>
386
413
  <span class="cline-any cline-no">&nbsp;</span>
@@ -454,40 +481,40 @@
454
481
  <span class="cline-any cline-neutral">&nbsp;</span>
455
482
  <span class="cline-any cline-neutral">&nbsp;</span>
456
483
  <span class="cline-any cline-yes">45x</span>
457
- <span class="cline-any cline-yes">66x</span>
458
- <span class="cline-any cline-yes">66x</span>
459
- <span class="cline-any cline-yes">66x</span>
484
+ <span class="cline-any cline-yes">64x</span>
485
+ <span class="cline-any cline-yes">64x</span>
486
+ <span class="cline-any cline-yes">64x</span>
460
487
  <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-yes">66x</span>
488
+ <span class="cline-any cline-yes">64x</span>
462
489
  <span class="cline-any cline-neutral">&nbsp;</span>
463
490
  <span class="cline-any cline-neutral">&nbsp;</span>
464
491
  <span class="cline-any cline-neutral">&nbsp;</span>
465
492
  <span class="cline-any cline-neutral">&nbsp;</span>
466
493
  <span class="cline-any cline-neutral">&nbsp;</span>
467
- <span class="cline-any cline-yes">66x</span>
468
- <span class="cline-any cline-yes">66x</span>
494
+ <span class="cline-any cline-yes">64x</span>
495
+ <span class="cline-any cline-yes">64x</span>
469
496
  <span class="cline-any cline-no">&nbsp;</span>
470
497
  <span class="cline-any cline-no">&nbsp;</span>
471
498
  <span class="cline-any cline-no">&nbsp;</span>
472
499
  <span class="cline-any cline-neutral">&nbsp;</span>
473
500
  <span class="cline-any cline-neutral">&nbsp;</span>
474
- <span class="cline-any cline-yes">66x</span>
475
- <span class="cline-any cline-yes">66x</span>
476
- <span class="cline-any cline-yes">66x</span>
501
+ <span class="cline-any cline-yes">64x</span>
502
+ <span class="cline-any cline-yes">64x</span>
503
+ <span class="cline-any cline-yes">64x</span>
477
504
  <span class="cline-any cline-neutral">&nbsp;</span>
478
505
  <span class="cline-any cline-neutral">&nbsp;</span>
479
- <span class="cline-any cline-yes">66x</span>
480
- <span class="cline-any cline-yes">66x</span>
481
- <span class="cline-any cline-yes">66x</span>
506
+ <span class="cline-any cline-yes">64x</span>
507
+ <span class="cline-any cline-yes">64x</span>
508
+ <span class="cline-any cline-yes">63x</span>
482
509
  <span class="cline-any cline-no">&nbsp;</span>
483
510
  <span class="cline-any cline-neutral">&nbsp;</span>
484
511
  <span class="cline-any cline-neutral">&nbsp;</span>
485
512
  <span class="cline-any cline-neutral">&nbsp;</span>
486
- <span class="cline-any cline-yes">66x</span>
487
- <span class="cline-any cline-yes">66x</span>
513
+ <span class="cline-any cline-yes">63x</span>
514
+ <span class="cline-any cline-yes">63x</span>
488
515
  <span class="cline-any cline-no">&nbsp;</span>
489
516
  <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-yes">66x</span>
517
+ <span class="cline-any cline-yes">63x</span>
491
518
  <span class="cline-any cline-neutral">&nbsp;</span>
492
519
  <span class="cline-any cline-neutral">&nbsp;</span>
493
520
  <span class="cline-any cline-yes">45x</span>
@@ -551,7 +578,6 @@
551
578
  <span class="cline-any cline-neutral">&nbsp;</span>
552
579
  <span class="cline-any cline-no">&nbsp;</span>
553
580
  <span class="cline-any cline-no">&nbsp;</span>
554
- <span class="cline-any cline-no">&nbsp;</span>
555
581
  <span class="cline-any cline-neutral">&nbsp;</span>
556
582
  <span class="cline-any cline-neutral">&nbsp;</span>
557
583
  <span class="cline-any cline-no">&nbsp;</span>
@@ -598,7 +624,7 @@
598
624
  getTableParams,
599
625
  } = require("../../db/utils")
600
626
  const { BuildSchemaErrors, InvalidColumns } = require("../../constants")
601
- const { integrations } = require("../../integrations")
627
+ const { getIntegration } = require("../../integrations")
602
628
  const { getDatasourceAndQuery } = require("./row/utils")
603
629
  const { invalidateDynamicVariables } = require("../../threads/utils")
604
630
  const { getAppDB } = require("@budibase/backend-core/context")
@@ -641,9 +667,23 @@ exports.fetch = async function (ctx) {
641
667
  exports.buildSchemaFromDb = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
642
668
  const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
643
669
  const datasource = <span class="cstat-no" title="statement not covered" >await db.get(ctx.params.datasourceId)</span>
670
+ const tablesFilter = <span class="cstat-no" title="statement not covered" >ctx.request.body.tablesFilter</span>
644
671
  &nbsp;
645
- const { tables, error } = <span class="cstat-no" title="statement not covered" >await buildSchemaHelper(datasource)</span>
646
- <span class="cstat-no" title="statement not covered" > datasource.entities = tables</span>
672
+ let { tables, error } = <span class="cstat-no" title="statement not covered" >await buildSchemaHelper(datasource)</span>
673
+ <span class="cstat-no" title="statement not covered" > if (tablesFilter) {</span>
674
+ <span class="cstat-no" title="statement not covered" > if (!datasource.entities) {</span>
675
+ <span class="cstat-no" title="statement not covered" > datasource.entities = {}</span>
676
+ }
677
+ <span class="cstat-no" title="statement not covered" > for (let key in tables) {</span>
678
+ <span class="cstat-no" title="statement not covered" > if (</span>
679
+ tablesFilter.some(<span class="fstat-no" title="function not covered" >fi</span>lter =&gt; <span class="cstat-no" title="statement not covered" >filter.toLowerCase() === key.toLowerCase())</span>
680
+ ) {
681
+ <span class="cstat-no" title="statement not covered" > datasource.entities[key] = tables[key]</span>
682
+ }
683
+ }
684
+ } else {
685
+ <span class="cstat-no" title="statement not covered" > datasource.entities = tables</span>
686
+ }
647
687
  &nbsp;
648
688
  const dbResp = <span class="cstat-no" title="statement not covered" >await db.put(datasource)</span>
649
689
  <span class="cstat-no" title="statement not covered" > datasource._rev = dbResp.rev</span>
@@ -705,7 +745,7 @@ exports.update = async function (ctx) {
705
745
  &nbsp;
706
746
  // Drain connection pools when configuration is changed
707
747
  <span class="missing-if-branch" title="else path not taken" >E</span>if (datasource.source) {
708
- const source = integrations[datasource.source]
748
+ const source = await getIntegration(datasource.source)
709
749
  <span class="missing-if-branch" title="if path not taken" >I</span>if (source &amp;&amp; source.pool) {
710
750
  <span class="cstat-no" title="statement not covered" > await source.pool.end()</span>
711
751
  }
@@ -740,7 +780,7 @@ exports.save = async function (ctx) {
740
780
  &nbsp;
741
781
  // Drain connection pools when configuration is changed
742
782
  <span class="missing-if-branch" title="else path not taken" >E</span>if (datasource.source) {
743
- const source = integrations[datasource.source]
783
+ const source = await getIntegration(datasource.source)
744
784
  <span class="missing-if-branch" title="if path not taken" >I</span>if (source &amp;&amp; source.pool) {
745
785
  <span class="cstat-no" title="statement not covered" > await source.pool.end()</span>
746
786
  }
@@ -809,15 +849,14 @@ function <span class="fstat-no" title="function not covered" >updateError(</span
809
849
  }
810
850
  &nbsp;
811
851
  const buildSchemaHelper = <span class="fstat-no" title="function not covered" >as</span>ync datasource =&gt; {
812
- const Connector = <span class="cstat-no" title="statement not covered" >integrations[datasource.source]</span>
852
+ const Connector = <span class="cstat-no" title="statement not covered" >await getIntegration(datasource.source)</span>
813
853
  &nbsp;
814
854
  // Connect to the DB and build the schema
815
855
  const connector = <span class="cstat-no" title="statement not covered" >new Connector(datasource.config)</span>
816
856
  <span class="cstat-no" title="statement not covered" > await connector.buildSchema(datasource._id, datasource.entities)</span>
817
- <span class="cstat-no" title="statement not covered" > datasource.entities = connector.tables</span>
818
857
  &nbsp;
819
858
  // make sure they all have a display name selected
820
- <span class="cstat-no" title="statement not covered" > for (let entity of Object.values(datasource.entities)) {</span>
859
+ <span class="cstat-no" title="statement not covered" > for (let entity of Object.values(datasource.entities ?? {})) {</span>
821
860
  <span class="cstat-no" title="statement not covered" > if (entity.primaryDisplay) {</span>
822
861
  <span class="cstat-no" title="statement not covered" > continue</span>
823
862
  }
@@ -859,7 +898,7 @@ const buildSchemaHelper = <span class="fstat-no" title="function not covered" >a
859
898
  <div class='footer quiet pad2 space-top1 center small'>
860
899
  Code coverage generated by
861
900
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
862
- at Tue Sep 13 2022 09:52:04 GMT+0000 (Coordinated Universal Time)
901
+ at Thu Sep 15 2022 09:33:26 GMT+0000 (Coordinated Universal Time)
863
902
  </div>
864
903
  <script src="../../prettify.js"></script>
865
904
  <script>
@@ -475,7 +475,7 @@ exports.getBudibaseVersion = async ctx =&gt; {
475
475
  <div class='footer quiet pad2 space-top1 center small'>
476
476
  Code coverage generated by
477
477
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
478
- at Tue Sep 13 2022 09:52:04 GMT+0000 (Coordinated Universal Time)
478
+ at Thu Sep 15 2022 09:33:26 GMT+0000 (Coordinated Universal Time)
479
479
  </div>
480
480
  <script src="../../prettify.js"></script>
481
481
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">72.37% </span>
26
+ <span class="strong">70.85% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>710/981</span>
28
+ <span class='fraction'>727/1026</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">47.2% </span>
33
+ <span class="strong">45.22% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>135/286</span>
35
+ <span class='fraction'>142/314</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">67.62% </span>
40
+ <span class="strong">64.42% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>94/139</span>
42
+ <span class='fraction'>96/149</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">72.28% </span>
47
+ <span class="strong">70.79% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>699/967</span>
49
+ <span class='fraction'>715/1010</span>
50
50
  </div>
51
51
 
52
52
 
@@ -155,32 +155,32 @@
155
155
 
156
156
  <tr>
157
157
  <td class="file high" data-value="component.js"><a href="component.js.html">component.js</a></td>
158
- <td data-value="94.73" class="pic high">
159
- <div class="chart"><div class="cover-fill" style="width: 94%"></div><div class="cover-empty" style="width: 6%"></div></div>
158
+ <td data-value="81.48" class="pic high">
159
+ <div class="chart"><div class="cover-fill" style="width: 81%"></div><div class="cover-empty" style="width: 19%"></div></div>
160
160
  </td>
161
- <td data-value="94.73" class="pct high">94.73%</td>
162
- <td data-value="19" class="abs high">18/19</td>
163
- <td data-value="100" class="pct high">100%</td>
164
- <td data-value="2" class="abs high">2/2</td>
161
+ <td data-value="81.48" class="pct high">81.48%</td>
162
+ <td data-value="27" class="abs high">22/27</td>
165
163
  <td data-value="100" class="pct high">100%</td>
166
164
  <td data-value="2" class="abs high">2/2</td>
167
- <td data-value="94.73" class="pct high">94.73%</td>
168
- <td data-value="19" class="abs high">18/19</td>
165
+ <td data-value="40" class="pct low">40%</td>
166
+ <td data-value="5" class="abs low">2/5</td>
167
+ <td data-value="81.48" class="pct high">81.48%</td>
168
+ <td data-value="27" class="abs high">22/27</td>
169
169
  </tr>
170
170
 
171
171
  <tr>
172
172
  <td class="file medium" data-value="datasource.js"><a href="datasource.js.html">datasource.js</a></td>
173
- <td data-value="61.48" class="pic medium">
174
- <div class="chart"><div class="cover-fill" style="width: 61%"></div><div class="cover-empty" style="width: 39%"></div></div>
173
+ <td data-value="58.45" class="pic medium">
174
+ <div class="chart"><div class="cover-fill" style="width: 58%"></div><div class="cover-empty" style="width: 42%"></div></div>
175
175
  </td>
176
- <td data-value="61.48" class="pct medium">61.48%</td>
177
- <td data-value="135" class="abs medium">83/135</td>
178
- <td data-value="37.73" class="pct low">37.73%</td>
179
- <td data-value="53" class="abs low">20/53</td>
180
- <td data-value="57.89" class="pct medium">57.89%</td>
181
- <td data-value="19" class="abs medium">11/19</td>
182
- <td data-value="61.19" class="pct medium">61.19%</td>
183
- <td data-value="134" class="abs medium">82/134</td>
176
+ <td data-value="58.45" class="pct medium">58.45%</td>
177
+ <td data-value="142" class="abs medium">83/142</td>
178
+ <td data-value="32.78" class="pct low">32.78%</td>
179
+ <td data-value="61" class="abs low">20/61</td>
180
+ <td data-value="55" class="pct medium">55%</td>
181
+ <td data-value="20" class="abs medium">11/20</td>
182
+ <td data-value="58.15" class="pct medium">58.15%</td>
183
+ <td data-value="141" class="abs medium">82/141</td>
184
184
  </tr>
185
185
 
186
186
  <tr>
@@ -304,18 +304,18 @@
304
304
  </tr>
305
305
 
306
306
  <tr>
307
- <td class="file high" data-value="screen.js"><a href="screen.js.html">screen.js</a></td>
308
- <td data-value="100" class="pic high">
309
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
307
+ <td class="file medium" data-value="screen.js"><a href="screen.js.html">screen.js</a></td>
308
+ <td data-value="70.68" class="pic medium">
309
+ <div class="chart"><div class="cover-fill" style="width: 70%"></div><div class="cover-empty" style="width: 30%"></div></div>
310
310
  </td>
311
- <td data-value="100" class="pct high">100%</td>
312
- <td data-value="28" class="abs high">28/28</td>
313
- <td data-value="100" class="pct high">100%</td>
314
- <td data-value="4" class="abs high">4/4</td>
315
- <td data-value="100" class="pct high">100%</td>
316
- <td data-value="4" class="abs high">4/4</td>
317
- <td data-value="100" class="pct high">100%</td>
318
- <td data-value="28" class="abs high">28/28</td>
311
+ <td data-value="70.68" class="pct medium">70.68%</td>
312
+ <td data-value="58" class="abs medium">41/58</td>
313
+ <td data-value="45.83" class="pct low">45.83%</td>
314
+ <td data-value="24" class="abs low">11/24</td>
315
+ <td data-value="60" class="pct medium">60%</td>
316
+ <td data-value="10" class="abs medium">6/10</td>
317
+ <td data-value="71.42" class="pct medium">71.42%</td>
318
+ <td data-value="56" class="abs medium">40/56</td>
319
319
  </tr>
320
320
 
321
321
  <tr>
@@ -386,7 +386,7 @@
386
386
  <div class='footer quiet pad2 space-top1 center small'>
387
387
  Code coverage generated by
388
388
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
389
- at Tue Sep 13 2022 09:52:04 GMT+0000 (Coordinated Universal Time)
389
+ at Thu Sep 15 2022 09:33:26 GMT+0000 (Coordinated Universal Time)
390
390
  </div>
391
391
  <script src="../../prettify.js"></script>
392
392
  <script>
@@ -89,7 +89,6 @@
89
89
  <span class="cline-any cline-yes">28x</span>
90
90
  <span class="cline-any cline-yes">28x</span>
91
91
  <span class="cline-any cline-yes">28x</span>
92
- <span class="cline-any cline-yes">28x</span>
93
92
  <span class="cline-any cline-neutral">&nbsp;</span>
94
93
  <span class="cline-any cline-yes">28x</span>
95
94
  <span class="cline-any cline-yes">1x</span>
@@ -106,16 +105,16 @@
106
105
  <span class="cline-any cline-yes">28x</span>
107
106
  <span class="cline-any cline-yes">1x</span>
108
107
  <span class="cline-any cline-yes">1x</span>
108
+ <span class="cline-any cline-yes">1x</span>
109
109
  <span class="cline-any cline-neutral">&nbsp;</span>
110
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { cloneDeep } = require("lodash")
111
- const { definitions } = require("../../integrations")
110
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { getDefinitions } = require("../../integrations")
112
111
  const { SourceName } = require("@budibase/types")
113
112
  const googlesheets = require("../../integrations/googlesheets")
114
113
  const { featureFlags } = require("@budibase/backend-core")
115
114
  &nbsp;
116
115
  exports.fetch = async function (ctx) {
117
116
  ctx.status = 200
118
- const defs = cloneDeep(definitions)
117
+ const defs = await getDefinitions()
119
118
  &nbsp;
120
119
  // for google sheets integration google verification
121
120
  <span class="missing-if-branch" title="if path not taken" >I</span>if (featureFlags.isEnabled(featureFlags.FeatureFlag.GOOGLE_SHEETS)) {
@@ -126,8 +125,9 @@ exports.fetch = async function (ctx) {
126
125
  }
127
126
  &nbsp;
128
127
  exports.find = async function (ctx) {
128
+ const defs = await getDefinitions()
129
129
  ctx.status = 200
130
- ctx.body = definitions[ctx.params.type]
130
+ ctx.body = defs[ctx.params.type]
131
131
  }
132
132
  &nbsp;</pre></td></tr></table></pre>
133
133
 
@@ -136,7 +136,7 @@ exports.find = async function (ctx) {
136
136
  <div class='footer quiet pad2 space-top1 center small'>
137
137
  Code coverage generated by
138
138
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
139
- at Tue Sep 13 2022 09:52:04 GMT+0000 (Coordinated Universal Time)
139
+ at Thu Sep 15 2022 09:33:26 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  <script src="../../prettify.js"></script>
142
142
  <script>