@budibase/server 1.0.211 → 1.0.212-alpha.10

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 (240) hide show
  1. package/builder/assets/index.88005d52.js +978 -0
  2. package/builder/assets/index.c6912819.css +6 -0
  3. package/builder/index.html +2 -2
  4. package/coverage/clover.xml +438 -383
  5. package/coverage/coverage-final.json +11 -11
  6. package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
  7. package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
  8. package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
  9. package/coverage/lcov-report/api/controllers/backup.js.html +9 -6
  10. package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
  11. package/coverage/lcov-report/api/controllers/component.js.html +1 -1
  12. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  13. package/coverage/lcov-report/api/controllers/dev.js.html +166 -13
  14. package/coverage/lcov-report/api/controllers/index.html +22 -22
  15. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  16. package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
  17. package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
  18. package/coverage/lcov-report/api/controllers/migrations.js.html +1 -1
  19. package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
  20. package/coverage/lcov-report/api/controllers/query/index.html +1 -1
  21. package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
  22. package/coverage/lcov-report/api/controllers/role.js.html +1 -1
  23. package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
  24. package/coverage/lcov-report/api/controllers/row/external.js.html +47 -17
  25. package/coverage/lcov-report/api/controllers/row/index.html +34 -34
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +95 -11
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +17 -8
  30. package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
  31. package/coverage/lcov-report/api/controllers/script.js.html +1 -1
  32. package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
  33. package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
  34. package/coverage/lcov-report/api/controllers/table/index.html +1 -1
  35. package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
  36. package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
  37. package/coverage/lcov-report/api/controllers/user.js.html +1 -1
  38. package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
  39. package/coverage/lcov-report/api/controllers/view/index.html +1 -1
  40. package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
  41. package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
  42. package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
  43. package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
  44. package/coverage/lcov-report/api/index.html +1 -1
  45. package/coverage/lcov-report/api/index.js.html +1 -1
  46. package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
  47. package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
  48. package/coverage/lcov-report/api/routes/auth.js.html +1 -1
  49. package/coverage/lcov-report/api/routes/automation.js.html +1 -1
  50. package/coverage/lcov-report/api/routes/backup.js.html +1 -1
  51. package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
  52. package/coverage/lcov-report/api/routes/component.js.html +1 -1
  53. package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
  54. package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
  55. package/coverage/lcov-report/api/routes/dev.js.html +5 -2
  56. package/coverage/lcov-report/api/routes/index.html +1 -1
  57. package/coverage/lcov-report/api/routes/integration.js.html +1 -1
  58. package/coverage/lcov-report/api/routes/layout.js.html +1 -1
  59. package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
  60. package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
  61. package/coverage/lcov-report/api/routes/permission.js.html +1 -1
  62. package/coverage/lcov-report/api/routes/query.js.html +1 -1
  63. package/coverage/lcov-report/api/routes/role.js.html +1 -1
  64. package/coverage/lcov-report/api/routes/routing.js.html +1 -1
  65. package/coverage/lcov-report/api/routes/screen.js.html +1 -1
  66. package/coverage/lcov-report/api/routes/script.js.html +1 -1
  67. package/coverage/lcov-report/api/routes/table.js.html +1 -1
  68. package/coverage/lcov-report/api/routes/templates.js.html +1 -1
  69. package/coverage/lcov-report/api/routes/user.js.html +1 -1
  70. package/coverage/lcov-report/api/routes/utils/index.html +1 -1
  71. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  72. package/coverage/lcov-report/api/routes/view.js.html +1 -1
  73. package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
  74. package/coverage/lcov-report/automations/actions.js.html +1 -1
  75. package/coverage/lcov-report/automations/automationUtils.js.html +57 -12
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +17 -17
  78. package/coverage/lcov-report/automations/index.js.html +1 -1
  79. package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
  80. package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
  81. package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
  82. package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
  83. package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
  84. package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
  85. package/coverage/lcov-report/automations/steps/index.html +1 -1
  86. package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
  87. package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
  88. package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
  89. package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
  90. package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
  91. package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
  92. package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
  93. package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
  94. package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
  95. package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
  96. package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
  97. package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
  98. package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
  99. package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
  100. package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
  101. package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
  102. package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
  103. package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
  104. package/coverage/lcov-report/automations/triggers.js.html +4 -4
  105. package/coverage/lcov-report/constants/index.html +1 -1
  106. package/coverage/lcov-report/constants/index.js.html +1 -1
  107. package/coverage/lcov-report/constants/layouts.js.html +1 -1
  108. package/coverage/lcov-report/constants/screens.js.html +1 -1
  109. package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
  110. package/coverage/lcov-report/db/index.html +10 -10
  111. package/coverage/lcov-report/db/index.js.html +1 -1
  112. package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
  113. package/coverage/lcov-report/db/linkedRows/index.html +1 -1
  114. package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
  115. package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
  116. package/coverage/lcov-report/db/newid.js.html +1 -1
  117. package/coverage/lcov-report/db/utils.js.html +9 -6
  118. package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
  119. package/coverage/lcov-report/events/index.html +1 -1
  120. package/coverage/lcov-report/events/index.js.html +1 -1
  121. package/coverage/lcov-report/events/utils.js.html +1 -1
  122. package/coverage/lcov-report/index.html +51 -51
  123. package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
  124. package/coverage/lcov-report/integrations/tests/index.html +1 -1
  125. package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
  126. package/coverage/lcov-report/middleware/builder.js.html +1 -1
  127. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  128. package/coverage/lcov-report/middleware/index.html +1 -1
  129. package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
  130. package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
  131. package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
  132. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  133. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  134. package/coverage/lcov-report/threads/automation.js.html +2 -2
  135. package/coverage/lcov-report/threads/index.html +1 -1
  136. package/coverage/lcov-report/threads/query.js.html +1 -1
  137. package/coverage/lcov-report/threads/utils.js.html +1 -1
  138. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  139. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  140. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  141. package/coverage/lcov-report/utilities/global.js.html +1 -1
  142. package/coverage/lcov-report/utilities/index.html +15 -15
  143. package/coverage/lcov-report/utilities/index.js.html +27 -9
  144. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  145. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  146. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  147. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  148. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  151. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  152. package/coverage/lcov-report/utilities/security.js.html +1 -1
  153. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  154. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  157. package/coverage/lcov-report/utilities/users.js.html +1 -1
  158. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  159. package/coverage/lcov.info +787 -694
  160. package/dist/api/controllers/application.js +1 -1
  161. package/dist/api/controllers/backup.js +3 -2
  162. package/dist/api/controllers/dev.js +40 -2
  163. package/dist/api/controllers/row/external.js +19 -7
  164. package/dist/api/controllers/row/internalSearch.js +22 -1
  165. package/dist/api/controllers/row/utils.js +3 -0
  166. package/dist/api/controllers/static/index.js +31 -2
  167. package/dist/api/routes/dev.js +2 -1
  168. package/dist/api/routes/static.js +1 -0
  169. package/dist/automations/automationUtils.js +16 -4
  170. package/dist/automations/triggers.js +1 -1
  171. package/dist/db/utils.js +1 -0
  172. package/dist/definitions/datasource.js +1 -0
  173. package/dist/environment.js +2 -1
  174. package/dist/integrations/airtable.js +1 -0
  175. package/dist/integrations/arangodb.js +1 -0
  176. package/dist/integrations/base/sql.js +20 -3
  177. package/dist/integrations/couchdb.js +1 -0
  178. package/dist/integrations/dynamodb.js +1 -0
  179. package/dist/integrations/elasticsearch.js +1 -0
  180. package/dist/integrations/firebase.js +1 -0
  181. package/dist/integrations/googlesheets.js +1 -0
  182. package/dist/integrations/index.js +4 -0
  183. package/dist/integrations/microsoftSqlServer.js +2 -1
  184. package/dist/integrations/mongodb.js +1 -0
  185. package/dist/integrations/mysql.js +2 -1
  186. package/dist/integrations/oracle.js +1 -0
  187. package/dist/integrations/postgres.js +2 -1
  188. package/dist/integrations/redis.js +1 -0
  189. package/dist/integrations/rest.js +1 -0
  190. package/dist/integrations/s3.js +1 -0
  191. package/dist/integrations/snowflake.js +102 -0
  192. package/dist/package.json +7 -6
  193. package/dist/threads/automation.js +1 -1
  194. package/dist/tsconfig.build.tsbuildinfo +1 -1
  195. package/dist/utilities/fileSystem/index.js +16 -6
  196. package/dist/utilities/fileSystem/utilities.js +2 -1
  197. package/dist/utilities/index.js +5 -1
  198. package/package.json +8 -7
  199. package/scripts/integrations/oracle/instantclient/linux/arm64/basiclite-19.10.zip +0 -0
  200. package/scripts/integrations/oracle/instantclient/linux/arm64/install.sh +23 -0
  201. package/scripts/integrations/oracle/instantclient/linux/install.sh +10 -0
  202. package/src/api/controllers/application.ts +5 -1
  203. package/src/api/controllers/backup.js +3 -2
  204. package/src/api/controllers/dev.js +53 -2
  205. package/src/api/controllers/row/external.js +19 -9
  206. package/src/api/controllers/row/internalSearch.js +28 -0
  207. package/src/api/controllers/row/utils.js +3 -0
  208. package/src/api/controllers/static/index.js +41 -2
  209. package/src/api/routes/dev.js +1 -0
  210. package/src/api/routes/static.ts +1 -0
  211. package/src/automations/automationUtils.js +19 -4
  212. package/src/automations/triggers.js +1 -1
  213. package/src/db/utils.js +1 -0
  214. package/src/definitions/common.ts +1 -0
  215. package/src/definitions/datasource.ts +2 -0
  216. package/src/environment.js +3 -1
  217. package/src/integrations/airtable.ts +1 -0
  218. package/src/integrations/arangodb.ts +1 -0
  219. package/src/integrations/base/sql.ts +25 -11
  220. package/src/integrations/couchdb.ts +1 -0
  221. package/src/integrations/dynamodb.ts +1 -0
  222. package/src/integrations/elasticsearch.ts +1 -0
  223. package/src/integrations/firebase.ts +1 -0
  224. package/src/integrations/googlesheets.ts +1 -0
  225. package/src/integrations/index.ts +4 -0
  226. package/src/integrations/microsoftSqlServer.ts +2 -0
  227. package/src/integrations/mongodb.ts +1 -0
  228. package/src/integrations/mysql.ts +2 -0
  229. package/src/integrations/oracle.ts +1 -0
  230. package/src/integrations/postgres.ts +2 -0
  231. package/src/integrations/redis.ts +1 -0
  232. package/src/integrations/rest.ts +1 -0
  233. package/src/integrations/s3.ts +1 -0
  234. package/src/integrations/snowflake.ts +99 -0
  235. package/src/threads/automation.js +1 -1
  236. package/src/utilities/fileSystem/index.js +22 -8
  237. package/src/utilities/fileSystem/utilities.js +2 -0
  238. package/src/utilities/index.js +7 -1
  239. package/builder/assets/index.24307ca0.css +0 -6
  240. package/builder/assets/index.4c5e5a40.js +0 -1315
