@budibase/server 2.1.32-alpha.8 → 2.1.33
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__/aws-sdk.ts +0 -14
- package/__mocks__/node-fetch.ts +1 -5
- package/builder/assets/{index.7176fd99.css → index.534f6c29.css} +1 -1
- package/builder/assets/{index.3efa93e2.js → index.d2995f56.js} +316 -316
- package/builder/index.html +2 -2
- package/coverage/clover.xml +3681 -10588
- package/coverage/coverage-final.json +77 -225
- package/coverage/lcov-report/{src/api/controllers/apikeys.ts.html → api/controllers/apikeys.js.html} +26 -26
- package/coverage/lcov-report/{src/api/controllers/automation.ts.html → api/controllers/automation.js.html} +75 -75
- package/coverage/lcov-report/{src/api/controllers/cloud.ts.html → api/controllers/cloud.js.html} +47 -47
- package/coverage/lcov-report/{src/api/controllers/datasource.ts.html → api/controllers/datasource.js.html} +87 -246
- package/coverage/lcov-report/{src/api/controllers/dev.ts.html → api/controllers/dev.js.html} +71 -53
- package/coverage/lcov-report/api/controllers/index.html +326 -0
- package/coverage/lcov-report/{src/api → api}/controllers/integration.js.html +10 -10
- package/coverage/lcov-report/{src/api/controllers/layout.ts.html → api/controllers/layout.js.html} +26 -26
- package/coverage/lcov-report/{src/api/controllers/metadata.ts.html → api/controllers/metadata.js.html} +23 -26
- package/coverage/lcov-report/{src/api → api}/controllers/migrations.js.html +10 -10
- package/coverage/lcov-report/{src/api/controllers/permission.ts.html → api/controllers/permission.js.html} +71 -80
- package/coverage/lcov-report/{src/utilities/routing → api/controllers/query}/index.html +8 -8
- package/coverage/lcov-report/{src/api/controllers/query/validation.ts.html → api/controllers/query/validation.js.html} +17 -17
- package/coverage/lcov-report/{src/api/controllers/role.ts.html → api/controllers/role.js.html} +56 -44
- package/coverage/lcov-report/{src/api/controllers/routing.ts.html → api/controllers/routing.js.html} +56 -65
- package/coverage/lcov-report/{src/api → api}/controllers/row/external.js.html +13 -13
- package/coverage/lcov-report/{src/api → api}/controllers/row/index.html +46 -76
- package/coverage/lcov-report/{src/api → api}/controllers/row/internal.js.html +29 -26
- package/coverage/lcov-report/{src/api/controllers/row/internalSearch.ts.html → api/controllers/row/internalSearch.js.html} +110 -182
- package/coverage/lcov-report/{src/api/controllers/row/staticFormula.ts.html → api/controllers/row/staticFormula.js.html} +54 -69
- package/coverage/lcov-report/{src/api/controllers/row/utils.ts.html → api/controllers/row/utils.js.html} +43 -64
- package/coverage/lcov-report/{src/api/controllers/script.ts.html → api/controllers/script.js.html} +14 -17
- package/coverage/lcov-report/{src/api/controllers/table/bulkFormula.ts.html → api/controllers/table/bulkFormula.js.html} +54 -96
- package/coverage/lcov-report/{src/api/controllers/table/external.ts.html → api/controllers/table/external.js.html} +100 -196
- package/coverage/lcov-report/{src/utilities/fileSystem → api/controllers/table}/index.html +44 -44
- package/coverage/lcov-report/{src/api/controllers/table/index.ts.html → api/controllers/table/index.js.html} +35 -35
- package/coverage/lcov-report/{src/api/controllers/templates.ts.html → api/controllers/templates.js.html} +25 -34
- package/coverage/lcov-report/{src/api/controllers/user.ts.html → api/controllers/user.js.html} +85 -79
- package/coverage/lcov-report/{src/api/controllers/view/exporters.ts.html → api/controllers/view/exporters.js.html} +14 -20
- package/coverage/lcov-report/{src/api → api}/controllers/view/index.html +30 -30
- package/coverage/lcov-report/{src/api/controllers/view/index.ts.html → api/controllers/view/index.js.html} +48 -75
- package/coverage/lcov-report/{src/api/controllers/view/utils.ts.html → api/controllers/view/utils.js.html} +43 -61
- package/coverage/lcov-report/{src/api → api}/controllers/view/viewBuilder.js.html +10 -10
- package/coverage/lcov-report/{src/api → api}/index.html +23 -23
- package/coverage/lcov-report/{src/api/index.ts.html → api/index.js.html} +56 -35
- package/coverage/lcov-report/{src/api/routes/analytics.ts.html → api/routes/analytics.js.html} +14 -14
- package/coverage/lcov-report/{src/middleware/selfhost.ts.html → api/routes/apikeys.js.html} +27 -27
- package/coverage/lcov-report/{src/api/routes/automation.ts.html → api/routes/automation.js.html} +42 -48
- package/coverage/lcov-report/{src/api/routes/backup.ts.html → api/routes/cloud.js.html} +21 -21
- package/coverage/lcov-report/{src/api/routes/component.ts.html → api/routes/component.js.html} +17 -17
- package/coverage/lcov-report/{src/api/routes/datasource.ts.html → api/routes/datasource.js.html} +33 -60
- package/coverage/lcov-report/{src/api/routes/cloud.ts.html → api/routes/deploy.js.html} +22 -25
- package/coverage/lcov-report/{src/api/routes/webhook.ts.html → api/routes/dev.js.html} +43 -46
- package/coverage/lcov-report/{src/api → api}/routes/index.html +47 -167
- package/coverage/lcov-report/{src/api/routes/apikeys.ts.html → api/routes/integration.js.html} +18 -18
- package/coverage/lcov-report/{src/api/routes/layout.ts.html → api/routes/layout.js.html} +18 -18
- package/coverage/lcov-report/{src/api/routes/metadata.ts.html → api/routes/metadata.js.html} +24 -24
- package/coverage/lcov-report/{src/sdk/index.ts.html → api/routes/migrations.js.html} +21 -24
- package/coverage/lcov-report/{src/api/routes/view.ts.html → api/routes/permission.js.html} +37 -40
- package/coverage/lcov-report/{src/api/routes/query.ts.html → api/routes/query.js.html} +42 -33
- package/coverage/lcov-report/api/routes/role.js.html +130 -0
- package/coverage/lcov-report/{src/api/routes/routing.ts.html → api/routes/routing.js.html} +17 -17
- package/coverage/lcov-report/api/routes/screen.js.html +139 -0
- package/coverage/lcov-report/{src/api/routes/script.ts.html → api/routes/script.js.html} +17 -17
- package/coverage/lcov-report/{src/api/routes/table.ts.html → api/routes/table.js.html} +33 -24
- package/coverage/lcov-report/{src/api/routes/templates.ts.html → api/routes/templates.js.html} +18 -18
- package/coverage/lcov-report/{src/api/routes/user.ts.html → api/routes/user.js.html} +35 -29
- package/coverage/lcov-report/{src/api → api}/routes/utils/index.html +15 -15
- package/coverage/lcov-report/{src/api/routes/utils/validators.ts.html → api/routes/utils/validators.js.html} +58 -46
- package/coverage/lcov-report/{src/definitions/automations.ts.html → api/routes/view.js.html} +41 -44
- package/coverage/lcov-report/{src/automations → automations}/actions.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/automationUtils.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/bullboard.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/index.html +24 -39
- package/coverage/lcov-report/{src/automations → automations}/index.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/bash.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/delay.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/discord.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/executeQuery.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/executeScript.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/filter.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/index.html +26 -56
- package/coverage/lcov-report/{src/automations → automations}/steps/integromat.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/loop.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/outgoingWebhook.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/queryRows.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/sendSmtpEmail.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/serverLog.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/slack.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/updateRow.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/steps/utils.js.html +19 -19
- package/coverage/lcov-report/{src/automations → automations}/steps/zapier.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/app.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/cron.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowDeleted.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowSaved.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/rowUpdated.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/webhook.js.html +10 -10
- package/coverage/lcov-report/{src/automations → automations}/triggers.js.html +23 -20
- package/coverage/lcov-report/{src/constants → constants}/index.html +14 -14
- package/coverage/lcov-report/{src/constants → constants}/index.js.html +22 -16
- package/coverage/lcov-report/{src/constants → constants}/layouts.js.html +10 -10
- package/coverage/lcov-report/{src/constants → constants}/screens.js.html +12 -12
- package/coverage/lcov-report/{src/db → db}/inMemoryView.js.html +13 -13
- package/coverage/lcov-report/{src/db → db}/index.html +27 -42
- package/coverage/lcov-report/{src/db → db}/index.js.html +18 -18
- package/coverage/lcov-report/{src/db → db}/linkedRows/LinkController.js.html +160 -22
- package/coverage/lcov-report/{src/db → db}/linkedRows/index.html +22 -37
- package/coverage/lcov-report/{src/db → db}/linkedRows/index.js.html +12 -12
- package/coverage/lcov-report/{src/db → db}/linkedRows/linkUtils.js.html +13 -13
- package/coverage/lcov-report/{src/db → db}/newid.js.html +10 -10
- package/coverage/lcov-report/{src/db/utils.ts.html → db/utils.js.html} +153 -105
- package/coverage/lcov-report/{src/events → events}/AutomationEmitter.js.html +10 -10
- package/coverage/lcov-report/{src/events → events}/index.html +10 -10
- package/coverage/lcov-report/{src/events → events}/index.js.html +10 -10
- package/coverage/lcov-report/{src/events → events}/utils.js.html +10 -10
- package/coverage/lcov-report/index.html +161 -671
- package/coverage/lcov-report/{src/integrations → integrations}/tests/TestConfiguration.js.html +10 -10
- package/coverage/lcov-report/{src/integrations → integrations}/tests/index.html +10 -10
- package/coverage/lcov-report/{src/middleware/appInfo.ts.html → middleware/appInfo.js.html} +28 -31
- package/coverage/lcov-report/{src/middleware/builder.ts.html → middleware/builder.js.html} +37 -43
- package/coverage/lcov-report/{src/middleware/currentapp.ts.html → middleware/currentapp.js.html} +68 -77
- package/coverage/lcov-report/{src/middleware → middleware}/index.html +63 -78
- package/coverage/lcov-report/{src/middleware/joi-validator.ts.html → middleware/joi-validator.js.html} +22 -25
- package/coverage/lcov-report/{src/middleware/publicApi.ts.html → middleware/publicApi.js.html} +24 -24
- package/coverage/lcov-report/{src/middleware/resourceId.ts.html → middleware/resourceId.js.html} +25 -40
- package/coverage/lcov-report/{src/tests/utilities/index.js.html → middleware/selfhost.js.html} +30 -33
- package/coverage/lcov-report/{src/middleware/utils.ts.html → middleware/utils.js.html} +13 -19
- package/coverage/lcov-report/{src/utilities/budibaseDir.ts.html → utilities/budibaseDir.js.html} +12 -12
- package/coverage/lcov-report/{src/utilities → utilities}/centralPath.js.html +10 -10
- package/coverage/lcov-report/{src/utilities → utilities}/csvParser.js.html +10 -10
- package/coverage/lcov-report/{src/utilities/global.ts.html → utilities/global.js.html} +74 -107
- package/coverage/lcov-report/{src/utilities → utilities}/index.html +61 -76
- package/coverage/lcov-report/{src/utilities/index.ts.html → utilities/index.js.html} +53 -77
- package/coverage/lcov-report/{src/utilities → utilities}/plugins.js.html +10 -10
- package/coverage/lcov-report/{src/utilities → utilities}/queue/inMemoryQueue.js.html +10 -10
- package/coverage/lcov-report/{src/utilities → utilities}/queue/index.html +10 -10
- package/coverage/lcov-report/{src/sdk → utilities/routing}/index.html +10 -10
- package/coverage/lcov-report/{src/api/routes/role.ts.html → utilities/routing/index.js.html} +42 -39
- package/coverage/lcov-report/{src/migrations → utilities/rowProcessor}/index.html +37 -22
- package/coverage/lcov-report/{src/utilities/rowProcessor/index.ts.html → utilities/rowProcessor/index.js.html} +344 -113
- package/coverage/lcov-report/{src/utilities/rowProcessor/utils.ts.html → utilities/rowProcessor/utils.js.html} +38 -50
- package/coverage/lcov-report/{src/utilities → utilities}/scriptRunner.js.html +10 -10
- package/coverage/lcov-report/{src/utilities/security.ts.html → utilities/security.js.html} +74 -56
- package/coverage/lcov-report/{src/utilities → utilities}/statusCodes.js.html +10 -10
- package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/index.html +27 -27
- package/coverage/lcov-report/{src/utilities/usageQuota/rows.ts.html → utilities/usageQuota/rows.js.html} +46 -34
- package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/usageQuoteReset.js.html +10 -10
- package/coverage/lcov-report/{src/utilities/users.ts.html → utilities/users.js.html} +35 -29
- package/coverage/lcov-report/{src/utilities/workerRequests.ts.html → utilities/workerRequests.js.html} +61 -76
- package/coverage/lcov.info +6772 -19273
- package/dist/api/controllers/apikeys.js +9 -12
- package/dist/api/controllers/application.js +45 -48
- package/dist/api/controllers/automation.js +84 -104
- package/dist/api/controllers/cloud.js +71 -84
- package/dist/api/controllers/component.js +2 -4
- package/dist/api/controllers/datasource.js +92 -144
- package/dist/api/controllers/deploy/Deployment.js +6 -10
- package/dist/api/controllers/deploy/index.js +16 -13
- package/dist/api/controllers/dev.js +81 -96
- package/dist/api/controllers/layout.js +15 -18
- package/dist/api/controllers/metadata.js +37 -51
- package/dist/api/controllers/permission.js +43 -52
- package/dist/api/controllers/plugin/index.js +7 -6
- package/dist/api/controllers/public/applications.js +9 -17
- package/dist/api/controllers/public/tables.js +9 -29
- package/dist/api/controllers/query/import/index.js +2 -1
- package/dist/api/controllers/query/index.js +13 -10
- package/dist/api/controllers/query/validation.js +33 -41
- package/dist/api/controllers/role.js +27 -29
- package/dist/api/controllers/routing.js +58 -71
- package/dist/api/controllers/row/ExternalRequest.js +8 -12
- package/dist/api/controllers/row/external.js +3 -3
- package/dist/api/controllers/row/index.js +7 -16
- package/dist/api/controllers/row/internal.js +12 -11
- package/dist/api/controllers/row/internalSearch.js +80 -95
- package/dist/api/controllers/row/staticFormula.js +75 -85
- package/dist/api/controllers/row/utils.js +84 -118
- package/dist/api/controllers/screen.js +66 -81
- package/dist/api/controllers/script.js +6 -13
- package/dist/api/controllers/static/index.js +11 -9
- package/dist/api/controllers/table/bulkFormula.js +35 -47
- package/dist/api/controllers/table/external.js +57 -67
- package/dist/api/controllers/table/index.js +33 -66
- package/dist/api/controllers/table/internal.js +6 -5
- package/dist/api/controllers/table/utils.js +35 -39
- package/dist/api/controllers/templates.js +10 -17
- package/dist/api/controllers/user.js +70 -82
- package/dist/api/controllers/view/exporters.js +4 -8
- package/dist/api/controllers/view/index.js +153 -201
- package/dist/api/controllers/view/utils.js +121 -151
- package/dist/api/index.js +34 -38
- package/dist/api/routes/analytics.js +3 -29
- package/dist/api/routes/apikeys.js +7 -33
- package/dist/api/routes/application.js +9 -8
- package/dist/api/routes/auth.js +2 -1
- package/dist/api/routes/automation.js +20 -46
- package/dist/api/routes/backup.js +4 -3
- package/dist/api/routes/cloud.js +6 -32
- package/dist/api/routes/component.js +6 -32
- package/dist/api/routes/datasource.js +13 -39
- package/dist/api/routes/deploy.js +8 -34
- package/dist/api/routes/dev.js +10 -36
- package/dist/api/routes/integration.js +7 -10
- package/dist/api/routes/layout.js +7 -33
- package/dist/api/routes/metadata.js +10 -36
- package/dist/api/routes/migrations.js +6 -32
- package/dist/api/routes/permission.js +12 -38
- package/dist/api/routes/plugin.js +5 -5
- package/dist/api/routes/public/index.js +9 -9
- package/dist/api/routes/query.js +15 -42
- package/dist/api/routes/role.js +10 -36
- package/dist/api/routes/routing.js +6 -32
- package/dist/api/routes/row.js +11 -12
- package/dist/api/routes/screen.js +9 -35
- package/dist/api/routes/script.js +6 -32
- package/dist/api/routes/static.js +9 -9
- package/dist/api/routes/table.js +13 -40
- package/dist/api/routes/templates.js +7 -33
- package/dist/api/routes/tests/utilities/TestFunctions.js +8 -6
- package/dist/api/routes/user.js +13 -40
- package/dist/api/routes/utils/validators.js +126 -142
- package/dist/api/routes/view.js +12 -38
- package/dist/api/routes/webhook.js +2 -1
- package/dist/app.js +4 -3
- package/dist/automations/tests/utilities/index.js +12 -21
- package/dist/automations/triggers.js +6 -5
- package/dist/automations/utils.js +8 -9
- package/dist/constants/index.js +5 -3
- package/dist/constants/screens.js +2 -2
- package/dist/db/inMemoryView.js +3 -3
- package/dist/db/linkedRows/LinkController.js +31 -4
- package/dist/db/linkedRows/index.js +2 -2
- package/dist/db/linkedRows/linkUtils.js +3 -3
- package/dist/db/utils.js +119 -146
- package/dist/db/views/staticViews.js +4 -4
- package/dist/integrations/elasticsearch.js +2 -26
- package/dist/integrations/googlesheets.js +6 -4
- package/dist/integrations/index.js +6 -15
- package/dist/integrations/s3.js +1 -157
- package/dist/middleware/appInfo.js +9 -14
- package/dist/middleware/authorized.js +21 -22
- package/dist/middleware/builder.js +40 -41
- package/dist/middleware/currentapp.js +37 -39
- package/dist/middleware/joi-validator.js +10 -17
- package/dist/middleware/publicApi.js +6 -5
- package/dist/middleware/resourceId.js +9 -16
- package/dist/middleware/selfhost.js +4 -5
- package/dist/middleware/utils.js +2 -5
- package/dist/migrations/functions/appUrls.js +2 -2
- package/dist/migrations/functions/backfill/global.js +1 -1
- package/dist/migrations/functions/usageQuotas/syncApps.js +4 -3
- package/dist/migrations/functions/usageQuotas/syncRows.js +4 -3
- package/dist/migrations/functions/userEmailViewCasing.js +3 -3
- package/dist/package.json +44 -10
- package/dist/sdk/app/backups/exports.js +2 -1
- package/dist/sdk/app/backups/imports.js +3 -2
- package/dist/sdk/app/tables/index.js +5 -5
- package/dist/startup.js +4 -4
- package/dist/tests/utilities/TestConfiguration.js +36 -30
- package/dist/tests/utilities/structures.js +4 -3
- package/dist/threads/automation.js +16 -15
- package/dist/threads/query.js +20 -17
- package/dist/threads/utils.js +9 -11
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/budibaseDir.js +2 -4
- package/dist/utilities/fileSystem/clientLibrary.js +12 -12
- package/dist/utilities/fileSystem/index.js +3 -3
- package/dist/utilities/fileSystem/utilities.js +22 -0
- package/dist/utilities/global.js +66 -87
- package/dist/utilities/index.js +75 -102
- package/dist/utilities/redis.js +65 -100
- package/dist/utilities/routing/index.js +23 -27
- package/dist/utilities/rowProcessor/index.js +191 -124
- package/dist/utilities/rowProcessor/utils.js +26 -35
- package/dist/utilities/security.js +35 -39
- package/dist/utilities/usageQuota/rows.js +49 -56
- package/dist/utilities/users.js +28 -31
- package/dist/utilities/workerRequests.js +82 -115
- package/dist/watch.js +2 -1
- package/package.json +45 -11
- package/scripts/exportAppTemplate.js +2 -2
- package/{src/tests/jestSetup.ts → scripts/jestSetup.js} +2 -11
- package/scripts/localdomain.js +6 -34
- package/src/api/controllers/{apikeys.ts → apikeys.js} +10 -10
- package/src/api/controllers/application.ts +42 -56
- package/src/api/controllers/auth.ts +3 -4
- package/src/api/controllers/{automation.ts → automation.js} +48 -48
- package/src/api/controllers/{cloud.ts → cloud.js} +24 -24
- package/src/api/controllers/component.ts +1 -2
- package/src/api/controllers/{datasource.ts → datasource.js} +47 -100
- package/src/api/controllers/deploy/{Deployment.ts → Deployment.js} +10 -13
- package/src/api/controllers/deploy/index.ts +25 -13
- package/src/api/controllers/{dev.ts → dev.js} +37 -31
- package/src/api/controllers/{layout.ts → layout.js} +8 -8
- package/src/api/controllers/{metadata.ts → metadata.js} +10 -11
- package/src/api/controllers/{permission.ts → permission.js} +46 -49
- package/src/api/controllers/plugin/index.ts +5 -4
- package/src/api/controllers/public/applications.ts +9 -15
- package/src/api/controllers/public/tables.ts +2 -2
- package/src/api/controllers/query/import/index.ts +3 -2
- package/src/api/controllers/query/index.ts +14 -11
- package/src/api/controllers/query/{validation.ts → validation.js} +7 -7
- package/src/api/controllers/{role.ts → role.js} +25 -21
- package/src/api/controllers/{routing.ts → routing.js} +34 -37
- package/src/api/controllers/row/ExternalRequest.ts +11 -9
- package/src/api/controllers/row/external.js +3 -3
- package/src/api/controllers/row/index.ts +9 -17
- package/src/api/controllers/row/internal.js +12 -11
- package/src/api/controllers/row/{internalSearch.ts → internalSearch.js} +68 -92
- package/src/api/controllers/row/{staticFormula.ts → staticFormula.js} +23 -28
- package/src/api/controllers/row/{utils.ts → utils.js} +18 -25
- package/src/api/controllers/screen.ts +6 -10
- package/src/api/controllers/script.js +11 -0
- package/src/api/controllers/static/index.ts +13 -9
- package/src/api/controllers/table/{bulkFormula.ts → bulkFormula.js} +25 -39
- package/src/api/controllers/table/{external.ts → external.js} +54 -86
- package/src/api/controllers/table/{index.ts → index.js} +17 -17
- package/src/api/controllers/table/internal.ts +6 -5
- package/src/api/controllers/table/utils.ts +21 -26
- package/src/api/controllers/{templates.ts → templates.js} +7 -10
- package/src/api/controllers/{user.ts → user.js} +49 -47
- package/src/api/controllers/view/{exporters.ts → exporters.js} +3 -5
- package/src/api/controllers/view/{index.ts → index.js} +27 -36
- package/src/api/controllers/view/{utils.ts → utils.js} +20 -26
- package/src/api/{index.ts → index.js} +22 -15
- package/src/api/routes/analytics.js +9 -0
- package/src/api/routes/apikeys.js +12 -0
- package/src/api/routes/application.ts +9 -17
- package/src/api/routes/auth.ts +2 -2
- package/src/api/routes/automation.js +85 -0
- package/src/api/routes/backup.ts +4 -8
- package/src/api/routes/cloud.js +14 -0
- package/src/api/routes/component.js +14 -0
- package/src/api/routes/datasource.js +51 -0
- package/src/api/routes/deploy.js +17 -0
- package/src/api/routes/dev.js +26 -0
- package/src/api/routes/integration.js +12 -0
- package/src/api/routes/layout.js +16 -0
- package/src/api/routes/{metadata.ts → metadata.js} +13 -13
- package/src/api/routes/migrations.js +14 -0
- package/src/api/routes/permission.js +33 -0
- package/src/api/routes/plugin.ts +6 -14
- package/src/api/routes/public/index.ts +10 -10
- package/src/api/routes/public/tests/compare.spec.js +1 -1
- package/src/api/routes/{query.ts → query.js} +22 -19
- package/src/api/routes/role.js +15 -0
- package/src/api/routes/routing.js +14 -0
- package/src/api/routes/row.ts +15 -13
- package/src/api/routes/screen.js +18 -0
- package/src/api/routes/script.js +10 -0
- package/src/api/routes/static.ts +10 -7
- package/src/api/routes/{table.ts → table.js} +13 -10
- package/src/api/routes/templates.js +16 -0
- package/src/api/routes/tests/analytics.spec.js +1 -1
- package/src/api/routes/tests/backup.spec.js +1 -9
- package/src/api/routes/tests/permissions.spec.js +1 -2
- package/src/api/routes/tests/query.spec.js +10 -15
- package/src/api/routes/tests/role.spec.js +9 -7
- package/src/api/routes/tests/routing.spec.js +1 -2
- package/src/api/routes/tests/row.spec.js +4 -3
- package/src/api/routes/tests/static.spec.js +2 -2
- package/src/api/routes/tests/table.spec.js +35 -38
- package/src/api/routes/tests/user.spec.js +1 -2
- package/src/api/routes/tests/utilities/TestFunctions.ts +8 -6
- package/src/api/routes/user.js +53 -0
- package/src/api/routes/utils/{validators.ts → validators.js} +37 -33
- package/src/api/routes/view.js +31 -0
- package/src/api/routes/webhook.ts +2 -2
- package/src/app.ts +4 -3
- package/src/automations/tests/updateRow.spec.js +1 -0
- package/src/automations/tests/utilities/index.js +4 -10
- package/src/automations/triggers.js +6 -5
- package/src/automations/utils.ts +12 -9
- package/src/constants/index.js +5 -3
- package/src/constants/screens.js +2 -2
- package/src/db/inMemoryView.js +3 -3
- package/src/db/linkedRows/LinkController.js +50 -4
- package/src/db/linkedRows/index.js +2 -2
- package/src/db/linkedRows/linkUtils.js +3 -3
- package/src/db/tests/linkController.spec.js +57 -73
- package/src/db/tests/linkTests.spec.js +14 -17
- package/src/db/{utils.ts → utils.js} +93 -77
- package/src/db/views/staticViews.js +4 -4
- package/src/integrations/base/sql.ts +1 -1
- package/src/integrations/base/sqlTable.ts +1 -1
- package/src/integrations/elasticsearch.ts +2 -32
- package/src/integrations/googlesheets.ts +7 -4
- package/src/integrations/index.ts +41 -45
- package/src/integrations/s3.ts +3 -179
- package/src/integrations/tests/s3.spec.ts +1 -85
- package/src/middleware/appInfo.js +19 -0
- package/src/middleware/authorized.ts +28 -21
- package/src/middleware/{builder.ts → builder.js} +15 -17
- package/src/middleware/{currentapp.ts → currentapp.js} +39 -42
- package/src/middleware/{joi-validator.ts → joi-validator.js} +8 -9
- package/src/middleware/publicApi.js +21 -0
- package/src/middleware/{resourceId.ts → resourceId.js} +11 -16
- package/src/middleware/{selfhost.ts → selfhost.js} +2 -4
- package/src/middleware/tests/authorized.spec.js +6 -5
- package/src/middleware/tests/currentapp.spec.js +63 -118
- package/src/middleware/{utils.ts → utils.js} +1 -3
- package/src/migrations/functions/appUrls.ts +2 -2
- package/src/migrations/functions/backfill/app/tables.ts +5 -2
- package/src/migrations/functions/backfill/global.ts +1 -1
- package/src/migrations/functions/tests/appUrls.spec.js +4 -4
- package/src/migrations/functions/tests/userEmailViewCasing.spec.js +9 -14
- package/src/migrations/functions/usageQuotas/syncApps.ts +4 -3
- package/src/migrations/functions/usageQuotas/syncRows.ts +5 -4
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +7 -7
- package/src/migrations/functions/userEmailViewCasing.ts +3 -3
- package/src/module.d.ts +14 -0
- package/src/sdk/app/backups/exports.ts +3 -5
- package/src/sdk/app/backups/imports.ts +14 -7
- package/src/sdk/app/backups/statistics.ts +18 -9
- package/src/sdk/app/tables/index.ts +8 -7
- package/src/startup.ts +2 -2
- package/src/tests/utilities/TestConfiguration.js +36 -42
- package/src/tests/utilities/structures.js +4 -3
- package/src/threads/automation.ts +16 -15
- package/src/threads/query.ts +17 -12
- package/src/threads/utils.ts +5 -4
- package/src/utilities/budibaseDir.js +3 -0
- package/src/utilities/fileSystem/clientLibrary.js +12 -12
- package/src/utilities/fileSystem/index.js +8 -8
- package/src/utilities/fileSystem/utilities.js +36 -0
- package/src/utilities/global.js +127 -0
- package/src/utilities/{index.ts → index.js} +32 -40
- package/src/utilities/{redis.ts → redis.js} +20 -21
- package/src/utilities/routing/index.js +25 -0
- package/src/utilities/rowProcessor/{index.ts → index.js} +142 -65
- package/src/utilities/rowProcessor/{utils.ts → utils.js} +15 -19
- package/src/utilities/security.js +71 -0
- package/src/utilities/usageQuota/{rows.ts → rows.js} +18 -14
- package/src/utilities/{users.ts → users.js} +13 -11
- package/src/utilities/{workerRequests.ts → workerRequests.js} +38 -43
- package/src/watch.ts +3 -2
- package/tsconfig.json +1 -3
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +0 -190
- package/coverage/lcov-report/src/api/controllers/application.ts.html +0 -2038
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +0 -301
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +0 -148
- package/coverage/lcov-report/src/api/controllers/component.ts.html +0 -259
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +0 -259
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +0 -131
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +0 -730
- package/coverage/lcov-report/src/api/controllers/index.html +0 -431
- package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +0 -130
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +0 -310
- package/coverage/lcov-report/src/api/controllers/plugin/index.html +0 -206
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +0 -484
- package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +0 -253
- package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +0 -97
- package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +0 -121
- package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +0 -142
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +0 -334
- package/coverage/lcov-report/src/api/controllers/public/index.html +0 -191
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +0 -181
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +0 -191
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +0 -124
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +0 -202
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +0 -178
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +0 -163
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +0 -181
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +0 -145
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +0 -328
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +0 -253
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +0 -268
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +0 -220
- package/coverage/lcov-report/src/api/controllers/query/import/index.html +0 -116
- package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +0 -373
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +0 -131
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +0 -379
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +0 -157
- package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +0 -403
- package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +0 -146
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +0 -586
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +0 -712
- package/coverage/lcov-report/src/api/controllers/query/index.html +0 -131
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +0 -976
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +0 -2320
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +0 -541
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +0 -463
- package/coverage/lcov-report/src/api/controllers/static/index.html +0 -116
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +0 -688
- package/coverage/lcov-report/src/api/controllers/table/index.html +0 -176
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +0 -661
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +0 -1255
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +0 -379
- package/coverage/lcov-report/src/api/routes/application.ts.html +0 -223
- package/coverage/lcov-report/src/api/routes/auth.ts.html +0 -109
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
- package/coverage/lcov-report/src/api/routes/dev.ts.html +0 -199
- package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
- package/coverage/lcov-report/src/api/routes/integration.ts.html +0 -133
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
- package/coverage/lcov-report/src/api/routes/permission.ts.html +0 -208
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +0 -151
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +0 -541
- package/coverage/lcov-report/src/api/routes/public/index.html +0 -191
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +0 -502
- package/coverage/lcov-report/src/api/routes/public/middleware/index.html +0 -116
- package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +0 -328
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +0 -313
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +0 -598
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +0 -586
- package/coverage/lcov-report/src/api/routes/public/users.ts.html +0 -511
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +0 -238
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +0 -116
- package/coverage/lcov-report/src/api/routes/row.ts.html +0 -883
- package/coverage/lcov-report/src/api/routes/screen.ts.html +0 -154
- package/coverage/lcov-report/src/api/routes/static.ts.html +0 -280
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +0 -550
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +0 -131
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.js.html +0 -367
- package/coverage/lcov-report/src/app.ts.html +0 -400
- package/coverage/lcov-report/src/automations/logging/index.html +0 -116
- package/coverage/lcov-report/src/automations/logging/index.ts.html +0 -199
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +0 -367
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -334
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
- package/coverage/lcov-report/src/automations/tests/utilities/index.js.html +0 -256
- package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.js.html +0 -2023
- package/coverage/lcov-report/src/db/defaultData/employeeImport.js.html +0 -541
- package/coverage/lcov-report/src/db/defaultData/expensesImport.js.html +0 -427
- package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.js.html +0 -403
- package/coverage/lcov-report/src/db/defaultData/jobsImport.js.html +0 -559
- package/coverage/lcov-report/src/db/dynamoClient.js.html +0 -466
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.js.html +0 -226
- package/coverage/lcov-report/src/definitions/datasource.ts.html +0 -235
- package/coverage/lcov-report/src/definitions/index.html +0 -131
- package/coverage/lcov-report/src/environment.js.html +0 -445
- package/coverage/lcov-report/src/index.html +0 -191
- package/coverage/lcov-report/src/index.ts.html +0 -133
- package/coverage/lcov-report/src/integrations/airtable.ts.html +0 -529
- package/coverage/lcov-report/src/integrations/arangodb.ts.html +0 -415
- package/coverage/lcov-report/src/integrations/base/index.html +0 -161
- package/coverage/lcov-report/src/integrations/base/query.ts.html +0 -133
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +0 -1951
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +0 -691
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +0 -121
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +0 -406
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +0 -745
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +0 -634
- package/coverage/lcov-report/src/integrations/firebase.ts.html +0 -646
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +0 -1312
- package/coverage/lcov-report/src/integrations/index.html +0 -371
- package/coverage/lcov-report/src/integrations/index.ts.html +0 -445
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +0 -1006
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
- package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -952
- package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1474
- package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1069
- package/coverage/lcov-report/src/integrations/queries/index.html +0 -116
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +0 -463
- package/coverage/lcov-report/src/integrations/redis.ts.html +0 -550
- package/coverage/lcov-report/src/integrations/rest.ts.html +0 -1381
- package/coverage/lcov-report/src/integrations/s3.ts.html +0 -862
- package/coverage/lcov-report/src/integrations/snowflake.ts.html +0 -376
- package/coverage/lcov-report/src/integrations/utils.ts.html +0 -1006
- package/coverage/lcov-report/src/middleware/authorized.ts.html +0 -460
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +0 -187
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +0 -163
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +0 -151
- package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +0 -206
- package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +0 -172
- package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +0 -226
- package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +0 -151
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +0 -151
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +0 -166
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +0 -532
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +0 -283
- package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +0 -146
- package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +0 -265
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +0 -232
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +0 -724
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +0 -161
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +0 -106
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +0 -235
- package/coverage/lcov-report/src/migrations/functions/index.html +0 -146
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +0 -161
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +0 -94
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +0 -127
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +0 -115
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +0 -169
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +0 -124
- package/coverage/lcov-report/src/migrations/index.ts.html +0 -403
- package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +0 -205
- package/coverage/lcov-report/src/migrations/tests/index.html +0 -131
- package/coverage/lcov-report/src/migrations/tests/structures.ts.html +0 -283
- package/coverage/lcov-report/src/sdk/app/automations/index.html +0 -131
- package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +0 -100
- package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +0 -214
- package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +0 -91
- package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +0 -604
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +0 -682
- package/coverage/lcov-report/src/sdk/app/backups/index.html +0 -176
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +0 -112
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +0 -292
- package/coverage/lcov-report/src/sdk/app/tables/index.html +0 -116
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +0 -265
- package/coverage/lcov-report/src/startup.ts.html +0 -499
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.js.html +0 -1885
- package/coverage/lcov-report/src/tests/utilities/controllers.js.html +0 -133
- package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
- package/coverage/lcov-report/src/tests/utilities/structures.js.html +0 -649
- package/coverage/lcov-report/src/threads/automation.ts.html +0 -1594
- package/coverage/lcov-report/src/threads/index.html +0 -161
- package/coverage/lcov-report/src/threads/index.ts.html +0 -418
- package/coverage/lcov-report/src/threads/query.ts.html +0 -961
- package/coverage/lcov-report/src/threads/utils.ts.html +0 -373
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.js.html +0 -547
- package/coverage/lcov-report/src/utilities/fileSystem/index.js.html +0 -1141
- package/coverage/lcov-report/src/utilities/fileSystem/processor.js.html +0 -148
- package/coverage/lcov-report/src/utilities/redis.ts.html +0 -343
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +0 -181
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +0 -146
- package/coverage/lcov-report/src/utilities/rowProcessor/map.js.html +0 -370
- package/coverage/lcov-report/src/watch.ts.html +0 -196
- package/coverage/lcov-report/src/websocket.ts.html +0 -163
- package/dist/db/defaultData/datasource_bb_default.js +0 -565
- package/dist/db/defaultData/employeeImport.js +0 -153
- package/dist/db/defaultData/expensesImport.js +0 -115
- package/dist/db/defaultData/inventoryImport.js +0 -107
- package/dist/db/defaultData/jobsImport.js +0 -150
- package/dist/db/linkedRows/LinkDocument.js +0 -32
- package/dist/utilities/rowProcessor/map.js +0 -96
- package/jest.config.ts +0 -33
- package/src/api/controllers/script.ts +0 -12
- package/src/api/routes/analytics.ts +0 -9
- package/src/api/routes/apikeys.ts +0 -12
- package/src/api/routes/automation.ts +0 -87
- package/src/api/routes/cloud.ts +0 -18
- package/src/api/routes/component.ts +0 -14
- package/src/api/routes/datasource.ts +0 -60
- package/src/api/routes/deploy.ts +0 -21
- package/src/api/routes/dev.ts +0 -38
- package/src/api/routes/integration.ts +0 -16
- package/src/api/routes/layout.ts +0 -16
- package/src/api/routes/migrations.ts +0 -14
- package/src/api/routes/permission.ts +0 -41
- package/src/api/routes/role.ts +0 -24
- package/src/api/routes/routing.ts +0 -14
- package/src/api/routes/screen.ts +0 -23
- package/src/api/routes/script.ts +0 -10
- package/src/api/routes/templates.ts +0 -16
- package/src/api/routes/user.ts +0 -51
- package/src/api/routes/view.ts +0 -34
- package/src/db/defaultData/datasource_bb_default.js +0 -646
- package/src/db/defaultData/employeeImport.js +0 -152
- package/src/db/defaultData/expensesImport.js +0 -114
- package/src/db/defaultData/inventoryImport.js +0 -106
- package/src/db/defaultData/jobsImport.js +0 -158
- package/src/db/linkedRows/LinkDocument.js +0 -47
- package/src/middleware/appInfo.ts +0 -20
- package/src/middleware/publicApi.ts +0 -21
- package/src/utilities/budibaseDir.ts +0 -3
- package/src/utilities/global.ts +0 -138
- package/src/utilities/routing/index.ts +0 -32
- package/src/utilities/rowProcessor/map.js +0 -95
- package/src/utilities/security.ts +0 -65
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const { StaticDatabases } = require("@budibase/backend-core/db")
|
|
2
|
+
const { getGlobalDB } = require("@budibase/backend-core/tenancy")
|
|
3
3
|
|
|
4
|
-
const KEYS_DOC =
|
|
4
|
+
const KEYS_DOC = StaticDatabases.GLOBAL.docs.apiKeys
|
|
5
5
|
|
|
6
6
|
async function getBuilderMainDoc() {
|
|
7
|
-
const db =
|
|
7
|
+
const db = getGlobalDB()
|
|
8
8
|
try {
|
|
9
9
|
return await db.get(KEYS_DOC)
|
|
10
10
|
} catch (err) {
|
|
@@ -15,24 +15,24 @@ async function getBuilderMainDoc() {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
async function setBuilderMainDoc(doc
|
|
18
|
+
async function setBuilderMainDoc(doc) {
|
|
19
19
|
// make sure to override the ID
|
|
20
20
|
doc._id = KEYS_DOC
|
|
21
|
-
const db =
|
|
21
|
+
const db = getGlobalDB()
|
|
22
22
|
return db.put(doc)
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
exports.fetch = async function (ctx) {
|
|
26
26
|
try {
|
|
27
27
|
const mainDoc = await getBuilderMainDoc()
|
|
28
28
|
ctx.body = mainDoc.apiKeys ? mainDoc.apiKeys : {}
|
|
29
|
-
} catch (err
|
|
29
|
+
} catch (err) {
|
|
30
30
|
/* istanbul ignore next */
|
|
31
31
|
ctx.throw(400, err)
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
exports.update = async function (ctx) {
|
|
36
36
|
const key = ctx.params.key
|
|
37
37
|
const value = ctx.request.body.value
|
|
38
38
|
|
|
@@ -47,7 +47,7 @@ export async function update(ctx: BBContext) {
|
|
|
47
47
|
_id: resp.id,
|
|
48
48
|
_rev: resp.rev,
|
|
49
49
|
}
|
|
50
|
-
} catch (err
|
|
50
|
+
} catch (err) {
|
|
51
51
|
/* istanbul ignore next */
|
|
52
52
|
ctx.throw(400, err)
|
|
53
53
|
}
|
|
@@ -14,36 +14,35 @@ import {
|
|
|
14
14
|
DocumentType,
|
|
15
15
|
AppStatus,
|
|
16
16
|
} from "../../db/utils"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
const {
|
|
18
|
+
BUILTIN_ROLE_IDS,
|
|
19
|
+
AccessController,
|
|
20
|
+
} = require("@budibase/backend-core/roles")
|
|
21
|
+
const { CacheKeys, bustCache } = require("@budibase/backend-core/cache")
|
|
22
|
+
const {
|
|
23
|
+
getAllApps,
|
|
24
|
+
isDevAppID,
|
|
25
|
+
getProdAppID,
|
|
26
|
+
Replication,
|
|
27
|
+
} = require("@budibase/backend-core/db")
|
|
27
28
|
import { USERS_TABLE_SCHEMA } from "../../constants"
|
|
28
|
-
import { buildDefaultDocs } from "../../db/defaultData/datasource_bb_default"
|
|
29
|
-
|
|
30
29
|
import { removeAppFromUserRoles } from "../../utilities/workerRequests"
|
|
31
|
-
import {
|
|
32
|
-
clientLibraryPath,
|
|
33
|
-
stringToReadStream,
|
|
34
|
-
isQsTrue,
|
|
35
|
-
} from "../../utilities"
|
|
30
|
+
import { clientLibraryPath, stringToReadStream } from "../../utilities"
|
|
36
31
|
import { getLocksById } from "../../utilities/redis"
|
|
37
32
|
import {
|
|
38
33
|
updateClientLibrary,
|
|
39
34
|
backupClientLibrary,
|
|
40
35
|
revertClientLibrary,
|
|
41
36
|
} from "../../utilities/fileSystem/clientLibrary"
|
|
37
|
+
const { getTenantId, isMultiTenant } = require("@budibase/backend-core/tenancy")
|
|
42
38
|
import { syncGlobalUsers } from "./user"
|
|
39
|
+
const { app: appCache } = require("@budibase/backend-core/cache")
|
|
43
40
|
import { cleanupAutomations } from "../../automations/utils"
|
|
41
|
+
import { context } from "@budibase/backend-core"
|
|
44
42
|
import { checkAppMetadata } from "../../automations/logging"
|
|
45
43
|
import { getUniqueRows } from "../../utilities/usageQuota/rows"
|
|
46
44
|
import { quotas, groups } from "@budibase/pro"
|
|
45
|
+
import { errors, events, migrations } from "@budibase/backend-core"
|
|
47
46
|
import { App, Layout, Screen, MigrationType } from "@budibase/types"
|
|
48
47
|
import { BASE_LAYOUT_PROP_IDS } from "../../constants/layouts"
|
|
49
48
|
import { enrichPluginURLs } from "../../utilities/plugins"
|
|
@@ -76,7 +75,7 @@ async function getScreens() {
|
|
|
76
75
|
|
|
77
76
|
function getUserRoleId(ctx: any) {
|
|
78
77
|
return !ctx.user.role || !ctx.user.role._id
|
|
79
|
-
?
|
|
78
|
+
? BUILTIN_ROLE_IDS.PUBLIC
|
|
80
79
|
: ctx.user.role._id
|
|
81
80
|
}
|
|
82
81
|
|
|
@@ -123,8 +122,8 @@ const checkAppName = (
|
|
|
123
122
|
}
|
|
124
123
|
}
|
|
125
124
|
|
|
126
|
-
async function createInstance(template: any
|
|
127
|
-
const tenantId =
|
|
125
|
+
async function createInstance(template: any) {
|
|
126
|
+
const tenantId = isMultiTenant() ? getTenantId() : null
|
|
128
127
|
const baseAppId = generateAppID(tenantId)
|
|
129
128
|
const appId = generateDevAppID(baseAppId)
|
|
130
129
|
await context.updateAppId(appId)
|
|
@@ -155,27 +154,15 @@ async function createInstance(template: any, includeSampleData: boolean) {
|
|
|
155
154
|
} else {
|
|
156
155
|
// create the users table
|
|
157
156
|
await db.put(USERS_TABLE_SCHEMA)
|
|
158
|
-
|
|
159
|
-
if (includeSampleData) {
|
|
160
|
-
// create ootb stock db
|
|
161
|
-
await addDefaultTables(db)
|
|
162
|
-
}
|
|
163
157
|
}
|
|
164
158
|
|
|
165
159
|
return { _id: appId }
|
|
166
160
|
}
|
|
167
161
|
|
|
168
|
-
const addDefaultTables = async (db: any) => {
|
|
169
|
-
const defaultDbDocs = buildDefaultDocs()
|
|
170
|
-
|
|
171
|
-
// add in the default db data docs - tables, datasource, rows and links
|
|
172
|
-
await db.bulkDocs([...defaultDbDocs])
|
|
173
|
-
}
|
|
174
|
-
|
|
175
162
|
export const fetch = async (ctx: any) => {
|
|
176
163
|
const dev = ctx.query && ctx.query.status === AppStatus.DEV
|
|
177
164
|
const all = ctx.query && ctx.query.status === AppStatus.ALL
|
|
178
|
-
const apps =
|
|
165
|
+
const apps = await getAllApps({ dev, all })
|
|
179
166
|
|
|
180
167
|
const appIds = apps
|
|
181
168
|
.filter((app: any) => app.status === "development")
|
|
@@ -200,7 +187,7 @@ export const fetch = async (ctx: any) => {
|
|
|
200
187
|
export const fetchAppDefinition = async (ctx: any) => {
|
|
201
188
|
const layouts = await getLayouts()
|
|
202
189
|
const userRoleId = getUserRoleId(ctx)
|
|
203
|
-
const accessController = new
|
|
190
|
+
const accessController = new AccessController()
|
|
204
191
|
const screens = await accessController.checkScreensAccess(
|
|
205
192
|
await getScreens(),
|
|
206
193
|
userRoleId
|
|
@@ -224,7 +211,7 @@ export const fetchAppPackage = async (ctx: any) => {
|
|
|
224
211
|
// Only filter screens if the user is not a builder
|
|
225
212
|
if (!(ctx.user.builder && ctx.user.builder.global)) {
|
|
226
213
|
const userRoleId = getUserRoleId(ctx)
|
|
227
|
-
const accessController = new
|
|
214
|
+
const accessController = new AccessController()
|
|
228
215
|
screens = await accessController.checkScreensAccess(screens, userRoleId)
|
|
229
216
|
}
|
|
230
217
|
|
|
@@ -237,7 +224,7 @@ export const fetchAppPackage = async (ctx: any) => {
|
|
|
237
224
|
}
|
|
238
225
|
|
|
239
226
|
const performAppCreate = async (ctx: any) => {
|
|
240
|
-
const apps = await
|
|
227
|
+
const apps = await getAllApps({ dev: true })
|
|
241
228
|
const name = ctx.request.body.name
|
|
242
229
|
checkAppName(ctx, apps, name)
|
|
243
230
|
const url = getAppUrl(ctx)
|
|
@@ -252,8 +239,7 @@ const performAppCreate = async (ctx: any) => {
|
|
|
252
239
|
if (ctx.request.files && ctx.request.files.templateFile) {
|
|
253
240
|
instanceConfig.file = ctx.request.files.templateFile
|
|
254
241
|
}
|
|
255
|
-
const
|
|
256
|
-
const instance = await createInstance(instanceConfig, includeSampleData)
|
|
242
|
+
const instance = await createInstance(instanceConfig)
|
|
257
243
|
const appId = instance._id
|
|
258
244
|
const db = context.getAppDB()
|
|
259
245
|
|
|
@@ -268,7 +254,7 @@ const performAppCreate = async (ctx: any) => {
|
|
|
268
254
|
url: url,
|
|
269
255
|
template: templateKey,
|
|
270
256
|
instance,
|
|
271
|
-
tenantId:
|
|
257
|
+
tenantId: getTenantId(),
|
|
272
258
|
updatedAt: new Date().toISOString(),
|
|
273
259
|
createdAt: new Date().toISOString(),
|
|
274
260
|
status: AppStatus.DEV,
|
|
@@ -327,7 +313,7 @@ const performAppCreate = async (ctx: any) => {
|
|
|
327
313
|
await createApp(appId)
|
|
328
314
|
}
|
|
329
315
|
|
|
330
|
-
await
|
|
316
|
+
await appCache.invalidateAppMetadata(appId, newApplication)
|
|
331
317
|
return newApplication
|
|
332
318
|
}
|
|
333
319
|
|
|
@@ -357,7 +343,7 @@ const creationEvents = async (request: any, app: App) => {
|
|
|
357
343
|
}
|
|
358
344
|
|
|
359
345
|
const appPostCreate = async (ctx: any, app: App) => {
|
|
360
|
-
const tenantId =
|
|
346
|
+
const tenantId = getTenantId()
|
|
361
347
|
await migrations.backPopulateMigrations({
|
|
362
348
|
type: MigrationType.APP,
|
|
363
349
|
tenantId,
|
|
@@ -370,9 +356,7 @@ const appPostCreate = async (ctx: any, app: App) => {
|
|
|
370
356
|
const rowCount = rows ? rows.length : 0
|
|
371
357
|
if (rowCount) {
|
|
372
358
|
try {
|
|
373
|
-
await
|
|
374
|
-
return quotas.addRows(rowCount)
|
|
375
|
-
})
|
|
359
|
+
await quotas.addRows(rowCount)
|
|
376
360
|
} catch (err: any) {
|
|
377
361
|
if (err.code && err.code === errors.codes.USAGE_LIMIT_EXCEEDED) {
|
|
378
362
|
// this import resulted in row usage exceeding the quota
|
|
@@ -390,7 +374,7 @@ const appPostCreate = async (ctx: any, app: App) => {
|
|
|
390
374
|
export const create = async (ctx: any) => {
|
|
391
375
|
const newApplication = await quotas.addApp(() => performAppCreate(ctx))
|
|
392
376
|
await appPostCreate(ctx, newApplication)
|
|
393
|
-
await
|
|
377
|
+
await bustCache(CacheKeys.CHECKLIST)
|
|
394
378
|
ctx.body = newApplication
|
|
395
379
|
ctx.status = 200
|
|
396
380
|
}
|
|
@@ -398,7 +382,7 @@ export const create = async (ctx: any) => {
|
|
|
398
382
|
// This endpoint currently operates as a PATCH rather than a PUT
|
|
399
383
|
// Thus name and url fields are handled only if present
|
|
400
384
|
export const update = async (ctx: any) => {
|
|
401
|
-
const apps = await
|
|
385
|
+
const apps = await getAllApps({ dev: true })
|
|
402
386
|
// validation
|
|
403
387
|
const name = ctx.request.body.name
|
|
404
388
|
if (name) {
|
|
@@ -471,7 +455,7 @@ const destroyApp = async (ctx: any) => {
|
|
|
471
455
|
let isUnpublish = ctx.query && ctx.query.unpublish
|
|
472
456
|
|
|
473
457
|
if (isUnpublish) {
|
|
474
|
-
appId =
|
|
458
|
+
appId = getProdAppID(appId)
|
|
475
459
|
}
|
|
476
460
|
|
|
477
461
|
const db = isUnpublish ? context.getProdAppDB() : context.getAppDB()
|
|
@@ -497,7 +481,7 @@ const destroyApp = async (ctx: any) => {
|
|
|
497
481
|
else {
|
|
498
482
|
await removeAppFromUserRoles(ctx, appId)
|
|
499
483
|
}
|
|
500
|
-
await
|
|
484
|
+
await appCache.invalidateAppMetadata(appId)
|
|
501
485
|
return result
|
|
502
486
|
}
|
|
503
487
|
|
|
@@ -533,17 +517,19 @@ export const sync = async (ctx: any, next: any) => {
|
|
|
533
517
|
}
|
|
534
518
|
|
|
535
519
|
const appId = ctx.params.appId
|
|
536
|
-
if (!
|
|
520
|
+
if (!isDevAppID(appId)) {
|
|
537
521
|
ctx.throw(400, "This action cannot be performed for production apps")
|
|
538
522
|
}
|
|
539
523
|
|
|
540
524
|
// replicate prod to dev
|
|
541
|
-
const prodAppId =
|
|
525
|
+
const prodAppId = getProdAppID(appId)
|
|
542
526
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
527
|
+
try {
|
|
528
|
+
// specific case, want to make sure setup is skipped
|
|
529
|
+
const prodDb = context.getProdAppDB({ skip_setup: true })
|
|
530
|
+
const info = await prodDb.info()
|
|
531
|
+
if (info.error) throw info.error
|
|
532
|
+
} catch (err) {
|
|
547
533
|
// the database doesn't exist. Don't replicate
|
|
548
534
|
ctx.status = 200
|
|
549
535
|
ctx.body = {
|
|
@@ -552,7 +538,7 @@ export const sync = async (ctx: any, next: any) => {
|
|
|
552
538
|
return next()
|
|
553
539
|
}
|
|
554
540
|
|
|
555
|
-
const replication = new
|
|
541
|
+
const replication = new Replication({
|
|
556
542
|
source: prodAppId,
|
|
557
543
|
target: appId,
|
|
558
544
|
})
|
|
@@ -593,7 +579,7 @@ export const updateAppPackage = async (appPackage: any, appId: any) => {
|
|
|
593
579
|
|
|
594
580
|
await db.put(newAppPackage)
|
|
595
581
|
// remove any cached metadata, so that it will be updated
|
|
596
|
-
await
|
|
582
|
+
await appCache.invalidateAppMetadata(appId)
|
|
597
583
|
return newAppPackage
|
|
598
584
|
})
|
|
599
585
|
}
|
|
@@ -3,7 +3,6 @@ import { InternalTables } from "../../db/utils"
|
|
|
3
3
|
import { getFullUser } from "../../utilities/users"
|
|
4
4
|
import { roles, context } from "@budibase/backend-core"
|
|
5
5
|
import { groups } from "@budibase/pro"
|
|
6
|
-
import { ContextUser, User, Row } from "@budibase/types"
|
|
7
6
|
|
|
8
7
|
const PUBLIC_ROLE = roles.BUILTIN_ROLE_IDS.PUBLIC
|
|
9
8
|
|
|
@@ -25,7 +24,7 @@ export async function fetchSelf(ctx: any) {
|
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
const appId = context.getAppId()
|
|
28
|
-
const user
|
|
27
|
+
const user = await getFullUser(ctx, userId)
|
|
29
28
|
// this shouldn't be returned by the app self
|
|
30
29
|
delete user.roles
|
|
31
30
|
// forward the csrf token from the session
|
|
@@ -35,7 +34,7 @@ export async function fetchSelf(ctx: any) {
|
|
|
35
34
|
const db = context.getAppDB()
|
|
36
35
|
// check for group permissions
|
|
37
36
|
if (!user.roleId || user.roleId === PUBLIC_ROLE) {
|
|
38
|
-
const groupRoleId = await groups.getGroupRoleId(user
|
|
37
|
+
const groupRoleId = await groups.getGroupRoleId(user, appId)
|
|
39
38
|
user.roleId = groupRoleId || user.roleId
|
|
40
39
|
}
|
|
41
40
|
// remove the full roles structure
|
|
@@ -43,7 +42,7 @@ export async function fetchSelf(ctx: any) {
|
|
|
43
42
|
try {
|
|
44
43
|
const userTable = await db.get(InternalTables.USER_METADATA)
|
|
45
44
|
// specifically needs to make sure is enriched
|
|
46
|
-
ctx.body = await outputProcessing(userTable, user
|
|
45
|
+
ctx.body = await outputProcessing(userTable, user)
|
|
47
46
|
} catch (err: any) {
|
|
48
47
|
let response
|
|
49
48
|
// user didn't exist in app, don't pretend they do
|
|
@@ -1,21 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
const actions = require("../../automations/actions")
|
|
2
|
+
const triggers = require("../../automations/triggers")
|
|
3
|
+
const {
|
|
4
4
|
getAutomationParams,
|
|
5
5
|
generateAutomationID,
|
|
6
6
|
DocumentType,
|
|
7
|
-
}
|
|
8
|
-
|
|
7
|
+
} = require("../../db/utils")
|
|
8
|
+
const {
|
|
9
9
|
checkForWebhooks,
|
|
10
10
|
updateTestHistory,
|
|
11
11
|
removeDeprecated,
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
} = require("../../automations/utils")
|
|
13
|
+
const { deleteEntityMetadata } = require("../../utilities")
|
|
14
|
+
const { MetadataTypes } = require("../../constants")
|
|
15
|
+
const { setTestFlag, clearTestFlag } = require("../../utilities/redis")
|
|
16
|
+
const {
|
|
17
|
+
getAppDB,
|
|
18
|
+
getProdAppDB,
|
|
19
|
+
doInAppContext,
|
|
20
|
+
} = require("@budibase/backend-core/context")
|
|
21
|
+
const { events } = require("@budibase/backend-core")
|
|
22
|
+
const { app } = require("@budibase/backend-core/cache")
|
|
23
|
+
const { automations } = require("@budibase/pro")
|
|
19
24
|
|
|
20
25
|
const ACTION_DEFS = removeDeprecated(actions.ACTION_DEFINITIONS)
|
|
21
26
|
const TRIGGER_DEFS = removeDeprecated(triggers.TRIGGER_DEFINITIONS)
|
|
@@ -26,7 +31,7 @@ const TRIGGER_DEFS = removeDeprecated(triggers.TRIGGER_DEFINITIONS)
|
|
|
26
31
|
* *
|
|
27
32
|
*************************/
|
|
28
33
|
|
|
29
|
-
async function cleanupAutomationMetadata(automationId
|
|
34
|
+
async function cleanupAutomationMetadata(automationId) {
|
|
30
35
|
await deleteEntityMetadata(MetadataTypes.AUTOMATION_TEST_INPUT, automationId)
|
|
31
36
|
await deleteEntityMetadata(
|
|
32
37
|
MetadataTypes.AUTOMATION_TEST_HISTORY,
|
|
@@ -34,7 +39,7 @@ async function cleanupAutomationMetadata(automationId: string) {
|
|
|
34
39
|
)
|
|
35
40
|
}
|
|
36
41
|
|
|
37
|
-
function cleanAutomationInputs(automation
|
|
42
|
+
function cleanAutomationInputs(automation) {
|
|
38
43
|
if (automation == null) {
|
|
39
44
|
return automation
|
|
40
45
|
}
|
|
@@ -58,14 +63,14 @@ function cleanAutomationInputs(automation: Automation) {
|
|
|
58
63
|
return automation
|
|
59
64
|
}
|
|
60
65
|
|
|
61
|
-
|
|
62
|
-
const db =
|
|
66
|
+
exports.create = async function (ctx) {
|
|
67
|
+
const db = getAppDB()
|
|
63
68
|
let automation = ctx.request.body
|
|
64
69
|
automation.appId = ctx.appId
|
|
65
70
|
|
|
66
71
|
// call through to update if already exists
|
|
67
72
|
if (automation._id && automation._rev) {
|
|
68
|
-
return update(ctx)
|
|
73
|
+
return exports.update(ctx)
|
|
69
74
|
}
|
|
70
75
|
|
|
71
76
|
automation._id = generateAutomationID()
|
|
@@ -92,23 +97,17 @@ export async function create(ctx: BBContext) {
|
|
|
92
97
|
}
|
|
93
98
|
}
|
|
94
99
|
|
|
95
|
-
|
|
100
|
+
const getNewSteps = (oldAutomation, automation) => {
|
|
96
101
|
const oldStepIds = oldAutomation.definition.steps.map(s => s.id)
|
|
97
102
|
return automation.definition.steps.filter(s => !oldStepIds.includes(s.id))
|
|
98
103
|
}
|
|
99
104
|
|
|
100
|
-
|
|
101
|
-
oldAutomation: Automation,
|
|
102
|
-
automation: Automation
|
|
103
|
-
) {
|
|
105
|
+
const getDeletedSteps = (oldAutomation, automation) => {
|
|
104
106
|
const stepIds = automation.definition.steps.map(s => s.id)
|
|
105
107
|
return oldAutomation.definition.steps.filter(s => !stepIds.includes(s.id))
|
|
106
108
|
}
|
|
107
109
|
|
|
108
|
-
|
|
109
|
-
oldAutomation: Automation,
|
|
110
|
-
automation: Automation
|
|
111
|
-
) {
|
|
110
|
+
const handleStepEvents = async (oldAutomation, automation) => {
|
|
112
111
|
// new steps
|
|
113
112
|
const newSteps = getNewSteps(oldAutomation, automation)
|
|
114
113
|
for (let step of newSteps) {
|
|
@@ -122,8 +121,8 @@ export async function handleStepEvents(
|
|
|
122
121
|
}
|
|
123
122
|
}
|
|
124
123
|
|
|
125
|
-
|
|
126
|
-
const db =
|
|
124
|
+
exports.update = async function (ctx) {
|
|
125
|
+
const db = getAppDB()
|
|
127
126
|
let automation = ctx.request.body
|
|
128
127
|
automation.appId = ctx.appId
|
|
129
128
|
const oldAutomation = await db.get(automation._id)
|
|
@@ -147,8 +146,9 @@ export async function update(ctx: BBContext) {
|
|
|
147
146
|
if (oldAutoTrigger && oldAutoTrigger.id !== newAutoTrigger.id) {
|
|
148
147
|
await events.automation.triggerUpdated(automation)
|
|
149
148
|
await deleteEntityMetadata(
|
|
149
|
+
ctx.appId,
|
|
150
150
|
MetadataTypes.AUTOMATION_TEST_INPUT,
|
|
151
|
-
automation._id
|
|
151
|
+
automation._id
|
|
152
152
|
)
|
|
153
153
|
}
|
|
154
154
|
|
|
@@ -165,8 +165,8 @@ export async function update(ctx: BBContext) {
|
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
|
|
168
|
-
|
|
169
|
-
const db =
|
|
168
|
+
exports.fetch = async function (ctx) {
|
|
169
|
+
const db = getAppDB()
|
|
170
170
|
const response = await db.allDocs(
|
|
171
171
|
getAutomationParams(null, {
|
|
172
172
|
include_docs: true,
|
|
@@ -175,13 +175,13 @@ export async function fetch(ctx: BBContext) {
|
|
|
175
175
|
ctx.body = response.rows.map(row => row.doc)
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
-
|
|
179
|
-
const db =
|
|
178
|
+
exports.find = async function (ctx) {
|
|
179
|
+
const db = getAppDB()
|
|
180
180
|
ctx.body = await db.get(ctx.params.id)
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
|
|
184
|
-
const db =
|
|
183
|
+
exports.destroy = async function (ctx) {
|
|
184
|
+
const db = getAppDB()
|
|
185
185
|
const automationId = ctx.params.id
|
|
186
186
|
const oldAutomation = await db.get(automationId)
|
|
187
187
|
await checkForWebhooks({
|
|
@@ -193,14 +193,14 @@ export async function destroy(ctx: BBContext) {
|
|
|
193
193
|
await events.automation.deleted(oldAutomation)
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
exports.logSearch = async function (ctx) {
|
|
197
197
|
ctx.body = await automations.logs.logSearch(ctx.request.body)
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
exports.clearLogError = async function (ctx) {
|
|
201
201
|
const { automationId, appId } = ctx.request.body
|
|
202
|
-
await
|
|
203
|
-
const db =
|
|
202
|
+
await doInAppContext(appId, async () => {
|
|
203
|
+
const db = getProdAppDB()
|
|
204
204
|
const metadata = await db.get(DocumentType.APP_METADATA)
|
|
205
205
|
if (!automationId) {
|
|
206
206
|
delete metadata.automationErrors
|
|
@@ -211,20 +211,20 @@ export async function clearLogError(ctx: BBContext) {
|
|
|
211
211
|
delete metadata.automationErrors[automationId]
|
|
212
212
|
}
|
|
213
213
|
await db.put(metadata)
|
|
214
|
-
await
|
|
214
|
+
await app.invalidateAppMetadata(metadata.appId, metadata)
|
|
215
215
|
ctx.body = { message: `Error logs cleared.` }
|
|
216
216
|
})
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
exports.getActionList = async function (ctx) {
|
|
220
220
|
ctx.body = ACTION_DEFS
|
|
221
221
|
}
|
|
222
222
|
|
|
223
|
-
|
|
223
|
+
exports.getTriggerList = async function (ctx) {
|
|
224
224
|
ctx.body = TRIGGER_DEFS
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
|
|
227
|
+
module.exports.getDefinitionList = async function (ctx) {
|
|
228
228
|
ctx.body = {
|
|
229
229
|
trigger: TRIGGER_DEFS,
|
|
230
230
|
action: ACTION_DEFS,
|
|
@@ -237,8 +237,8 @@ export async function getDefinitionList(ctx: BBContext) {
|
|
|
237
237
|
* *
|
|
238
238
|
*********************/
|
|
239
239
|
|
|
240
|
-
|
|
241
|
-
const db =
|
|
240
|
+
exports.trigger = async function (ctx) {
|
|
241
|
+
const db = getAppDB()
|
|
242
242
|
let automation = await db.get(ctx.params.id)
|
|
243
243
|
await triggers.externalTrigger(automation, {
|
|
244
244
|
...ctx.request.body,
|
|
@@ -250,7 +250,7 @@ export async function trigger(ctx: BBContext) {
|
|
|
250
250
|
}
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
-
function prepareTestInput(input
|
|
253
|
+
function prepareTestInput(input) {
|
|
254
254
|
// prepare the test parameters
|
|
255
255
|
if (input.id && input.row) {
|
|
256
256
|
input.row._id = input.id
|
|
@@ -261,8 +261,8 @@ function prepareTestInput(input: any) {
|
|
|
261
261
|
return input
|
|
262
262
|
}
|
|
263
263
|
|
|
264
|
-
|
|
265
|
-
const db =
|
|
264
|
+
exports.test = async function (ctx) {
|
|
265
|
+
const db = getAppDB()
|
|
266
266
|
let automation = await db.get(ctx.params.id)
|
|
267
267
|
await setTestFlag(automation._id)
|
|
268
268
|
const testInput = prepareTestInput(ctx.request.body)
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
const env = require("../../environment")
|
|
2
|
+
const { getAllApps, getGlobalDBName } = require("@budibase/backend-core/db")
|
|
3
|
+
const { getGlobalDB } = require("@budibase/backend-core/tenancy")
|
|
4
|
+
const { streamFile } = require("../../utilities/fileSystem")
|
|
5
|
+
const { stringToReadStream } = require("../../utilities")
|
|
6
|
+
const { getDocParams, DocumentType, isDevAppID } = require("../../db/utils")
|
|
7
|
+
const { create } = require("./application")
|
|
8
|
+
const { join } = require("path")
|
|
9
|
+
const sdk = require("../../sdk")
|
|
10
10
|
|
|
11
|
-
async function createApp(appName
|
|
11
|
+
async function createApp(appName, appDirectory) {
|
|
12
12
|
const ctx = {
|
|
13
13
|
request: {
|
|
14
14
|
body: {
|
|
@@ -25,7 +25,7 @@ async function createApp(appName: string, appDirectory: string) {
|
|
|
25
25
|
return create(ctx)
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
async function getAllDocType(db
|
|
28
|
+
async function getAllDocType(db, docType) {
|
|
29
29
|
const response = await db.allDocs(
|
|
30
30
|
getDocParams(docType, null, {
|
|
31
31
|
include_docs: true,
|
|
@@ -34,19 +34,19 @@ async function getAllDocType(db: Database, docType: string) {
|
|
|
34
34
|
return response.rows.map(row => row.doc)
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
exports.exportApps = async ctx => {
|
|
38
38
|
if (env.SELF_HOSTED || !env.MULTI_TENANCY) {
|
|
39
39
|
ctx.throw(400, "Exporting only allowed in multi-tenant cloud environments.")
|
|
40
40
|
}
|
|
41
|
-
const apps =
|
|
42
|
-
const globalDBString = await sdk.backups.exportDB(
|
|
43
|
-
filter:
|
|
41
|
+
const apps = await getAllApps({ all: true })
|
|
42
|
+
const globalDBString = await sdk.backups.exportDB(getGlobalDBName(), {
|
|
43
|
+
filter: doc => !doc._id.startsWith(DocumentType.USER),
|
|
44
44
|
})
|
|
45
45
|
// only export the dev apps as they will be the latest, the user can republish the apps
|
|
46
46
|
// in their self-hosted environment
|
|
47
47
|
let appMetadata = apps
|
|
48
|
-
.filter(
|
|
49
|
-
.map(
|
|
48
|
+
.filter(app => isDevAppID(app.appId || app._id))
|
|
49
|
+
.map(app => ({ appId: app.appId || app._id, name: app.name }))
|
|
50
50
|
const tmpPath = await sdk.backups.exportMultipleApps(
|
|
51
51
|
appMetadata,
|
|
52
52
|
globalDBString
|
|
@@ -56,25 +56,25 @@ export async function exportApps(ctx: BBContext) {
|
|
|
56
56
|
ctx.body = streamFile(tmpPath)
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
async function
|
|
59
|
+
async function hasBeenImported() {
|
|
60
60
|
if (!env.SELF_HOSTED || env.MULTI_TENANCY) {
|
|
61
61
|
return true
|
|
62
62
|
}
|
|
63
|
-
const apps = await
|
|
63
|
+
const apps = await getAllApps({ all: true })
|
|
64
64
|
return apps.length !== 0
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
exports.hasBeenImported = async ctx => {
|
|
68
68
|
ctx.body = {
|
|
69
|
-
imported: await
|
|
69
|
+
imported: await hasBeenImported(),
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
exports.importApps = async ctx => {
|
|
74
74
|
if (!env.SELF_HOSTED || env.MULTI_TENANCY) {
|
|
75
75
|
ctx.throw(400, "Importing only allowed in self hosted environments.")
|
|
76
76
|
}
|
|
77
|
-
const beenImported = await
|
|
77
|
+
const beenImported = await hasBeenImported()
|
|
78
78
|
if (beenImported || !ctx.request.files || !ctx.request.files.importFile) {
|
|
79
79
|
ctx.throw(
|
|
80
80
|
400,
|
|
@@ -90,7 +90,7 @@ export async function importApps(ctx: BBContext) {
|
|
|
90
90
|
const globalDbImport = sdk.backups.getGlobalDBFile(tmpPath)
|
|
91
91
|
const appNames = sdk.backups.getListOfAppsInMulti(tmpPath)
|
|
92
92
|
|
|
93
|
-
const globalDb =
|
|
93
|
+
const globalDb = getGlobalDB()
|
|
94
94
|
// load the global db first
|
|
95
95
|
await globalDb.load(stringToReadStream(globalDbImport))
|
|
96
96
|
for (let appName of appNames) {
|
|
@@ -2,9 +2,8 @@ import { DocumentType } from "../../db/utils"
|
|
|
2
2
|
import { Plugin } from "@budibase/types"
|
|
3
3
|
import { db as dbCore, context, tenancy } from "@budibase/backend-core"
|
|
4
4
|
import { getComponentLibraryManifest } from "../../utilities/fileSystem"
|
|
5
|
-
import { BBContext } from "@budibase/types"
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
exports.fetchAppComponentDefinitions = async function (ctx: any) {
|
|
8
7
|
try {
|
|
9
8
|
const db = context.getAppDB()
|
|
10
9
|
const app = await db.get(DocumentType.APP_METADATA)
|