@budibase/server 1.0.167 → 1.0.170

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 (175) hide show
  1. package/__mocks__/pg.ts +3 -1
  2. package/builder/assets/{index.9ee2182c.js → index.12a8256a.js} +1 -1
  3. package/builder/index.html +1 -1
  4. package/coverage/clover.xml +64 -51
  5. package/coverage/coverage-final.json +5 -5
  6. package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
  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 +1 -1
  13. package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
  14. package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
  15. package/coverage/lcov-report/api/controllers/index.html +1 -1
  16. package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  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 +1 -1
  72. package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
  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 +1 -1
  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 +1 -1
  118. package/coverage/lcov-report/db/utils.js.html +6 -6
  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 +18 -18
  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 +1 -1
  128. package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
  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 +1 -1
  133. package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
  134. package/coverage/lcov-report/middleware/utils.js.html +1 -1
  135. package/coverage/lcov-report/threads/automation.js.html +1 -1
  136. package/coverage/lcov-report/threads/index.html +1 -1
  137. package/coverage/lcov-report/threads/query.js.html +1 -1
  138. package/coverage/lcov-report/threads/utils.js.html +1 -1
  139. package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
  140. package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
  141. package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
  142. package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
  143. package/coverage/lcov-report/utilities/global.js.html +1 -1
  144. package/coverage/lcov-report/utilities/index.html +19 -19
  145. package/coverage/lcov-report/utilities/index.js.html +2 -2
  146. package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
  147. package/coverage/lcov-report/utilities/queue/index.html +1 -1
  148. package/coverage/lcov-report/utilities/routing/index.html +1 -1
  149. package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
  150. package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
  151. package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
  152. package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
  153. package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
  154. package/coverage/lcov-report/utilities/security.js.html +1 -1
  155. package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
  156. package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
  157. package/coverage/lcov-report/utilities/usageQuota/rows.js.html +23 -23
  158. package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
  159. package/coverage/lcov-report/utilities/users.js.html +73 -10
  160. package/coverage/lcov-report/utilities/workerRequests.js.html +13 -13
  161. package/coverage/lcov.info +101 -78
  162. package/dist/api/controllers/application.js +7 -0
  163. package/dist/api/controllers/public/users.js +3 -23
  164. package/dist/environment.js +5 -1
  165. package/dist/integrations/postgres.js +36 -16
  166. package/dist/package.json +5 -5
  167. package/dist/tsconfig.build.tsbuildinfo +1 -1
  168. package/dist/utilities/users.js +21 -0
  169. package/package.json +6 -6
  170. package/scripts/load/users.js +97 -0
  171. package/src/api/controllers/application.ts +9 -0
  172. package/src/api/controllers/public/users.ts +3 -24
  173. package/src/environment.js +6 -1
  174. package/src/integrations/postgres.ts +35 -14
  175. package/src/utilities/users.js +21 -0
@@ -154,30 +154,30 @@
154
154
  <span class="cline-any cline-yes">40x</span>
155
155
  <span class="cline-any cline-neutral">&nbsp;</span>
156
156
  <span class="cline-any cline-neutral">&nbsp;</span>
157
- <span class="cline-any cline-yes">35x</span>
158
- <span class="cline-any cline-yes">35x</span>
159
- <span class="cline-any cline-yes">15x</span>
160
- <span class="cline-any cline-yes">15x</span>
161
- <span class="cline-any cline-yes">13x</span>
157
+ <span class="cline-any cline-yes">36x</span>
158
+ <span class="cline-any cline-yes">36x</span>
159
+ <span class="cline-any cline-yes">16x</span>
160
+ <span class="cline-any cline-yes">16x</span>
161
+ <span class="cline-any cline-yes">14x</span>
162
162
  <span class="cline-any cline-neutral">&nbsp;</span>
163
- <span class="cline-any cline-yes">15x</span>
164
- <span class="cline-any cline-yes">13x</span>
163
+ <span class="cline-any cline-yes">16x</span>
164
+ <span class="cline-any cline-yes">14x</span>
165
165
  <span class="cline-any cline-neutral">&nbsp;</span>
166
166
  <span class="cline-any cline-yes">2x</span>
167
167
  <span class="cline-any cline-neutral">&nbsp;</span>
168
168
  <span class="cline-any cline-neutral">&nbsp;</span>
169
- <span class="cline-any cline-yes">35x</span>
169
+ <span class="cline-any cline-yes">36x</span>
170
170
  <span class="cline-any cline-neutral">&nbsp;</span>
171
171
  <span class="cline-any cline-neutral">&nbsp;</span>
