@budibase/server 0.9.188 → 0.9.190-alpha.2
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/__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.7d405e74.css +1 -0
- package/builder/assets/index.edea4fa5.js +1316 -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 +1507 -1081
- 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 +106 -91
- 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 +11 -8
- 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 +23 -23
- 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 +2495 -1737
- 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 +78 -34
- 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 +353 -177
- 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 +16 -85
- package/dist/integrations/oracle.js +347 -0
- package/dist/integrations/postgres.js +35 -28
- package/dist/integrations/utils.js +71 -9
- package/dist/middleware/authorized.js +2 -1
- package/dist/middleware/builder.js +4 -1
- package/dist/package.json +12 -7
- 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 +13 -8
- 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 +91 -36
- 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 +377 -218
- 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 +23 -95
- package/src/integrations/oracle.ts +458 -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 +78 -8
- package/src/middleware/authorized.js +2 -1
- package/src/middleware/builder.js +4 -1
- 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.550fdba7.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
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">30.
|
|
33
|
+
<span class="strong">30.76% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
35
|
<span class='fraction'>4/13</span>
|
|
36
36
|
</div>
|
|
@@ -181,7 +181,7 @@ exports.endUserPing = <span class="fstat-no" title="function not covered" >as</s
|
|
|
181
181
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
182
182
|
Code coverage generated by
|
|
183
183
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
184
|
-
at Thu Nov
|
|
184
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
185
185
|
</div>
|
|
186
186
|
</div>
|
|
187
187
|
<script src="../../prettify.js"></script>
|
|
@@ -205,7 +205,7 @@ exports.update = async function (ctx) {
|
|
|
205
205
|
|
|
206
206
|
try {
|
|
207
207
|
const mainDoc = await getBuilderMainDoc()
|
|
208
|
-
|
|
208
|
+
if (mainDoc.apiKeys == null) {
|
|
209
209
|
mainDoc.apiKeys = {}
|
|
210
210
|
}
|
|
211
211
|
mainDoc.apiKeys[key] = value
|
|
@@ -226,7 +226,7 @@ exports.update = async function (ctx) {
|
|
|
226
226
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
227
227
|
Code coverage generated by
|
|
228
228
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
229
|
-
at Thu Nov
|
|
229
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
230
230
|
</div>
|
|
231
231
|
</div>
|
|
232
232
|
<script src="../../prettify.js"></script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">78.
|
|
26
|
+
<span class="strong">78.49% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>146/186</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">56.94% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>41/72</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">79.
|
|
47
|
+
<span class="strong">79.34% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>146/184</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -457,7 +457,24 @@
|
|
|
457
457
|
<a name='L398'></a><a href='#L398'>398</a>
|
|
458
458
|
<a name='L399'></a><a href='#L399'>399</a>
|
|
459
459
|
<a name='L400'></a><a href='#L400'>400</a>
|
|
460
|
-
<a name='L401'></a><a href='#L401'>401</a
|
|
460
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
461
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
462
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
463
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
464
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
465
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
466
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
467
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
468
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
469
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
470
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
471
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
472
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
473
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
474
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
475
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
476
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
477
|
+
<a name='L418'></a><a href='#L418'>418</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
|
|
461
478
|
<span class="cline-any cline-yes">33x</span>
|
|
462
479
|
<span class="cline-any cline-yes">33x</span>
|
|
463
480
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -503,6 +520,9 @@
|
|
|
503
520
|
<span class="cline-any cline-neutral"> </span>
|
|
504
521
|
<span class="cline-any cline-yes">33x</span>
|
|
505
522
|
<span class="cline-any cline-yes">33x</span>
|
|
523
|
+
<span class="cline-any cline-yes">33x</span>
|
|
524
|
+
<span class="cline-any cline-yes">33x</span>
|
|
525
|
+
<span class="cline-any cline-yes">33x</span>
|
|
506
526
|
<span class="cline-any cline-neutral"> </span>
|
|
507
527
|
<span class="cline-any cline-yes">33x</span>
|
|
508
528
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -714,6 +734,7 @@
|
|
|
714
734
|
<span class="cline-any cline-neutral"> </span>
|
|
715
735
|
<span class="cline-any cline-yes">178x</span>
|
|
716
736
|
<span class="cline-any cline-yes">178x</span>
|
|
737
|
+
<span class="cline-any cline-yes">178x</span>
|
|
717
738
|
<span class="cline-any cline-neutral"> </span>
|
|
718
739
|
<span class="cline-any cline-neutral"> </span>
|
|
719
740
|
<span class="cline-any cline-yes">33x</span>
|
|
@@ -775,7 +796,11 @@
|
|
|
775
796
|
<span class="cline-any cline-neutral"> </span>
|
|
776
797
|
<span class="cline-any cline-neutral"> </span>
|
|
777
798
|
<span class="cline-any cline-neutral"> </span>
|
|
799
|
+
<span class="cline-any cline-yes">11x</span>
|
|
800
|
+
<span class="cline-any cline-no"> </span>
|
|
778
801
|
<span class="cline-any cline-neutral"> </span>
|
|
802
|
+
<span class="cline-any cline-neutral"> </span>
|
|
803
|
+
<span class="cline-any cline-yes">11x</span>
|
|
779
804
|
<span class="cline-any cline-yes">11x</span>
|
|
780
805
|
<span class="cline-any cline-neutral"> </span>
|
|
781
806
|
<span class="cline-any cline-yes">11x</span>
|
|
@@ -787,6 +812,8 @@
|
|
|
787
812
|
<span class="cline-any cline-no"> </span>
|
|
788
813
|
<span class="cline-any cline-no"> </span>
|
|
789
814
|
<span class="cline-any cline-neutral"> </span>
|
|
815
|
+
<span class="cline-any cline-neutral"> </span>
|
|
816
|
+
<span class="cline-any cline-neutral"> </span>
|
|
790
817
|
<span class="cline-any cline-no"> </span>
|
|
791
818
|
<span class="cline-any cline-neutral"> </span>
|
|
792
819
|
<span class="cline-any cline-no"> </span>
|
|
@@ -816,6 +843,10 @@
|
|
|
816
843
|
<span class="cline-any cline-neutral"> </span>
|
|
817
844
|
<span class="cline-any cline-no"> </span>
|
|
818
845
|
<span class="cline-any cline-neutral"> </span>
|
|
846
|
+
<span class="cline-any cline-neutral"> </span>
|
|
847
|
+
<span class="cline-any cline-neutral"> </span>
|
|
848
|
+
<span class="cline-any cline-no"> </span>
|
|
849
|
+
<span class="cline-any cline-neutral"> </span>
|
|
819
850
|
<span class="cline-any cline-no"> </span>
|
|
820
851
|
<span class="cline-any cline-no"> </span>
|
|
821
852
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -841,6 +872,9 @@
|
|
|
841
872
|
<span class="cline-any cline-neutral"> </span>
|
|
842
873
|
<span class="cline-any cline-yes">5x</span>
|
|
843
874
|
<span class="cline-any cline-neutral"> </span>
|
|
875
|
+
<span class="cline-any cline-yes">5x</span>
|
|
876
|
+
<span class="cline-any cline-yes">5x</span>
|
|
877
|
+
<span class="cline-any cline-neutral"> </span>
|
|
844
878
|
<span class="cline-any cline-neutral"> </span>
|
|
845
879
|
<span class="cline-any cline-yes">33x</span>
|
|
846
880
|
<span class="cline-any cline-yes">178x</span>
|
|
@@ -903,6 +937,9 @@ const {
|
|
|
903
937
|
revertClientLibrary,
|
|
904
938
|
} = require("../../utilities/fileSystem/clientLibrary")
|
|
905
939
|
const { getTenantId, isMultiTenant } = require("@budibase/auth/tenancy")
|
|
940
|
+
const { syncGlobalUsers } = require("./user")
|
|
941
|
+
const { app: appCache } = require("@budibase/auth/cache")
|
|
942
|
+
const { cleanupAutomations } = require("../../automations/utils")
|
|
906
943
|
|
|
907
944
|
const URL_REGEX_SLASH = /\/|\\/g
|
|
908
945
|
|
|
@@ -1004,10 +1041,10 @@ exports.fetch = async ctx => {
|
|
|
1004
1041
|
const apps = await getAllApps(CouchDB, { dev, all })
|
|
1005
1042
|
|
|
1006
1043
|
// get the locks for all the dev apps
|
|
1007
|
-
|
|
1044
|
+
if (dev || <span class="branch-1 cbranch-no" title="branch not covered" >all)</span> {
|
|
1008
1045
|
const locks = await getAllLocks()
|
|
1009
1046
|
for (let app of apps) {
|
|
1010
|
-
|
|
1047
|
+
if (app.status !== "development") {
|
|
1011
1048
|
continue
|
|
1012
1049
|
}
|
|
1013
1050
|
const lock = <span class="cstat-no" title="statement not covered" >locks.find(<span class="fstat-no" title="function not covered" >lo</span>ck => <span class="cstat-no" title="statement not covered" >lock.appId === app.appId)</span></span>
|
|
@@ -1103,7 +1140,7 @@ exports.create = async ctx => {
|
|
|
1103
1140
|
|
|
1104
1141
|
// Only create the default home screens and layout if we aren't importing
|
|
1105
1142
|
// an app
|
|
1106
|
-
|
|
1143
|
+
if (useTemplate !== "true") {
|
|
1107
1144
|
await createEmptyAppPackage(ctx, newApplication)
|
|
1108
1145
|
}
|
|
1109
1146
|
|
|
@@ -1112,6 +1149,7 @@ exports.create = async ctx => {
|
|
|
1112
1149
|
await createApp(appId)
|
|
1113
1150
|
}
|
|
1114
1151
|
|
|
1152
|
+
await appCache.invalidateAppMetadata(appId, newApplication)
|
|
1115
1153
|
ctx.status = 200
|
|
1116
1154
|
ctx.body = newApplication
|
|
1117
1155
|
}
|
|
@@ -1175,8 +1213,12 @@ exports.delete = async ctx => {
|
|
|
1175
1213
|
if (!env.isTest() && !ctx.query.unpublish) {
|
|
1176
1214
|
await deleteApp(ctx.params.appId)
|
|
1177
1215
|
}
|
|
1216
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.query && <span class="branch-1 cbranch-no" title="branch not covered" >ctx.query.unpublish)</span> {
|
|
1217
|
+
<span class="cstat-no" title="statement not covered" > await cleanupAutomations(ctx.params.appId)</span>
|
|
1218
|
+
}
|
|
1178
1219
|
// make sure the app/role doesn't stick around after the app has been deleted
|
|
1179
1220
|
await removeAppFromUserRoles(ctx, ctx.params.appId)
|
|
1221
|
+
await appCache.invalidateAppMetadata(ctx.params.appId)
|
|
1180
1222
|
|
|
1181
1223
|
ctx.status = 200
|
|
1182
1224
|
ctx.body = result
|
|
@@ -1187,6 +1229,8 @@ exports.sync = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
|
1187
1229
|
<span class="cstat-no" title="statement not covered" > if (!isDevAppID(appId)) {</span>
|
|
1188
1230
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "This action cannot be performed for production apps")</span>
|
|
1189
1231
|
}
|
|
1232
|
+
|
|
1233
|
+
// replicate prod to dev
|
|
1190
1234
|
const prodAppId = <span class="cstat-no" title="statement not covered" >getDeployedAppID(appId)</span>
|
|
1191
1235
|
|
|
1192
1236
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
@@ -1216,6 +1260,10 @@ exports.sync = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
|
1216
1260
|
} catch (err) {
|
|
1217
1261
|
<span class="cstat-no" title="statement not covered" > error = err</span>
|
|
1218
1262
|
}
|
|
1263
|
+
|
|
1264
|
+
// sync the users
|
|
1265
|
+
<span class="cstat-no" title="statement not covered" > await syncGlobalUsers(appId)</span>
|
|
1266
|
+
|
|
1219
1267
|
<span class="cstat-no" title="statement not covered" > if (error) {</span>
|
|
1220
1268
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, error)</span>
|
|
1221
1269
|
} else {
|
|
@@ -1231,7 +1279,7 @@ const updateAppPackage = async (ctx, appPackage, appId) => {
|
|
|
1231
1279
|
const application = await db.get(DocumentTypes.APP_METADATA)
|
|
1232
1280
|
|
|
1233
1281
|
const newAppPackage = { ...application, ...appPackage, url }
|
|
1234
|
-
|
|
1282
|
+
if (appPackage._rev !== application._rev) {
|
|
1235
1283
|
newAppPackage._rev = application._rev
|
|
1236
1284
|
}
|
|
1237
1285
|
|
|
@@ -1239,7 +1287,10 @@ const updateAppPackage = async (ctx, appPackage, appId) => {
|
|
|
1239
1287
|
// Redis, shouldn't ever store it
|
|
1240
1288
|
delete newAppPackage.lockedBy
|
|
1241
1289
|
|
|
1242
|
-
|
|
1290
|
+
const response = await db.put(newAppPackage)
|
|
1291
|
+
// remove any cached metadata, so that it will be updated
|
|
1292
|
+
await appCache.invalidateAppMetadata(appId)
|
|
1293
|
+
return response
|
|
1243
1294
|
}
|
|
1244
1295
|
|
|
1245
1296
|
const createEmptyAppPackage = async (ctx, app) => {
|
|
@@ -1264,7 +1315,7 @@ const createEmptyAppPackage = async (ctx, app) => {
|
|
|
1264
1315
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1265
1316
|
Code coverage generated by
|
|
1266
1317
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1267
|
-
at Thu Nov
|
|
1318
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
1268
1319
|
</div>
|
|
1269
1320
|
</div>
|
|
1270
1321
|
<script src="../../prettify.js"></script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">85.18% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>23/27</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">85.18% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>23/27</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -109,7 +109,10 @@
|
|
|
109
109
|
<a name='L50'></a><a href='#L50'>50</a>
|
|
110
110
|
<a name='L51'></a><a href='#L51'>51</a>
|
|
111
111
|
<a name='L52'></a><a href='#L52'>52</a>
|
|
112
|
-
<a name='L53'></a><a href='#L53'>53</a
|
|
112
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
113
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
114
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
115
|
+
<a name='L56'></a><a href='#L56'>56</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">23x</span>
|
|
113
116
|
<span class="cline-any cline-yes">23x</span>
|
|
114
117
|
<span class="cline-any cline-yes">23x</span>
|
|
115
118
|
<span class="cline-any cline-yes">23x</span>
|
|
@@ -127,6 +130,8 @@
|
|
|
127
130
|
<span class="cline-any cline-yes">1x</span>
|
|
128
131
|
<span class="cline-any cline-neutral"> </span>
|
|
129
132
|
<span class="cline-any cline-yes">1x</span>
|
|
133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
134
|
+
<span class="cline-any cline-yes">1x</span>
|
|
130
135
|
<span class="cline-any cline-yes">1x</span>
|
|
131
136
|
<span class="cline-any cline-neutral"> </span>
|
|
132
137
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -149,6 +154,7 @@
|
|
|
149
154
|
<span class="cline-any cline-yes">1x</span>
|
|
150
155
|
<span class="cline-any cline-neutral"> </span>
|
|
151
156
|
<span class="cline-any cline-neutral"> </span>
|
|
157
|
+
<span class="cline-any cline-neutral"> </span>
|
|
152
158
|
<span class="cline-any cline-yes">1x</span>
|
|
153
159
|
<span class="cline-any cline-yes">1x</span>
|
|
154
160
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -177,8 +183,10 @@ exports.fetchSelf = async ctx => {
|
|
|
177
183
|
}
|
|
178
184
|
|
|
179
185
|
const user = await getFullUser(ctx, userId)
|
|
186
|
+
// this shouldn't be returned by the app self
|
|
187
|
+
delete user.roles
|
|
180
188
|
|
|
181
|
-
|
|
189
|
+
if (appId) {
|
|
182
190
|
const db = new CouchDB(appId)
|
|
183
191
|
// remove the full roles structure
|
|
184
192
|
delete user.roles
|
|
@@ -197,19 +205,20 @@ exports.fetchSelf = async ctx => {
|
|
|
197
205
|
<span class="cstat-no" title="statement not covered" > response = {}</span>
|
|
198
206
|
}
|
|
199
207
|
// user has a role of some sort, return them
|
|
200
|
-
else
|
|
208
|
+
else if (err.status === 404) {
|
|
201
209
|
const metadata = {
|
|
210
|
+
...user,
|
|
202
211
|
_id: userId,
|
|
203
212
|
}
|
|
204
213
|
const dbResp = await db.put(metadata)
|
|
205
214
|
user._rev = dbResp.rev
|
|
206
215
|
response = user
|
|
207
|
-
} else {
|
|
216
|
+
} else <span class="missing-if-branch" title="else path not taken" >E</span>{
|
|
208
217
|
<span class="cstat-no" title="statement not covered" > response = user</span>
|
|
209
218
|
}
|
|
210
219
|
ctx.body = response
|
|
211
220
|
}
|
|
212
|
-
} else {
|
|
221
|
+
} else <span class="missing-if-branch" title="else path not taken" >E</span>{
|
|
213
222
|
<span class="cstat-no" title="statement not covered" > ctx.body = user</span>
|
|
214
223
|
}
|
|
215
224
|
}
|
|
@@ -220,7 +229,7 @@ exports.fetchSelf = async ctx => {
|
|
|
220
229
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
221
230
|
Code coverage generated by
|
|
222
231
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
223
|
-
at Thu Nov
|
|
232
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
224
233
|
</div>
|
|
225
234
|
</div>
|
|
226
235
|
<script src="../../prettify.js"></script>
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">71.
|
|
33
|
+
<span class="strong">71.87% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
35
|
<span class='fraction'>23/32</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">92.
|
|
40
|
+
<span class="strong">92.85% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
42
|
<span class='fraction'>13/14</span>
|
|
43
43
|
</div>
|
|
@@ -736,7 +736,7 @@ exports.test = async function (ctx) {
|
|
|
736
736
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
737
737
|
Code coverage generated by
|
|
738
738
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
739
|
-
at Thu Nov
|
|
739
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
740
740
|
</div>
|
|
741
741
|
</div>
|
|
742
742
|
<script src="../../prettify.js"></script>
|
|
@@ -91,7 +91,7 @@ exports.exportAppDump = async function (ctx) {
|
|
|
91
91
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
92
92
|
Code coverage generated by
|
|
93
93
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
94
|
-
at Thu Nov
|
|
94
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
95
95
|
</div>
|
|
96
96
|
</div>
|
|
97
97
|
<script src="../../prettify.js"></script>
|
|
@@ -397,7 +397,7 @@ exports.importApps = <span class="fstat-no" title="function not covered" >as</sp
|
|
|
397
397
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
398
398
|
Code coverage generated by
|
|
399
399
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
400
|
-
at Thu Nov
|
|
400
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
401
401
|
</div>
|
|
402
402
|
</div>
|
|
403
403
|
<script src="../../prettify.js"></script>
|
|
@@ -114,11 +114,11 @@
|
|
|
114
114
|
<span class="cline-any cline-yes">1x</span>
|
|
115
115
|
<span class="cline-any cline-yes">1x</span>
|
|
116
116
|
<span class="cline-any cline-yes">1x</span>
|
|
117
|
-
<span class="cline-any cline-yes">
|
|
117
|
+
<span class="cline-any cline-yes">47x</span>
|
|
118
118
|
<span class="cline-any cline-yes">1x</span>
|
|
119
119
|
<span class="cline-any cline-neutral"> </span>
|
|
120
|
-
<span class="cline-any cline-yes">
|
|
121
|
-
<span class="cline-any cline-yes">
|
|
120
|
+
<span class="cline-any cline-yes">46x</span>
|
|
121
|
+
<span class="cline-any cline-yes">46x</span>
|
|
122
122
|
<span class="cline-any cline-neutral"> </span>
|
|
123
123
|
<span class="cline-any cline-neutral"> </span>
|
|
124
124
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -169,7 +169,7 @@ exports.fetchAppComponentDefinitions = async function (ctx) {
|
|
|
169
169
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
170
170
|
Code coverage generated by
|
|
171
171
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
172
|
-
at Thu Nov
|
|
172
|
+
at Thu Nov 25 2021 16:48:05 GMT+0000 (Coordinated Universal Time)
|
|
173
173
|
</div>
|
|
174
174
|
</div>
|
|
175
175
|
<script src="../../prettify.js"></script>
|