@budibase/server 0.9.186 → 0.9.190-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dockerfile +7 -1
- package/LICENSE +1 -1
- package/__mocks__/mssql.ts +1 -1
- package/__mocks__/oracledb.ts +31 -0
- package/__mocks__/pg.ts +3 -0
- package/builder/assets/bb-space-man.5be51a45.svg +290 -0
- package/builder/assets/index.43f4c913.js +1316 -0
- package/builder/assets/index.7d405e74.css +1 -0
- package/builder/assets/oracle.66592424.png +0 -0
- package/builder/assets/vendor.470042a4.js +152 -0
- package/builder/assets/vendor.5e1fe644.css +1 -0
- package/builder/index.html +4 -4
- package/coverage/clover.xml +1520 -1087
- package/coverage/coverage-final.json +93 -89
- package/coverage/lcov-report/api/controllers/analytics.js.html +2 -2
- package/coverage/lcov-report/api/controllers/apikeys.js.html +2 -2
- package/coverage/lcov-report/api/controllers/application.js.html +64 -13
- package/coverage/lcov-report/api/controllers/auth.js.html +19 -10
- package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
- 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 +232 -28
- package/coverage/lcov-report/api/controllers/dev.js.html +16 -7
- package/coverage/lcov-report/api/controllers/hosting.js.html +10 -10
- package/coverage/lcov-report/api/controllers/index.html +91 -91
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +3 -3
- package/coverage/lcov-report/api/controllers/metadata.js.html +3 -3
- package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
- package/coverage/lcov-report/api/controllers/query.js.html +53 -209
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +3 -3
- package/coverage/lcov-report/api/controllers/row/external.js.html +17 -8
- package/coverage/lcov-report/api/controllers/row/index.html +26 -26
- package/coverage/lcov-report/api/controllers/row/index.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/internal.js.html +9 -9
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/utils.js.html +21 -30
- package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
- package/coverage/lcov-report/api/controllers/script.js.html +3 -3
- package/coverage/lcov-report/api/controllers/table/external.js.html +1001 -0
- package/coverage/lcov-report/api/controllers/table/index.html +56 -26
- package/coverage/lcov-report/api/controllers/table/index.js.html +80 -350
- package/coverage/lcov-report/api/controllers/table/internal.js.html +545 -0
- package/coverage/lcov-report/api/controllers/table/utils.js.html +175 -52
- package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
- package/coverage/lcov-report/api/controllers/user.js.html +390 -33
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +19 -4
- package/coverage/lcov-report/api/controllers/view/index.html +22 -22
- package/coverage/lcov-report/api/controllers/view/index.js.html +52 -13
- package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -3
- package/coverage/lcov-report/api/controllers/webhook.js.html +4 -4
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- 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 +2 -2
- package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +4 -4
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- 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 +5 -2
- 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 +2 -2
- package/coverage/lcov-report/api/routes/table.js.html +35 -2
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +17 -2
- 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 +2 -2
- package/coverage/lcov-report/automations/automationUtils.js.html +4 -4
- package/coverage/lcov-report/automations/bullboard.js.html +71 -20
- package/coverage/lcov-report/automations/index.html +35 -50
- package/coverage/lcov-report/automations/index.js.html +2 -2
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +3 -3
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -3
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +14 -14
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +3 -3
- package/coverage/lcov-report/automations/steps/queryRows.js.html +3 -3
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +7 -7
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- 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 +22 -10
- package/coverage/lcov-report/automations/utils.js.html +42 -12
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +87 -21
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/client.js.html +2 -2
- package/coverage/lcov-report/db/inMemoryView.js.html +2 -2
- package/coverage/lcov-report/db/index.html +2 -2
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +6 -6
- package/coverage/lcov-report/db/linkedRows/index.html +10 -10
- package/coverage/lcov-report/db/linkedRows/index.js.html +5 -5
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +6 -6
- package/coverage/lcov-report/db/newid.js.html +3 -3
- package/coverage/lcov-report/db/utils.js.html +57 -57
- package/coverage/lcov-report/events/AutomationEmitter.js.html +6 -6
- package/coverage/lcov-report/events/index.html +6 -6
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +5 -5
- package/coverage/lcov-report/index.html +108 -93
- 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 +2 -2
- package/coverage/lcov-report/middleware/authorized.js.html +58 -34
- package/coverage/lcov-report/middleware/builder.js.html +16 -7
- package/coverage/lcov-report/middleware/currentapp.js.html +6 -6
- package/coverage/lcov-report/middleware/index.html +27 -27
- package/coverage/lcov-report/middleware/joi-validator.js.html +2 -2
- package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
- package/coverage/lcov-report/middleware/selfhost.js.html +2 -2
- package/coverage/lcov-report/middleware/usageQuota.js.html +4 -4
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/{automations/thread.js.html → threads/automation.js.html} +90 -33
- package/coverage/lcov-report/threads/index.html +141 -0
- package/coverage/lcov-report/threads/index.js.html +278 -0
- package/coverage/lcov-report/threads/query.js.html +278 -0
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +144 -15
- package/coverage/lcov-report/utilities/global.js.html +26 -11
- package/coverage/lcov-report/utilities/index.html +48 -48
- package/coverage/lcov-report/utilities/index.js.html +47 -14
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +30 -9
- package/coverage/lcov-report/utilities/queue/index.html +14 -14
- 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 +4 -4
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +2 -2
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +3 -3
- package/coverage/lcov-report/utilities/scriptRunner.js.html +16 -7
- package/coverage/lcov-report/utilities/security.js.html +3 -3
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
- package/coverage/lcov.info +2558 -1787
- package/dist/api/controllers/application.js +15 -1
- package/dist/api/controllers/auth.js +3 -3
- package/dist/api/controllers/datasource.js +67 -16
- package/dist/api/controllers/deploy/index.js +2 -0
- package/dist/api/controllers/dev.js +4 -1
- package/dist/api/controllers/query.js +30 -58
- package/dist/api/controllers/row/ExternalRequest.js +37 -14
- package/dist/api/controllers/row/external.js +3 -1
- package/dist/api/controllers/row/utils.js +6 -12
- package/dist/api/controllers/table/external.js +249 -0
- package/dist/api/controllers/table/index.js +49 -123
- package/dist/api/controllers/table/internal.js +150 -0
- package/dist/api/controllers/table/utils.js +62 -28
- package/dist/api/controllers/user.js +123 -11
- package/dist/api/controllers/view/exporters.js +4 -0
- package/dist/api/controllers/view/index.js +14 -2
- package/dist/api/routes/query.js +1 -1
- package/dist/api/routes/table.js +7 -1
- package/dist/api/routes/user.js +2 -1
- package/dist/app.js +2 -11
- package/dist/automations/bullboard.js +37 -10
- package/dist/automations/triggers.js +7 -3
- package/dist/automations/utils.js +11 -2
- package/dist/constants/index.js +19 -0
- package/dist/definitions/datasource.js +5 -0
- package/dist/environment.js +13 -0
- package/dist/integrations/base/IntegrationBase.js +2 -0
- package/dist/integrations/base/datasourcePlus.js +2 -0
- package/dist/integrations/base/sql.js +338 -180
- package/dist/integrations/base/sqlTable.js +143 -0
- package/dist/integrations/base/utils.js +30 -0
- package/dist/integrations/index.js +6 -0
- package/dist/integrations/microsoftSqlServer.js +117 -9
- package/dist/integrations/mysql.js +14 -84
- package/dist/integrations/oracle.js +345 -0
- package/dist/integrations/postgres.js +35 -28
- package/dist/integrations/utils.js +71 -9
- package/dist/middleware/authorized.js +22 -11
- package/dist/middleware/builder.js +4 -1
- package/dist/package.json +13 -8
- package/dist/tests/utilities/TestConfiguration.js +2 -1
- package/dist/{automations/thread.js → threads/automation.js} +26 -8
- package/dist/threads/index.js +64 -0
- package/dist/threads/query.js +64 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/csvParser.js +46 -5
- package/dist/utilities/global.js +6 -2
- package/dist/utilities/index.js +11 -0
- package/dist/utilities/queue/inMemoryQueue.js +8 -0
- package/dist/utilities/scriptRunner.js +4 -1
- package/package.json +14 -9
- package/scripts/dev/manage.js +1 -0
- package/scripts/integrations/mssql/data/Dockerfile +9 -0
- package/scripts/integrations/mssql/data/entrypoint.sh +24 -0
- package/scripts/integrations/mssql/data/setup.sql +54 -0
- package/scripts/integrations/mssql/docker-compose.yaml +12 -0
- package/scripts/integrations/mssql/reset.sh +3 -0
- package/scripts/integrations/oracle/docker-compose.yml +19 -0
- package/scripts/integrations/oracle/instantclient/linux/x86-64/basiclite-21.4.zip +0 -0
- package/scripts/integrations/oracle/instantclient/linux/x86-64/install.sh +23 -0
- package/scripts/integrations/oracle/oracle.md +90 -0
- package/scripts/integrations/postgres/docker-compose.yml +3 -3
- package/scripts/likeCypress.ts +33 -0
- package/src/api/controllers/application.js +18 -1
- package/src/api/controllers/auth.js +3 -0
- package/src/api/controllers/datasource.js +84 -16
- package/src/api/controllers/deploy/index.js +2 -0
- package/src/api/controllers/dev.js +4 -1
- package/src/api/controllers/query.js +29 -81
- package/src/api/controllers/row/ExternalRequest.ts +47 -16
- package/src/api/controllers/row/external.js +4 -1
- package/src/api/controllers/row/utils.js +8 -11
- package/src/api/controllers/table/external.js +307 -0
- package/src/api/controllers/table/index.js +47 -137
- package/src/api/controllers/table/internal.js +155 -0
- package/src/api/controllers/table/utils.js +74 -33
- package/src/api/controllers/user.js +132 -13
- package/src/api/controllers/view/exporters.js +5 -0
- package/src/api/controllers/view/index.js +15 -2
- package/src/api/routes/query.js +1 -0
- package/src/api/routes/table.js +11 -0
- package/src/api/routes/tests/datasource.spec.js +2 -2
- package/src/api/routes/tests/misc.spec.js +5 -1
- package/src/api/routes/tests/query.spec.js +0 -1
- package/src/api/routes/user.js +5 -0
- package/src/app.ts +2 -10
- package/src/automations/bullboard.js +28 -11
- package/src/automations/tests/automation.spec.js +3 -4
- package/src/automations/triggers.js +7 -3
- package/src/automations/utils.js +12 -2
- package/src/constants/index.js +22 -0
- package/src/definitions/common.ts +7 -1
- package/src/definitions/datasource.ts +10 -3
- package/src/environment.js +15 -0
- package/src/integrations/airtable.ts +2 -1
- package/src/integrations/arangodb.ts +2 -1
- package/src/integrations/base/IntegrationBase.ts +6 -0
- package/src/integrations/base/datasourcePlus.ts +9 -0
- package/src/integrations/base/sql.ts +362 -222
- package/src/integrations/base/sqlTable.ts +180 -0
- package/src/integrations/base/utils.ts +22 -0
- package/src/integrations/couchdb.ts +2 -1
- package/src/integrations/dynamodb.ts +2 -1
- package/src/integrations/elasticsearch.ts +2 -1
- package/src/integrations/index.ts +7 -0
- package/src/integrations/microsoftSqlServer.ts +145 -13
- package/src/integrations/mongodb.ts +2 -1
- package/src/integrations/mysql.ts +20 -94
- package/src/integrations/oracle.ts +445 -0
- package/src/integrations/postgres.ts +45 -35
- package/src/integrations/rest.ts +2 -1
- package/src/integrations/s3.ts +2 -1
- package/src/integrations/tests/microsoftSqlServer.spec.js +22 -15
- package/src/integrations/tests/oracle.spec.js +94 -0
- package/src/integrations/tests/postgres.spec.js +4 -0
- package/src/integrations/utils.ts +74 -8
- package/src/middleware/authorized.js +26 -18
- package/src/middleware/builder.js +4 -1
- package/src/middleware/tests/authorized.spec.js +2 -0
- package/src/tests/utilities/TestConfiguration.js +2 -1
- package/src/{automations/thread.js → threads/automation.js} +27 -8
- package/src/threads/index.js +66 -0
- package/src/threads/query.js +66 -0
- package/src/utilities/csvParser.js +48 -5
- package/src/utilities/global.js +7 -2
- package/src/utilities/index.js +11 -0
- package/src/utilities/queue/inMemoryQueue.js +7 -0
- package/src/utilities/scriptRunner.js +4 -1
- package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -6
- package/src/utilities/tests/csvParser.spec.js +3 -0
- package/tsconfig.json +1 -1
- package/builder/assets/index.10556cc1.js +0 -201
- package/builder/assets/index.7469e1e4.css +0 -29
- package/builder/assets/vendor.278a305c.js +0 -9
- package/builder/assets/vendor.d75d5eb7.css +0 -1
|
@@ -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">73.73% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>3281/4450</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">54.51% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>953/1748</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">71.24% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>441/619</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">73.93% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>3242/4385</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -89,92 +89,92 @@
|
|
|
89
89
|
|
|
90
90
|
<tr>
|
|
91
91
|
<td class="file medium" data-value="api/controllers"><a href="api/controllers/index.html">api/controllers</a></td>
|
|
92
|
-
<td data-value="
|
|
93
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
92
|
+
<td data-value="71.85" class="pic medium">
|
|
93
|
+
<div class="chart"><div class="cover-fill" style="width: 71%"></div><div class="cover-empty" style="width: 29%"></div></div>
|
|
94
94
|
</td>
|
|
95
|
-
<td data-value="
|
|
96
|
-
<td data-value="
|
|
97
|
-
<td data-value="
|
|
98
|
-
<td data-value="
|
|
99
|
-
<td data-value="
|
|
100
|
-
<td data-value="
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
95
|
+
<td data-value="71.85" class="pct medium">71.85%</td>
|
|
96
|
+
<td data-value="1130" class="abs medium">812/1130</td>
|
|
97
|
+
<td data-value="46.59" class="pct low">46.59%</td>
|
|
98
|
+
<td data-value="367" class="abs low">171/367</td>
|
|
99
|
+
<td data-value="71.89" class="pct medium">71.89%</td>
|
|
100
|
+
<td data-value="153" class="abs medium">110/153</td>
|
|
101
|
+
<td data-value="72.04" class="pct medium">72.04%</td>
|
|
102
|
+
<td data-value="1116" class="abs medium">804/1116</td>
|
|
103
103
|
</tr>
|
|
104
104
|
|
|
105
105
|
<tr>
|
|
106
106
|
<td class="file medium" data-value="api/controllers/row"><a href="api/controllers/row/index.html">api/controllers/row</a></td>
|
|
107
|
-
<td data-value="52.
|
|
107
|
+
<td data-value="52.6" class="pic medium">
|
|
108
108
|
<div class="chart"><div class="cover-fill" style="width: 52%"></div><div class="cover-empty" style="width: 48%"></div></div>
|
|
109
109
|
</td>
|
|
110
|
-
<td data-value="52.
|
|
111
|
-
<td data-value="
|
|
112
|
-
<td data-value="33.
|
|
113
|
-
<td data-value="
|
|
110
|
+
<td data-value="52.6" class="pct medium">52.6%</td>
|
|
111
|
+
<td data-value="595" class="abs medium">313/595</td>
|
|
112
|
+
<td data-value="33.46" class="pct low">33.46%</td>
|
|
113
|
+
<td data-value="248" class="abs low">83/248</td>
|
|
114
114
|
<td data-value="43.18" class="pct low">43.18%</td>
|
|
115
115
|
<td data-value="88" class="abs low">38/88</td>
|
|
116
|
-
<td data-value="52.
|
|
117
|
-
<td data-value="
|
|
116
|
+
<td data-value="52.65" class="pct medium">52.65%</td>
|
|
117
|
+
<td data-value="583" class="abs medium">307/583</td>
|
|
118
118
|
</tr>
|
|
119
119
|
|
|
120
120
|
<tr>
|
|
121
121
|
<td class="file medium" data-value="api/controllers/table"><a href="api/controllers/table/index.html">api/controllers/table</a></td>
|
|
122
|
-
<td data-value="
|
|
123
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
122
|
+
<td data-value="51.27" class="pic medium">
|
|
123
|
+
<div class="chart"><div class="cover-fill" style="width: 51%"></div><div class="cover-empty" style="width: 49%"></div></div>
|
|
124
124
|
</td>
|
|
125
|
-
<td data-value="
|
|
126
|
-
<td data-value="
|
|
127
|
-
<td data-value="
|
|
128
|
-
<td data-value="
|
|
129
|
-
<td data-value="
|
|
130
|
-
<td data-value="
|
|
131
|
-
<td data-value="
|
|
132
|
-
<td data-value="
|
|
125
|
+
<td data-value="51.27" class="pct medium">51.27%</td>
|
|
126
|
+
<td data-value="433" class="abs medium">222/433</td>
|
|
127
|
+
<td data-value="37.33" class="pct low">37.33%</td>
|
|
128
|
+
<td data-value="225" class="abs low">84/225</td>
|
|
129
|
+
<td data-value="48.21" class="pct low">48.21%</td>
|
|
130
|
+
<td data-value="56" class="abs low">27/56</td>
|
|
131
|
+
<td data-value="51.76" class="pct medium">51.76%</td>
|
|
132
|
+
<td data-value="425" class="abs medium">220/425</td>
|
|
133
133
|
</tr>
|
|
134
134
|
|
|
135
135
|
<tr>
|
|
136
136
|
<td class="file medium" data-value="api/controllers/view"><a href="api/controllers/view/index.html">api/controllers/view</a></td>
|
|
137
|
-
<td data-value="
|
|
138
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
137
|
+
<td data-value="74.31" class="pic medium">
|
|
138
|
+
<div class="chart"><div class="cover-fill" style="width: 74%"></div><div class="cover-empty" style="width: 26%"></div></div>
|
|
139
139
|
</td>
|
|
140
|
-
<td data-value="
|
|
141
|
-
<td data-value="
|
|
142
|
-
<td data-value="
|
|
143
|
-
<td data-value="
|
|
140
|
+
<td data-value="74.31" class="pct medium">74.31%</td>
|
|
141
|
+
<td data-value="183" class="abs medium">136/183</td>
|
|
142
|
+
<td data-value="63.85" class="pct medium">63.85%</td>
|
|
143
|
+
<td data-value="83" class="abs medium">53/83</td>
|
|
144
144
|
<td data-value="80.95" class="pct high">80.95%</td>
|
|
145
145
|
<td data-value="21" class="abs high">17/21</td>
|
|
146
|
-
<td data-value="
|
|
147
|
-
<td data-value="
|
|
146
|
+
<td data-value="74.58" class="pct medium">74.58%</td>
|
|
147
|
+
<td data-value="181" class="abs medium">135/181</td>
|
|
148
148
|
</tr>
|
|
149
149
|
|
|
150
150
|
<tr>
|
|
151
151
|
<td class="file high" data-value="api/routes"><a href="api/routes/index.html">api/routes</a></td>
|
|
152
|
-
<td data-value="97.
|
|
152
|
+
<td data-value="97.41" class="pic high">
|
|
153
153
|
<div class="chart"><div class="cover-fill" style="width: 97%"></div><div class="cover-empty" style="width: 3%"></div></div>
|
|
154
154
|
</td>
|
|
155
|
-
<td data-value="97.
|
|
155
|
+
<td data-value="97.41" class="pct high">97.41%</td>
|
|
156
156
|
<td data-value="271" class="abs high">264/271</td>
|
|
157
|
-
<td data-value="63.
|
|
157
|
+
<td data-value="63.63" class="pct medium">63.63%</td>
|
|
158
158
|
<td data-value="11" class="abs medium">7/11</td>
|
|
159
159
|
<td data-value="100" class="pct high">100%</td>
|
|
160
160
|
<td data-value="12" class="abs high">12/12</td>
|
|
161
|
-
<td data-value="97.
|
|
161
|
+
<td data-value="97.41" class="pct high">97.41%</td>
|
|
162
162
|
<td data-value="271" class="abs high">264/271</td>
|
|
163
163
|
</tr>
|
|
164
164
|
|
|
165
165
|
<tr>
|
|
166
166
|
<td class="file high" data-value="automations"><a href="automations/index.html">automations</a></td>
|
|
167
|
-
<td data-value="
|
|
168
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
167
|
+
<td data-value="84.15" class="pic high">
|
|
168
|
+
<div class="chart"><div class="cover-fill" style="width: 84%"></div><div class="cover-empty" style="width: 16%"></div></div>
|
|
169
169
|
</td>
|
|
170
|
-
<td data-value="
|
|
171
|
-
<td data-value="
|
|
172
|
-
<td data-value="
|
|
173
|
-
<td data-value="
|
|
174
|
-
<td data-value="
|
|
175
|
-
<td data-value="
|
|
176
|
-
<td data-value="
|
|
177
|
-
<td data-value="
|
|
170
|
+
<td data-value="84.15" class="pct high">84.15%</td>
|
|
171
|
+
<td data-value="202" class="abs high">170/202</td>
|
|
172
|
+
<td data-value="79.78" class="pct medium">79.78%</td>
|
|
173
|
+
<td data-value="94" class="abs medium">75/94</td>
|
|
174
|
+
<td data-value="80" class="pct high">80%</td>
|
|
175
|
+
<td data-value="25" class="abs high">20/25</td>
|
|
176
|
+
<td data-value="84.15" class="pct high">84.15%</td>
|
|
177
|
+
<td data-value="202" class="abs high">170/202</td>
|
|
178
178
|
</tr>
|
|
179
179
|
|
|
180
180
|
<tr>
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
</td>
|
|
185
185
|
<td data-value="74.27" class="pct medium">74.27%</td>
|
|
186
186
|
<td data-value="241" class="abs medium">179/241</td>
|
|
187
|
-
<td data-value="70.
|
|
187
|
+
<td data-value="70.78" class="pct medium">70.78%</td>
|
|
188
188
|
<td data-value="89" class="abs medium">63/89</td>
|
|
189
189
|
<td data-value="55" class="pct medium">55%</td>
|
|
190
190
|
<td data-value="20" class="abs medium">11/20</td>
|
|
@@ -213,13 +213,13 @@
|
|
|
213
213
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
214
214
|
</td>
|
|
215
215
|
<td data-value="100" class="pct high">100%</td>
|
|
216
|
-
<td data-value="
|
|
216
|
+
<td data-value="29" class="abs high">29/29</td>
|
|
217
217
|
<td data-value="100" class="pct high">100%</td>
|
|
218
218
|
<td data-value="0" class="abs high">0/0</td>
|
|
219
219
|
<td data-value="100" class="pct high">100%</td>
|
|
220
220
|
<td data-value="1" class="abs high">1/1</td>
|
|
221
221
|
<td data-value="100" class="pct high">100%</td>
|
|
222
|
-
<td data-value="
|
|
222
|
+
<td data-value="28" class="abs high">28/28</td>
|
|
223
223
|
</tr>
|
|
224
224
|
|
|
225
225
|
<tr>
|
|
@@ -244,11 +244,11 @@
|
|
|
244
244
|
</td>
|
|
245
245
|
<td data-value="96.46" class="pct high">96.46%</td>
|
|
246
246
|
<td data-value="311" class="abs high">300/311</td>
|
|
247
|
-
<td data-value="86.
|
|
247
|
+
<td data-value="86.02" class="pct high">86.02%</td>
|
|
248
248
|
<td data-value="136" class="abs high">117/136</td>
|
|
249
249
|
<td data-value="95" class="pct high">95%</td>
|
|
250
250
|
<td data-value="60" class="abs high">57/60</td>
|
|
251
|
-
<td data-value="96.
|
|
251
|
+
<td data-value="96.66" class="pct high">96.66%</td>
|
|
252
252
|
<td data-value="300" class="abs high">290/300</td>
|
|
253
253
|
</tr>
|
|
254
254
|
|
|
@@ -259,7 +259,7 @@
|
|
|
259
259
|
</td>
|
|
260
260
|
<td data-value="89.47" class="pct high">89.47%</td>
|
|
261
261
|
<td data-value="38" class="abs high">34/38</td>
|
|
262
|
-
<td data-value="55.
|
|
262
|
+
<td data-value="55.55" class="pct medium">55.55%</td>
|
|
263
263
|
<td data-value="18" class="abs medium">10/18</td>
|
|
264
264
|
<td data-value="87.5" class="pct high">87.5%</td>
|
|
265
265
|
<td data-value="8" class="abs high">7/8</td>
|
|
@@ -284,47 +284,62 @@
|
|
|
284
284
|
|
|
285
285
|
<tr>
|
|
286
286
|
<td class="file high" data-value="middleware"><a href="middleware/index.html">middleware</a></td>
|
|
287
|
-
<td data-value="
|
|
288
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
287
|
+
<td data-value="90.26" class="pic high">
|
|
288
|
+
<div class="chart"><div class="cover-fill" style="width: 90%"></div><div class="cover-empty" style="width: 10%"></div></div>
|
|
289
289
|
</td>
|
|
290
|
-
<td data-value="
|
|
291
|
-
<td data-value="
|
|
292
|
-
<td data-value="79.
|
|
293
|
-
<td data-value="
|
|
290
|
+
<td data-value="90.26" class="pct high">90.26%</td>
|
|
291
|
+
<td data-value="226" class="abs high">204/226</td>
|
|
292
|
+
<td data-value="79.6" class="pct medium">79.6%</td>
|
|
293
|
+
<td data-value="152" class="abs medium">121/152</td>
|
|
294
294
|
<td data-value="100" class="pct high">100%</td>
|
|
295
|
-
<td data-value="
|
|
296
|
-
<td data-value="
|
|
297
|
-
<td data-value="
|
|
295
|
+
<td data-value="29" class="abs high">29/29</td>
|
|
296
|
+
<td data-value="90.17" class="pct high">90.17%</td>
|
|
297
|
+
<td data-value="224" class="abs high">202/224</td>
|
|
298
|
+
</tr>
|
|
299
|
+
|
|
300
|
+
<tr>
|
|
301
|
+
<td class="file high" data-value="threads"><a href="threads/index.html">threads</a></td>
|
|
302
|
+
<td data-value="80.14" class="pic high">
|
|
303
|
+
<div class="chart"><div class="cover-fill" style="width: 80%"></div><div class="cover-empty" style="width: 20%"></div></div>
|
|
304
|
+
</td>
|
|
305
|
+
<td data-value="80.14" class="pct high">80.14%</td>
|
|
306
|
+
<td data-value="136" class="abs high">109/136</td>
|
|
307
|
+
<td data-value="56.6" class="pct medium">56.6%</td>
|
|
308
|
+
<td data-value="53" class="abs medium">30/53</td>
|
|
309
|
+
<td data-value="90.9" class="pct high">90.9%</td>
|
|
310
|
+
<td data-value="22" class="abs high">20/22</td>
|
|
311
|
+
<td data-value="80.59" class="pct high">80.59%</td>
|
|
312
|
+
<td data-value="134" class="abs high">108/134</td>
|
|
298
313
|
</tr>
|
|
299
314
|
|
|
300
315
|
<tr>
|
|
301
316
|
<td class="file medium" data-value="utilities"><a href="utilities/index.html">utilities</a></td>
|
|
302
|
-
<td data-value="
|
|
303
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
317
|
+
<td data-value="72.34" class="pic medium">
|
|
318
|
+
<div class="chart"><div class="cover-fill" style="width: 72%"></div><div class="cover-empty" style="width: 28%"></div></div>
|
|
304
319
|
</td>
|
|
305
|
-
<td data-value="
|
|
306
|
-
<td data-value="
|
|
307
|
-
<td data-value="54.
|
|
308
|
-
<td data-value="
|
|
309
|
-
<td data-value="
|
|
310
|
-
<td data-value="
|
|
311
|
-
<td data-value="
|
|
312
|
-
<td data-value="
|
|
320
|
+
<td data-value="72.34" class="pct medium">72.34%</td>
|
|
321
|
+
<td data-value="329" class="abs medium">238/329</td>
|
|
322
|
+
<td data-value="54.54" class="pct medium">54.54%</td>
|
|
323
|
+
<td data-value="121" class="abs medium">66/121</td>
|
|
324
|
+
<td data-value="67.74" class="pct medium">67.74%</td>
|
|
325
|
+
<td data-value="62" class="abs medium">42/62</td>
|
|
326
|
+
<td data-value="72.04" class="pct medium">72.04%</td>
|
|
327
|
+
<td data-value="322" class="abs medium">232/322</td>
|
|
313
328
|
</tr>
|
|
314
329
|
|
|
315
330
|
<tr>
|
|
316
331
|
<td class="file high" data-value="utilities/queue"><a href="utilities/queue/index.html">utilities/queue</a></td>
|
|
317
|
-
<td data-value="
|
|
318
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
332
|
+
<td data-value="85.71" class="pic high">
|
|
333
|
+
<div class="chart"><div class="cover-fill" style="width: 85%"></div><div class="cover-empty" style="width: 15%"></div></div>
|
|
319
334
|
</td>
|
|
320
|
-
<td data-value="
|
|
321
|
-
<td data-value="
|
|
335
|
+
<td data-value="85.71" class="pct high">85.71%</td>
|
|
336
|
+
<td data-value="21" class="abs high">18/21</td>
|
|
322
337
|
<td data-value="57.14" class="pct medium">57.14%</td>
|
|
323
338
|
<td data-value="7" class="abs medium">4/7</td>
|
|
339
|
+
<td data-value="75" class="pct medium">75%</td>
|
|
340
|
+
<td data-value="8" class="abs medium">6/8</td>
|
|
324
341
|
<td data-value="85.71" class="pct high">85.71%</td>
|
|
325
|
-
<td data-value="
|
|
326
|
-
<td data-value="90" class="pct high">90%</td>
|
|
327
|
-
<td data-value="20" class="abs high">18/20</td>
|
|
342
|
+
<td data-value="21" class="abs high">18/21</td>
|
|
328
343
|
</tr>
|
|
329
344
|
|
|
330
345
|
<tr>
|
|
@@ -344,12 +359,12 @@
|
|
|
344
359
|
|
|
345
360
|
<tr>
|
|
346
361
|
<td class="file medium" data-value="utilities/rowProcessor"><a href="utilities/rowProcessor/index.html">utilities/rowProcessor</a></td>
|
|
347
|
-
<td data-value="77.
|
|
362
|
+
<td data-value="77.31" class="pic medium">
|
|
348
363
|
<div class="chart"><div class="cover-fill" style="width: 77%"></div><div class="cover-empty" style="width: 23%"></div></div>
|
|
349
364
|
</td>
|
|
350
|
-
<td data-value="77.
|
|
365
|
+
<td data-value="77.31" class="pct medium">77.31%</td>
|
|
351
366
|
<td data-value="97" class="abs medium">75/97</td>
|
|
352
|
-
<td data-value="60.
|
|
367
|
+
<td data-value="60.52" class="pct medium">60.52%</td>
|
|
353
368
|
<td data-value="76" class="abs medium">46/76</td>
|
|
354
369
|
<td data-value="83.33" class="pct high">83.33%</td>
|
|
355
370
|
<td data-value="12" class="abs high">10/12</td>
|
|
@@ -365,7 +380,7 @@
|
|
|
365
380
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
366
381
|
Code coverage generated by
|
|
367
382
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
368
|
-
at
|
|
383
|
+
at Thu Nov 25 2021 12:28:23 GMT+0000 (Coordinated Universal Time)
|
|
369
384
|
</div>
|
|
370
385
|
</div>
|
|
371
386
|
<script src="prettify.js"></script>
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
65
65
|
Code coverage generated by
|
|
66
66
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
67
|
-
at
|
|
67
|
+
at Thu Nov 25 2021 12:28:23 GMT+0000 (Coordinated Universal Time)
|
|
68
68
|
</div>
|
|
69
69
|
</div>
|
|
70
70
|
<script src="../../prettify.js"></script>
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
96
96
|
Code coverage generated by
|
|
97
97
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
98
|
-
at
|
|
98
|
+
at Thu Nov 25 2021 12:28:23 GMT+0000 (Coordinated Universal Time)
|
|
99
99
|
</div>
|
|
100
100
|
</div>
|
|
101
101
|
<script src="../../prettify.js"></script>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">54.
|
|
33
|
+
<span class="strong">54.54% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
35
|
<span class='fraction'>6/11</span>
|
|
36
36
|
</div>
|
|
@@ -121,7 +121,7 @@ exports.middleware =
|
|
|
121
121
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
122
122
|
Code coverage generated by
|
|
123
123
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
124
|
-
at
|
|
124
|
+
at Thu Nov 25 2021 12:28:23 GMT+0000 (Coordinated Universal Time)
|
|
125
125
|
</div>
|
|
126
126
|
</div>
|
|
127
127
|
<script src="../prettify.js"></script>
|
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>34/34</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">89.28% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>25/28</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'>
|
|
42
|
+
<span class='fraction'>4/4</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>34/34</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -119,10 +119,21 @@
|
|
|
119
119
|
<a name='L60'></a><a href='#L60'>60</a>
|
|
120
120
|
<a name='L61'></a><a href='#L61'>61</a>
|
|
121
121
|
<a name='L62'></a><a href='#L62'>62</a>
|
|
122
|
-
<a name='L63'></a><a href='#L63'>63</a
|
|
122
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
123
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
124
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
125
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
126
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
127
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
128
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
129
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
130
|
+
<a name='L71'></a><a href='#L71'>71</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
123
131
|
<span class="cline-any cline-neutral"> </span>
|
|
124
132
|
<span class="cline-any cline-neutral"> </span>
|
|
125
133
|
<span class="cline-any cline-neutral"> </span>
|
|
134
|
+
<span class="cline-any cline-yes">24x</span>
|
|
135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
126
137
|
<span class="cline-any cline-neutral"> </span>
|
|
127
138
|
<span class="cline-any cline-yes">24x</span>
|
|
128
139
|
<span class="cline-any cline-yes">24x</span>
|
|
@@ -134,7 +145,8 @@
|
|
|
134
145
|
<span class="cline-any cline-neutral"> </span>
|
|
135
146
|
<span class="cline-any cline-yes">24x</span>
|
|
136
147
|
<span class="cline-any cline-neutral"> </span>
|
|
137
|
-
<span class="cline-any cline-yes">
|
|
148
|
+
<span class="cline-any cline-yes">2246x</span>
|
|
149
|
+
<span class="cline-any cline-neutral"> </span>
|
|
138
150
|
<span class="cline-any cline-neutral"> </span>
|
|
139
151
|
<span class="cline-any cline-yes">150x</span>
|
|
140
152
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -149,12 +161,6 @@
|
|
|
149
161
|
<span class="cline-any cline-yes">148x</span>
|
|
150
162
|
<span class="cline-any cline-neutral"> </span>
|
|
151
163
|
<span class="cline-any cline-yes">148x</span>
|
|
152
|
-
<span class="cline-any cline-yes">148x</span>
|
|
153
|
-
<span class="cline-any cline-neutral"> </span>
|
|
154
|
-
<span class="cline-any cline-neutral"> </span>
|
|
155
|
-
<span class="cline-any cline-neutral"> </span>
|
|
156
|
-
<span class="cline-any cline-neutral"> </span>
|
|
157
|
-
<span class="cline-any cline-neutral"> </span>
|
|
158
164
|
<span class="cline-any cline-neutral"> </span>
|
|
159
165
|
<span class="cline-any cline-yes">148x</span>
|
|
160
166
|
<span class="cline-any cline-yes">148x</span>
|
|
@@ -164,27 +170,40 @@
|
|
|
164
170
|
<span class="cline-any cline-yes">29x</span>
|
|
165
171
|
<span class="cline-any cline-neutral"> </span>
|
|
166
172
|
<span class="cline-any cline-neutral"> </span>
|
|
173
|
+
<span class="cline-any cline-neutral"> </span>
|
|
174
|
+
<span class="cline-any cline-yes">7x</span>
|
|
167
175
|
<span class="cline-any cline-yes">7x</span>
|
|
168
176
|
<span class="cline-any cline-neutral"> </span>
|
|
169
177
|
<span class="cline-any cline-neutral"> </span>
|
|
178
|
+
<span class="cline-any cline-yes">7x</span>
|
|
179
|
+
<span class="cline-any cline-yes">7x</span>
|
|
180
|
+
<span class="cline-any cline-yes">7x</span>
|
|
181
|
+
<span class="cline-any cline-yes">3x</span>
|
|
182
|
+
<span class="cline-any cline-neutral"> </span>
|
|
170
183
|
<span class="cline-any cline-neutral"> </span>
|
|
184
|
+
<span class="cline-any cline-yes">7x</span>
|
|
185
|
+
<span class="cline-any cline-yes">1x</span>
|
|
171
186
|
<span class="cline-any cline-yes">1x</span>
|
|
172
187
|
<span class="cline-any cline-neutral"> </span>
|
|
173
|
-
<span class="cline-any cline-
|
|
188
|
+
<span class="cline-any cline-yes">1x</span>
|
|
174
189
|
<span class="cline-any cline-yes">6x</span>
|
|
175
190
|
<span class="cline-any cline-yes">6x</span>
|
|
176
191
|
<span class="cline-any cline-neutral"> </span>
|
|
177
192
|
<span class="cline-any cline-neutral"> </span>
|
|
193
|
+
<span class="cline-any cline-neutral"> </span>
|
|
178
194
|
<span class="cline-any cline-yes">4x</span>
|
|
179
195
|
<span class="cline-any cline-yes">4x</span>
|
|
180
196
|
<span class="cline-any cline-neutral"> </span>
|
|
181
197
|
<span class="cline-any cline-neutral"> </span>
|
|
182
198
|
<span class="cline-any cline-yes">4x</span>
|
|
183
199
|
<span class="cline-any cline-neutral"> </span>
|
|
184
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
200
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
201
|
+
getUserRoleHierarchy,
|
|
202
|
+
getRequiredResourceRole,
|
|
203
|
+
BUILTIN_ROLE_IDS,
|
|
204
|
+
} = require("@budibase/auth/roles")
|
|
185
205
|
const {
|
|
186
206
|
PermissionTypes,
|
|
187
|
-
doesHaveResourcePermission,
|
|
188
207
|
doesHaveBasePermission,
|
|
189
208
|
} = require("@budibase/auth/permissions")
|
|
190
209
|
const builderMiddleware = require("./builder")
|
|
@@ -198,7 +217,8 @@ module.exports =
|
|
|
198
217
|
(permType, permLevel = null) =>
|
|
199
218
|
async (ctx, next) => {
|
|
200
219
|
// webhooks don't need authentication, each webhook unique
|
|
201
|
-
|
|
220
|
+
// also internal requests (between services) don't need authorized
|
|
221
|
+
if (isWebhookEndpoint(ctx) || ctx.internal) {
|
|
202
222
|
return next()
|
|
203
223
|
}
|
|
204
224
|
|
|
@@ -211,13 +231,7 @@ module.exports =
|
|
|
211
231
|
await builderMiddleware(ctx, permType)
|
|
212
232
|
|
|
213
233
|
const isAuthed = ctx.isAuthenticated
|
|
214
|
-
const { basePermissions, permissions } = await getUserPermissions(
|
|
215
|
-
ctx.appId,
|
|
216
|
-
ctx.roleId
|
|
217
|
-
)
|
|
218
|
-
|
|
219
234
|
// builders for now have permission to do anything
|
|
220
|
-
// TODO: in future should consider separating permissions with an require("@budibase/auth").isClient check
|
|
221
235
|
let isBuilder = ctx.user && ctx.user.builder && ctx.user.builder.global
|
|
222
236
|
const isBuilderApi = permType === PermissionTypes.BUILDER
|
|
223
237
|
if (isBuilder) {
|
|
@@ -226,19 +240,29 @@ module.exports =
|
|
|
226
240
|
return ctx.throw(403, "Not Authorized")
|
|
227
241
|
}
|
|
228
242
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
243
|
+
// need to check this first, in-case public access, don't check authed until last
|
|
244
|
+
const roleId = ctx.roleId || BUILTIN_ROLE_IDS.PUBLIC
|
|
245
|
+
const hierarchy = await getUserRoleHierarchy(ctx.appId, roleId, {
|
|
246
|
+
idOnly: false,
|
|
247
|
+
})
|
|
248
|
+
const permError = "User does not have permission"
|
|
249
|
+
let possibleRoleIds = []
|
|
250
|
+
if (hasResource(ctx)) {
|
|
251
|
+
possibleRoleIds = await getRequiredResourceRole(ctx.appId, permLevel, ctx)
|
|
234
252
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
253
|
+
// check if we found a role, if not fallback to base permissions
|
|
254
|
+
if (possibleRoleIds.length > 0) {
|
|
255
|
+
const found = hierarchy.find(
|
|
256
|
+
role => possibleRoleIds.indexOf(role._id) !== -1
|
|
257
|
+
)
|
|
258
|
+
return found ? next() : <span class="branch-1 cbranch-no" title="branch not covered" >ctx.throw(403, permError)</span>
|
|
259
|
+
} else if (!doesHaveBasePermission(permType, permLevel, hierarchy)) {
|
|
260
|
+
ctx.throw(403, permError)
|
|
238
261
|
}
|
|
239
262
|
|
|
240
|
-
|
|
241
|
-
|
|
263
|
+
// if they are not authed, then anything using the authorized middleware will fail
|
|
264
|
+
if (!isAuthed) {
|
|
265
|
+
ctx.throw(403, "Session not authenticated")
|
|
242
266
|
}
|
|
243
267
|
|
|
244
268
|
return next()
|
|
@@ -250,7 +274,7 @@ module.exports =
|
|
|
250
274
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
251
275
|
Code coverage generated by
|
|
252
276
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
253
|
-
at
|
|
277
|
+
at Thu Nov 25 2021 12:28:23 GMT+0000 (Coordinated Universal Time)
|
|
254
278
|
</div>
|
|
255
279
|
</div>
|
|
256
280
|
<script src="../prettify.js"></script>
|