172
172
  <span class="cline-any cline-yes">40x</span>
173
173
  <span class="cline-any cline-neutral">&nbsp;</span>
174
- <span class="cline-any cline-yes">15x</span>
175
- <span class="cline-any cline-yes">15x</span>
174
+ <span class="cline-any cline-yes">16x</span>
175
+ <span class="cline-any cline-yes">16x</span>
176
176
  <span class="cline-any cline-neutral">&nbsp;</span>
177
177
  <span class="cline-any cline-neutral">&nbsp;</span>
178
178
  <span class="cline-any cline-neutral">&nbsp;</span>
179
179
  <span class="cline-any cline-neutral">&nbsp;</span>
180
- <span class="cline-any cline-yes">15x</span>
180
+ <span class="cline-any cline-yes">16x</span>
181
181
  <span class="cline-any cline-yes">3x</span>
182
182
  <span class="cline-any cline-neutral">&nbsp;</span>
183
183
  <span class="cline-any cline-yes">3x</span>
@@ -196,17 +196,17 @@
196
196
  <span class="cline-any cline-neutral">&nbsp;</span>
197
197
  <span class="cline-any cline-neutral">&nbsp;</span>
198
198
  <span class="cline-any cline-yes">40x</span>
199
- <span class="cline-any cline-yes">35x</span>
200
- <span class="cline-any cline-yes">35x</span>
199
+ <span class="cline-any cline-yes">36x</span>
200
+ <span class="cline-any cline-yes">36x</span>
201
201
  <span class="cline-any cline-neutral">&nbsp;</span>
202
- <span class="cline-any cline-yes">35x</span>
203
- <span class="cline-any cline-yes">13x</span>
204
- <span class="cline-any cline-yes">13x</span>
205
- <span class="cline-any cline-yes">26x</span>
206
- <span class="cline-any cline-yes">11x</span>
202
+ <span class="cline-any cline-yes">36x</span>
203
+ <span class="cline-any cline-yes">14x</span>
204
+ <span class="cline-any cline-yes">14x</span>
205
+ <span class="cline-any cline-yes">28x</span>
206
+ <span class="cline-any cline-yes">12x</span>
207
207
  <span class="cline-any cline-neutral">&nbsp;</span>
208
- <span class="cline-any cline-yes">15x</span>
209
- <span class="cline-any cline-yes">15x</span>
208
+ <span class="cline-any cline-yes">16x</span>
209
+ <span class="cline-any cline-yes">16x</span>
210
210
  <span class="cline-any cline-neutral">&nbsp;</span>
211
211
  <span class="cline-any cline-no">&nbsp;</span>
212
212
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -216,10 +216,10 @@
216
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
217
  <span class="cline-any cline-neutral">&nbsp;</span>
218
218
  <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-yes">13x</span>
219
+ <span class="cline-any cline-yes">14x</span>
220
220
  <span class="cline-any cline-neutral">&nbsp;</span>
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
- <span class="cline-any cline-yes">35x</span>
222
+ <span class="cline-any cline-yes">36x</span>
223
223
  <span class="cline-any cline-neutral">&nbsp;</span>
