@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
|
@@ -8,12 +8,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
const CouchDB = require("../../../db");
|
|
12
11
|
const Deployment = require("./Deployment");
|
|
13
|
-
const { Replication,
|
|
12
|
+
const { Replication, getProdAppID, getDevelopmentAppID, } = require("@budibase/backend-core/db");
|
|
14
13
|
const { DocumentTypes, getAutomationParams } = require("../../../db/utils");
|
|
15
14
|
const { disableAllCrons, enableCronTrigger, } = require("../../../automations/utils");
|
|
16
15
|
const { app: appCache } = require("@budibase/backend-core/cache");
|
|
16
|
+
const { getAppId, getAppDB, getProdAppDB, } = require("@budibase/backend-core/context");
|
|
17
17
|
// the max time we can wait for an invalidation to complete before considering it failed
|
|
18
18
|
const MAX_PENDING_TIME_MS = 30 * 60000;
|
|
19
19
|
const DeploymentStatus = {
|
|
@@ -39,9 +39,8 @@ function checkAllDeployments(deployments) {
|
|
|
39
39
|
}
|
|
40
40
|
function storeDeploymentHistory(deployment) {
|
|
41
41
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
const appId = deployment.getAppId();
|
|
43
42
|
const deploymentJSON = deployment.getJSON();
|
|
44
|
-
const db =
|
|
43
|
+
const db = getAppDB();
|
|
45
44
|
let deploymentDoc;
|
|
46
45
|
try {
|
|
47
46
|
// theres only one deployment doc per app database
|
|
@@ -62,7 +61,7 @@ function storeDeploymentHistory(deployment) {
|
|
|
62
61
|
}
|
|
63
62
|
function initDeployedApp(prodAppId) {
|
|
64
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
const db =
|
|
64
|
+
const db = getProdAppDB();
|
|
66
65
|
console.log("Reading automation docs");
|
|
67
66
|
const automations = (yield db.allDocs(getAutomationParams(null, {
|
|
68
67
|
include_docs: true,
|
|
@@ -83,15 +82,17 @@ function initDeployedApp(prodAppId) {
|
|
|
83
82
|
function deployApp(deployment) {
|
|
84
83
|
return __awaiter(this, void 0, void 0, function* () {
|
|
85
84
|
try {
|
|
86
|
-
const
|
|
85
|
+
const appId = getAppId();
|
|
86
|
+
const devAppId = getDevelopmentAppID(appId);
|
|
87
|
+
const productionAppId = getProdAppID(appId);
|
|
87
88
|
const replication = new Replication({
|
|
88
|
-
source:
|
|
89
|
+
source: devAppId,
|
|
89
90
|
target: productionAppId,
|
|
90
91
|
});
|
|
91
92
|
console.log("Replication object created");
|
|
92
93
|
yield replication.replicate();
|
|
93
94
|
console.log("replication complete.. replacing app meta doc");
|
|
94
|
-
const db =
|
|
95
|
+
const db = getProdAppDB();
|
|
95
96
|
const appDoc = yield db.get(DocumentTypes.APP_METADATA);
|
|
96
97
|
appDoc.appId = productionAppId;
|
|
97
98
|
appDoc.instance._id = productionAppId;
|
|
@@ -113,8 +114,7 @@ function deployApp(deployment) {
|
|
|
113
114
|
exports.fetchDeployments = function (ctx) {
|
|
114
115
|
return __awaiter(this, void 0, void 0, function* () {
|
|
115
116
|
try {
|
|
116
|
-
const
|
|
117
|
-
const db = new CouchDB(appId);
|
|
117
|
+
const db = getAppDB();
|
|
118
118
|
const deploymentDoc = yield db.get(DocumentTypes.DEPLOYMENTS);
|
|
119
119
|
const { updated, deployments } = yield checkAllDeployments(deploymentDoc, ctx.user);
|
|
120
120
|
if (updated) {
|
|
@@ -130,8 +130,7 @@ exports.fetchDeployments = function (ctx) {
|
|
|
130
130
|
exports.deploymentProgress = function (ctx) {
|
|
131
131
|
return __awaiter(this, void 0, void 0, function* () {
|
|
132
132
|
try {
|
|
133
|
-
const
|
|
134
|
-
const db = new CouchDB(appId);
|
|
133
|
+
const db = getAppDB();
|
|
135
134
|
const deploymentDoc = yield db.get(DocumentTypes.DEPLOYMENTS);
|
|
136
135
|
ctx.body = deploymentDoc[ctx.params.deploymentId];
|
|
137
136
|
}
|
|
@@ -142,7 +141,7 @@ exports.deploymentProgress = function (ctx) {
|
|
|
142
141
|
};
|
|
143
142
|
exports.deployApp = function (ctx) {
|
|
144
143
|
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
-
let deployment = new Deployment(
|
|
144
|
+
let deployment = new Deployment();
|
|
146
145
|
console.log("Deployment object created");
|
|
147
146
|
deployment.setStatus(DeploymentStatus.PENDING);
|
|
148
147
|
console.log("Deployment object set to pending");
|
|
@@ -9,14 +9,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
const fetch = require("node-fetch");
|
|
12
|
-
const CouchDB = require("../../db");
|
|
13
12
|
const env = require("../../environment");
|
|
14
13
|
const { checkSlashesInUrl } = require("../../utilities");
|
|
15
14
|
const { request } = require("../../utilities/workerRequests");
|
|
16
15
|
const { clearLock } = require("../../utilities/redis");
|
|
17
|
-
const { Replication } = require("@budibase/backend-core/db");
|
|
16
|
+
const { Replication, getProdAppID } = require("@budibase/backend-core/db");
|
|
18
17
|
const { DocumentTypes } = require("../../db/utils");
|
|
19
18
|
const { app: appCache } = require("@budibase/backend-core/cache");
|
|
19
|
+
const { getProdAppDB, getAppDB } = require("@budibase/backend-core/context");
|
|
20
20
|
function redirect(ctx, method, path = "global") {
|
|
21
21
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
22
|
const { devPath } = ctx.params;
|
|
@@ -76,10 +76,10 @@ exports.clearLock = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
76
76
|
});
|
|
77
77
|
exports.revert = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
78
78
|
const { appId } = ctx.params;
|
|
79
|
-
const productionAppId = appId
|
|
79
|
+
const productionAppId = getProdAppID(appId);
|
|
80
80
|
// App must have been deployed first
|
|
81
81
|
try {
|
|
82
|
-
const db =
|
|
82
|
+
const db = getProdAppDB({ skip_setup: true });
|
|
83
83
|
const info = yield db.info();
|
|
84
84
|
if (info.error)
|
|
85
85
|
throw info.error;
|
|
@@ -99,7 +99,7 @@ exports.revert = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
99
99
|
});
|
|
100
100
|
yield replication.rollback();
|
|
101
101
|
// update appID in reverted app to be dev version again
|
|
102
|
-
const db =
|
|
102
|
+
const db = getAppDB();
|
|
103
103
|
const appDoc = yield db.get(DocumentTypes.APP_METADATA);
|
|
104
104
|
appDoc.appId = appId;
|
|
105
105
|
appDoc.instance._id = appId;
|
|
@@ -9,11 +9,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
const { EMPTY_LAYOUT, BASE_LAYOUT_PROP_IDS, } = require("../../constants/layouts");
|
|
12
|
-
const CouchDB = require("../../db");
|
|
13
12
|
const { generateLayoutID, getScreenParams } = require("../../db/utils");
|
|
13
|
+
const { getAppDB } = require("@budibase/backend-core/context");
|
|
14
14
|
exports.save = function (ctx) {
|
|
15
15
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
const db =
|
|
16
|
+
const db = getAppDB();
|
|
17
17
|
let layout = ctx.request.body;
|
|
18
18
|
if (!layout.props) {
|
|
19
19
|
layout = Object.assign(Object.assign({}, EMPTY_LAYOUT), layout);
|
|
@@ -28,7 +28,7 @@ exports.save = function (ctx) {
|
|
|
28
28
|
};
|
|
29
29
|
exports.destroy = function (ctx) {
|
|
30
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
const db =
|
|
31
|
+
const db = getAppDB();
|
|
32
32
|
const layoutId = ctx.params.layoutId, layoutRev = ctx.params.layoutRev;
|
|
33
33
|
if (Object.values(BASE_LAYOUT_PROP_IDS).includes(layoutId)) {
|
|
34
34
|
ctx.throw(400, "Cannot delete a built-in layout");
|
|
@@ -9,9 +9,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
const { MetadataTypes } = require("../../constants");
|
|
12
|
-
const CouchDB = require("../../db");
|
|
13
12
|
const { generateMetadataID } = require("../../db/utils");
|
|
14
13
|
const { saveEntityMetadata, deleteEntityMetadata } = require("../../utilities");
|
|
14
|
+
const { getAppDB } = require("@budibase/backend-core/context");
|
|
15
15
|
exports.getTypes = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
16
|
ctx.body = {
|
|
17
17
|
types: MetadataTypes,
|
|
@@ -22,18 +22,18 @@ exports.saveMetadata = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
22
22
|
if (type === MetadataTypes.AUTOMATION_TEST_HISTORY) {
|
|
23
23
|
ctx.throw(400, "Cannot save automation history type");
|
|
24
24
|
}
|
|
25
|
-
ctx.body = yield saveEntityMetadata(
|
|
25
|
+
ctx.body = yield saveEntityMetadata(type, entityId, ctx.request.body);
|
|
26
26
|
});
|
|
27
27
|
exports.deleteMetadata = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
28
28
|
const { type, entityId } = ctx.params;
|
|
29
|
-
yield deleteEntityMetadata(
|
|
29
|
+
yield deleteEntityMetadata(type, entityId);
|
|
30
30
|
ctx.body = {
|
|
31
31
|
message: "Metadata deleted successfully",
|
|
32
32
|
};
|
|
33
33
|
});
|
|
34
34
|
exports.getMetadata = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
35
35
|
const { type, entityId } = ctx.params;
|
|
36
|
-
const db =
|
|
36
|
+
const db = getAppDB();
|
|
37
37
|
const id = generateMetadataID(type, entityId);
|
|
38
38
|
try {
|
|
39
39
|
ctx.body = yield db.get(id);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
const { migrate, MIGRATIONS } = require("../../migrations");
|
|
12
|
+
exports.migrate = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
const options = ctx.request.body;
|
|
14
|
+
// don't await as can take a while, just return
|
|
15
|
+
migrate(options);
|
|
16
|
+
ctx.status = 200;
|
|
17
|
+
});
|
|
18
|
+
exports.fetchDefinitions = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
|
+
ctx.body = MIGRATIONS;
|
|
20
|
+
ctx.status = 200;
|
|
21
|
+
});
|
|
@@ -11,9 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
const { getBuiltinPermissions } = require("@budibase/backend-core/permissions");
|
|
12
12
|
const { isBuiltin, getDBRoleID, getExternalRoleID, getBuiltinRoles, } = require("@budibase/backend-core/roles");
|
|
13
13
|
const { getRoleParams } = require("../../db/utils");
|
|
14
|
-
const CouchDB = require("../../db");
|
|
15
14
|
const { CURRENTLY_SUPPORTED_LEVELS, getBasePermissions, } = require("../../utilities/security");
|
|
16
15
|
const { removeFromArray } = require("../../utilities");
|
|
16
|
+
const { getAppDB } = require("@budibase/backend-core/context");
|
|
17
17
|
const PermissionUpdateType = {
|
|
18
18
|
REMOVE: "remove",
|
|
19
19
|
ADD: "add",
|
|
@@ -30,7 +30,7 @@ function getAllDBRoles(db) {
|
|
|
30
30
|
}
|
|
31
31
|
function updatePermissionOnRole(appId, { roleId, resourceId, level }, updateType) {
|
|
32
32
|
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
-
const db =
|
|
33
|
+
const db = getAppDB();
|
|
34
34
|
const remove = updateType === PermissionUpdateType.REMOVE;
|
|
35
35
|
const isABuiltin = isBuiltin(roleId);
|
|
36
36
|
const dbRoleId = getDBRoleID(roleId);
|
|
@@ -93,7 +93,7 @@ exports.fetchLevels = function (ctx) {
|
|
|
93
93
|
};
|
|
94
94
|
exports.fetch = function (ctx) {
|
|
95
95
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
const db =
|
|
96
|
+
const db = getAppDB();
|
|
97
97
|
const roles = yield getAllDBRoles(db);
|
|
98
98
|
let permissions = {};
|
|
99
99
|
// create an object with structure role ID -> resource ID -> level
|
|
@@ -121,7 +121,7 @@ exports.fetch = function (ctx) {
|
|
|
121
121
|
exports.getResourcePerms = function (ctx) {
|
|
122
122
|
return __awaiter(this, void 0, void 0, function* () {
|
|
123
123
|
const resourceId = ctx.params.resourceId;
|
|
124
|
-
const db =
|
|
124
|
+
const db = getAppDB();
|
|
125
125
|
const body = yield db.allDocs(getRoleParams(null, {
|
|
126
126
|
include_docs: true,
|
|
127
127
|
}));
|
|
@@ -8,16 +8,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
12
|
exports.RestImporter = void 0;
|
|
16
|
-
const db_1 = __importDefault(require("../../../../db"));
|
|
17
13
|
const validation_1 = require("../validation");
|
|
18
14
|
const utils_1 = require("../../../../db/utils");
|
|
19
15
|
const openapi2_1 = require("./sources/openapi2");
|
|
20
16
|
const curl_1 = require("./sources/curl");
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
const context_1 = require("@budibase/backend-core/context");
|
|
21
19
|
class RestImporter {
|
|
22
20
|
constructor(data) {
|
|
23
21
|
this.init = () => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -31,7 +29,7 @@ class RestImporter {
|
|
|
31
29
|
this.getInfo = () => __awaiter(this, void 0, void 0, function* () {
|
|
32
30
|
return this.source.getInfo();
|
|
33
31
|
});
|
|
34
|
-
this.importQueries = (
|
|
32
|
+
this.importQueries = (datasourceId) => __awaiter(this, void 0, void 0, function* () {
|
|
35
33
|
// constuct the queries
|
|
36
34
|
let queries = yield this.source.getQueries(datasourceId);
|
|
37
35
|
// validate queries
|
|
@@ -51,7 +49,7 @@ class RestImporter {
|
|
|
51
49
|
return query;
|
|
52
50
|
});
|
|
53
51
|
// persist queries
|
|
54
|
-
const db =
|
|
52
|
+
const db = context_1.getAppDB();
|
|
55
53
|
const response = yield db.bulkDocs(queries);
|
|
56
54
|
// create index to seperate queries and errors
|
|
57
55
|
const queryIndex = queries.reduce((acc, query) => {
|
|
@@ -8,7 +8,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
const CouchDB = require("../../../db");
|
|
12
11
|
const { generateQueryID, getQueryParams, isProdAppID, } = require("../../../db/utils");
|
|
13
12
|
const { BaseQueryVerbs } = require("../../../constants");
|
|
14
13
|
const { Thread, ThreadType } = require("../../../threads");
|
|
@@ -16,6 +15,7 @@ const { save: saveDatasource } = require("../datasource");
|
|
|
16
15
|
const { RestImporter } = require("./import");
|
|
17
16
|
const { invalidateDynamicVariables } = require("../../../threads/utils");
|
|
18
17
|
const environment = require("../../../environment");
|
|
18
|
+
const { getAppDB } = require("@budibase/backend-core/context");
|
|
19
19
|
const Runner = new Thread(ThreadType.QUERY, {
|
|
20
20
|
timeoutMs: environment.QUERY_THREAD_TIMEOUT || 10000,
|
|
21
21
|
});
|
|
@@ -32,7 +32,7 @@ function enrichQueries(input) {
|
|
|
32
32
|
}
|
|
33
33
|
exports.fetch = function (ctx) {
|
|
34
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
-
const db =
|
|
35
|
+
const db = getAppDB();
|
|
36
36
|
const body = yield db.allDocs(getQueryParams(null, {
|
|
37
37
|
include_docs: true,
|
|
38
38
|
}));
|
|
@@ -67,13 +67,13 @@ exports.import = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
67
67
|
// use existing datasource
|
|
68
68
|
datasourceId = body.datasourceId;
|
|
69
69
|
}
|
|
70
|
-
const importResult = yield importer.importQueries(
|
|
70
|
+
const importResult = yield importer.importQueries(datasourceId);
|
|
71
71
|
ctx.body = Object.assign(Object.assign({}, importResult), { datasourceId });
|
|
72
72
|
ctx.status = 200;
|
|
73
73
|
});
|
|
74
74
|
exports.save = function (ctx) {
|
|
75
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
const db =
|
|
76
|
+
const db = getAppDB();
|
|
77
77
|
const query = ctx.request.body;
|
|
78
78
|
if (!query._id) {
|
|
79
79
|
query._id = generateQueryID(query.datasourceId);
|
|
@@ -86,7 +86,7 @@ exports.save = function (ctx) {
|
|
|
86
86
|
};
|
|
87
87
|
exports.find = function (ctx) {
|
|
88
88
|
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
-
const db =
|
|
89
|
+
const db = getAppDB();
|
|
90
90
|
const query = enrichQueries(yield db.get(ctx.params.queryId));
|
|
91
91
|
// remove properties that could be dangerous in real app
|
|
92
92
|
if (isProdAppID(ctx.appId)) {
|
|
@@ -98,7 +98,7 @@ exports.find = function (ctx) {
|
|
|
98
98
|
};
|
|
99
99
|
exports.preview = function (ctx) {
|
|
100
100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
-
const db =
|
|
101
|
+
const db = getAppDB();
|
|
102
102
|
const datasource = yield db.get(ctx.request.body.datasourceId);
|
|
103
103
|
// preview may not have a queryId as it hasn't been saved, but if it does
|
|
104
104
|
// this stops dynamic variables from calling the same query
|
|
@@ -127,7 +127,7 @@ exports.preview = function (ctx) {
|
|
|
127
127
|
};
|
|
128
128
|
function execute(ctx, opts = { rowsOnly: false }) {
|
|
129
129
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
const db =
|
|
130
|
+
const db = getAppDB();
|
|
131
131
|
const query = yield db.get(ctx.params.queryId);
|
|
132
132
|
const datasource = yield db.get(query.datasourceId);
|
|
133
133
|
const enrichedParameters = ctx.request.body.parameters || {};
|
|
@@ -173,7 +173,8 @@ exports.executeV2 = function (ctx) {
|
|
|
173
173
|
return execute(ctx, { rowsOnly: false });
|
|
174
174
|
});
|
|
175
175
|
};
|
|
176
|
-
const removeDynamicVariables = (
|
|
176
|
+
const removeDynamicVariables = (queryId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
177
|
+
const db = getAppDB();
|
|
177
178
|
const query = yield db.get(queryId);
|
|
178
179
|
const datasource = yield db.get(query.datasourceId);
|
|
179
180
|
const dynamicVariables = datasource.config.dynamicVariables;
|
|
@@ -188,8 +189,8 @@ const removeDynamicVariables = (db, queryId) => __awaiter(void 0, void 0, void 0
|
|
|
188
189
|
});
|
|
189
190
|
exports.destroy = function (ctx) {
|
|
190
191
|
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
-
const db =
|
|
192
|
-
yield removeDynamicVariables(
|
|
192
|
+
const db = getAppDB();
|
|
193
|
+
yield removeDynamicVariables(ctx.params.queryId);
|
|
193
194
|
yield db.remove(ctx.params.queryId, ctx.params.revId);
|
|
194
195
|
ctx.message = `Query deleted.`;
|
|
195
196
|
ctx.status = 200;
|
|
@@ -8,9 +8,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
-
const CouchDB = require("../../db");
|
|
12
11
|
const { Role, getRole, isBuiltin, getAllRoles, } = require("@budibase/backend-core/roles");
|
|
13
12
|
const { generateRoleID, getUserMetadataParams, InternalTables, } = require("../../db/utils");
|
|
13
|
+
const { getAppDB } = require("@budibase/backend-core/context");
|
|
14
14
|
const UpdateRolesOptions = {
|
|
15
15
|
CREATED: "created",
|
|
16
16
|
REMOVED: "removed",
|
|
@@ -42,17 +42,17 @@ function updateRolesOnUserTable(db, roleId, updateOption) {
|
|
|
42
42
|
}
|
|
43
43
|
exports.fetch = function (ctx) {
|
|
44
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
ctx.body = yield getAllRoles(
|
|
45
|
+
ctx.body = yield getAllRoles();
|
|
46
46
|
});
|
|
47
47
|
};
|
|
48
48
|
exports.find = function (ctx) {
|
|
49
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
-
ctx.body = yield getRole(ctx.
|
|
50
|
+
ctx.body = yield getRole(ctx.params.roleId);
|
|
51
51
|
});
|
|
52
52
|
};
|
|
53
53
|
exports.save = function (ctx) {
|
|
54
54
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
const db =
|
|
55
|
+
const db = getAppDB();
|
|
56
56
|
let { _id, name, inherits, permissionId } = ctx.request.body;
|
|
57
57
|
if (!_id) {
|
|
58
58
|
_id = generateRoleID();
|
|
@@ -75,7 +75,7 @@ exports.save = function (ctx) {
|
|
|
75
75
|
};
|
|
76
76
|
exports.destroy = function (ctx) {
|
|
77
77
|
return __awaiter(this, void 0, void 0, function* () {
|
|
78
|
-
const db =
|
|
78
|
+
const db = getAppDB();
|
|
79
79
|
const roleId = ctx.params.roleId;
|
|
80
80
|
if (isBuiltin(roleId)) {
|
|
81
81
|
ctx.throw(400, "Cannot delete builtin role.");
|
|
@@ -40,13 +40,12 @@ Routing.prototype.addScreenId = function (fullpath, roleId, screenId) {
|
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Gets the full routing structure by querying the routing view and processing the result into the tree.
|
|
43
|
-
* @param {string} appId The application to produce the routing structure for.
|
|
44
43
|
* @returns {Promise<object>} The routing structure, this is the full structure designed for use in the builder,
|
|
45
44
|
* if the client routing is required then the updateRoutingStructureForUserRole should be used.
|
|
46
45
|
*/
|
|
47
|
-
function getRoutingStructure(
|
|
46
|
+
function getRoutingStructure() {
|
|
48
47
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
const screenRoutes = yield getRoutingInfo(
|
|
48
|
+
const screenRoutes = yield getRoutingInfo();
|
|
50
49
|
const routing = new Routing();
|
|
51
50
|
for (let screenRoute of screenRoutes) {
|
|
52
51
|
let fullpath = screenRoute.routing.route;
|
|
@@ -57,12 +56,12 @@ function getRoutingStructure(appId) {
|
|
|
57
56
|
});
|
|
58
57
|
}
|
|
59
58
|
exports.fetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
60
|
-
ctx.body = yield getRoutingStructure(
|
|
59
|
+
ctx.body = yield getRoutingStructure();
|
|
61
60
|
});
|
|
62
61
|
exports.clientFetch = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
63
|
-
const routing = yield getRoutingStructure(
|
|
62
|
+
const routing = yield getRoutingStructure();
|
|
64
63
|
let roleId = ctx.user.role._id;
|
|
65
|
-
const roleIds = yield getUserRoleHierarchy(
|
|
64
|
+
const roleIds = yield getUserRoleHierarchy(roleId);
|
|
66
65
|
for (let topLevel of Object.values(routing.routes)) {
|
|
67
66
|
for (let subpathKey of Object.keys(topLevel.subpaths)) {
|
|
68
67
|
let found = false;
|