@budibase/server 1.0.167 → 1.0.168

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 (172) hide show
  1. package/builder/assets/{index.9ee2182c.js → index.deb4ce04.js} +1 -1
  2. package/builder/index.html +1 -1
  3. package/coverage/clover.xml +24 -11
  4. package/coverage/coverage-final.json +1 -1
  5. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  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 +1 -1
  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 +1 -1
  14. package/coverage/lcov-report/api/controllers/index.html +1 -1
  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 +1 -1
  25. package/coverage/lcov-report/api/controllers/row/index.html +1 -1
  26. package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
  27. package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
  28. package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
  29. package/coverage/lcov-report/api/controllers/row/utils.js.html +1 -1
  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 +1 -1
  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 +1 -1
  76. package/coverage/lcov-report/automations/bullboard.js.html +1 -1
  77. package/coverage/lcov-report/automations/index.html +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +18 -18
  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 +1 -1
  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/bcrypt.js.html +1 -1
  139. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  140. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  141. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  142. package/coverage/lcov-report/utilities/global.js.html +1 -1
  143. package/coverage/lcov-report/utilities/index.html +19 -19
  144. package/coverage/lcov-report/utilities/index.js.html +1 -1
  145. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  146. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  147. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  148. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  149. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  152. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  153. package/coverage/lcov-report/utilities/security.js.html +1 -1
  154. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  155. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
  157. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  158. package/coverage/lcov-report/utilities/users.js.html +73 -10
  159. package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
  160. package/coverage/lcov.info +36 -13
  161. package/dist/api/controllers/application.js +7 -0
  162. package/dist/api/controllers/public/users.js +3 -23
  163. package/dist/environment.js +5 -1
  164. package/dist/package.json +5 -5
  165. package/dist/tsconfig.build.tsbuildinfo +1 -1
  166. package/dist/utilities/users.js +21 -0
  167. package/package.json +6 -6
  168. package/scripts/load/users.js +97 -0
  169. package/src/api/controllers/application.ts +9 -0
  170. package/src/api/controllers/public/users.ts +3 -24
  171. package/src/environment.js +6 -1
  172. package/src/utilities/users.js +21 -0
@@ -136,7 +136,7 @@ exports.resolve = <span class="fstat-no" title="function not covered" >fu</span>
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 Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
139
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
140
140
  </div>
141
141
  <script src="../prettify.js"></script>
142
142
  <script>