224
224
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">const { getRowParams, USER_METDATA_PREFIX } = require("../../db/utils")
225
225
  const {
@@ -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 Mon May 23 2022 07:51:03 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 Mon May 23 2022 07:51:03 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 Mon May 23 2022 07:51:03 GMT+0000 (Coordinated Universal Time)
146
209
  </div>
147
210
  <script src="../prettify.js"></script>
148
211
  <script>
@@ -211,32 +211,32 @@
211
211
  <span class="cline-any cline-yes">41x</span>
212
212
  <span class="cline-any cline-neutral">&nbsp;</span>
213
213
  <span class="cline-any cline-neutral">&nbsp;</span>
214
- <span class="cline-any cline-yes">11x</span>
215
- <span class="cline-any cline-yes">11x</span>
214
+ <span class="cline-any cline-yes">12x</span>
215
+ <span class="cline-any cline-yes">12x</span>
216
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
- <span class="cline-any cline-yes">11x</span>
217
+ <span class="cline-any cline-yes">12x</span>
218
218
  <span class="cline-any cline-no">&nbsp;</span>
219
219
  <span class="cline-any cline-no">&nbsp;</span>
220
220
  <span class="cline-any cline-no">&nbsp;</span>
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
222
  <span class="cline-any cline-neutral">&nbsp;</span>
223
- <span class="cline-any cline-yes">11x</span>
223
+ <span class="cline-any cline-yes">12x</span>
224
224
  <span class="cline-any cline-no">&nbsp;</span>
225
225
  <span class="cline-any cline-no">&nbsp;</span>
226
226
  <span class="cline-any cline-neutral">&nbsp;</span>
227
227
  <span class="cline-any cline-neutral">&nbsp;</span>
228
228
  <span class="cline-any cline-neutral">&nbsp;</span>
229
229
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-yes">11x</span>
230
+ <span class="cline-any cline-yes">12x</span>
231
231
  <span class="cline-any cline-neutral">&nbsp;</span>
232
- <span class="cline-any cline-yes">11x</span>
232
+ <span class="cline-any cline-yes">12x</span>
233
233
  <span class="cline-any cline-yes">1x</span>
234
234
  <span class="cline-any cline-neutral">&nbsp;</span>
235
- <span class="cline-any cline-yes">11x</span>
235
+ <span class="cline-any cline-yes">12x</span>
236
236
  <span class="cline-any cline-neutral">&nbsp;</span>
237
237
  <span class="cline-any cline-neutral">&nbsp;</span>
238
238
  <span class="cline-any cline-neutral">&nbsp;</span>
239
- <span class="cline-any cline-yes">11x</span>
239
+ <span class="cline-any cline-yes">12x</span>
240
240
  <span class="cline-any cline-neutral">&nbsp;</span>
241
241
  <span class="cline-any cline-no">&nbsp;</span>
242
242
  <span class="cline-any cline-no">&nbsp;</span>
@@ -252,7 +252,7 @@
252
252
  <span class="cline-any cline-no">&nbsp;</span>
253
253
  <span class="cline-any cline-neutral">&nbsp;</span>
254
254
  <span class="cline-any cline-neutral">&nbsp;</span>
255
- <span class="cline-any cline-yes">11x</span>
255
+ <span class="cline-any cline-yes">12x</span>
256
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
257
  <span class="cline-any cline-neutral">&nbsp;</span>
258
258
  <span class="cline-any cline-yes">41x</span>
@@ -292,14 +292,14 @@
292
292
  <span class="cline-any cline-neutral">&nbsp;</span>
293
293
  <span class="cline-any cline-neutral">&nbsp;</span>
294
294
  <span class="cline-any cline-yes">41x</span>
295
- <span class="cline-any cline-yes">11x</span>
296
- <span class="cline-any cline-yes">11x</span>
295
+ <span class="cline-any cline-yes">12x</span>
296
+ <span class="cline-any cline-yes">12x</span>
297
297
  <span class="cline-any cline-neutral">&nbsp;</span>
298
298
  <span class="cline-any cline-neutral">&nbsp;</span>
299
299
  <span class="cline-any cline-neutral">&nbsp;</span>
300
300
  <span class="cline-any cline-neutral">&nbsp;</span>
301
301
  <span class="cline-any cline-neutral">&nbsp;</span>
302
- <span class="cline-any cline-yes">11x</span>
302
+ <span class="cline-any cline-yes">12x</span>
303
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
304
  <span class="cline-any cline-neutral">&nbsp;</span>
305
305
  <span class="cline-any cline-yes">41x</span>
@@ -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 Mon May 23 2022 07:51:03 GMT+0000 (Coordinated Universal Time)
491
491
  </div>
492
492
  <script src="../prettify.js"></script>
493
493
  <script>
@@ -5234,10 +5234,10 @@ FN:368,(anonymous_29)
5234
5234
  FNF:30
5235
5235
  FNH:25
5236
5236
  FNDA:74,(anonymous_0)
5237
- FNDA:908,getDocParams
5237
+ FNDA:909,getDocParams
5238
5238
  FNDA:220,(anonymous_2)
5239
5239
  FNDA:105,(anonymous_3)
5240
- FNDA:27,(anonymous_4)
5240
+ FNDA:28,(anonymous_4)
5241
5241
  FNDA:0,(anonymous_5)
5242
5242
  FNDA:264,(anonymous_6)
5243
5243
  FNDA:3,(anonymous_7)
@@ -5293,17 +5293,17 @@ DA:88,54
5293
5293
  DA:89,54
5294
5294
  DA:91,54
5295
5295
  DA:92,74
5296
- DA:108,908
5297
- DA:109,893
5298
- DA:111,908
5296
+ DA:108,909
5297
+ DA:109,894
5298
+ DA:111,909
5299
5299
  DA:118,54
5300
5300
  DA:123,54
5301
5301
  DA:124,220
5302
5302
  DA:131,54
5303
5303
  DA:132,105
5304
5304
  DA:143,54
5305
- DA:144,27
5306
- DA:145,15
5305
+ DA:144,28
5306
+ DA:145,16
5307
5307
  DA:148,12
5308
5308
  DA:150,12
5309
5309
  DA:158,54
@@ -5373,14 +5373,14 @@ LF:106
5373
5373
  LH:97
5374
5374
  BRDA:107,0,0,0
5375
5375
  BRDA:107,1,0,0
5376
- BRDA:108,2,0,893
5376
+ BRDA:108,2,0,894
5377
5377
  BRDA:108,2,1,15
5378
5378
  BRDA:123,3,0,0
5379
5379
  BRDA:123,4,0,0
5380
5380
  BRDA:143,5,0,0
5381
5381
  BRDA:143,6,0,0
5382
5382
  BRDA:143,7,0,0
5383
- BRDA:144,8,0,15
5383
+ BRDA:144,8,0,16
5384
5384
  BRDA:144,8,1,12
5385
5385
  BRDA:148,9,0,12
5386
5386
  BRDA:148,9,1,0
@@ -7401,7 +7401,7 @@ FNH:13
7401
7401
  FNDA:4,(anonymous_0)
7402
7402
  FNDA:4,(anonymous_1)
7403
7403
  FNDA:1,(anonymous_2)
7404
- FNDA:34,(anonymous_3)
7404
+ FNDA:35,(anonymous_3)
7405
7405
  FNDA:2,(anonymous_4)
7406
7406
  FNDA:211,(anonymous_5)
7407
7407
  FNDA:2,(anonymous_6)
@@ -7430,7 +7430,7 @@ DA:18,1
7430
7430
  DA:19,1
7431
7431
  DA:21,1
7432
7432
  DA:30,44
7433
- DA:31,34
7433
+ DA:31,35
7434
7434
  DA:38,44
7435
7435
  DA:39,2
7436
7436
  DA:41,2
@@ -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
@@ -7656,11 +7679,11 @@ FN:119,(anonymous_7)
7656
7679
  FN:130,(anonymous_8)
7657
7680
  FNF:9
7658
7681
  FNH:3
7659
- FNDA:11,request
7660
- FNDA:11,checkResponse
7682
+ FNDA:12,request
7683
+ FNDA:12,checkResponse
7661
7684
  FNDA:0,(anonymous_2)
7662
7685
  FNDA:0,(anonymous_3)
7663
- FNDA:11,(anonymous_4)
7686
+ FNDA:12,(anonymous_4)
7664
7687
  FNDA:0,(anonymous_5)
7665
7688
  FNDA:0,(anonymous_6)
7666
7689
  FNDA:0,(anonymous_7)
@@ -7672,20 +7695,20 @@ DA:4,41
7672
7695
  DA:5,41
7673
7696
  DA:6,41
7674
7697
  DA:7,41
7675
- DA:10,11
7676
- DA:11,11
7677
- DA:13,11
7698
+ DA:10,12
7699
+ DA:11,12
7700
+ DA:13,12
7678
7701
  DA:14,0
7679
7702
  DA:15,0
7680
7703
  DA:16,0
7681
- DA:19,11
7704
+ DA:19,12
7682
7705
  DA:20,0
7683
7706
  DA:21,0
7684
- DA:26,11
7685
- DA:28,11
7707
+ DA:26,12
7708
+ DA:28,12
7686
7709
  DA:29,1
7687
- DA:31,11
7688
- DA:35,11
7710
+ DA:31,12
7711
+ DA:35,12
7689
7712
  DA:37,0
7690
7713
  DA:38,0
7691
7714
  DA:40,0
@@ -7693,7 +7716,7 @@ DA:42,0
7693
7716
  DA:45,0
7694
7717
  DA:46,0
7695
7718
  DA:48,0
7696
- DA:51,11
7719
+ DA:51,12
7697
7720
  DA:54,41
7698
7721
  DA:57,41
7699
7722
  DA:59,0
@@ -7706,9 +7729,9 @@ DA:84,0
7706
7729
  DA:85,0
7707
7730
  DA:87,0
7708
7731
  DA:90,41
7709
- DA:91,11
7710
- DA:92,11
7711
- DA:98,11
7732
+ DA:91,12
7733
+ DA:92,12
7734
+ DA:98,12
7712
7735
  DA:101,41
7713
7736
  DA:102,0
7714
7737
  DA:107,0
@@ -7723,25 +7746,25 @@ DA:131,0
7723
7746
  DA:138,0
7724
7747
  LF:56
7725
7748
  LH:28
7726
- BRDA:10,0,0,11
7749
+ BRDA:10,0,0,12
7727
7750
  BRDA:10,0,1,0
7728
7751
  BRDA:13,1,0,0
7729
- BRDA:13,1,1,11
7752
+ BRDA:13,1,1,12
7730
7753
  BRDA:15,2,0,0
7731
7754
  BRDA:15,2,1,0
7732
7755
  BRDA:19,3,0,0
7733
- BRDA:19,3,1,11
7734
- BRDA:19,4,0,11
7756
+ BRDA:19,3,1,12
7757
+ BRDA:19,4,0,12
7735
7758
  BRDA:19,4,1,0
7736
7759
  BRDA:22,5,0,0
7737
7760
  BRDA:22,5,1,0
7738
7761
  BRDA:28,6,0,1
7739
- BRDA:28,6,1,10
7740
- BRDA:28,7,0,11
7741
- BRDA:28,7,1,11
7742
- BRDA:34,8,0,11
7762
+ BRDA:28,6,1,11
7763
+ BRDA:28,7,0,12
7764
+ BRDA:28,7,1,12
7765
+ BRDA:34,8,0,12
7743
7766
  BRDA:35,9,0,0
7744
- BRDA:35,9,1,11
7767
+ BRDA:35,9,1,12
7745
7768
  BRDA:43,10,0,0
7746
7769
  BRDA:43,10,1,0
7747
7770
  BRDA:45,11,0,0
@@ -8196,57 +8219,57 @@ FN:38,(anonymous_4)
8196
8219
  FN:54,(anonymous_5)
8197
8220
  FNF:6
8198
8221
  FNH:6
8199
- FNDA:35,(anonymous_0)
8200
- FNDA:15,(anonymous_1)
8201
- FNDA:15,(anonymous_2)
8222
+ FNDA:36,(anonymous_0)
8223
+ FNDA:16,(anonymous_1)
8224
+ FNDA:16,(anonymous_2)
8202
8225
  FNDA:3,(anonymous_3)
8203
8226
  FNDA:3,(anonymous_4)
8204
- FNDA:35,(anonymous_5)
8227
+ FNDA:36,(anonymous_5)
8205
8228
  DA:1,40
8206
8229
  DA:6,40
8207
8230
  DA:8,40
8208
8231
  DA:10,40
8209
- DA:13,35
8210
- DA:14,35
8211
- DA:15,15
8212
- DA:16,15
8213
- DA:17,13
8214
- DA:19,15
8215
- DA:20,13
8232
+ DA:13,36
8233
+ DA:14,36
8234
+ DA:15,16
8235
+ DA:16,16
8236
+ DA:17,14
8237
+ DA:19,16
8238
+ DA:20,14
8216
8239
  DA:22,2
8217
- DA:25,35
8240
+ DA:25,36
8218
8241
  DA:28,40
8219
- DA:30,15
8220
- DA:31,15
8221
- DA:36,15
8242
+ DA:30,16
8243
+ DA:31,16
8244
+ DA:36,16
8222
8245
  DA:37,3
8223
8246
  DA:39,3
8224
8247
  DA:40,3
8225
8248
  DA:41,0
8226
8249
  DA:44,3
8227
8250
  DA:54,40
8228
- DA:55,35
8229
- DA:56,35
8230
- DA:58,35
8231
- DA:59,13
8232
- DA:60,13
8233
- DA:61,26
8234
- DA:62,11
8235
- DA:64,15
8236
- DA:65,15
8251
+ DA:55,36
8252
+ DA:56,36
8253
+ DA:58,36
8254
+ DA:59,14
8255
+ DA:60,14
8256
+ DA:61,28
8257
+ DA:62,12
8258
+ DA:64,16
8259
+ DA:65,16
8237
8260
  DA:67,0
8238
- DA:75,13
8239
- DA:78,35
8261
+ DA:75,14
8262
+ DA:78,36
8240
8263
  LF:35
8241
8264
  LH:33
8242
- BRDA:16,0,0,13
8265
+ BRDA:16,0,0,14
8243
8266
  BRDA:16,0,1,2
8244
- BRDA:19,1,0,13
8267
+ BRDA:19,1,0,14
8245
8268
  BRDA:19,1,1,2
8246
8269
  BRDA:40,2,0,0
8247
8270
  BRDA:40,2,1,3
8248
- BRDA:61,3,0,11
8249
- BRDA:61,3,1,15
8271
+ BRDA:61,3,0,12
8272
+ BRDA:61,3,1,16
8250
8273
  BRF:8
8251
8274
  BRH:7
8252
8275
  end_of_record
@@ -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");