@budibase/server 1.0.46-alpha.1 → 1.0.46-alpha.5
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.
- package/builder/assets/{index.0df4f7ab.css → index.243ca52c.css} +1 -1
- package/builder/assets/{index.d109814f.js → index.298ba3d3.js} +184 -184
- package/builder/assets/{vendor.10e2ad1b.js → vendor.3bd2f661.js} +1 -1
- package/builder/index.html +3 -3
- package/coverage/clover.xml +1685 -1534
- package/coverage/coverage-final.json +98 -94
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +192 -129
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +21 -21
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +4 -4
- package/coverage/lcov-report/api/controllers/datasource.js.html +30 -30
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +19 -34
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +6 -6
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +15 -15
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.js.html +19 -19
- package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +16 -16
- package/coverage/lcov-report/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
- package/coverage/lcov-report/api/controllers/row/internal.js.html +44 -44
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +8 -8
- package/coverage/lcov-report/api/controllers/row/utils.js.html +25 -25
- package/coverage/lcov-report/api/controllers/screen.js.html +7 -7
- package/coverage/lcov-report/api/controllers/script.js.html +4 -4
- package/coverage/lcov-report/api/controllers/table/external.js.html +12 -12
- package/coverage/lcov-report/api/controllers/table/index.html +16 -16
- package/coverage/lcov-report/api/controllers/table/index.js.html +25 -25
- package/coverage/lcov-report/api/controllers/table/internal.js.html +40 -34
- package/coverage/lcov-report/api/controllers/table/utils.js.html +76 -61
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +20 -20
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +14 -14
- package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
- package/coverage/lcov-report/api/controllers/webhook.js.html +15 -15
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +10 -10
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +7 -22
- package/coverage/lcov-report/api/routes/index.js.html +4 -10
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +17 -2
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +24 -24
- package/coverage/lcov-report/automations/automationUtils.js.html +5 -5
- package/coverage/lcov-report/automations/bullboard.js.html +16 -16
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +6 -6
- package/coverage/lcov-report/automations/steps/createRow.js.html +13 -19
- package/coverage/lcov-report/automations/steps/delay.js.html +4 -4
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +11 -20
- package/coverage/lcov-report/automations/steps/discord.js.html +7 -7
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +6 -6
- package/coverage/lcov-report/automations/steps/executeScript.js.html +6 -6
- package/coverage/lcov-report/automations/steps/filter.js.html +7 -7
- package/coverage/lcov-report/automations/steps/index.html +13 -13
- package/coverage/lcov-report/automations/steps/integromat.js.html +5 -5
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +8 -8
- package/coverage/lcov-report/automations/steps/queryRows.js.html +10 -10
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +5 -5
- package/coverage/lcov-report/automations/steps/serverLog.js.html +3 -3
- package/coverage/lcov-report/automations/steps/slack.js.html +5 -5
- package/coverage/lcov-report/automations/steps/updateRow.js.html +6 -6
- package/coverage/lcov-report/automations/steps/utils.js.html +3 -3
- package/coverage/lcov-report/automations/steps/zapier.js.html +5 -5
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/triggers.js.html +18 -18
- package/coverage/lcov-report/automations/utils.js.html +32 -32
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +22 -22
- package/coverage/lcov-report/constants/layouts.js.html +5 -5
- package/coverage/lcov-report/constants/screens.js.html +4 -4
- package/coverage/lcov-report/db/client.js.html +18 -18
- package/coverage/lcov-report/db/inMemoryView.js.html +7 -7
- package/coverage/lcov-report/db/index.html +15 -15
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +18 -18
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +31 -31
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +15 -15
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +85 -85
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +5 -5
- package/coverage/lcov-report/events/utils.js.html +3 -3
- package/coverage/lcov-report/index.html +99 -69
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +11 -11
- package/coverage/lcov-report/middleware/builder.js.html +8 -8
- package/coverage/lcov-report/middleware/currentapp.js.html +34 -61
- package/coverage/lcov-report/middleware/index.html +25 -25
- package/coverage/lcov-report/middleware/joi-validator.js.html +3 -3
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +275 -41
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/migrations/usageQuotas/index.html +141 -0
- package/coverage/lcov-report/migrations/usageQuotas/index.js.html +152 -0
- package/coverage/lcov-report/{api/routes/hosting.js.html → migrations/usageQuotas/syncApps.js.html} +42 -27
- package/coverage/lcov-report/{api/controllers/hosting.js.html → migrations/usageQuotas/syncRows.js.html} +41 -44
- package/coverage/lcov-report/threads/automation.js.html +1 -1
- package/coverage/lcov-report/threads/index.html +15 -15
- package/coverage/lcov-report/threads/index.js.html +10 -10
- package/coverage/lcov-report/threads/query.js.html +23 -8
- package/coverage/lcov-report/threads/utils.js.html +14 -14
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +7 -7
- package/coverage/lcov-report/utilities/centralPath.js.html +4 -4
- package/coverage/lcov-report/utilities/csvParser.js.html +6 -6
- package/coverage/lcov-report/utilities/global.js.html +26 -26
- package/coverage/lcov-report/utilities/index.html +19 -19
- package/coverage/lcov-report/utilities/index.js.html +25 -25
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +8 -8
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +53 -53
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +10 -10
- package/coverage/lcov-report/utilities/scriptRunner.js.html +5 -5
- package/coverage/lcov-report/utilities/security.js.html +8 -8
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +141 -0
- package/coverage/lcov-report/utilities/usageQuota/index.js.html +356 -0
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +302 -0
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +134 -0
- package/coverage/lcov-report/utilities/users.js.html +5 -5
- package/coverage/lcov-report/utilities/workerRequests.js.html +39 -108
- package/coverage/lcov.info +2415 -2154
- package/dist/api/controllers/application.js +45 -24
- package/dist/api/controllers/static/index.js +59 -10
- package/dist/api/controllers/table/internal.js +2 -0
- package/dist/api/controllers/table/utils.js +5 -0
- package/dist/api/routes/index.js +0 -2
- package/dist/api/routes/static.js +2 -1
- package/dist/automations/steps/createRow.js +2 -4
- package/dist/automations/steps/deleteRow.js +1 -4
- package/dist/environment.js +1 -0
- package/dist/integrations/rest.js +5 -5
- package/dist/integrations/s3.js +1 -1
- package/dist/integrations/utils.js +6 -3
- package/dist/middleware/currentapp.js +0 -9
- package/dist/middleware/usageQuota.js +82 -13
- package/dist/migrations/usageQuotas/index.js +24 -0
- package/dist/migrations/usageQuotas/syncApps.js +26 -0
- package/dist/migrations/usageQuotas/syncRows.js +29 -0
- package/dist/package.json +5 -5
- package/dist/tests/utilities/TestConfiguration.js +3 -1
- package/dist/threads/query.js +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/{usageQuota.js → usageQuota/index.js} +44 -31
- package/dist/utilities/usageQuota/rows.js +77 -0
- package/dist/utilities/usageQuota/usageQuoteReset.js +16 -0
- package/dist/utilities/workerRequests.js +0 -20
- package/nodemon.json +1 -1
- package/package.json +6 -6
- package/src/api/controllers/application.js +48 -27
- package/src/api/controllers/static/index.js +63 -10
- package/src/api/controllers/table/internal.js +2 -0
- package/src/api/controllers/table/utils.js +5 -0
- package/src/api/routes/index.js +0 -2
- package/src/api/routes/static.js +5 -0
- package/src/api/routes/tests/application.spec.js +2 -2
- package/src/api/routes/tests/static.spec.js +98 -0
- package/src/automations/steps/createRow.js +2 -4
- package/src/automations/steps/deleteRow.js +1 -4
- package/src/environment.js +1 -0
- package/src/integrations/rest.ts +9 -28
- package/src/integrations/s3.ts +1 -1
- package/src/integrations/utils.ts +18 -5
- package/src/middleware/currentapp.js +0 -9
- package/src/middleware/tests/usageQuota.spec.js +18 -24
- package/src/middleware/usageQuota.js +93 -15
- package/src/migrations/tests/usageQuotas/index.spec.js +27 -0
- package/src/migrations/tests/usageQuotas/syncApps.spec.js +37 -0
- package/src/migrations/tests/usageQuotas/syncRows.spec.js +43 -0
- package/src/migrations/usageQuotas/index.js +24 -0
- package/src/migrations/usageQuotas/syncApps.js +18 -0
- package/src/migrations/usageQuotas/syncRows.js +21 -0
- package/src/tests/utilities/TestConfiguration.js +3 -1
- package/src/threads/query.js +5 -0
- package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
- package/src/utilities/usageQuota/index.js +92 -0
- package/src/utilities/usageQuota/rows.js +74 -0
- package/src/utilities/usageQuota/usageQuoteReset.js +18 -0
- package/src/utilities/workerRequests.js +0 -23
- package/dist/api/controllers/hosting.js +0 -30
- package/dist/api/routes/hosting.js +0 -11
- package/src/api/controllers/hosting.js +0 -22
- package/src/api/routes/hosting.js +0 -13
- package/src/api/routes/tests/hosting.spec.js +0 -36
- package/src/utilities/usageQuota.js +0 -73
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">83.52% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>218/261</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">70.85% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>124/175</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">87.87% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>29/
|
|
42
|
+
<span class='fraction'>29/33</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">84.16% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>218/259</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -119,17 +119,17 @@
|
|
|
119
119
|
|
|
120
120
|
<tr>
|
|
121
121
|
<td class="file high" data-value="currentapp.js"><a href="currentapp.js.html">currentapp.js</a></td>
|
|
122
|
-
<td data-value="83.
|
|
122
|
+
<td data-value="83.01" class="pic high">
|
|
123
123
|
<div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
|
|
124
124
|
</td>
|
|
125
|
-
<td data-value="83.
|
|
126
|
-
<td data-value="
|
|
125
|
+
<td data-value="83.01" class="pct high">83.01%</td>
|
|
126
|
+
<td data-value="53" class="abs high">44/53</td>
|
|
127
127
|
<td data-value="78.04" class="pct medium">78.04%</td>
|
|
128
128
|
<td data-value="41" class="abs medium">32/41</td>
|
|
129
129
|
<td data-value="100" class="pct high">100%</td>
|
|
130
130
|
<td data-value="1" class="abs high">1/1</td>
|
|
131
|
-
<td data-value="83.
|
|
132
|
-
<td data-value="
|
|
131
|
+
<td data-value="83.01" class="pct high">83.01%</td>
|
|
132
|
+
<td data-value="53" class="abs high">44/53</td>
|
|
133
133
|
</tr>
|
|
134
134
|
|
|
135
135
|
<tr>
|
|
@@ -178,18 +178,18 @@
|
|
|
178
178
|
</tr>
|
|
179
179
|
|
|
180
180
|
<tr>
|
|
181
|
-
<td class="file
|
|
182
|
-
<td data-value="
|
|
183
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
181
|
+
<td class="file medium" data-value="usageQuota.js"><a href="usageQuota.js.html">usageQuota.js</a></td>
|
|
182
|
+
<td data-value="67.12" class="pic medium">
|
|
183
|
+
<div class="chart"><div class="cover-fill" style="width: 67%"></div><div class="cover-empty" style="width: 33%"></div></div>
|
|
184
184
|
</td>
|
|
185
|
-
<td data-value="
|
|
186
|
-
<td data-value="
|
|
187
|
-
<td data-value="
|
|
188
|
-
<td data-value="
|
|
189
|
-
<td data-value="
|
|
190
|
-
<td data-value="
|
|
191
|
-
<td data-value="
|
|
192
|
-
<td data-value="
|
|
185
|
+
<td data-value="67.12" class="pct medium">67.12%</td>
|
|
186
|
+
<td data-value="73" class="abs medium">49/73</td>
|
|
187
|
+
<td data-value="50.98" class="pct medium">50.98%</td>
|
|
188
|
+
<td data-value="51" class="abs medium">26/51</td>
|
|
189
|
+
<td data-value="50" class="pct medium">50%</td>
|
|
190
|
+
<td data-value="8" class="abs medium">4/8</td>
|
|
191
|
+
<td data-value="69.01" class="pct medium">69.01%</td>
|
|
192
|
+
<td data-value="71" class="abs medium">49/71</td>
|
|
193
193
|
</tr>
|
|
194
194
|
|
|
195
195
|
<tr>
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
216
216
|
Code coverage generated by
|
|
217
217
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
218
|
-
at
|
|
218
|
+
at Wed Jan 26 2022 15:03:02 GMT+0000 (Coordinated Universal Time)
|
|
219
219
|
</div>
|
|
220
220
|
</div>
|
|
221
221
|
<script src="../prettify.js"></script>
|
|
@@ -106,11 +106,11 @@
|
|
|
106
106
|
<span class="cline-any cline-neutral"> </span>
|
|
107
107
|
<span class="cline-any cline-neutral"> </span>
|
|
108
108
|
<span class="cline-any cline-neutral"> </span>
|
|
109
|
-
<span class="cline-any cline-yes">
|
|
109
|
+
<span class="cline-any cline-yes">38x</span>
|
|
110
110
|
<span class="cline-any cline-yes">230x</span>
|
|
111
111
|
<span class="cline-any cline-neutral"> </span>
|
|
112
112
|
<span class="cline-any cline-neutral"> </span>
|
|
113
|
-
<span class="cline-any cline-yes">
|
|
113
|
+
<span class="cline-any cline-yes">38x</span>
|
|
114
114
|
<span class="cline-any cline-yes">46x</span>
|
|
115
115
|
<span class="cline-any cline-neutral"> </span>
|
|
116
116
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">function validate(schema, property) {
|
|
@@ -148,7 +148,7 @@ module.exports.params = schema => {
|
|
|
148
148
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
149
149
|
Code coverage generated by
|
|
150
150
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
151
|
-
at
|
|
151
|
+
at Wed Jan 26 2022 15:03:02 GMT+0000 (Coordinated Universal Time)
|
|
152
152
|
</div>
|
|
153
153
|
</div>
|
|
154
154
|
<script src="../prettify.js"></script>
|
|
@@ -247,7 +247,7 @@ module.exports.bodySubResource = (main, sub) => {
|
|
|
247
247
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
248
248
|
Code coverage generated by
|
|
249
249
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
250
|
-
at
|
|
250
|
+
at Wed Jan 26 2022 15:03:02 GMT+0000 (Coordinated Universal Time)
|
|
251
251
|
</div>
|
|
252
252
|
</div>
|
|
253
253
|
<script src="../prettify.js"></script>
|
|
@@ -94,7 +94,7 @@ module.exports = async (ctx, next) => {
|
|
|
94
94
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
95
95
|
Code coverage generated by
|
|
96
96
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
97
|
-
at
|
|
97
|
+
at Wed Jan 26 2022 15:03:02 GMT+0000 (Coordinated Universal Time)
|
|
98
98
|
</div>
|
|
99
99
|
</div>
|
|
100
100
|
<script src="../prettify.js"></script>
|
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">67.12% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>49/73</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">50.98% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>26/51</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">50% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>4/
|
|
42
|
+
<span class='fraction'>4/8</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">69.01% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>49/71</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
57
|
</div>
|
|
58
|
-
<div class='status-line
|
|
58
|
+
<div class='status-line medium'></div>
|
|
59
59
|
<pre><table class="coverage">
|
|
60
60
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
61
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -145,16 +145,91 @@
|
|
|
145
145
|
<a name='L86'></a><a href='#L86'>86</a>
|
|
146
146
|
<a name='L87'></a><a href='#L87'>87</a>
|
|
147
147
|
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
|
-
<a name='L89'></a><a href='#L89'>89</a
|
|
149
|
-
<
|
|
148
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
153
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
154
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
155
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
158
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
159
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
160
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
161
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
162
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
163
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
164
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
165
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
166
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
167
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
168
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
169
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
170
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
171
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
172
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
173
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
174
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
175
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
176
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
177
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
178
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
179
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
180
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
181
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
182
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
183
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
184
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
185
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
186
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
187
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
188
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
189
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
190
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
191
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
192
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
193
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
194
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
195
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
196
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
197
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
198
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
199
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
200
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
201
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
202
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
203
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
204
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
205
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
206
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
207
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
208
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
209
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
210
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
211
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
212
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
213
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
214
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
215
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
216
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
217
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
218
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
219
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
220
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
221
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
222
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
223
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
224
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
225
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
226
|
+
<a name='L167'></a><a href='#L167'>167</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">24x</span>
|
|
150
227
|
<span class="cline-any cline-yes">24x</span>
|
|
151
228
|
<span class="cline-any cline-yes">24x</span>
|
|
152
229
|
<span class="cline-any cline-neutral"> </span>
|
|
153
230
|
<span class="cline-any cline-neutral"> </span>
|
|
154
231
|
<span class="cline-any cline-neutral"> </span>
|
|
155
232
|
<span class="cline-any cline-yes">24x</span>
|
|
156
|
-
<span class="cline-any cline-neutral"> </span>
|
|
157
|
-
<span class="cline-any cline-neutral"> </span>
|
|
158
233
|
<span class="cline-any cline-yes">24x</span>
|
|
159
234
|
<span class="cline-any cline-neutral"> </span>
|
|
160
235
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -176,18 +251,15 @@
|
|
|
176
251
|
<span class="cline-any cline-neutral"> </span>
|
|
177
252
|
<span class="cline-any cline-neutral"> </span>
|
|
178
253
|
<span class="cline-any cline-yes">4x</span>
|
|
179
|
-
<span class="cline-any cline-yes">
|
|
254
|
+
<span class="cline-any cline-yes">7x</span>
|
|
180
255
|
<span class="cline-any cline-yes">4x</span>
|
|
181
256
|
<span class="cline-any cline-neutral"> </span>
|
|
182
257
|
<span class="cline-any cline-neutral"> </span>
|
|
183
258
|
<span class="cline-any cline-neutral"> </span>
|
|
184
259
|
<span class="cline-any cline-neutral"> </span>
|
|
185
260
|
<span class="cline-any cline-yes">24x</span>
|
|
186
|
-
<span class="cline-any cline-yes">
|
|
187
|
-
<span class="cline-any cline-
|
|
188
|
-
<span class="cline-any cline-neutral"> </span>
|
|
189
|
-
<span class="cline-any cline-yes">11x</span>
|
|
190
|
-
<span class="cline-any cline-yes">7x</span>
|
|
261
|
+
<span class="cline-any cline-yes">10x</span>
|
|
262
|
+
<span class="cline-any cline-yes">6x</span>
|
|
191
263
|
<span class="cline-any cline-neutral"> </span>
|
|
192
264
|
<span class="cline-any cline-neutral"> </span>
|
|
193
265
|
<span class="cline-any cline-yes">4x</span>
|
|
@@ -221,10 +293,10 @@
|
|
|
221
293
|
<span class="cline-any cline-neutral"> </span>
|
|
222
294
|
<span class="cline-any cline-yes">3x</span>
|
|
223
295
|
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-
|
|
296
|
+
<span class="cline-any cline-no"> </span>
|
|
225
297
|
<span class="cline-any cline-neutral"> </span>
|
|
226
298
|
<span class="cline-any cline-neutral"> </span>
|
|
227
|
-
<span class="cline-any cline-
|
|
299
|
+
<span class="cline-any cline-no"> </span>
|
|
228
300
|
<span class="cline-any cline-neutral"> </span>
|
|
229
301
|
<span class="cline-any cline-yes">3x</span>
|
|
230
302
|
<span class="cline-any cline-yes">3x</span>
|
|
@@ -233,17 +305,98 @@
|
|
|
233
305
|
<span class="cline-any cline-no"> </span>
|
|
234
306
|
<span class="cline-any cline-neutral"> </span>
|
|
235
307
|
<span class="cline-any cline-neutral"> </span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-yes">24x</span>
|
|
310
|
+
<span class="cline-any cline-yes">3x</span>
|
|
311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
312
|
+
<span class="cline-any cline-neutral"> </span>
|
|
313
|
+
<span class="cline-any cline-neutral"> </span>
|
|
314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-yes">3x</span>
|
|
317
|
+
<span class="cline-any cline-no"> </span>
|
|
318
|
+
<span class="cline-any cline-no"> </span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-neutral"> </span>
|
|
321
|
+
<span class="cline-any cline-yes">3x</span>
|
|
322
|
+
<span class="cline-any cline-no"> </span>
|
|
323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-yes">3x</span>
|
|
328
|
+
<span class="cline-any cline-yes">3x</span>
|
|
329
|
+
<span class="cline-any cline-yes">3x</span>
|
|
330
|
+
<span class="cline-any cline-neutral"> </span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-yes">3x</span>
|
|
333
|
+
<span class="cline-any cline-no"> </span>
|
|
334
|
+
<span class="cline-any cline-no"> </span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-neutral"> </span>
|
|
337
|
+
<span class="cline-any cline-yes">3x</span>
|
|
338
|
+
<span class="cline-any cline-yes">2x</span>
|
|
339
|
+
<span class="cline-any cline-neutral"> </span>
|
|
340
|
+
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-neutral"> </span>
|
|
342
|
+
<span class="cline-any cline-neutral"> </span>
|
|
343
|
+
<span class="cline-any cline-yes">3x</span>
|
|
344
|
+
<span class="cline-any cline-yes">3x</span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-neutral"> </span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-yes">24x</span>
|
|
349
|
+
<span class="cline-any cline-no"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-no"> </span>
|
|
352
|
+
<span class="cline-any cline-no"> </span>
|
|
353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
356
|
+
<span class="cline-any cline-no"> </span>
|
|
357
|
+
<span class="cline-any cline-no"> </span>
|
|
358
|
+
<span class="cline-any cline-no"> </span>
|
|
359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-neutral"> </span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-yes">24x</span>
|
|
363
|
+
<span class="cline-any cline-neutral"> </span>
|
|
364
|
+
<span class="cline-any cline-no"> </span>
|
|
365
|
+
<span class="cline-any cline-no"> </span>
|
|
366
|
+
<span class="cline-any cline-no"> </span>
|
|
367
|
+
<span class="cline-any cline-neutral"> </span>
|
|
368
|
+
<span class="cline-any cline-neutral"> </span>
|
|
369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
370
|
+
<span class="cline-any cline-yes">24x</span>
|
|
371
|
+
<span class="cline-any cline-neutral"> </span>
|
|
372
|
+
<span class="cline-any cline-yes">2x</span>
|
|
373
|
+
<span class="cline-any cline-no"> </span>
|
|
374
|
+
<span class="cline-any cline-no"> </span>
|
|
375
|
+
<span class="cline-any cline-no"> </span>
|
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-neutral"> </span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-yes">24x</span>
|
|
380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
382
|
+
<span class="cline-any cline-neutral"> </span>
|
|
383
|
+
<span class="cline-any cline-yes">24x</span>
|
|
384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
|
+
<span class="cline-any cline-neutral"> </span>
|
|
387
|
+
<span class="cline-any cline-yes">24x</span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
389
|
+
<span class="cline-any cline-yes">24x</span>
|
|
390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
391
|
+
<span class="cline-any cline-neutral"> </span>
|
|
236
392
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../db")
|
|
237
393
|
const usageQuota = require("../utilities/usageQuota")
|
|
238
|
-
const
|
|
239
|
-
const { getTenantId } = require("@budibase/backend-core/tenancy")
|
|
394
|
+
const { getUniqueRows } = require("../utilities/usageQuota/rows")
|
|
240
395
|
const {
|
|
241
396
|
isExternalTable,
|
|
242
397
|
isRowId: isExternalRowId,
|
|
243
398
|
} = require("../integrations/utils")
|
|
244
|
-
|
|
245
|
-
// tenants without limits
|
|
246
|
-
const EXCLUDED_TENANTS = ["bb", "default", "bbtest", "bbstaging"]
|
|
399
|
+
const migration = require("../migrations/usageQuotas")
|
|
247
400
|
|
|
248
401
|
// currently only counting new writes and deletes
|
|
249
402
|
const METHOD_MAP = {
|
|
@@ -253,13 +406,13 @@ const METHOD_MAP = {
|
|
|
253
406
|
|
|
254
407
|
const DOMAIN_MAP = {
|
|
255
408
|
rows: usageQuota.Properties.ROW,
|
|
256
|
-
upload: usageQuota.Properties.UPLOAD,
|
|
257
|
-
views: usageQuota.Properties.VIEW,
|
|
258
|
-
users: usageQuota.Properties.USER,
|
|
409
|
+
// upload: usageQuota.Properties.UPLOAD, // doesn't work yet
|
|
410
|
+
// views: usageQuota.Properties.VIEW, // doesn't work yet
|
|
411
|
+
// users: usageQuota.Properties.USER, // doesn't work yet
|
|
259
412
|
applications: usageQuota.Properties.APPS,
|
|
260
413
|
// this will not be updated by endpoint calls
|
|
261
414
|
// instead it will be updated by triggerInfo
|
|
262
|
-
automationRuns: usageQuota.Properties.AUTOMATION,
|
|
415
|
+
// automationRuns: usageQuota.Properties.AUTOMATION, // doesn't work yet
|
|
263
416
|
}
|
|
264
417
|
|
|
265
418
|
function getProperty(url) {
|
|
@@ -271,10 +424,7 @@ function getProperty(url) {
|
|
|
271
424
|
}
|
|
272
425
|
|
|
273
426
|
module.exports = async (ctx, next) => {
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
// if in development or a self hosted cloud usage quotas should not be executed
|
|
277
|
-
if (env.isDev() || env.SELF_HOSTED || EXCLUDED_TENANTS.includes(tenantId)) {
|
|
427
|
+
if (!usageQuota.useQuotas()) {
|
|
278
428
|
return next()
|
|
279
429
|
}
|
|
280
430
|
|
|
@@ -307,20 +457,104 @@ module.exports = async (ctx, next) => {
|
|
|
307
457
|
}
|
|
308
458
|
|
|
309
459
|
// update usage for uploads to be the total size
|
|
310
|
-
if (property === usageQuota.Properties.UPLOAD) {
|
|
460
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (property === usageQuota.Properties.UPLOAD) {
|
|
311
461
|
const files =
|
|
312
|
-
ctx.request.files.file.length > 1
|
|
462
|
+
<span class="cstat-no" title="statement not covered" > ctx.request.files.file.length > 1</span>
|
|
313
463
|
? Array.from(ctx.request.files.file)
|
|
314
|
-
:
|
|
315
|
-
usage = files.map(
|
|
464
|
+
: [ctx.request.files.file]
|
|
465
|
+
<span class="cstat-no" title="statement not covered" > usage = files.map(<span class="fstat-no" title="function not covered" >fi</span>le => <span class="cstat-no" title="statement not covered" >file.size)</span>.reduce(<span class="fstat-no" title="function not covered" >(t</span>otal, size) => <span class="cstat-no" title="statement not covered" >total + size)</span></span>
|
|
316
466
|
}
|
|
317
467
|
try {
|
|
318
|
-
await
|
|
319
|
-
|
|
468
|
+
await migration.run()
|
|
469
|
+
await performRequest(ctx, next, property, usage)
|
|
320
470
|
} catch (err) {
|
|
321
471
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, err)</span>
|
|
322
472
|
}
|
|
323
473
|
}
|
|
474
|
+
|
|
475
|
+
const performRequest = async (ctx, next, property, usage) => {
|
|
476
|
+
const usageContext = {
|
|
477
|
+
skipNext: false,
|
|
478
|
+
skipUsage: false,
|
|
479
|
+
[usageQuota.Properties.APPS]: {},
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (usage === -1) {
|
|
483
|
+
<span class="cstat-no" title="statement not covered" > if (PRE_DELETE[property]) {</span>
|
|
484
|
+
<span class="cstat-no" title="statement not covered" > await PRE_DELETE[property](ctx, usageContext)</span>
|
|
485
|
+
}
|
|
486
|
+
} else {
|
|
487
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (PRE_CREATE[property]) {
|
|
488
|
+
<span class="cstat-no" title="statement not covered" > await PRE_CREATE[property](ctx, usageContext)</span>
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
// run the request
|
|
493
|
+
if (!usageContext.skipNext) {
|
|
494
|
+
await usageQuota.update(property, usage, { dryRun: true })
|
|
495
|
+
await next()
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (usage === -1) {
|
|
499
|
+
<span class="cstat-no" title="statement not covered" > if (POST_DELETE[property]) {</span>
|
|
500
|
+
<span class="cstat-no" title="statement not covered" > await POST_DELETE[property](ctx, usageContext)</span>
|
|
501
|
+
}
|
|
502
|
+
} else {
|
|
503
|
+
if (POST_CREATE[property]) {
|
|
504
|
+
await POST_CREATE[property](ctx, usageContext)
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
// update the usage
|
|
509
|
+
if (!usageContext.skipUsage) {
|
|
510
|
+
await usageQuota.update(property, usage)
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
const appPreDelete = <span class="fstat-no" title="function not covered" >as</span>ync (ctx, usageContext) => {
|
|
515
|
+
<span class="cstat-no" title="statement not covered" > if (ctx.query.unpublish) {</span>
|
|
516
|
+
// don't run usage decrement for unpublish
|
|
517
|
+
<span class="cstat-no" title="statement not covered" > usageContext.skipUsage = true</span>
|
|
518
|
+
<span class="cstat-no" title="statement not covered" > return</span>
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
// store the row count to delete
|
|
522
|
+
const rows = <span class="cstat-no" title="statement not covered" >await getUniqueRows([ctx.appId])</span>
|
|
523
|
+
<span class="cstat-no" title="statement not covered" > if (rows.length) {</span>
|
|
524
|
+
<span class="cstat-no" title="statement not covered" > usageContext[usageQuota.Properties.APPS] = { rowCount: rows.length }</span>
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
const appPostDelete = <span class="fstat-no" title="function not covered" >as</span>ync (ctx, usageContext) => {
|
|
529
|
+
// delete the app rows from usage
|
|
530
|
+
const rowCount = <span class="cstat-no" title="statement not covered" >usageContext[usageQuota.Properties.APPS].rowCount</span>
|
|
531
|
+
<span class="cstat-no" title="statement not covered" > if (rowCount) {</span>
|
|
532
|
+
<span class="cstat-no" title="statement not covered" > await usageQuota.update(usageQuota.Properties.ROW, -rowCount)</span>
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
const appPostCreate = async ctx => {
|
|
537
|
+
// app import & template creation
|
|
538
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.request.body.useTemplate === "true") {
|
|
539
|
+
const rows = <span class="cstat-no" title="statement not covered" >await getUniqueRows([ctx.response.body.appId])</span>
|
|
540
|
+
const rowCount = <span class="cstat-no" title="statement not covered" >rows ? rows.length : 0</span>
|
|
541
|
+
<span class="cstat-no" title="statement not covered" > await usageQuota.update(usageQuota.Properties.ROW, rowCount)</span>
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
const PRE_DELETE = {
|
|
546
|
+
[usageQuota.Properties.APPS]: appPreDelete,
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
const POST_DELETE = {
|
|
550
|
+
[usageQuota.Properties.APPS]: appPostDelete,
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
const PRE_CREATE = {}
|
|
554
|
+
|
|
555
|
+
const POST_CREATE = {
|
|
556
|
+
[usageQuota.Properties.APPS]: appPostCreate,
|
|
557
|
+
}
|
|
324
558
|
</pre></td></tr></table></pre>
|
|
325
559
|
|
|
326
560
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -328,7 +562,7 @@ module.exports = async (ctx, next) => {
|
|
|
328
562
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
329
563
|
Code coverage generated by
|
|
330
564
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
331
|
-
at
|
|
565
|
+
at Wed Jan 26 2022 15:03:02 GMT+0000 (Coordinated Universal Time)
|
|
332
566
|
</div>
|
|
333
567
|
</div>
|
|
334
568
|
<script src="../prettify.js"></script>
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
<span class="cline-any cline-neutral"> </span>
|
|
70
70
|
<span class="cline-any cline-neutral"> </span>
|
|
71
71
|
<span class="cline-any cline-yes">29x</span>
|
|
72
|
-
<span class="cline-any cline-yes">
|
|
72
|
+
<span class="cline-any cline-yes">294x</span>
|
|
73
73
|
<span class="cline-any cline-neutral"> </span>
|
|
74
74
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const WEBHOOK_ENDPOINTS = new RegExp(
|
|
75
75
|
["webhooks/trigger", "webhooks/schema"].join("|")
|
|
@@ -85,7 +85,7 @@ exports.isWebhookEndpoint = ctx => {
|
|
|
85
85
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
86
86
|
Code coverage generated by
|
|
87
87
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
88
|
-
at
|
|
88
|
+
at Wed Jan 26 2022 15:03:02 GMT+0000 (Coordinated Universal Time)
|
|
89
89
|
</div>
|
|
90
90
|
</div>
|
|
91
91
|
<script src="../prettify.js"></script>
|