@budibase/server 1.0.49 → 1.0.50-alpha.3
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/__mocks__/arangojs.ts +1 -1
- package/__mocks__/aws-sdk.ts +4 -4
- package/__mocks__/mongodb.ts +4 -5
- package/__mocks__/mssql.ts +3 -3
- package/__mocks__/node-fetch.ts +2 -1
- package/__mocks__/pg.ts +3 -5
- package/builder/assets/{index.2c37968e.js → index.9fe798bd.js} +252 -249
- package/builder/assets/index.c0cc369d.css +6 -0
- package/builder/assets/{vendor.f9faf6ab.js → vendor.5ad9695a.js} +202 -106
- package/builder/index.html +3 -3
- package/coverage/clover.xml +3105 -2814
- package/coverage/coverage-final.json +106 -101
- 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 +257 -152
- package/coverage/lcov-report/api/controllers/auth.js.html +22 -13
- package/coverage/lcov-report/api/controllers/automation.js.html +39 -69
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +8 -11
- package/coverage/lcov-report/api/controllers/component.js.html +13 -16
- package/coverage/lcov-report/api/controllers/datasource.js.html +81 -51
- package/coverage/lcov-report/api/controllers/dev.js.html +6 -6
- package/coverage/lcov-report/api/controllers/index.html +78 -78
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +9 -9
- package/coverage/lcov-report/api/controllers/metadata.js.html +6 -21
- package/coverage/lcov-report/api/controllers/migrations.js.html +119 -0
- package/coverage/lcov-report/api/controllers/permission.js.html +19 -19
- package/coverage/lcov-report/api/controllers/query/index.html +10 -10
- package/coverage/lcov-report/api/controllers/query/index.js.html +38 -35
- package/coverage/lcov-report/api/controllers/query/validation.js.html +6 -6
- package/coverage/lcov-report/api/controllers/role.js.html +16 -16
- package/coverage/lcov-report/api/controllers/routing.js.html +7 -10
- package/coverage/lcov-report/api/controllers/row/external.js.html +48 -141
- package/coverage/lcov-report/api/controllers/row/index.html +55 -40
- package/coverage/lcov-report/api/controllers/row/index.js.html +26 -26
- package/coverage/lcov-report/api/controllers/row/internal.js.html +118 -226
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +52 -34
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +548 -0
- package/coverage/lcov-report/api/controllers/row/utils.js.html +47 -62
- package/coverage/lcov-report/api/controllers/screen.js.html +15 -21
- package/coverage/lcov-report/api/controllers/script.js.html +4 -4
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +599 -0
- package/coverage/lcov-report/api/controllers/table/external.js.html +25 -34
- package/coverage/lcov-report/api/controllers/table/index.html +58 -43
- package/coverage/lcov-report/api/controllers/table/index.js.html +58 -82
- package/coverage/lcov-report/api/controllers/table/internal.js.html +81 -66
- package/coverage/lcov-report/api/controllers/table/utils.js.html +218 -110
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +79 -76
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +4 -4
- package/coverage/lcov-report/api/controllers/view/index.html +16 -16
- package/coverage/lcov-report/api/controllers/view/index.js.html +27 -33
- package/coverage/lcov-report/api/controllers/view/utils.js.html +35 -20
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +7 -7
- package/coverage/lcov-report/api/controllers/webhook.js.html +34 -28
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +8 -8
- 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 +18 -18
- package/coverage/lcov-report/api/routes/index.js.html +3 -3
- 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/{hosting.js.html → migrations.js.html} +17 -14
- 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 +7 -10
- package/coverage/lcov-report/automations/bullboard.js.html +16 -16
- package/coverage/lcov-report/automations/index.html +18 -18
- 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 -22
- 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 +7 -7
- 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 +61 -55
- package/coverage/lcov-report/automations/utils.js.html +54 -42
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +53 -26
- 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 +25 -37
- package/coverage/lcov-report/db/linkedRows/index.html +27 -27
- package/coverage/lcov-report/db/linkedRows/index.js.html +51 -96
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +42 -42
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +87 -87
- 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 +135 -120
- 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 +173 -65
- package/coverage/lcov-report/middleware/builder.js.html +10 -10
- package/coverage/lcov-report/middleware/currentapp.js.html +95 -83
- package/coverage/lcov-report/middleware/index.html +38 -38
- 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 +281 -53
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +30 -24
- package/coverage/lcov-report/threads/index.html +26 -26
- package/coverage/lcov-report/threads/index.js.html +10 -10
- package/coverage/lcov-report/threads/query.js.html +39 -24
- 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 +58 -49
- package/coverage/lcov-report/utilities/index.html +37 -37
- package/coverage/lcov-report/utilities/index.js.html +43 -73
- 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 +7 -7
- package/coverage/lcov-report/utilities/rowProcessor/index.html +27 -27
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +97 -103
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +75 -27
- 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 +359 -0
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +305 -0
- package/coverage/lcov-report/{api/controllers/hosting.js.html → utilities/usageQuota/usageQuoteReset.js.html} +36 -48
- package/coverage/lcov-report/utilities/users.js.html +9 -9
- package/coverage/lcov-report/utilities/workerRequests.js.html +43 -112
- package/coverage/lcov.info +5010 -4425
- package/dist/api/controllers/application.js +90 -60
- package/dist/api/controllers/auth.js +8 -5
- package/dist/api/controllers/automation.js +14 -19
- package/dist/api/controllers/cloud.js +2 -3
- package/dist/api/controllers/component.js +3 -4
- package/dist/api/controllers/datasource.js +20 -10
- package/dist/api/controllers/deploy/Deployment.js +3 -6
- package/dist/api/controllers/deploy/index.js +12 -13
- package/dist/api/controllers/dev.js +5 -5
- package/dist/api/controllers/layout.js +3 -3
- package/dist/api/controllers/metadata.js +4 -4
- package/dist/api/controllers/migrations.js +21 -0
- package/dist/api/controllers/permission.js +4 -4
- package/dist/api/controllers/query/import/index.js +4 -6
- package/dist/api/controllers/query/index.js +11 -10
- package/dist/api/controllers/role.js +5 -5
- package/dist/api/controllers/routing.js +5 -6
- package/dist/api/controllers/row/ExternalRequest.js +90 -67
- package/dist/api/controllers/row/external.js +14 -22
- package/dist/api/controllers/row/internal.js +55 -93
- package/dist/api/controllers/row/internalSearch.js +23 -17
- package/dist/api/controllers/row/staticFormula.js +147 -0
- package/dist/api/controllers/row/utils.js +13 -14
- package/dist/api/controllers/screen.js +5 -7
- package/dist/api/controllers/static/index.js +62 -16
- package/dist/api/controllers/table/bulkFormula.js +159 -0
- package/dist/api/controllers/table/external.js +7 -10
- package/dist/api/controllers/table/index.js +16 -13
- package/dist/api/controllers/table/internal.js +22 -16
- package/dist/api/controllers/table/utils.js +62 -35
- package/dist/api/controllers/user.js +43 -43
- package/dist/api/controllers/view/index.js +8 -10
- package/dist/api/controllers/view/utils.js +9 -4
- package/dist/api/controllers/webhook.js +10 -8
- package/dist/api/routes/index.js +2 -2
- package/dist/api/routes/migrations.js +9 -0
- package/dist/api/routes/static.js +2 -1
- package/dist/api/routes/tests/utilities/TestFunctions.js +37 -17
- package/dist/app.js +35 -5
- package/dist/automations/automationUtils.js +2 -3
- package/dist/automations/steps/createRow.js +3 -5
- package/dist/automations/steps/deleteRow.js +1 -4
- package/dist/automations/steps/updateRow.js +1 -1
- package/dist/automations/triggers.js +27 -25
- package/dist/automations/utils.js +10 -5
- package/dist/constants/index.js +7 -0
- package/dist/db/linkedRows/LinkController.js +3 -7
- package/dist/db/linkedRows/index.js +16 -27
- package/dist/db/linkedRows/linkUtils.js +6 -6
- package/dist/db/views/staticViews.js +9 -10
- package/dist/definitions/datasource.js +1 -0
- package/dist/environment.js +4 -1
- package/dist/integrations/base/sql.js +62 -21
- package/dist/integrations/googlesheets.js +340 -0
- package/dist/integrations/index.js +3 -0
- package/dist/integrations/utils.js +60 -9
- package/dist/middleware/authorized.js +57 -30
- package/dist/middleware/builder.js +2 -2
- package/dist/middleware/currentapp.js +41 -37
- package/dist/middleware/usageQuota.js +82 -15
- package/dist/migrations/functions/appUrls.js +46 -0
- package/dist/migrations/functions/quotas1.js +50 -0
- package/dist/migrations/functions/usageQuotas/index.js +20 -0
- package/dist/migrations/functions/usageQuotas/syncApps.js +29 -0
- package/dist/migrations/functions/usageQuotas/syncRows.js +33 -0
- package/dist/migrations/functions/userEmailViewCasing.js +24 -0
- package/dist/migrations/index.js +62 -0
- package/dist/package.json +8 -5
- package/dist/tests/utilities/TestConfiguration.js +80 -50
- package/dist/threads/automation.js +13 -11
- package/dist/threads/query.js +15 -11
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/index.js +4 -3
- package/dist/utilities/global.js +15 -12
- package/dist/utilities/index.js +7 -17
- package/dist/utilities/routing/index.js +5 -5
- package/dist/utilities/rowProcessor/index.js +23 -17
- package/dist/utilities/rowProcessor/utils.js +14 -4
- package/dist/utilities/{usageQuota.js → usageQuota/index.js} +45 -31
- package/dist/utilities/usageQuota/rows.js +78 -0
- package/dist/utilities/usageQuota/usageQuoteReset.js +16 -0
- package/dist/utilities/users.js +3 -3
- package/dist/utilities/workerRequests.js +4 -24
- package/nodemon.json +1 -1
- package/package.json +9 -6
- package/scripts/integrations/mssql/data/Dockerfile +1 -1
- package/scripts/integrations/mssql/data/setup.sql +17 -4
- package/scripts/integrations/postgres/init.sql +11 -6
- package/scripts/likeCypress.ts +1 -1
- package/src/api/controllers/application.js +85 -50
- package/src/api/controllers/auth.js +8 -5
- package/src/api/controllers/automation.js +13 -23
- package/src/api/controllers/cloud.js +2 -3
- package/src/api/controllers/component.js +3 -4
- package/src/api/controllers/datasource.js +21 -11
- package/src/api/controllers/deploy/Deployment.js +3 -7
- package/src/api/controllers/deploy/index.js +20 -13
- package/src/api/controllers/dev.js +5 -5
- package/src/api/controllers/layout.js +3 -3
- package/src/api/controllers/metadata.js +4 -9
- package/src/api/controllers/migrations.js +13 -0
- package/src/api/controllers/permission.js +4 -4
- package/src/api/controllers/query/import/index.ts +4 -6
- package/src/api/controllers/query/import/tests/index.spec.js +2 -1
- package/src/api/controllers/query/index.js +11 -10
- package/src/api/controllers/role.js +5 -5
- package/src/api/controllers/routing.js +5 -6
- package/src/api/controllers/row/ExternalRequest.ts +67 -43
- package/src/api/controllers/row/external.js +27 -58
- package/src/api/controllers/row/internal.js +54 -90
- package/src/api/controllers/row/internalSearch.js +23 -17
- package/src/api/controllers/row/staticFormula.js +156 -0
- package/src/api/controllers/row/utils.js +13 -18
- package/src/api/controllers/screen.js +5 -7
- package/src/api/controllers/static/index.js +66 -15
- package/src/api/controllers/table/bulkFormula.js +173 -0
- package/src/api/controllers/table/external.js +7 -10
- package/src/api/controllers/table/index.js +20 -28
- package/src/api/controllers/table/internal.js +24 -19
- package/src/api/controllers/table/utils.js +78 -42
- package/src/api/controllers/user.js +46 -45
- package/src/api/controllers/view/index.js +8 -10
- package/src/api/controllers/view/utils.js +9 -4
- package/src/api/controllers/webhook.js +10 -8
- package/src/api/routes/index.js +2 -2
- package/src/api/routes/migrations.js +14 -0
- package/src/api/routes/static.js +5 -0
- package/src/api/routes/tests/application.spec.js +2 -2
- package/src/api/routes/tests/auth.spec.js +1 -2
- package/src/api/routes/tests/automation.spec.js +1 -0
- package/src/api/routes/tests/misc.spec.js +0 -1
- package/src/api/routes/tests/routing.spec.js +21 -12
- package/src/api/routes/tests/row.spec.js +7 -4
- package/src/api/routes/tests/static.spec.js +98 -0
- package/src/api/routes/tests/utilities/TestFunctions.js +39 -17
- package/src/app.ts +18 -5
- package/src/automations/automationUtils.js +2 -3
- package/src/automations/steps/createRow.js +2 -5
- package/src/automations/steps/deleteRow.js +1 -4
- package/src/automations/steps/updateRow.js +1 -1
- package/src/automations/triggers.js +33 -31
- package/src/automations/utils.js +9 -5
- package/src/constants/index.js +9 -0
- package/src/db/linkedRows/LinkController.js +3 -7
- package/src/db/linkedRows/index.js +16 -31
- package/src/db/linkedRows/linkUtils.js +6 -6
- package/src/db/tests/linkController.spec.js +0 -1
- package/src/db/tests/linkTests.spec.js +5 -6
- package/src/db/views/staticViews.js +8 -10
- package/src/definitions/common.ts +3 -0
- package/src/definitions/datasource.ts +3 -0
- package/src/environment.js +4 -1
- package/src/integrations/base/sql.ts +75 -29
- package/src/integrations/googlesheets.ts +353 -0
- package/src/integrations/index.ts +3 -0
- package/src/integrations/tests/sql.spec.js +16 -0
- package/src/integrations/utils.ts +75 -12
- package/src/middleware/authorized.js +66 -30
- package/src/middleware/builder.js +2 -2
- package/src/middleware/currentapp.js +50 -46
- package/src/middleware/tests/authorized.spec.js +13 -6
- package/src/middleware/tests/currentapp.spec.js +6 -0
- package/src/middleware/tests/usageQuota.spec.js +18 -24
- package/src/middleware/usageQuota.js +93 -17
- package/src/migrations/functions/appUrls.ts +34 -0
- package/src/migrations/functions/quotas1.ts +20 -0
- package/src/migrations/functions/tests/appUrls.spec.js +29 -0
- package/src/migrations/functions/tests/quotas1.spec.js +27 -0
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +25 -0
- package/src/migrations/functions/usageQuotas/index.ts +8 -0
- package/src/migrations/functions/usageQuotas/syncApps.ts +18 -0
- package/src/migrations/functions/usageQuotas/syncRows.ts +22 -0
- package/src/migrations/functions/usageQuotas/tests/syncApps.spec.js +37 -0
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.js +43 -0
- package/src/migrations/functions/userEmailViewCasing.ts +13 -0
- package/src/migrations/index.ts +56 -0
- package/src/module.d.ts +3 -0
- package/src/tests/utilities/TestConfiguration.js +82 -55
- package/src/threads/automation.js +17 -15
- package/src/threads/query.js +17 -12
- package/src/utilities/fileSystem/index.js +4 -3
- package/src/utilities/global.js +15 -12
- package/src/utilities/index.js +7 -17
- package/src/utilities/routing/index.js +5 -5
- package/src/utilities/rowProcessor/index.js +25 -27
- package/src/utilities/rowProcessor/utils.js +23 -7
- package/src/utilities/tests/usageQuota/usageQuota.spec.js +72 -0
- package/src/utilities/usageQuota/index.js +93 -0
- package/src/utilities/usageQuota/rows.js +75 -0
- package/src/utilities/usageQuota/usageQuoteReset.js +18 -0
- package/src/utilities/users.js +3 -3
- package/src/utilities/workerRequests.js +4 -27
- package/tsconfig.json +4 -2
- package/builder/assets/index.39e01193.css +0 -1
- 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,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">31.4% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>38/121</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">29.41% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>5/
|
|
42
|
+
<span class='fraction'>5/17</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">31.66% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>38/120</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -290,26 +290,28 @@
|
|
|
290
290
|
<a name='L231'></a><a href='#L231'>231</a>
|
|
291
291
|
<a name='L232'></a><a href='#L232'>232</a>
|
|
292
292
|
<a name='L233'></a><a href='#L233'>233</a>
|
|
293
|
-
<a name='L234'></a><a href='#L234'>234</a
|
|
293
|
+
<a name='L234'></a><a href='#L234'>234</a>
|
|
294
|
+
<a name='L235'></a><a href='#L235'>235</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
294
295
|
<span class="cline-any cline-neutral"> </span>
|
|
295
296
|
<span class="cline-any cline-neutral"> </span>
|
|
296
297
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
+
<span class="cline-any cline-yes">39x</span>
|
|
299
|
+
<span class="cline-any cline-yes">39x</span>
|
|
300
|
+
<span class="cline-any cline-yes">39x</span>
|
|
301
|
+
<span class="cline-any cline-yes">39x</span>
|
|
302
|
+
<span class="cline-any cline-yes">39x</span>
|
|
303
|
+
<span class="cline-any cline-yes">39x</span>
|
|
297
304
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">34x</span>
|
|
299
|
-
<span class="cline-any cline-yes">34x</span>
|
|
300
|
-
<span class="cline-any cline-yes">34x</span>
|
|
301
|
-
<span class="cline-any cline-yes">34x</span>
|
|
302
|
-
<span class="cline-any cline-yes">34x</span>
|
|
303
|
-
<span class="cline-any cline-yes">34x</span>
|
|
304
305
|
<span class="cline-any cline-neutral"> </span>
|
|
305
306
|
<span class="cline-any cline-neutral"> </span>
|
|
306
307
|
<span class="cline-any cline-neutral"> </span>
|
|
307
|
-
<span class="cline-any cline-yes">
|
|
308
|
-
<span class="cline-any cline-yes">
|
|
309
|
-
<span class="cline-any cline-yes">
|
|
308
|
+
<span class="cline-any cline-yes">39x</span>
|
|
309
|
+
<span class="cline-any cline-yes">39x</span>
|
|
310
|
+
<span class="cline-any cline-yes">39x</span>
|
|
310
311
|
<span class="cline-any cline-neutral"> </span>
|
|
311
312
|
<span class="cline-any cline-neutral"> </span>
|
|
312
313
|
<span class="cline-any cline-yes">2x</span>
|
|
314
|
+
<span class="cline-any cline-yes">2x</span>
|
|
313
315
|
<span class="cline-any cline-neutral"> </span>
|
|
314
316
|
<span class="cline-any cline-neutral"> </span>
|
|
315
317
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -346,13 +348,10 @@
|
|
|
346
348
|
<span class="cline-any cline-no"> </span>
|
|
347
349
|
<span class="cline-any cline-neutral"> </span>
|
|
348
350
|
<span class="cline-any cline-neutral"> </span>
|
|
349
|
-
<span class="cline-any cline-yes">
|
|
351
|
+
<span class="cline-any cline-yes">39x</span>
|
|
350
352
|
<span class="cline-any cline-neutral"> </span>
|
|
351
353
|
<span class="cline-any cline-no"> </span>
|
|
352
354
|
<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
355
|
<span class="cline-any cline-no"> </span>
|
|
357
356
|
<span class="cline-any cline-no"> </span>
|
|
358
357
|
<span class="cline-any cline-no"> </span>
|
|
@@ -363,7 +362,7 @@
|
|
|
363
362
|
<span class="cline-any cline-no"> </span>
|
|
364
363
|
<span class="cline-any cline-neutral"> </span>
|
|
365
364
|
<span class="cline-any cline-neutral"> </span>
|
|
366
|
-
<span class="cline-any cline-yes">
|
|
365
|
+
<span class="cline-any cline-yes">39x</span>
|
|
367
366
|
<span class="cline-any cline-no"> </span>
|
|
368
367
|
<span class="cline-any cline-neutral"> </span>
|
|
369
368
|
<span class="cline-any cline-no"> </span>
|
|
@@ -401,6 +400,7 @@
|
|
|
401
400
|
<span class="cline-any cline-neutral"> </span>
|
|
402
401
|
<span class="cline-any cline-no"> </span>
|
|
403
402
|
<span class="cline-any cline-no"> </span>
|
|
403
|
+
<span class="cline-any cline-no"> </span>
|
|
404
404
|
<span class="cline-any cline-neutral"> </span>
|
|
405
405
|
<span class="cline-any cline-no"> </span>
|
|
406
406
|
<span class="cline-any cline-no"> </span>
|
|
@@ -429,12 +429,13 @@
|
|
|
429
429
|
<span class="cline-any cline-neutral"> </span>
|
|
430
430
|
<span class="cline-any cline-neutral"> </span>
|
|
431
431
|
<span class="cline-any cline-neutral"> </span>
|
|
432
|
+
<span class="cline-any cline-neutral"> </span>
|
|
432
433
|
<span class="cline-any cline-no"> </span>
|
|
433
434
|
<span class="cline-any cline-neutral"> </span>
|
|
434
435
|
<span class="cline-any cline-neutral"> </span>
|
|
435
436
|
<span class="cline-any cline-neutral"> </span>
|
|
436
437
|
<span class="cline-any cline-neutral"> </span>
|
|
437
|
-
<span class="cline-any cline-yes">
|
|
438
|
+
<span class="cline-any cline-yes">39x</span>
|
|
438
439
|
<span class="cline-any cline-yes">2x</span>
|
|
439
440
|
<span class="cline-any cline-yes">2x</span>
|
|
440
441
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -454,7 +455,9 @@
|
|
|
454
455
|
<span class="cline-any cline-yes">2x</span>
|
|
455
456
|
<span class="cline-any cline-neutral"> </span>
|
|
456
457
|
<span class="cline-any cline-neutral"> </span>
|
|
457
|
-
<span class="cline-any cline-yes">
|
|
458
|
+
<span class="cline-any cline-yes">39x</span>
|
|
459
|
+
<span class="cline-any cline-neutral"> </span>
|
|
460
|
+
<span class="cline-any cline-no"> </span>
|
|
458
461
|
<span class="cline-any cline-neutral"> </span>
|
|
459
462
|
<span class="cline-any cline-no"> </span>
|
|
460
463
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -462,8 +465,7 @@
|
|
|
462
465
|
<span class="cline-any cline-no"> </span>
|
|
463
466
|
<span class="cline-any cline-neutral"> </span>
|
|
464
467
|
<span class="cline-any cline-neutral"> </span>
|
|
465
|
-
<span class="cline-any cline-yes">
|
|
466
|
-
<span class="cline-any cline-yes">1x</span>
|
|
468
|
+
<span class="cline-any cline-yes">39x</span>
|
|
467
469
|
<span class="cline-any cline-yes">1x</span>
|
|
468
470
|
<span class="cline-any cline-yes">1x</span>
|
|
469
471
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -475,7 +477,7 @@
|
|
|
475
477
|
<span class="cline-any cline-yes">1x</span>
|
|
476
478
|
<span class="cline-any cline-neutral"> </span>
|
|
477
479
|
<span class="cline-any cline-neutral"> </span>
|
|
478
|
-
<span class="cline-any cline-yes">
|
|
480
|
+
<span class="cline-any cline-yes">39x</span>
|
|
479
481
|
<span class="cline-any cline-yes">1x</span>
|
|
480
482
|
<span class="cline-any cline-yes">1x</span>
|
|
481
483
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -488,11 +490,11 @@
|
|
|
488
490
|
<span class="cline-any cline-neutral"> </span>
|
|
489
491
|
<span class="cline-any cline-neutral"> </span>
|
|
490
492
|
<span class="cline-any cline-neutral"> </span>
|
|
491
|
-
<span class="cline-any cline-yes">
|
|
493
|
+
<span class="cline-any cline-yes">39x</span>
|
|
492
494
|
<span class="cline-any cline-yes">1x</span>
|
|
493
495
|
<span class="cline-any cline-neutral"> </span>
|
|
494
496
|
<span class="cline-any cline-neutral"> </span>
|
|
495
|
-
<span class="cline-any cline-yes">
|
|
497
|
+
<span class="cline-any cline-yes">39x</span>
|
|
496
498
|
<span class="cline-any cline-no"> </span>
|
|
497
499
|
<span class="cline-any cline-no"> </span>
|
|
498
500
|
<span class="cline-any cline-no"> </span>
|
|
@@ -511,7 +513,7 @@
|
|
|
511
513
|
<span class="cline-any cline-no"> </span>
|
|
512
514
|
<span class="cline-any cline-neutral"> </span>
|
|
513
515
|
<span class="cline-any cline-neutral"> </span>
|
|
514
|
-
<span class="cline-any cline-yes">
|
|
516
|
+
<span class="cline-any cline-yes">39x</span>
|
|
515
517
|
<span class="cline-any cline-no"> </span>
|
|
516
518
|
<span class="cline-any cline-no"> </span>
|
|
517
519
|
<span class="cline-any cline-no"> </span>
|
|
@@ -523,8 +525,7 @@
|
|
|
523
525
|
<span class="cline-any cline-neutral"> </span>
|
|
524
526
|
<span class="cline-any cline-no"> </span>
|
|
525
527
|
<span class="cline-any cline-neutral"> </span>
|
|
526
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
527
|
-
const {
|
|
528
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const {
|
|
528
529
|
generateUserMetadataID,
|
|
529
530
|
getUserMetadataParams,
|
|
530
531
|
generateUserFlagID,
|
|
@@ -536,12 +537,14 @@ const { isEqual } = require("lodash")
|
|
|
536
537
|
const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
|
|
537
538
|
const {
|
|
538
539
|
getDevelopmentAppID,
|
|
539
|
-
|
|
540
|
+
getProdAppIDs,
|
|
541
|
+
dbExists,
|
|
540
542
|
} = require("@budibase/backend-core/db")
|
|
541
|
-
const { doesDatabaseExist } = require("../../utilities")
|
|
542
543
|
const { UserStatus } = require("@budibase/backend-core/constants")
|
|
544
|
+
const { getAppDB, doInAppContext } = require("@budibase/backend-core/context")
|
|
543
545
|
|
|
544
|
-
async function rawMetadata(
|
|
546
|
+
async function rawMetadata() {
|
|
547
|
+
const db = getAppDB()
|
|
545
548
|
return (
|
|
546
549
|
await db.allDocs(
|
|
547
550
|
getUserMetadataParams(null, {
|
|
@@ -579,13 +582,10 @@ function <span class="fstat-no" title="function not covered" >combineMetadataAnd
|
|
|
579
582
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
580
583
|
}
|
|
581
584
|
|
|
582
|
-
exports.syncGlobalUsers = <span class="fstat-no" title="function not covered" >as</span>ync
|
|
585
|
+
exports.syncGlobalUsers = <span class="fstat-no" title="function not covered" >as</span>ync () => {
|
|
583
586
|
// sync user metadata
|
|
584
|
-
const db = <span class="cstat-no" title="statement not covered" >
|
|
585
|
-
const [users, metadata] = <span class="cstat-no" title="statement not covered" >await Promise.all([</span>
|
|
586
|
-
getGlobalUsers(appId),
|
|
587
|
-
rawMetadata(db),
|
|
588
|
-
])
|
|
587
|
+
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
588
|
+
const [users, metadata] = <span class="cstat-no" title="statement not covered" >await Promise.all([getGlobalUsers(), rawMetadata()])</span>
|
|
589
589
|
const toWrite = <span class="cstat-no" title="statement not covered" >[]</span>
|
|
590
590
|
<span class="cstat-no" title="statement not covered" > for (let user of users) {</span>
|
|
591
591
|
const combined = <span class="cstat-no" title="statement not covered" >await combineMetadataAndUser(user, metadata)</span>
|
|
@@ -619,7 +619,7 @@ exports.syncUser = <span class="fstat-no" title="function not covered" >as</span
|
|
|
619
619
|
let prodAppIds
|
|
620
620
|
// if they are a builder then get all production app IDs
|
|
621
621
|
<span class="cstat-no" title="statement not covered" > if ((user.builder && user.builder.global) || deleting) {</span>
|
|
622
|
-
<span class="cstat-no" title="statement not covered" > prodAppIds = await
|
|
622
|
+
<span class="cstat-no" title="statement not covered" > prodAppIds = await getProdAppIDs()</span>
|
|
623
623
|
} else {
|
|
624
624
|
<span class="cstat-no" title="statement not covered" > prodAppIds = Object.entries(roles)</span>
|
|
625
625
|
.filter(<span class="fstat-no" title="function not covered" >en</span>try => <span class="cstat-no" title="statement not covered" >entry[1] !== BUILTIN_ROLE_IDS.PUBLIC)</span>
|
|
@@ -629,37 +629,39 @@ exports.syncUser = <span class="fstat-no" title="function not covered" >as</span
|
|
|
629
629
|
const roleId = <span class="cstat-no" title="statement not covered" >roles[prodAppId]</span>
|
|
630
630
|
const devAppId = <span class="cstat-no" title="statement not covered" >getDevelopmentAppID(prodAppId)</span>
|
|
631
631
|
<span class="cstat-no" title="statement not covered" > for (let appId of [prodAppId, devAppId]) {</span>
|
|
632
|
-
<span class="cstat-no" title="statement not covered" > if (!(await
|
|
632
|
+
<span class="cstat-no" title="statement not covered" > if (!(await dbExists(appId))) {</span>
|
|
633
633
|
<span class="cstat-no" title="statement not covered" > continue</span>
|
|
634
634
|
}
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
<span class="cstat-no" title="statement not covered" >
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
<span class="cstat-no" title="statement not covered" >
|
|
635
|
+
<span class="cstat-no" title="statement not covered" > await doInAppContext(appId, <span class="fstat-no" title="function not covered" >as</span>ync () => {</span>
|
|
636
|
+
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
637
|
+
const metadataId = <span class="cstat-no" title="statement not covered" >generateUserMetadataID(userId)</span>
|
|
638
|
+
let metadata
|
|
639
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
640
|
+
<span class="cstat-no" title="statement not covered" > metadata = await db.get(metadataId)</span>
|
|
641
|
+
} catch (err) {
|
|
642
|
+
<span class="cstat-no" title="statement not covered" > if (deleting) {</span>
|
|
643
|
+
<span class="cstat-no" title="statement not covered" > return</span>
|
|
644
|
+
}
|
|
645
|
+
<span class="cstat-no" title="statement not covered" > metadata = {</span>
|
|
646
|
+
tableId: InternalTables.USER_METADATA,
|
|
647
|
+
}
|
|
643
648
|
}
|
|
644
|
-
|
|
645
|
-
|
|
649
|
+
// assign the roleId for the metadata doc
|
|
650
|
+
<span class="cstat-no" title="statement not covered" > if (roleId) {</span>
|
|
651
|
+
<span class="cstat-no" title="statement not covered" > metadata.roleId = roleId</span>
|
|
646
652
|
}
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
// if its null then there was no updates required
|
|
660
|
-
<span class="cstat-no" title="statement not covered" > if (combined) {</span>
|
|
661
|
-
<span class="cstat-no" title="statement not covered" > await db.put(combined)</span>
|
|
662
|
-
}
|
|
653
|
+
let combined = <span class="cstat-no" title="statement not covered" >!deleting</span>
|
|
654
|
+
? combineMetadataAndUser(user, metadata)
|
|
655
|
+
: {
|
|
656
|
+
...metadata,
|
|
657
|
+
status: UserStatus.INACTIVE,
|
|
658
|
+
metadata: BUILTIN_ROLE_IDS.PUBLIC,
|
|
659
|
+
}
|
|
660
|
+
// if its null then there was no updates required
|
|
661
|
+
<span class="cstat-no" title="statement not covered" > if (combined) {</span>
|
|
662
|
+
<span class="cstat-no" title="statement not covered" > await db.put(combined)</span>
|
|
663
|
+
}
|
|
664
|
+
})
|
|
663
665
|
}
|
|
664
666
|
}
|
|
665
667
|
<span class="cstat-no" title="statement not covered" > ctx.body = {</span>
|
|
@@ -668,8 +670,8 @@ exports.syncUser = <span class="fstat-no" title="function not covered" >as</span
|
|
|
668
670
|
}
|
|
669
671
|
|
|
670
672
|
exports.fetchMetadata = async function (ctx) {
|
|
671
|
-
const database =
|
|
672
|
-
const global = await getGlobalUsers(
|
|
673
|
+
const database = getAppDB()
|
|
674
|
+
const global = await getGlobalUsers()
|
|
673
675
|
const metadata = await rawMetadata(database)
|
|
674
676
|
const users = []
|
|
675
677
|
for (let user of global) {
|
|
@@ -692,12 +694,13 @@ exports.updateSelfMetadata = <span class="fstat-no" title="function not covered"
|
|
|
692
694
|
<span class="cstat-no" title="statement not covered" > ctx.request.body._id = ctx.user._id</span>
|
|
693
695
|
// make sure no stale rev
|
|
694
696
|
<span class="cstat-no" title="statement not covered" > delete ctx.request.body._rev</span>
|
|
697
|
+
// make sure no csrf token
|
|
698
|
+
<span class="cstat-no" title="statement not covered" > delete ctx.request.body.csrfToken</span>
|
|
695
699
|
<span class="cstat-no" title="statement not covered" > await exports.updateMetadata(ctx)</span>
|
|
696
700
|
}
|
|
697
701
|
|
|
698
702
|
exports.updateMetadata = async function (ctx) {
|
|
699
|
-
const
|
|
700
|
-
const db = new CouchDB(appId)
|
|
703
|
+
const db = getAppDB()
|
|
701
704
|
const user = ctx.request.body
|
|
702
705
|
// this isn't applicable to the user
|
|
703
706
|
delete user.roles
|
|
@@ -709,7 +712,7 @@ exports.updateMetadata = async function (ctx) {
|
|
|
709
712
|
}
|
|
710
713
|
|
|
711
714
|
exports.destroyMetadata = async function (ctx) {
|
|
712
|
-
const db =
|
|
715
|
+
const db = getAppDB()
|
|
713
716
|
try {
|
|
714
717
|
const dbUser = await db.get(ctx.params.id)
|
|
715
718
|
<span class="cstat-no" title="statement not covered" > await db.remove(dbUser._id, dbUser._rev)</span>
|
|
@@ -732,7 +735,7 @@ exports.setFlag = <span class="fstat-no" title="function not covered" >as</span>
|
|
|
732
735
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Must supply a 'flag' field in request body.")</span>
|
|
733
736
|
}
|
|
734
737
|
const flagDocId = <span class="cstat-no" title="statement not covered" >generateUserFlagID(userId)</span>
|
|
735
|
-
const db = <span class="cstat-no" title="statement not covered" >
|
|
738
|
+
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
736
739
|
let doc
|
|
737
740
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
738
741
|
<span class="cstat-no" title="statement not covered" > doc = await db.get(flagDocId)</span>
|
|
@@ -747,7 +750,7 @@ exports.setFlag = <span class="fstat-no" title="function not covered" >as</span>
|
|
|
747
750
|
exports.getFlags = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
|
|
748
751
|
const userId = <span class="cstat-no" title="statement not covered" >ctx.user._id</span>
|
|
749
752
|
const docId = <span class="cstat-no" title="statement not covered" >generateUserFlagID(userId)</span>
|
|
750
|
-
const db = <span class="cstat-no" title="statement not covered" >
|
|
753
|
+
const db = <span class="cstat-no" title="statement not covered" >getAppDB()</span>
|
|
751
754
|
let doc
|
|
752
755
|
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
753
756
|
<span class="cstat-no" title="statement not covered" > doc = await db.get(docId)</span>
|
|
@@ -763,7 +766,7 @@ exports.getFlags = <span class="fstat-no" title="function not covered" >as</span
|
|
|
763
766
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
764
767
|
Code coverage generated by
|
|
765
768
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
766
|
-
at
|
|
769
|
+
at Tue Feb 08 2022 15:32:15 GMT+0000 (Coordinated Universal Time)
|
|
767
770
|
</div>
|
|
768
771
|
</div>
|
|
769
772
|
<script src="../../prettify.js"></script>
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
<a name='L21'></a><a href='#L21'>21</a>
|
|
81
81
|
<a name='L22'></a><a href='#L22'>22</a>
|
|
82
82
|
<a name='L23'></a><a href='#L23'>23</a>
|
|
83
|
-
<a name='L24'></a><a href='#L24'>24</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">
|
|
83
|
+
<a name='L24'></a><a href='#L24'>24</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
|
|
84
84
|
<span class="cline-any cline-yes">2x</span>
|
|
85
85
|
<span class="cline-any cline-neutral"> </span>
|
|
86
86
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -95,11 +95,11 @@
|
|
|
95
95
|
<span class="cline-any cline-yes">1x</span>
|
|
96
96
|
<span class="cline-any cline-neutral"> </span>
|
|
97
97
|
<span class="cline-any cline-neutral"> </span>
|
|
98
|
-
<span class="cline-any cline-yes">
|
|
98
|
+
<span class="cline-any cline-yes">38x</span>
|
|
99
99
|
<span class="cline-any cline-yes">1x</span>
|
|
100
100
|
<span class="cline-any cline-neutral"> </span>
|
|
101
101
|
<span class="cline-any cline-neutral"> </span>
|
|
102
|
-
<span class="cline-any cline-yes">
|
|
102
|
+
<span class="cline-any cline-yes">38x</span>
|
|
103
103
|
<span class="cline-any cline-neutral"> </span>
|
|
104
104
|
<span class="cline-any cline-neutral"> </span>
|
|
105
105
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -133,7 +133,7 @@ exports.ExportFormats = {
|
|
|
133
133
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
134
134
|
Code coverage generated by
|
|
135
135
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
136
|
-
at
|
|
136
|
+
at Tue Feb 08 2022 15:32:15 GMT+0000 (Coordinated Universal Time)
|
|
137
137
|
</div>
|
|
138
138
|
</div>
|
|
139
139
|
<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">73.
|
|
26
|
+
<span class="strong">73.84% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>144/195</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">74.09% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>143/193</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -89,32 +89,32 @@
|
|
|
89
89
|
|
|
90
90
|
<tr>
|
|
91
91
|
<td class="file high" data-value="index.js"><a href="index.js.html">index.js</a></td>
|
|
92
|
-
<td data-value="88.
|
|
92
|
+
<td data-value="88.4" class="pic high">
|
|
93
93
|
<div class="chart"><div class="cover-fill" style="width: 88%"></div><div class="cover-empty" style="width: 12%"></div></div>
|
|
94
94
|
</td>
|
|
95
|
-
<td data-value="88.
|
|
96
|
-
<td data-value="
|
|
95
|
+
<td data-value="88.4" class="pct high">88.4%</td>
|
|
96
|
+
<td data-value="69" class="abs high">61/69</td>
|
|
97
97
|
<td data-value="72" class="pct medium">72%</td>
|
|
98
98
|
<td data-value="25" class="abs medium">18/25</td>
|
|
99
99
|
<td data-value="62.5" class="pct medium">62.5%</td>
|
|
100
100
|
<td data-value="8" class="abs medium">5/8</td>
|
|
101
|
-
<td data-value="
|
|
102
|
-
<td data-value="
|
|
101
|
+
<td data-value="89.7" class="pct high">89.7%</td>
|
|
102
|
+
<td data-value="68" class="abs high">61/68</td>
|
|
103
103
|
</tr>
|
|
104
104
|
|
|
105
105
|
<tr>
|
|
106
106
|
<td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
|
|
107
|
-
<td data-value="
|
|
108
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
107
|
+
<td data-value="53.08" class="pic medium">
|
|
108
|
+
<div class="chart"><div class="cover-fill" style="width: 53%"></div><div class="cover-empty" style="width: 47%"></div></div>
|
|
109
109
|
</td>
|
|
110
|
-
<td data-value="
|
|
111
|
-
<td data-value="
|
|
110
|
+
<td data-value="53.08" class="pct medium">53.08%</td>
|
|
111
|
+
<td data-value="81" class="abs medium">43/81</td>
|
|
112
112
|
<td data-value="34.61" class="pct low">34.61%</td>
|
|
113
113
|
<td data-value="26" class="abs low">9/26</td>
|
|
114
114
|
<td data-value="66.66" class="pct medium">66.66%</td>
|
|
115
115
|
<td data-value="9" class="abs medium">6/9</td>
|
|
116
|
-
<td data-value="
|
|
117
|
-
<td data-value="
|
|
116
|
+
<td data-value="53.08" class="pct medium">53.08%</td>
|
|
117
|
+
<td data-value="81" class="abs medium">43/81</td>
|
|
118
118
|
</tr>
|
|
119
119
|
|
|
120
120
|
<tr>
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
141
141
|
Code coverage generated by
|
|
142
142
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
143
|
-
at
|
|
143
|
+
at Tue Feb 08 2022 15:32:15 GMT+0000 (Coordinated Universal Time)
|
|
144
144
|
</div>
|
|
145
145
|
</div>
|
|
146
146
|
<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">88.
|
|
26
|
+
<span class="strong">88.4% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>61/69</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">89.7% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>61/68</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -176,23 +176,20 @@
|
|
|
176
176
|
<a name='L117'></a><a href='#L117'>117</a>
|
|
177
177
|
<a name='L118'></a><a href='#L118'>118</a>
|
|
178
178
|
<a name='L119'></a><a href='#L119'>119</a>
|
|
179
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
180
|
-
<
|
|
181
|
-
<
|
|
182
|
-
<span class="cline-any cline-yes">
|
|
183
|
-
<span class="cline-any cline-yes">
|
|
184
|
-
<span class="cline-any cline-yes">
|
|
185
|
-
<span class="cline-any cline-yes">
|
|
186
|
-
<span class="cline-any cline-yes">
|
|
187
|
-
<span class="cline-any cline-
|
|
188
|
-
<span class="cline-any cline-yes">
|
|
189
|
-
<span class="cline-any cline-neutral"> </span>
|
|
190
|
-
<span class="cline-any cline-yes">33x</span>
|
|
191
|
-
<span class="cline-any cline-yes">1x</span>
|
|
179
|
+
<a name='L120'></a><a href='#L120'>120</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">38x</span>
|
|
180
|
+
<span class="cline-any cline-yes">38x</span>
|
|
181
|
+
<span class="cline-any cline-yes">38x</span>
|
|
182
|
+
<span class="cline-any cline-yes">38x</span>
|
|
183
|
+
<span class="cline-any cline-yes">38x</span>
|
|
184
|
+
<span class="cline-any cline-yes">38x</span>
|
|
185
|
+
<span class="cline-any cline-yes">38x</span>
|
|
186
|
+
<span class="cline-any cline-yes">38x</span>
|
|
187
|
+
<span class="cline-any cline-neutral"> </span>
|
|
188
|
+
<span class="cline-any cline-yes">38x</span>
|
|
192
189
|
<span class="cline-any cline-yes">1x</span>
|
|
193
190
|
<span class="cline-any cline-neutral"> </span>
|
|
194
191
|
<span class="cline-any cline-neutral"> </span>
|
|
195
|
-
<span class="cline-any cline-yes">
|
|
192
|
+
<span class="cline-any cline-yes">38x</span>
|
|
196
193
|
<span class="cline-any cline-yes">8x</span>
|
|
197
194
|
<span class="cline-any cline-yes">8x</span>
|
|
198
195
|
<span class="cline-any cline-yes">8x</span>
|
|
@@ -221,7 +218,7 @@
|
|
|
221
218
|
<span class="cline-any cline-neutral"> </span>
|
|
222
219
|
<span class="cline-any cline-neutral"> </span>
|
|
223
220
|
<span class="cline-any cline-neutral"> </span>
|
|
224
|
-
<span class="cline-any cline-yes">
|
|
221
|
+
<span class="cline-any cline-yes">38x</span>
|
|
225
222
|
<span class="cline-any cline-yes">1x</span>
|
|
226
223
|
<span class="cline-any cline-yes">1x</span>
|
|
227
224
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -232,8 +229,7 @@
|
|
|
232
229
|
<span class="cline-any cline-yes">1x</span>
|
|
233
230
|
<span class="cline-any cline-neutral"> </span>
|
|
234
231
|
<span class="cline-any cline-neutral"> </span>
|
|
235
|
-
<span class="cline-any cline-yes">
|
|
236
|
-
<span class="cline-any cline-yes">2x</span>
|
|
232
|
+
<span class="cline-any cline-yes">38x</span>
|
|
237
233
|
<span class="cline-any cline-yes">2x</span>
|
|
238
234
|
<span class="cline-any cline-yes">2x</span>
|
|
239
235
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -299,22 +295,21 @@
|
|
|
299
295
|
<span class="cline-any cline-yes">2x</span>
|
|
300
296
|
<span class="cline-any cline-yes">2x</span>
|
|
301
297
|
<span class="cline-any cline-neutral"> </span>
|
|
302
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const
|
|
303
|
-
const viewTemplate = require("./viewBuilder")
|
|
298
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const viewTemplate = require("./viewBuilder")
|
|
304
299
|
const { apiFileReturn } = require("../../../utilities/fileSystem")
|
|
305
300
|
const exporters = require("./exporters")
|
|
306
301
|
const { saveView, getView, getViews, deleteView } = require("./utils")
|
|
307
302
|
const { fetchView } = require("../row")
|
|
308
303
|
const { getTable } = require("../table/utils")
|
|
309
304
|
const { FieldTypes } = require("../../../constants")
|
|
305
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
310
306
|
|
|
311
307
|
exports.fetch = async ctx => {
|
|
312
|
-
|
|
313
|
-
ctx.body = await getViews(db)
|
|
308
|
+
ctx.body = await getViews()
|
|
314
309
|
}
|
|
315
310
|
|
|
316
311
|
exports.save = async ctx => {
|
|
317
|
-
const db =
|
|
312
|
+
const db = getAppDB()
|
|
318
313
|
const { originalName, ...viewToSave } = ctx.request.body
|
|
319
314
|
const view = viewTemplate(viewToSave)
|
|
320
315
|
|
|
@@ -322,7 +317,7 @@ exports.save = async ctx => {
|
|
|
322
317
|
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot create view without a name")</span>
|
|
323
318
|
}
|
|
324
319
|
|
|
325
|
-
await saveView(
|
|
320
|
+
await saveView(originalName, viewToSave.name, view)
|
|
326
321
|
|
|
327
322
|
// add views to table document
|
|
328
323
|
const table = await db.get(ctx.request.body.tableId)
|
|
@@ -343,9 +338,9 @@ exports.save = async ctx => {
|
|
|
343
338
|
}
|
|
344
339
|
|
|
345
340
|
exports.destroy = async ctx => {
|
|
346
|
-
const db =
|
|
341
|
+
const db = getAppDB()
|
|
347
342
|
const viewName = decodeURI(ctx.params.viewName)
|
|
348
|
-
const view = await deleteView(
|
|
343
|
+
const view = await deleteView(viewName)
|
|
349
344
|
const table = await db.get(view.meta.tableId)
|
|
350
345
|
delete table.views[viewName]
|
|
351
346
|
await db.put(table)
|
|
@@ -354,9 +349,8 @@ exports.destroy = async ctx => {
|
|
|
354
349
|
}
|
|
355
350
|
|
|
356
351
|
exports.exportView = async ctx => {
|
|
357
|
-
const db = new CouchDB(ctx.appId)
|
|
358
352
|
const viewName = decodeURI(ctx.query.view)
|
|
359
|
-
const view = await getView(
|
|
353
|
+
const view = await getView(viewName)
|
|
360
354
|
|
|
361
355
|
const format = ctx.query.format
|
|
362
356
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (!format || !Object.values(exporters.ExportFormats).includes(format)) {
|
|
@@ -384,7 +378,7 @@ exports.exportView = async ctx => {
|
|
|
384
378
|
let schema = view && view.meta && view.meta.schema
|
|
385
379
|
if (!schema) {
|
|
386
380
|
const tableId = ctx.params.tableId || view.meta.tableId
|
|
387
|
-
const table = await getTable(
|
|
381
|
+
const table = await getTable(tableId)
|
|
388
382
|
schema = table.schema
|
|
389
383
|
}
|
|
390
384
|
|
|
@@ -427,7 +421,7 @@ exports.exportView = async ctx => {
|
|
|
427
421
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
428
422
|
Code coverage generated by
|
|
429
423
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
430
|
-
at
|
|
424
|
+
at Tue Feb 08 2022 15:32:15 GMT+0000 (Coordinated Universal Time)
|
|
431
425
|
</div>
|
|
432
426
|
</div>
|
|
433
427
|
<script src="../../../prettify.js"></script>
|