@@ -502,7 +502,7 @@ module.exports = {
502
502
  <div class='footer quiet pad2 space-top1 center small'>
503
503
  Code coverage generated by
504
504
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
505
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
505
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
506
506
  </div>
507
507
  <script src="../prettify.js"></script>
508
508
  <script>
@@ -391,7 +391,7 @@ exports.getGlobalUsersFromMetadata = async users =&gt; {
391
391
  <div class='footer quiet pad2 space-top1 center small'>
392
392
  Code coverage generated by
393
393
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
394
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
394
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
395
395
  </div>
396
396
  <script src="../prettify.js"></script>
397
397
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">71.8% </span>
26
+ <span class="strong">71.42% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>247/344</span>
28
+ <span class='fraction'>255/357</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">57.66% </span>
33
+ <span class="strong">58.62% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>79/137</span>
35
+ <span class='fraction'>85/145</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">65.67% </span>
40
+ <span class="strong">66.17% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>44/67</span>
42
+ <span class='fraction'>45/68</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">71.51% </span>
47
+ <span class="strong">71.14% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>241/337</span>
49
+ <span class='fraction'>249/350</span>
50
50
  </div>
51
51
 
52
52
 
@@ -214,18 +214,18 @@
214
214
  </tr>
215
215
 
216
216
  <tr>
217
- <td class="file high" data-value="users.js"><a href="users.js.html">users.js</a></td>
218
- <td data-value="100" class="pic high">
219
- <div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
217
+ <td class="file medium" data-value="users.js"><a href="users.js.html">users.js</a></td>
218
+ <td data-value="79.16" class="pic medium">
219
+ <div class="chart"><div class="cover-fill" style="width: 79%"></div><div class="cover-empty" style="width: 21%"></div></div>
220
220
  </td>
221
+ <td data-value="79.16" class="pct medium">79.16%</td>
222
+ <td data-value="24" class="abs medium">19/24</td>
223
+ <td data-value="75" class="pct medium">75%</td>
224
+ <td data-value="8" class="abs medium">6/8</td>
221
225
  <td data-value="100" class="pct high">100%</td>
222
- <td data-value="11" class="abs high">11/11</td>
223
- <td data-value="100" class="pct high">100%</td>
224
- <td data-value="0" class="abs high">0/0</td>
225
- <td data-value="100" class="pct high">100%</td>
226
- <td data-value="1" class="abs high">1/1</td>
227
- <td data-value="100" class="pct high">100%</td>
228
- <td data-value="11" class="abs high">11/11</td>
226
+ <td data-value="2" class="abs high">2/2</td>
227
+ <td data-value="79.16" class="pct medium">79.16%</td>
228
+ <td data-value="24" class="abs medium">19/24</td>
229
229
  </tr>
230
230
 
231
231
  <tr>
@@ -251,7 +251,7 @@
251
251
  <div class='footer quiet pad2 space-top1 center small'>
252
252
  Code coverage generated by
253
253
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
254
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
254
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
255
255
  </div>
256
256
  <script src="../prettify.js"></script>
257
257
  <script>
@@ -559,7 +559,7 @@ exports.convertBookmark = bookmark =&gt; {
559
559
  <div class='footer quiet pad2 space-top1 center small'>
560
560
  Code coverage generated by
561
561
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
562
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
562
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
563
563
  </div>
564
564
  <script src="../prettify.js"></script>
565
565
  <script>
@@ -391,7 +391,7 @@ module.exports = InMemoryQueue
391
391
  <div class='footer quiet pad2 space-top1 center small'>
392
392
  Code coverage generated by
393
393
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
394
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
394
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
395
395
  </div>
396
396
  <script src="../../prettify.js"></script>
397
397
  <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 Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
104
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <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 Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
104
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -145,7 +145,7 @@ exports.createRoutingView = createRoutingView
145
145
  <div class='footer quiet pad2 space-top1 center small'>
146
146
  Code coverage generated by
147
147
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
148
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
148
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
149
149
  </div>
150
150
  <script src="../../prettify.js"></script>
151
151
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
119
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -1096,7 +1096,7 @@ exports.cleanupAttachments = async (table, { row, rows, oldRow, oldTable }) =&gt
1096
1096
  <div class='footer quiet pad2 space-top1 center small'>
1097
1097
  Code coverage generated by
1098
1098
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1099
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
1099
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
1100
1100
  </div>
1101
1101
  <script src="../../prettify.js"></script>
1102
1102
  <script>
@@ -271,7 +271,7 @@ exports.processFormulas = (
271
271
  <div class='footer quiet pad2 space-top1 center small'>
272
272
  Code coverage generated by
273
273
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
274
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
274
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
275
275
  </div>
276
276
  <script src="../../prettify.js"></script>
277
277
  <script>
@@ -142,7 +142,7 @@ module.exports = ScriptRunner
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
145
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
146
146
  </div>
147
147
  <script src="../prettify.js"></script>
148
148
  <script>
@@ -280,7 +280,7 @@ exports.CURRENTLY_SUPPORTED_LEVELS = CURRENTLY_SUPPORTED_LEVELS
280
280
  <div class='footer quiet pad2 space-top1 center small'>
281
281
  Code coverage generated by
282
282
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
283
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
283
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
284
284
  </div>
285
285
  <script src="../prettify.js"></script>
286
286
  <script>
@@ -91,7 +91,7 @@
91
91
  <div class='footer quiet pad2 space-top1 center small'>
92
92
  Code coverage generated by
93
93
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
94
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
94
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
95
95
  </div>
96
96
  <script src="../prettify.js"></script>
97
97
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
119
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -307,7 +307,7 @@ exports.getUniqueRows = async appIds =&gt; {
307
307
  <div class='footer quiet pad2 space-top1 center small'>
308
308
  Code coverage generated by
309
309
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
310
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
310
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
311
311
  </div>
312
312
  <script src="../../prettify.js"></script>
313
313
  <script>
@@ -124,7 +124,7 @@ function <span class="fstat-no" title="function not covered" >resetQuotasIfRequi
124
124
  <div class='footer quiet pad2 space-top1 center small'>
125
125
  Code coverage generated by
126
126
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
127
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
127
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
128
128
  </div>
129
129
  <script src="../../prettify.js"></script>
130
130
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">79.16% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>11/11</span>
28
+ <span class='fraction'>19/24</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">75% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>0/0</span>
35
+ <span class='fraction'>6/8</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">100% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/1</span>
42
+ <span class='fraction'>2/2</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">79.16% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>11/11</span>
49
+ <span class='fraction'>19/24</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 high'></div>
64
+ <div class='status-line medium'></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>
@@ -87,7 +87,29 @@
87
87
  <a name='L22'></a><a href='#L22'>22</a>
88
88
  <a name='L23'></a><a href='#L23'>23</a>
89
89
  <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">41x</span>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">41x</span>
112
+ <span class="cline-any cline-yes">41x</span>
91
113
  <span class="cline-any cline-yes">41x</span>
92
114
  <span class="cline-any cline-yes">41x</span>
93
115
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -111,9 +133,30 @@
111
133
  <span class="cline-any cline-neutral">&nbsp;</span>
112
134
  <span class="cline-any cline-neutral">&nbsp;</span>
113
135
  <span class="cline-any cline-neutral">&nbsp;</span>
136
+ <span class="cline-any cline-neutral">&nbsp;</span>
137
+ <span class="cline-any cline-yes">41x</span>
138
+ <span class="cline-any cline-yes">2x</span>
139
+ <span class="cline-any cline-no">&nbsp;</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-yes">2x</span>
142
+ <span class="cline-any cline-yes">1x</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-yes">2x</span>
145
+ <span class="cline-any cline-yes">2x</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-no">&nbsp;</span>
148
+ <span class="cline-any cline-no">&nbsp;</span>
149
+ <span class="cline-any cline-neutral">&nbsp;</span>
150
+ <span class="cline-any cline-no">&nbsp;</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
152
+ <span class="cline-any cline-no">&nbsp;</span>
153
+ <span class="cline-any cline-neutral">&nbsp;</span>
154
+ <span class="cline-any cline-yes">2x</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
156
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { InternalTables } = require("../db/utils")
115
157
  const { getGlobalUser } = require("../utilities/global")
116
158
  const { getAppDB } = require("@budibase/backend-core/context")
159
+ const { getProdAppID } = require("@budibase/backend-core/db")
117
160
  &nbsp;
118
161
  exports.getFullUser = async (ctx, userId) =&gt; {
119
162
  const global = await getGlobalUser(userId)
@@ -135,6 +178,26 @@ exports.getFullUser = async (ctx, userId) =&gt; {
135
178
  _id: userId,
136
179
  }
137
180
  }
181
+ &nbsp;
182
+ exports.publicApiUserFix = ctx =&gt; {
183
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!ctx.request.body) {
184
+ <span class="cstat-no" title="statement not covered" > return ctx</span>
185
+ }
186
+ if (!ctx.request.body._id &amp;&amp; ctx.params.userId) {
187
+ ctx.request.body._id = ctx.params.userId
188
+ }
189
+ if (!ctx.request.body.roles) {
190
+ ctx.request.body.roles = {}
191
+ } else <span class="missing-if-branch" title="else path not taken" >E</span>{
192
+ const newRoles = <span class="cstat-no" title="statement not covered" >{}</span>
193
+ <span class="cstat-no" title="statement not covered" > for (let [appId, role] of Object.entries(ctx.request.body.roles)) {</span>
194
+ // @ts-ignore
195
+ <span class="cstat-no" title="statement not covered" > newRoles[getProdAppID(appId)] = role</span>
196
+ }
197
+ <span class="cstat-no" title="statement not covered" > ctx.request.body.roles = newRoles</span>
198
+ }
199
+ return ctx
200
+ }
138
201
  &nbsp;</pre></td></tr></table></pre>
139
202
 
140
203
  <div class='push'></div><!-- for sticky footer -->
@@ -142,7 +205,7 @@ exports.getFullUser = async (ctx, userId) =&gt; {
142
205
  <div class='footer quiet pad2 space-top1 center small'>
143
206
  Code coverage generated by
144
207
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
208
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
146
209
  </div>
147
210
  <script src="../prettify.js"></script>
148
211
  <script>
@@ -487,7 +487,7 @@ exports.readGlobalUser = <span class="fstat-no" title="function not covered" >as
487
487
  <div class='footer quiet pad2 space-top1 center small'>
488
488
  Code coverage generated by
489
489
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
490
- at Wed May 18 2022 20:09:14 GMT+0000 (Coordinated Universal Time)
490
+ at Sun May 22 2022 18:30:05 GMT+0000 (Coordinated Universal Time)
491
491
  </div>
492
492
  <script src="../prettify.js"></script>
493
493
  <script>
@@ -7623,25 +7623,48 @@ BRH:0
7623
7623
  end_of_record
7624
7624
  TN:
7625
7625
  SF:src/utilities/users.js
7626
- FN:5,(anonymous_0)
7627
- FNF:1
7628
- FNH:1
7626
+ FN:6,(anonymous_0)
7627
+ FN:27,(anonymous_1)
7628
+ FNF:2
7629
+ FNH:2
7629
7630
  FNDA:2,(anonymous_0)
7631
+ FNDA:2,(anonymous_1)
7630
7632
  DA:1,41
7631
7633
  DA:2,41
7632
7634
  DA:3,41
7633
- DA:5,41
7634
- DA:6,2
7635
- DA:8,2
7636
- DA:10,2
7635
+ DA:4,41
7636
+ DA:6,41
7637
+ DA:7,2
7638
+ DA:9,2
7637
7639
  DA:11,2
7638
- DA:14,2
7640
+ DA:12,2
7639
7641
  DA:15,2
7640
- DA:17,2
7641
- LF:11
7642
- LH:11
7643
- BRF:0
7644
- BRH:0
7642
+ DA:16,2
7643
+ DA:18,2
7644
+ DA:27,41
7645
+ DA:28,2
7646
+ DA:29,0
7647
+ DA:31,2
7648
+ DA:32,1
7649
+ DA:34,2
7650
+ DA:35,2
7651
+ DA:37,0
7652
+ DA:38,0
7653
+ DA:40,0
7654
+ DA:42,0
7655
+ DA:44,2
7656
+ LF:24
7657
+ LH:19
7658
+ BRDA:28,0,0,0
7659
+ BRDA:28,0,1,2
7660
+ BRDA:31,1,0,1
7661
+ BRDA:31,1,1,1
7662
+ BRDA:31,2,0,2
7663
+ BRDA:31,2,1,2
7664
+ BRDA:34,3,0,2
7665
+ BRDA:34,3,1,0
7666
+ BRF:8
7667
+ BRH:6
7645
7668
  end_of_record
7646
7669
  TN:
7647
7670
  SF:src/utilities/workerRequests.js
@@ -385,6 +385,13 @@ const destroy = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
385
385
  });
386
386
  exports.destroy = destroy;
387
387
  const sync = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
388
+ if (environment_1.default.DISABLE_AUTO_PROD_APP_SYNC) {
389
+ ctx.status = 200;
390
+ ctx.body = {
391
+ message: "App sync disabled. You can reenable with the DISABLE_AUTO_PROD_APP_SYNC environment variable.",
392
+ };
393
+ return next();
394
+ }
388
395
  const appId = ctx.params.appId;
389
396
  if (!isDevAppID(appId)) {
390
397
  ctx.throw(400, "This action cannot be performed for production apps");
@@ -11,28 +11,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.destroy = exports.update = exports.read = exports.create = exports.search = void 0;
13
13
  const workerRequests_1 = require("../../../utilities/workerRequests");
14
+ const users_1 = require("../../../utilities/users");
14
15
  const utils_1 = require("./utils");
15
- const { getProdAppID } = require("@budibase/backend-core/db");
16
- function fixUser(ctx) {
17
- if (!ctx.request.body) {
18
- return ctx;
19
- }
20
- if (!ctx.request.body._id && ctx.params.userId) {
21
- ctx.request.body._id = ctx.params.userId;
22
- }
23
- if (!ctx.request.body.roles) {
24
- ctx.request.body.roles = {};
25
- }
26
- else {
27
- const newRoles = {};
28
- for (let [appId, role] of Object.entries(ctx.request.body.roles)) {
29
- // @ts-ignore
30
- newRoles[getProdAppID(appId)] = role;
31
- }
32
- ctx.request.body.roles = newRoles;
33
- }
34
- return ctx;
35
- }
36
16
  function getUser(ctx, userId) {
37
17
  var _a;
38
18
  if (userId) {
@@ -54,7 +34,7 @@ function search(ctx, next) {
54
34
  exports.search = search;
55
35
  function create(ctx, next) {
56
36
  return __awaiter(this, void 0, void 0, function* () {
57
- const response = yield (0, workerRequests_1.saveGlobalUser)(fixUser(ctx));
37
+ const response = yield (0, workerRequests_1.saveGlobalUser)((0, users_1.publicApiUserFix)(ctx));
58
38
  ctx.body = yield getUser(ctx, response._id);
59
39
  yield next();
60
40
  });
@@ -71,7 +51,7 @@ function update(ctx, next) {
71
51
  return __awaiter(this, void 0, void 0, function* () {
72
52
  const user = yield (0, workerRequests_1.readGlobalUser)(ctx);
73
53
  ctx.request.body = Object.assign(Object.assign({}, ctx.request.body), { _rev: user._rev });
74
- const response = yield (0, workerRequests_1.saveGlobalUser)(fixUser(ctx));
54
+ const response = yield (0, workerRequests_1.saveGlobalUser)((0, users_1.publicApiUserFix)(ctx));
75
55
  ctx.body = yield getUser(ctx, response._id);
76
56
  yield next();
77
57
  });
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ const { join } = require("path");
2
3
  function isTest() {
3
4
  return (process.env.NODE_ENV === "jest" ||
4
5
  process.env.NODE_ENV === "cypress" ||
@@ -14,7 +15,9 @@ function isCypress() {
14
15
  }
15
16
  let LOADED = false;
16
17
  if (!LOADED && isDev() && !isTest()) {
17
- require("dotenv").config();
18
+ require("dotenv").config({
19
+ path: join(__dirname, "..", ".env"),
20
+ });
18
21
  LOADED = true;
19
22
  }
20
23
  function parseIntSafe(number) {
@@ -48,6 +51,7 @@ module.exports = {
48
51
  JEST_WORKER_ID: process.env.JEST_WORKER_ID,
49
52
  BUDIBASE_ENVIRONMENT: process.env.BUDIBASE_ENVIRONMENT,
50
53
  DISABLE_ACCOUNT_PORTAL: process.env.DISABLE_ACCOUNT_PORTAL,
54
+ DISABLE_AUTO_PROD_APP_SYNC: process.env.DISABLE_AUTO_PROD_APP_SYNC,
51
55
  // minor
52
56
  SALT_ROUNDS: process.env.SALT_ROUNDS,
53
57
  LOGGER: process.env.LOGGER,
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@budibase/server",
3
3
  "email": "hi@budibase.com",
4
- "version": "1.0.166",
4
+ "version": "1.0.167",
5
5
  "description": "Budibase Web Server",
6
6
  "main": "src/index.ts",
7
7
  "repository": {
@@ -69,10 +69,10 @@
69
69
  "license": "GPL-3.0",
70
70
  "dependencies": {
71
71
  "@apidevtools/swagger-parser": "^10.0.3",
72
- "@budibase/backend-core": "^1.0.166",
73
- "@budibase/client": "^1.0.166",
74
- "@budibase/pro": "1.0.166",
75
- "@budibase/string-templates": "^1.0.166",
72
+ "@budibase/backend-core": "^1.0.167",
73
+ "@budibase/client": "^1.0.167",
74
+ "@budibase/pro": "1.0.167",
75
+ "@budibase/string-templates": "^1.0.167",
76
76
  "@bull-board/api": "^3.7.0",
77
77
  "@bull-board/koa": "^3.7.0",
78
78
  "@elastic/elasticsearch": "7.10.0",