@@ -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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
235
+ at Fri Jul 01 2022 10:11: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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
247
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
248
248
  </div>
249
249
  <script src="../../prettify.js"></script>
250
250
  <script>
@@ -826,7 +826,7 @@ exports.test = async function (ctx) {
826
826
  <div class='footer quiet pad2 space-top1 center small'>
827
827
  Code coverage generated by
828
828
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
829
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
829
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
830
830
  </div>
831
831
  <script src="../../prettify.js"></script>
832
832
  <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'>13/13</span>
28
+ <span class='fraction'>14/14</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'>13/13</span>
49
+ <span class='fraction'>14/14</span>
50
50
  </div>
51
51
 
52
52
 
@@ -80,7 +80,8 @@
80
80
  <a name='L15'></a><a href='#L15'>15</a>
81
81
  <a name='L16'></a><a href='#L16'>16</a>
82
82
  <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">27x</span>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">27x</span>
84
85
  <span class="cline-any cline-yes">27x</span>
85
86
  <span class="cline-any cline-yes">27x</span>
86
87
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -90,6 +91,7 @@
90
91
  <span class="cline-any cline-yes">1x</span>
91
92
  <span class="cline-any cline-yes">1x</span>
92
93
  <span class="cline-any cline-yes">1x</span>
94
+ <span class="cline-any cline-yes">1x</span>
93
95
  <span class="cline-any cline-neutral">&nbsp;</span>
94
96
  <span class="cline-any cline-yes">1x</span>
95
97
  <span class="cline-any cline-yes">1x</span>
@@ -102,11 +104,12 @@ const { events, context } = require("@budibase/backend-core")
102
104
  const { DocumentTypes } = require("../../db/utils")
103
105
  &nbsp;
104
106
  exports.exportAppDump = async function (ctx) {
105
- const { appId } = ctx.query
107
+ let { appId, excludeRows } = ctx.query
106
108
  const appName = decodeURI(ctx.query.appname)
109
+ excludeRows = excludeRows === "true"
107
110
  const backupIdentifier = `${appName}-export-${new Date().getTime()}.txt`
108
111
  ctx.attachment(backupIdentifier)
109
- ctx.body = await streamBackup(appId)
112
+ ctx.body = await streamBackup(appId, excludeRows)
110
113
  &nbsp;
111
114
  await context.doInAppContext(appId, async () =&gt; {
112
115
  const appDb = context.getAppDB()
@@ -121,7 +124,7 @@ exports.exportAppDump = async function (ctx) {
121
124
  <div class='footer quiet pad2 space-top1 center small'>
122
125
  Code coverage generated by
123
126
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
124
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
127
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
125
128
  </div>
126
129
  <script src="../../prettify.js"></script>
127
130
  <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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
412
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
413
413
  </div>
414
414
  <script src="../../prettify.js"></script>
415
415
  <script>
@@ -172,7 +172,7 @@ exports.fetchAppComponentDefinitions = async function (ctx) {
172
172
  <div class='footer quiet pad2 space-top1 center small'>
173
173
  Code coverage generated by
174
174
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
175
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
175
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
176
176
  </div>
177
177
  <script src="../../prettify.js"></script>
178
178
  <script>
@@ -859,7 +859,7 @@ const buildSchemaHelper = <span class="fstat-no" title="function not covered" >a
859
859
  <div class='footer quiet pad2 space-top1 center small'>
860
860
  Code coverage generated by
861
861
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
862
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
862
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
863
863
  </div>
864
864
  <script src="../../prettify.js"></script>
865
865
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">60% </span>
26
+ <span class="strong">45.26% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>42/70</span>
28
+ <span class='fraction'>43/95</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">29.41% </span>
33
+ <span class="strong">20% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/17</span>
35
+ <span class='fraction'>5/25</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">50% </span>
40
+ <span class="strong">41.66% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>5/10</span>
42
+ <span class='fraction'>5/12</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">60% </span>
47
+ <span class="strong">45.26% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>42/70</span>
49
+ <span class='fraction'>43/95</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line medium'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -198,11 +198,66 @@
198
198
  <a name='L133'></a><a href='#L133'>133</a>
199
199
  <a name='L134'></a><a href='#L134'>134</a>
200
200
  <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">27x</span>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">27x</span>
202
253
  <span class="cline-any cline-yes">27x</span>
203
254
  <span class="cline-any cline-yes">27x</span>
204
255
  <span class="cline-any cline-yes">27x</span>
205
256
  <span class="cline-any cline-yes">27x</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-neutral">&nbsp;</span>
260
+ <span class="cline-any cline-neutral">&nbsp;</span>
206
261
  <span class="cline-any cline-yes">27x</span>
207
262
  <span class="cline-any cline-yes">27x</span>
208
263
  <span class="cline-any cline-yes">27x</span>
@@ -333,13 +388,64 @@
333
388
  <span class="cline-any cline-neutral">&nbsp;</span>
334
389
  <span class="cline-any cline-yes">1x</span>
335
390
  <span class="cline-any cline-neutral">&nbsp;</span>
391
+ <span class="cline-any cline-neutral">&nbsp;</span>
392
+ <span class="cline-any cline-neutral">&nbsp;</span>
393
+ <span class="cline-any cline-yes">27x</span>
394
+ <span class="cline-any cline-neutral">&nbsp;</span>
395
+ <span class="cline-any cline-no">&nbsp;</span>
396
+ <span class="cline-any cline-no">&nbsp;</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
398
+ <span class="cline-any cline-no">&nbsp;</span>
399
+ <span class="cline-any cline-neutral">&nbsp;</span>
400
+ <span class="cline-any cline-no">&nbsp;</span>
401
+ <span class="cline-any cline-neutral">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-no">&nbsp;</span>
404
+ <span class="cline-any cline-neutral">&nbsp;</span>
405
+ <span class="cline-any cline-neutral">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
407
+ <span class="cline-any cline-no">&nbsp;</span>
408
+ <span class="cline-any cline-no">&nbsp;</span>
409
+ <span class="cline-any cline-neutral">&nbsp;</span>
410
+ <span class="cline-any cline-neutral">&nbsp;</span>
411
+ <span class="cline-any cline-no">&nbsp;</span>
412
+ <span class="cline-any cline-no">&nbsp;</span>
413
+ <span class="cline-any cline-no">&nbsp;</span>
414
+ <span class="cline-any cline-neutral">&nbsp;</span>
415
+ <span class="cline-any cline-no">&nbsp;</span>
416
+ <span class="cline-any cline-no">&nbsp;</span>
417
+ <span class="cline-any cline-no">&nbsp;</span>
418
+ <span class="cline-any cline-neutral">&nbsp;</span>
419
+ <span class="cline-any cline-neutral">&nbsp;</span>
420
+ <span class="cline-any cline-neutral">&nbsp;</span>
421
+ <span class="cline-any cline-neutral">&nbsp;</span>
422
+ <span class="cline-any cline-neutral">&nbsp;</span>
423
+ <span class="cline-any cline-no">&nbsp;</span>
424
+ <span class="cline-any cline-neutral">&nbsp;</span>
425
+ <span class="cline-any cline-no">&nbsp;</span>
426
+ <span class="cline-any cline-no">&nbsp;</span>
427
+ <span class="cline-any cline-no">&nbsp;</span>
428
+ <span class="cline-any cline-no">&nbsp;</span>
429
+ <span class="cline-any cline-no">&nbsp;</span>
430
+ <span class="cline-any cline-neutral">&nbsp;</span>
431
+ <span class="cline-any cline-neutral">&nbsp;</span>
432
+ <span class="cline-any cline-no">&nbsp;</span>
433
+ <span class="cline-any cline-neutral">&nbsp;</span>
434
+ <span class="cline-any cline-no">&nbsp;</span>
435
+ <span class="cline-any cline-no">&nbsp;</span>
436
+ <span class="cline-any cline-neutral">&nbsp;</span>
437
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
438
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const fetch = require("node-fetch")
337
439
  const env = require("../../environment")
338
440
  const { checkSlashesInUrl } = require("../../utilities")
339
441
  const { request } = require("../../utilities/workerRequests")
340
442
  const { clearLock } = require("../../utilities/redis")
341
- const { Replication, getProdAppID } = require("@budibase/backend-core/db")
342
- const { DocumentTypes } = require("../../db/utils")
443
+ const {
444
+ Replication,
445
+ getProdAppID,
446
+ dangerousGetDB,
447
+ } = require("@budibase/backend-core/db")
448
+ const { DocumentTypes, getRowParams } = require("../../db/utils")
343
449
  const { app: appCache } = require("@budibase/backend-core/cache")
344
450
  const { getProdAppDB, getAppDB } = require("@budibase/backend-core/context")
345
451
  const { events } = require("@budibase/backend-core")
@@ -468,6 +574,53 @@ exports.getBudibaseVersion = async ctx =&gt; {
468
574
  }
469
575
  await events.installation.versionChecked(version)
470
576
  }
577
+ &nbsp;
578
+ // TODO: remove as part of beta program
579
+ exports.checkBetaAccess = <span class="fstat-no" title="function not covered" >as</span>ync ctx =&gt; {
580
+ // go to the cloud platform if running self hosted
581
+ <span class="cstat-no" title="statement not covered" > if (env.SELF_HOSTED || !env.MULTI_TENANCY) {</span>
582
+ let baseUrl = <span class="cstat-no" title="statement not covered" >""</span>
583
+ <span class="cstat-no" title="statement not covered" > if (env.ACCOUNT_PORTAL_URL) {</span>
584
+ <span class="cstat-no" title="statement not covered" > baseUrl = env.ACCOUNT_PORTAL_URL.replace("account.", "")</span>
585
+ } else {
586
+ <span class="cstat-no" title="statement not covered" > baseUrl = "https://budibase.app"</span>
587
+ }
588
+ &nbsp;
589
+ const response = <span class="cstat-no" title="statement not covered" >await fetch(</span>
590
+ `${baseUrl}/api/beta/access?email=${ctx.query.email}`
591
+ )
592
+ const json = <span class="cstat-no" title="statement not covered" >await response.json()</span>
593
+ <span class="cstat-no" title="statement not covered" > ctx.body = json</span>
594
+ <span class="cstat-no" title="statement not covered" > return</span>
595
+ }
596
+ &nbsp;
597
+ const userToCheck = <span class="cstat-no" title="statement not covered" >ctx.query.email</span>
598
+ const BETA_USERS_DB = <span class="cstat-no" title="statement not covered" >"app_bb_f9b77d06b9db4e3ca185476ab87a2364"</span>
599
+ const BETA_USERS_TABLE = <span class="cstat-no" title="statement not covered" >"ta_8c2c6df1c03f49cfb6340e85e066dd15"</span>
600
+ &nbsp;
601
+ <span class="cstat-no" title="statement not covered" > try {</span>
602
+ const db = <span class="cstat-no" title="statement not covered" >dangerousGetDB(BETA_USERS_DB)</span>
603
+ const betaUsers = <span class="cstat-no" title="statement not covered" >(</span>
604
+ await db.allDocs(
605
+ getRowParams(BETA_USERS_TABLE, null, {
606
+ include_docs: true,
607
+ })
608
+ )
609
+ ).rows.map(<span class="fstat-no" title="function not covered" >ro</span>w =&gt; <span class="cstat-no" title="statement not covered" >row.doc)</span>
610
+ &nbsp;
611
+ let access = <span class="cstat-no" title="statement not covered" >false</span>
612
+ <span class="cstat-no" title="statement not covered" > for (let betaUser of betaUsers) {</span>
613
+ <span class="cstat-no" title="statement not covered" > if (betaUser["Email address"].trim() === userToCheck) {</span>
614
+ <span class="cstat-no" title="statement not covered" > access = true</span>
615
+ <span class="cstat-no" title="statement not covered" > break</span>
616
+ }
617
+ }
618
+ <span class="cstat-no" title="statement not covered" > ctx.body = { access }</span>
619
+ } catch (err) {
620
+ <span class="cstat-no" title="statement not covered" > console.error(err)</span>
621
+ <span class="cstat-no" title="statement not covered" > ctx.body = { access: false }</span>
622
+ }
623
+ }
471
624
  &nbsp;</pre></td></tr></table></pre>
472
625
 
473
626
  <div class='push'></div><!-- for sticky footer -->
@@ -475,7 +628,7 @@ exports.getBudibaseVersion = async ctx =&gt; {
475
628
  <div class='footer quiet pad2 space-top1 center small'>
476
629
  Code coverage generated by
477
630
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
478
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
631
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
479
632
  </div>
480
633
  <script src="../../prettify.js"></script>
481
634
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">73.1% </span>
26
+ <span class="strong">71.38% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>704/963</span>
28
+ <span class='fraction'>706/989</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">48.22% </span>
33
+ <span class="strong">46.89% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>136/282</span>
35
+ <span class='fraction'>136/290</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">69.11% </span>
40
+ <span class="strong">68.11% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>94/136</span>
42
+ <span class='fraction'>94/138</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">73.02% </span>
47
+ <span class="strong">71.28% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>693/949</span>
49
+ <span class='fraction'>695/975</span>
50
50
  </div>
51
51
 
52
52
 
@@ -129,13 +129,13 @@
129
129
  <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
130
130
  </td>
131
131
  <td data-value="100" class="pct high">100%</td>
132
- <td data-value="13" class="abs high">13/13</td>
132
+ <td data-value="14" class="abs high">14/14</td>
133
133
  <td data-value="100" class="pct high">100%</td>
134
134
  <td data-value="0" class="abs high">0/0</td>
135
135
  <td data-value="100" class="pct high">100%</td>
136
136
  <td data-value="2" class="abs high">2/2</td>
137
137
  <td data-value="100" class="pct high">100%</td>
138
- <td data-value="13" class="abs high">13/13</td>
138
+ <td data-value="14" class="abs high">14/14</td>
139
139
  </tr>
140
140
 
141
141
  <tr>
@@ -184,18 +184,18 @@
184
184
  </tr>
185
185
 
186
186
  <tr>
187
- <td class="file medium" data-value="dev.js"><a href="dev.js.html">dev.js</a></td>
188
- <td data-value="60" class="pic medium">
189
- <div class="chart"><div class="cover-fill" style="width: 60%"></div><div class="cover-empty" style="width: 40%"></div></div>
187
+ <td class="file low" data-value="dev.js"><a href="dev.js.html">dev.js</a></td>
188
+ <td data-value="45.26" class="pic low">
189
+ <div class="chart"><div class="cover-fill" style="width: 45%"></div><div class="cover-empty" style="width: 55%"></div></div>
190
190
  </td>
191
- <td data-value="60" class="pct medium">60%</td>
192
- <td data-value="70" class="abs medium">42/70</td>
193
- <td data-value="29.41" class="pct low">29.41%</td>
194
- <td data-value="17" class="abs low">5/17</td>
195
- <td data-value="50" class="pct medium">50%</td>
196
- <td data-value="10" class="abs medium">5/10</td>
197
- <td data-value="60" class="pct medium">60%</td>
198
- <td data-value="70" class="abs medium">42/70</td>
191
+ <td data-value="45.26" class="pct low">45.26%</td>
192
+ <td data-value="95" class="abs low">43/95</td>
193
+ <td data-value="20" class="pct low">20%</td>
194
+ <td data-value="25" class="abs low">5/25</td>
195
+ <td data-value="41.66" class="pct low">41.66%</td>
196
+ <td data-value="12" class="abs low">5/12</td>
197
+ <td data-value="45.26" class="pct low">45.26%</td>
198
+ <td data-value="95" class="abs low">43/95</td>
199
199
  </tr>
200
200
 
201
201
  <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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
389
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
390
390
  </div>
391
391
  <script src="../../prettify.js"></script>
392
392
  <script>
@@ -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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
139
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  <script src="../../prettify.js"></script>
142
142
  <script>
@@ -232,7 +232,7 @@ exports.destroy = 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 Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
235
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
236
236
  </div>
237
237
  <script src="../../prettify.js"></script>
238
238
  <script>
@@ -193,7 +193,7 @@ exports.getMetadata = async ctx =&gt; {
193
193
  <div class='footer quiet pad2 space-top1 center small'>
194
194
  Code coverage generated by
195
195
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
196
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
196
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
197
197
  </div>
198
198
  <script src="../../prettify.js"></script>
199
199
  <script>
@@ -109,7 +109,7 @@ exports.fetchDefinitions = <span class="fstat-no" title="function not covered" >
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
112
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
112
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
113
113
  </div>
114
114
  <script src="../../prettify.js"></script>
115
115
  <script>
@@ -595,7 +595,7 @@ exports.removePermission = async function (ctx) {
595
595
  <div class='footer quiet pad2 space-top1 center small'>
596
596
  Code coverage generated by
597
597
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
598
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
598
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
599
599
  </div>
600
600
  <script src="../../prettify.js"></script>
601
601
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
104
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../../prettify.js"></script>
107
107
  <script>
@@ -220,7 +220,7 @@ exports.generateQueryPreviewValidation = () =&gt; {
220
220
  <div class='footer quiet pad2 space-top1 center small'>
221
221
  Code coverage generated by
222
222
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
223
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
223
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
224
224
  </div>
225
225
  <script src="../../../prettify.js"></script>
226
226
  <script>
@@ -394,7 +394,7 @@ exports.destroy = async function (ctx) {
394
394
  <div class='footer quiet pad2 space-top1 center small'>
395
395
  Code coverage generated by
396
396
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
397
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
397
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
398
398
  </div>
399
399
  <script src="../../prettify.js"></script>
400
400
  <script>
@@ -346,7 +346,7 @@ exports.clientFetch = async ctx =&gt; {
346
346
  <div class='footer quiet pad2 space-top1 center small'>
347
347
  Code coverage generated by
348
348
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
349
- at Fri Jun 24 2022 15:04:09 GMT+0000 (Coordinated Universal Time)
349
+ at Fri Jul 01 2022 10:11:26 GMT+0000 (Coordinated Universal Time)
350
350
  </div>
351
351
  <script src="../../prettify.js"></script>
352
352
  <script>