@budibase/server 2.1.32-alpha.7 → 2.1.32
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.e0fdcf54.js → index.968304ca.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 +19 -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 +16 -11
- 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,18 +1,17 @@
|
|
|
1
1
|
const { checkBuilderEndpoint } = require("./utilities/TestFunctions")
|
|
2
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
2
3
|
const setup = require("./utilities")
|
|
3
4
|
const { basicTable } = setup.structures
|
|
4
|
-
const { events
|
|
5
|
+
const { events } = require("@budibase/backend-core")
|
|
5
6
|
|
|
6
7
|
describe("/tables", () => {
|
|
7
8
|
let request = setup.getRequest()
|
|
8
9
|
let config = setup.getConfig()
|
|
9
|
-
let appId
|
|
10
10
|
|
|
11
11
|
afterAll(setup.afterAll)
|
|
12
12
|
|
|
13
13
|
beforeEach(async () => {
|
|
14
|
-
|
|
15
|
-
appId = app.appId
|
|
14
|
+
await config.init()
|
|
16
15
|
})
|
|
17
16
|
|
|
18
17
|
describe("create", () => {
|
|
@@ -200,6 +199,38 @@ describe("/tables", () => {
|
|
|
200
199
|
})
|
|
201
200
|
})
|
|
202
201
|
|
|
202
|
+
describe("indexing", () => {
|
|
203
|
+
it("should be able to create a table with indexes", async () => {
|
|
204
|
+
const db = getAppDB(config)
|
|
205
|
+
const indexCount = (await db.getIndexes()).total_rows
|
|
206
|
+
const table = basicTable()
|
|
207
|
+
table.indexes = ["name"]
|
|
208
|
+
const res = await request
|
|
209
|
+
.post(`/api/tables`)
|
|
210
|
+
.send(table)
|
|
211
|
+
.set(config.defaultHeaders())
|
|
212
|
+
.expect('Content-Type', /json/)
|
|
213
|
+
.expect(200)
|
|
214
|
+
expect(res.body._id).toBeDefined()
|
|
215
|
+
expect(res.body._rev).toBeDefined()
|
|
216
|
+
expect((await db.getIndexes()).total_rows).toEqual(indexCount + 1)
|
|
217
|
+
// update index to see what happens
|
|
218
|
+
table.indexes = ["name", "description"]
|
|
219
|
+
await request
|
|
220
|
+
.post(`/api/tables`)
|
|
221
|
+
.send({
|
|
222
|
+
...table,
|
|
223
|
+
_id: res.body._id,
|
|
224
|
+
_rev: res.body._rev,
|
|
225
|
+
})
|
|
226
|
+
.set(config.defaultHeaders())
|
|
227
|
+
.expect('Content-Type', /json/)
|
|
228
|
+
.expect(200)
|
|
229
|
+
// shouldn't have created a new index
|
|
230
|
+
expect((await db.getIndexes()).total_rows).toEqual(indexCount + 1)
|
|
231
|
+
})
|
|
232
|
+
})
|
|
233
|
+
|
|
203
234
|
describe("validate csv", () => {
|
|
204
235
|
it("should be able to validate a CSV layout", async () => {
|
|
205
236
|
const res = await request
|
|
@@ -218,40 +249,6 @@ describe("/tables", () => {
|
|
|
218
249
|
})
|
|
219
250
|
})
|
|
220
251
|
|
|
221
|
-
describe("indexing", () => {
|
|
222
|
-
it("should be able to create a table with indexes", async () => {
|
|
223
|
-
await context.doInAppContext(appId, async () => {
|
|
224
|
-
const db = context.getAppDB()
|
|
225
|
-
const indexCount = (await db.getIndexes()).total_rows
|
|
226
|
-
const table = basicTable()
|
|
227
|
-
table.indexes = ["name"]
|
|
228
|
-
const res = await request
|
|
229
|
-
.post(`/api/tables`)
|
|
230
|
-
.send(table)
|
|
231
|
-
.set(config.defaultHeaders())
|
|
232
|
-
.expect('Content-Type', /json/)
|
|
233
|
-
.expect(200)
|
|
234
|
-
expect(res.body._id).toBeDefined()
|
|
235
|
-
expect(res.body._rev).toBeDefined()
|
|
236
|
-
expect((await db.getIndexes()).total_rows).toEqual(indexCount + 1)
|
|
237
|
-
// update index to see what happens
|
|
238
|
-
table.indexes = ["name", "description"]
|
|
239
|
-
await request
|
|
240
|
-
.post(`/api/tables`)
|
|
241
|
-
.send({
|
|
242
|
-
...table,
|
|
243
|
-
_id: res.body._id,
|
|
244
|
-
_rev: res.body._rev,
|
|
245
|
-
})
|
|
246
|
-
.set(config.defaultHeaders())
|
|
247
|
-
.expect('Content-Type', /json/)
|
|
248
|
-
.expect(200)
|
|
249
|
-
// shouldn't have created a new index
|
|
250
|
-
expect((await db.getIndexes()).total_rows).toEqual(indexCount + 1)
|
|
251
|
-
})
|
|
252
|
-
})
|
|
253
|
-
})
|
|
254
|
-
|
|
255
252
|
describe("destroy", () => {
|
|
256
253
|
let testTable
|
|
257
254
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
const {
|
|
1
|
+
const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
|
|
2
2
|
const { checkPermissionsEndpoint } = require("./utilities/TestFunctions")
|
|
3
3
|
const setup = require("./utilities")
|
|
4
|
-
const { BUILTIN_ROLE_IDS } = roles
|
|
5
4
|
|
|
6
5
|
jest.mock("../../../utilities/workerRequests", () => ({
|
|
7
6
|
getGlobalUsers: jest.fn(() => {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as rowController from "../../../controllers/row"
|
|
2
2
|
import * as appController from "../../../controllers/application"
|
|
3
3
|
import { AppStatus } from "../../../../db/utils"
|
|
4
|
-
import {
|
|
4
|
+
import { BUILTIN_ROLE_IDS } from "@budibase/backend-core/roles"
|
|
5
|
+
import { doInTenant } from "@budibase/backend-core/tenancy"
|
|
5
6
|
import { TENANT_ID } from "../../../../tests/utilities/structures"
|
|
7
|
+
import { getAppDB, doInAppContext } from "@budibase/backend-core/context"
|
|
6
8
|
import * as env from "../../../../environment"
|
|
7
9
|
|
|
8
10
|
class Request {
|
|
@@ -19,7 +21,7 @@ class Request {
|
|
|
19
21
|
}
|
|
20
22
|
|
|
21
23
|
function runRequest(appId: any, controlFunc: any, request?: any) {
|
|
22
|
-
return
|
|
24
|
+
return doInAppContext(appId, async () => {
|
|
23
25
|
return controlFunc(request)
|
|
24
26
|
})
|
|
25
27
|
}
|
|
@@ -31,7 +33,7 @@ export const getAllTableRows = async (config: any) => {
|
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
export const clearAllApps = async (tenantId = TENANT_ID) => {
|
|
34
|
-
await
|
|
36
|
+
await doInTenant(tenantId, async () => {
|
|
35
37
|
const req: any = { query: { status: AppStatus.DEV }, user: { tenantId } }
|
|
36
38
|
await appController.fetch(req)
|
|
37
39
|
const apps = req.body
|
|
@@ -49,7 +51,7 @@ export const clearAllApps = async (tenantId = TENANT_ID) => {
|
|
|
49
51
|
export const clearAllAutomations = async (config: any) => {
|
|
50
52
|
const automations = await config.getAllAutomations()
|
|
51
53
|
for (let auto of automations) {
|
|
52
|
-
await
|
|
54
|
+
await doInAppContext(config.appId, async () => {
|
|
53
55
|
await config.deleteAutomation(auto)
|
|
54
56
|
})
|
|
55
57
|
}
|
|
@@ -108,7 +110,7 @@ export const checkPermissionsEndpoint = async ({
|
|
|
108
110
|
.expect(200)
|
|
109
111
|
|
|
110
112
|
let failHeader
|
|
111
|
-
if (failRole ===
|
|
113
|
+
if (failRole === BUILTIN_ROLE_IDS.PUBLIC) {
|
|
112
114
|
failHeader = config.publicHeaders({ prodApp: true })
|
|
113
115
|
} else {
|
|
114
116
|
failHeader = await config.login({
|
|
@@ -125,7 +127,7 @@ export const checkPermissionsEndpoint = async ({
|
|
|
125
127
|
}
|
|
126
128
|
|
|
127
129
|
export const getDB = () => {
|
|
128
|
-
return
|
|
130
|
+
return getAppDB()
|
|
129
131
|
}
|
|
130
132
|
|
|
131
133
|
export const testAutomation = async (config: any, automation: any) => {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const Router = require("@koa/router")
|
|
2
|
+
const controller = require("../controllers/user")
|
|
3
|
+
const authorized = require("../../middleware/authorized")
|
|
4
|
+
const {
|
|
5
|
+
PermissionLevels,
|
|
6
|
+
PermissionTypes,
|
|
7
|
+
} = require("@budibase/backend-core/permissions")
|
|
8
|
+
|
|
9
|
+
const router = new Router()
|
|
10
|
+
|
|
11
|
+
router
|
|
12
|
+
.get(
|
|
13
|
+
"/api/users/metadata",
|
|
14
|
+
authorized(PermissionTypes.USER, PermissionLevels.READ),
|
|
15
|
+
controller.fetchMetadata
|
|
16
|
+
)
|
|
17
|
+
.get(
|
|
18
|
+
"/api/users/metadata/:id",
|
|
19
|
+
authorized(PermissionTypes.USER, PermissionLevels.READ),
|
|
20
|
+
controller.findMetadata
|
|
21
|
+
)
|
|
22
|
+
.put(
|
|
23
|
+
"/api/users/metadata",
|
|
24
|
+
authorized(PermissionTypes.USER, PermissionLevels.WRITE),
|
|
25
|
+
controller.updateMetadata
|
|
26
|
+
)
|
|
27
|
+
.post(
|
|
28
|
+
"/api/users/metadata/self",
|
|
29
|
+
authorized(PermissionTypes.USER, PermissionLevels.WRITE),
|
|
30
|
+
controller.updateSelfMetadata
|
|
31
|
+
)
|
|
32
|
+
.delete(
|
|
33
|
+
"/api/users/metadata/:id",
|
|
34
|
+
authorized(PermissionTypes.USER, PermissionLevels.WRITE),
|
|
35
|
+
controller.destroyMetadata
|
|
36
|
+
)
|
|
37
|
+
.post(
|
|
38
|
+
"/api/users/metadata/sync/:id",
|
|
39
|
+
authorized(PermissionTypes.USER, PermissionLevels.WRITE),
|
|
40
|
+
controller.syncUser
|
|
41
|
+
)
|
|
42
|
+
.post(
|
|
43
|
+
"/api/users/flags",
|
|
44
|
+
authorized(PermissionTypes.USER, PermissionLevels.WRITE),
|
|
45
|
+
controller.setFlag
|
|
46
|
+
)
|
|
47
|
+
.get(
|
|
48
|
+
"/api/users/flags",
|
|
49
|
+
authorized(PermissionTypes.USER, PermissionLevels.READ),
|
|
50
|
+
controller.getFlags
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
module.exports = router
|
|
@@ -1,16 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
const { joiValidator } = require("@budibase/backend-core/auth")
|
|
2
|
+
const { DataSourceOperation } = require("../../../constants")
|
|
3
|
+
const {
|
|
4
|
+
BUILTIN_PERMISSION_IDS,
|
|
5
|
+
PermissionLevels,
|
|
6
|
+
} = require("@budibase/backend-core/permissions")
|
|
7
|
+
const { WebhookActionType } = require("@budibase/types")
|
|
8
|
+
const Joi = require("joi")
|
|
5
9
|
|
|
6
10
|
const OPTIONAL_STRING = Joi.string().optional().allow(null).allow("")
|
|
7
11
|
const OPTIONAL_NUMBER = Joi.number().optional().allow(null)
|
|
8
12
|
const OPTIONAL_BOOLEAN = Joi.boolean().optional().allow(null)
|
|
9
13
|
const APP_NAME_REGEX = /^[\w\s]+$/
|
|
10
14
|
|
|
11
|
-
|
|
15
|
+
exports.tableValidator = () => {
|
|
12
16
|
// prettier-ignore
|
|
13
|
-
return
|
|
17
|
+
return joiValidator.body(Joi.object({
|
|
14
18
|
_id: OPTIONAL_STRING,
|
|
15
19
|
_rev: OPTIONAL_STRING,
|
|
16
20
|
type: OPTIONAL_STRING.valid("table", "internal", "external"),
|
|
@@ -22,16 +26,16 @@ export function tableValidator() {
|
|
|
22
26
|
}).unknown(true))
|
|
23
27
|
}
|
|
24
28
|
|
|
25
|
-
|
|
29
|
+
exports.nameValidator = () => {
|
|
26
30
|
// prettier-ignore
|
|
27
|
-
return
|
|
31
|
+
return joiValidator.body(Joi.object({
|
|
28
32
|
name: OPTIONAL_STRING,
|
|
29
33
|
}))
|
|
30
34
|
}
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
exports.datasourceValidator = () => {
|
|
33
37
|
// prettier-ignore
|
|
34
|
-
return
|
|
38
|
+
return joiValidator.body(Joi.object({
|
|
35
39
|
_id: Joi.string(),
|
|
36
40
|
_rev: Joi.string(),
|
|
37
41
|
type: OPTIONAL_STRING.allow("datasource_plus"),
|
|
@@ -60,9 +64,9 @@ function filterObject() {
|
|
|
60
64
|
}).unknown(true)
|
|
61
65
|
}
|
|
62
66
|
|
|
63
|
-
|
|
67
|
+
exports.internalSearchValidator = () => {
|
|
64
68
|
// prettier-ignore
|
|
65
|
-
return
|
|
69
|
+
return joiValidator.body(Joi.object({
|
|
66
70
|
tableId: OPTIONAL_STRING,
|
|
67
71
|
query: filterObject(),
|
|
68
72
|
limit: OPTIONAL_NUMBER,
|
|
@@ -74,8 +78,8 @@ export function internalSearchValidator() {
|
|
|
74
78
|
}))
|
|
75
79
|
}
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
return
|
|
81
|
+
exports.externalSearchValidator = () => {
|
|
82
|
+
return joiValidator.body(
|
|
79
83
|
Joi.object({
|
|
80
84
|
query: filterObject(),
|
|
81
85
|
paginate: Joi.boolean().optional(),
|
|
@@ -92,9 +96,9 @@ export function externalSearchValidator() {
|
|
|
92
96
|
)
|
|
93
97
|
}
|
|
94
98
|
|
|
95
|
-
|
|
99
|
+
exports.datasourceQueryValidator = () => {
|
|
96
100
|
// prettier-ignore
|
|
97
|
-
return
|
|
101
|
+
return joiValidator.body(Joi.object({
|
|
98
102
|
endpoint: Joi.object({
|
|
99
103
|
datasourceId: Joi.string().required(),
|
|
100
104
|
operation: Joi.string().required().valid(...Object.values(DataSourceOperation)),
|
|
@@ -113,9 +117,9 @@ export function datasourceQueryValidator() {
|
|
|
113
117
|
}))
|
|
114
118
|
}
|
|
115
119
|
|
|
116
|
-
|
|
120
|
+
exports.webhookValidator = () => {
|
|
117
121
|
// prettier-ignore
|
|
118
|
-
return
|
|
122
|
+
return joiValidator.body(Joi.object({
|
|
119
123
|
live: Joi.bool(),
|
|
120
124
|
_id: OPTIONAL_STRING,
|
|
121
125
|
_rev: OPTIONAL_STRING,
|
|
@@ -128,15 +132,15 @@ export function webhookValidator() {
|
|
|
128
132
|
}).unknown(true))
|
|
129
133
|
}
|
|
130
134
|
|
|
131
|
-
|
|
132
|
-
const permLevelArray = Object.values(
|
|
135
|
+
exports.roleValidator = () => {
|
|
136
|
+
const permLevelArray = Object.values(PermissionLevels)
|
|
133
137
|
// prettier-ignore
|
|
134
|
-
return
|
|
138
|
+
return joiValidator.body(Joi.object({
|
|
135
139
|
_id: OPTIONAL_STRING,
|
|
136
140
|
_rev: OPTIONAL_STRING,
|
|
137
141
|
name: Joi.string().required(),
|
|
138
142
|
// this is the base permission ID (for now a built in)
|
|
139
|
-
permissionId: Joi.string().valid(...Object.values(
|
|
143
|
+
permissionId: Joi.string().valid(...Object.values(BUILTIN_PERMISSION_IDS)).required(),
|
|
140
144
|
permissions: Joi.object()
|
|
141
145
|
.pattern(/.*/, [Joi.string().valid(...permLevelArray)])
|
|
142
146
|
.optional(),
|
|
@@ -144,19 +148,19 @@ export function roleValidator() {
|
|
|
144
148
|
}).unknown(true))
|
|
145
149
|
}
|
|
146
150
|
|
|
147
|
-
|
|
148
|
-
const permLevelArray = Object.values(
|
|
151
|
+
exports.permissionValidator = () => {
|
|
152
|
+
const permLevelArray = Object.values(PermissionLevels)
|
|
149
153
|
// prettier-ignore
|
|
150
|
-
return
|
|
154
|
+
return joiValidator.params(Joi.object({
|
|
151
155
|
level: Joi.string().valid(...permLevelArray).required(),
|
|
152
156
|
resourceId: Joi.string(),
|
|
153
157
|
roleId: Joi.string(),
|
|
154
158
|
}).unknown(true))
|
|
155
159
|
}
|
|
156
160
|
|
|
157
|
-
|
|
161
|
+
exports.screenValidator = () => {
|
|
158
162
|
// prettier-ignore
|
|
159
|
-
return
|
|
163
|
+
return joiValidator.body(Joi.object({
|
|
160
164
|
name: Joi.string().required(),
|
|
161
165
|
showNavigation: OPTIONAL_BOOLEAN,
|
|
162
166
|
width: OPTIONAL_STRING,
|
|
@@ -177,7 +181,7 @@ export function screenValidator() {
|
|
|
177
181
|
}).unknown(true))
|
|
178
182
|
}
|
|
179
183
|
|
|
180
|
-
function generateStepSchema(allowStepTypes
|
|
184
|
+
function generateStepSchema(allowStepTypes) {
|
|
181
185
|
// prettier-ignore
|
|
182
186
|
return Joi.object({
|
|
183
187
|
stepId: Joi.string().required(),
|
|
@@ -192,9 +196,9 @@ function generateStepSchema(allowStepTypes: string[]) {
|
|
|
192
196
|
}).unknown(true)
|
|
193
197
|
}
|
|
194
198
|
|
|
195
|
-
|
|
199
|
+
exports.automationValidator = (existing = false) => {
|
|
196
200
|
// prettier-ignore
|
|
197
|
-
return
|
|
201
|
+
return joiValidator.body(Joi.object({
|
|
198
202
|
_id: existing ? Joi.string().required() : OPTIONAL_STRING,
|
|
199
203
|
_rev: existing ? Joi.string().required() : OPTIONAL_STRING,
|
|
200
204
|
name: Joi.string().required(),
|
|
@@ -206,9 +210,9 @@ export function automationValidator(existing = false) {
|
|
|
206
210
|
}).unknown(true))
|
|
207
211
|
}
|
|
208
212
|
|
|
209
|
-
|
|
213
|
+
exports.applicationValidator = (opts = { isCreate: true }) => {
|
|
210
214
|
// prettier-ignore
|
|
211
|
-
const base
|
|
215
|
+
const base = {
|
|
212
216
|
_id: OPTIONAL_STRING,
|
|
213
217
|
_rev: OPTIONAL_STRING,
|
|
214
218
|
url: OPTIONAL_STRING,
|
|
@@ -226,7 +230,7 @@ export function applicationValidator(opts = { isCreate: true }) {
|
|
|
226
230
|
base.name = appNameValidator.optional()
|
|
227
231
|
}
|
|
228
232
|
|
|
229
|
-
return
|
|
233
|
+
return joiValidator.body(
|
|
230
234
|
Joi.object({
|
|
231
235
|
_id: OPTIONAL_STRING,
|
|
232
236
|
_rev: OPTIONAL_STRING,
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const Router = require("@koa/router")
|
|
2
|
+
const viewController = require("../controllers/view")
|
|
3
|
+
const rowController = require("../controllers/row")
|
|
4
|
+
const authorized = require("../../middleware/authorized")
|
|
5
|
+
const { paramResource } = require("../../middleware/resourceId")
|
|
6
|
+
const {
|
|
7
|
+
BUILDER,
|
|
8
|
+
PermissionTypes,
|
|
9
|
+
PermissionLevels,
|
|
10
|
+
} = require("@budibase/backend-core/permissions")
|
|
11
|
+
|
|
12
|
+
const router = new Router()
|
|
13
|
+
|
|
14
|
+
router
|
|
15
|
+
.get("/api/views/export", authorized(BUILDER), viewController.exportView)
|
|
16
|
+
.get(
|
|
17
|
+
"/api/views/:viewName",
|
|
18
|
+
paramResource("viewName"),
|
|
19
|
+
authorized(PermissionTypes.VIEW, PermissionLevels.READ),
|
|
20
|
+
rowController.fetchView
|
|
21
|
+
)
|
|
22
|
+
.get("/api/views", authorized(BUILDER), viewController.fetch)
|
|
23
|
+
.delete(
|
|
24
|
+
"/api/views/:viewName",
|
|
25
|
+
paramResource("viewName"),
|
|
26
|
+
authorized(BUILDER),
|
|
27
|
+
viewController.destroy
|
|
28
|
+
)
|
|
29
|
+
.post("/api/views", authorized(BUILDER), viewController.save)
|
|
30
|
+
|
|
31
|
+
module.exports = router
|
|
@@ -5,7 +5,7 @@ import { permissions } from "@budibase/backend-core"
|
|
|
5
5
|
import { webhookValidator } from "./utils/validators"
|
|
6
6
|
|
|
7
7
|
const BUILDER = permissions.BUILDER
|
|
8
|
-
const router
|
|
8
|
+
const router = new Router()
|
|
9
9
|
|
|
10
10
|
router
|
|
11
11
|
.get("/api/webhooks", authorized(BUILDER), controller.fetch)
|
|
@@ -24,4 +24,4 @@ router
|
|
|
24
24
|
// this shouldn't have authorisation, right now its always public
|
|
25
25
|
.post("/api/webhooks/trigger/:instance/:id", controller.trigger)
|
|
26
26
|
|
|
27
|
-
export
|
|
27
|
+
export default router
|
package/src/app.ts
CHANGED
|
@@ -19,9 +19,10 @@ const http = require("http")
|
|
|
19
19
|
const api = require("./api")
|
|
20
20
|
const automations = require("./automations/index")
|
|
21
21
|
const Sentry = require("@sentry/node")
|
|
22
|
+
const { logAlert } = require("@budibase/backend-core/logging")
|
|
22
23
|
const { Thread } = require("./threads")
|
|
23
|
-
import
|
|
24
|
-
import { events
|
|
24
|
+
import redis from "./utilities/redis"
|
|
25
|
+
import { events } from "@budibase/backend-core"
|
|
25
26
|
import { initialise as initialiseWebsockets } from "./websocket"
|
|
26
27
|
import { startup } from "./startup"
|
|
27
28
|
|
|
@@ -92,7 +93,7 @@ process.on("uncaughtException", err => {
|
|
|
92
93
|
return
|
|
93
94
|
}
|
|
94
95
|
errCode = -1
|
|
95
|
-
|
|
96
|
+
logAlert("Uncaught exception.", err)
|
|
96
97
|
shutdown()
|
|
97
98
|
})
|
|
98
99
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const TestConfig = require("../../../tests/utilities/TestConfiguration")
|
|
2
|
-
const {
|
|
2
|
+
const { TENANT_ID } = require("../../../tests/utilities/structures")
|
|
3
|
+
const { doInTenant } = require("@budibase/backend-core/tenancy")
|
|
3
4
|
const actions = require("../../actions")
|
|
4
5
|
const emitter = require("../../../events/index")
|
|
5
6
|
const env = require("../../../environment")
|
|
@@ -32,7 +33,7 @@ exports.runInProd = async fn => {
|
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
exports.runStep = async function runStep(stepId, inputs) {
|
|
35
|
-
async
|
|
36
|
+
return doInTenant(TENANT_ID, async () => {
|
|
36
37
|
let step = await actions.getAction(stepId)
|
|
37
38
|
expect(step).toBeDefined()
|
|
38
39
|
return step({
|
|
@@ -42,14 +43,7 @@ exports.runStep = async function runStep(stepId, inputs) {
|
|
|
42
43
|
apiKey: exports.apiKey,
|
|
43
44
|
emitter,
|
|
44
45
|
})
|
|
45
|
-
}
|
|
46
|
-
if (config?.appId) {
|
|
47
|
-
return context.doInContext(config?.appId, async () => {
|
|
48
|
-
return run()
|
|
49
|
-
})
|
|
50
|
-
} else {
|
|
51
|
-
return run()
|
|
52
|
-
}
|
|
46
|
+
})
|
|
53
47
|
}
|
|
54
48
|
|
|
55
49
|
exports.apiKey = "test"
|
|
@@ -8,7 +8,8 @@ const { automationQueue } = require("./bullboard")
|
|
|
8
8
|
const { checkTestFlag } = require("../utilities/redis")
|
|
9
9
|
const utils = require("./utils")
|
|
10
10
|
const env = require("../environment")
|
|
11
|
-
const {
|
|
11
|
+
const { doInAppContext, getAppDB } = require("@budibase/backend-core/context")
|
|
12
|
+
const { getAllApps } = require("@budibase/backend-core/db")
|
|
12
13
|
|
|
13
14
|
const TRIGGER_DEFINITIONS = definitions
|
|
14
15
|
const JOB_OPTS = {
|
|
@@ -17,7 +18,7 @@ const JOB_OPTS = {
|
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
async function getAllAutomations() {
|
|
20
|
-
const db =
|
|
21
|
+
const db = getAppDB()
|
|
21
22
|
let automations = await db.allDocs(
|
|
22
23
|
getAutomationParams(null, { include_docs: true })
|
|
23
24
|
)
|
|
@@ -29,7 +30,7 @@ async function queueRelevantRowAutomations(event, eventType) {
|
|
|
29
30
|
throw `No appId specified for ${eventType} - check event emitters.`
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
doInAppContext(event.appId, async () => {
|
|
33
34
|
let automations = await getAllAutomations()
|
|
34
35
|
|
|
35
36
|
// filter down to the correct event type
|
|
@@ -121,9 +122,9 @@ exports.rebootTrigger = async () => {
|
|
|
121
122
|
}
|
|
122
123
|
// iterate through all production apps, find the reboot crons
|
|
123
124
|
// and trigger events for them
|
|
124
|
-
const appIds = await
|
|
125
|
+
const appIds = await getAllApps({ dev: false, idsOnly: true })
|
|
125
126
|
for (let prodAppId of appIds) {
|
|
126
|
-
await
|
|
127
|
+
await doInAppContext(prodAppId, async () => {
|
|
127
128
|
let automations = await getAllAutomations()
|
|
128
129
|
let rebootEvents = []
|
|
129
130
|
for (let automation of automations) {
|
package/src/automations/utils.ts
CHANGED
|
@@ -4,9 +4,15 @@ import { automationQueue } from "./bullboard"
|
|
|
4
4
|
import newid from "../db/newid"
|
|
5
5
|
import { updateEntityMetadata } from "../utilities"
|
|
6
6
|
import { MetadataTypes } from "../constants"
|
|
7
|
-
import {
|
|
7
|
+
import { getProdAppID, doWithDB } from "@budibase/backend-core/db"
|
|
8
8
|
import { getAutomationMetadataParams } from "../db/utils"
|
|
9
9
|
import { cloneDeep } from "lodash/fp"
|
|
10
|
+
import {
|
|
11
|
+
getAppDB,
|
|
12
|
+
getAppId,
|
|
13
|
+
getProdAppDB,
|
|
14
|
+
} from "@budibase/backend-core/context"
|
|
15
|
+
import { context } from "@budibase/backend-core"
|
|
10
16
|
import { quotas } from "@budibase/pro"
|
|
11
17
|
import { Automation, WebhookActionType } from "@budibase/types"
|
|
12
18
|
import sdk from "../sdk"
|
|
@@ -96,7 +102,7 @@ export async function disableCronById(jobId: number | string) {
|
|
|
96
102
|
}
|
|
97
103
|
|
|
98
104
|
export async function clearMetadata() {
|
|
99
|
-
const db =
|
|
105
|
+
const db = getProdAppDB()
|
|
100
106
|
const automationMetadata = (
|
|
101
107
|
await db.allDocs(
|
|
102
108
|
getAutomationMetadataParams({
|
|
@@ -151,7 +157,7 @@ export async function enableCronTrigger(appId: any, automation: Automation) {
|
|
|
151
157
|
// can't use getAppDB here as this is likely to be called from dev app,
|
|
152
158
|
// but this call could be for dev app or prod app, need to just use what
|
|
153
159
|
// was passed in
|
|
154
|
-
await
|
|
160
|
+
await doWithDB(appId, async (db: any) => {
|
|
155
161
|
const response = await db.put(automation)
|
|
156
162
|
automation._id = response.id
|
|
157
163
|
automation._rev = response.rev
|
|
@@ -169,10 +175,7 @@ export async function enableCronTrigger(appId: any, automation: Automation) {
|
|
|
169
175
|
* written to DB (this does not write to DB as it would be wasteful to repeat).
|
|
170
176
|
*/
|
|
171
177
|
export async function checkForWebhooks({ oldAuto, newAuto }: any) {
|
|
172
|
-
const appId =
|
|
173
|
-
if (!appId) {
|
|
174
|
-
throw new Error("Unable to check webhooks - no app ID in context.")
|
|
175
|
-
}
|
|
178
|
+
const appId = getAppId()
|
|
176
179
|
const oldTrigger = oldAuto ? oldAuto.definition.trigger : null
|
|
177
180
|
const newTrigger = newAuto ? newAuto.definition.trigger : null
|
|
178
181
|
const triggerChanged =
|
|
@@ -191,7 +194,7 @@ export async function checkForWebhooks({ oldAuto, newAuto }: any) {
|
|
|
191
194
|
oldTrigger.webhookId
|
|
192
195
|
) {
|
|
193
196
|
try {
|
|
194
|
-
let db =
|
|
197
|
+
let db = getAppDB()
|
|
195
198
|
// need to get the webhook to get the rev
|
|
196
199
|
const webhook = await db.get(oldTrigger.webhookId)
|
|
197
200
|
// might be updating - reset the inputs to remove the URLs
|
|
@@ -221,7 +224,7 @@ export async function checkForWebhooks({ oldAuto, newAuto }: any) {
|
|
|
221
224
|
// the app ID has to be development for this endpoint
|
|
222
225
|
// it can only be used when building the app
|
|
223
226
|
// but the trigger endpoint will always be used in production
|
|
224
|
-
const prodAppId =
|
|
227
|
+
const prodAppId = getProdAppID(appId)
|
|
225
228
|
newTrigger.inputs = {
|
|
226
229
|
schemaUrl: `api/webhooks/schema/${appId}/${id}`,
|
|
227
230
|
triggerUrl: `api/webhooks/trigger/${prodAppId}/${id}`,
|
package/src/constants/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
const {
|
|
1
|
+
const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
|
|
2
|
+
const { UserStatus } = require("@budibase/backend-core/constants")
|
|
3
|
+
const { objectStore } = require("@budibase/backend-core")
|
|
2
4
|
|
|
3
5
|
const FilterTypes = {
|
|
4
6
|
STRING: "string",
|
|
@@ -137,7 +139,7 @@ exports.USERS_TABLE_SCHEMA = {
|
|
|
137
139
|
constraints: {
|
|
138
140
|
type: exports.FieldTypes.STRING,
|
|
139
141
|
presence: false,
|
|
140
|
-
inclusion: Object.values(
|
|
142
|
+
inclusion: Object.values(BUILTIN_ROLE_IDS),
|
|
141
143
|
},
|
|
142
144
|
},
|
|
143
145
|
status: {
|
|
@@ -147,7 +149,7 @@ exports.USERS_TABLE_SCHEMA = {
|
|
|
147
149
|
constraints: {
|
|
148
150
|
type: exports.FieldTypes.STRING,
|
|
149
151
|
presence: false,
|
|
150
|
-
inclusion: Object.values(
|
|
152
|
+
inclusion: Object.values(UserStatus),
|
|
151
153
|
},
|
|
152
154
|
},
|
|
153
155
|
},
|
package/src/constants/screens.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const {
|
|
1
|
+
const { BUILTIN_ROLE_IDS } = require("@budibase/backend-core/roles")
|
|
2
2
|
const { BASE_LAYOUT_PROP_IDS } = require("./layouts")
|
|
3
3
|
|
|
4
4
|
exports.createHomeScreen = () => ({
|
|
@@ -40,7 +40,7 @@ exports.createHomeScreen = () => ({
|
|
|
40
40
|
},
|
|
41
41
|
routing: {
|
|
42
42
|
route: "/",
|
|
43
|
-
roleId:
|
|
43
|
+
roleId: BUILTIN_ROLE_IDS.BASIC,
|
|
44
44
|
},
|
|
45
45
|
name: "home-screen",
|
|
46
46
|
})
|
package/src/db/inMemoryView.js
CHANGED
|
@@ -2,8 +2,8 @@ const newid = require("./newid")
|
|
|
2
2
|
|
|
3
3
|
// bypass the main application db config
|
|
4
4
|
// use in memory pouchdb directly
|
|
5
|
-
const {
|
|
6
|
-
const Pouch =
|
|
5
|
+
const { getPouch, closeDB } = require("@budibase/backend-core/db")
|
|
6
|
+
const Pouch = getPouch({ inMemory: true })
|
|
7
7
|
|
|
8
8
|
exports.runView = async (view, calculation, group, data) => {
|
|
9
9
|
// use a different ID each time for the DB, make sure they
|
|
@@ -44,6 +44,6 @@ exports.runView = async (view, calculation, group, data) => {
|
|
|
44
44
|
return response
|
|
45
45
|
} finally {
|
|
46
46
|
await db.destroy()
|
|
47
|
-
await
|
|
47
|
+
await closeDB(db)
|
|
48
48
|
}
|
|
49
49
|
}
|