@budibase/server 2.1.43-alpha.6 → 2.1.44
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.2d05742a.js +1021 -0
- package/builder/assets/index.534f6c29.css +6 -0
- package/builder/index.html +2 -2
- package/coverage/clover.xml +3857 -10913
- package/coverage/coverage-final.json +118 -267
- package/coverage/lcov-report/{src/api/controllers/apikeys.ts.html → api/controllers/apikeys.js.html} +30 -30
- package/coverage/lcov-report/{src/api/controllers/automation.ts.html → api/controllers/automation.js.html} +99 -99
- package/coverage/lcov-report/{src/api/controllers/cloud.ts.html → api/controllers/cloud.js.html} +58 -58
- package/coverage/lcov-report/{src/api/controllers/datasource.ts.html → api/controllers/datasource.js.html} +107 -287
- package/coverage/lcov-report/{src/api/controllers/dev.ts.html → api/controllers/dev.js.html} +87 -69
- package/coverage/lcov-report/api/controllers/index.html +326 -0
- package/coverage/lcov-report/{src/middleware/selfhost.ts.html → api/controllers/integration.js.html} +28 -22
- package/coverage/lcov-report/{src/api/controllers/layout.ts.html → api/controllers/layout.js.html} +31 -31
- package/coverage/lcov-report/{src/api/controllers/metadata.ts.html → api/controllers/metadata.js.html} +30 -33
- package/coverage/lcov-report/{src/api/controllers/migrations.ts.html → api/controllers/migrations.js.html} +17 -20
- package/coverage/lcov-report/{src/api/controllers/permission.ts.html → api/controllers/permission.js.html} +79 -88
- 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} +25 -25
- package/coverage/lcov-report/{src/api/controllers/role.ts.html → api/controllers/role.js.html} +60 -48
- package/coverage/lcov-report/{src/api/controllers/routing.ts.html → api/controllers/routing.js.html} +58 -67
- package/coverage/lcov-report/{src/api/controllers/row/external.ts.html → api/controllers/row/external.js.html} +111 -162
- package/coverage/lcov-report/{src/api → api}/controllers/row/index.html +52 -82
- package/coverage/lcov-report/{src/api/controllers/row/internal.ts.html → api/controllers/row/internal.js.html} +121 -163
- package/coverage/lcov-report/{src/api/controllers/row/internalSearch.ts.html → api/controllers/row/internalSearch.js.html} +117 -189
- package/coverage/lcov-report/{src/api/controllers/row/staticFormula.ts.html → api/controllers/row/staticFormula.js.html} +58 -73
- package/coverage/lcov-report/{src/api/controllers/row/utils.ts.html → api/controllers/row/utils.js.html} +58 -88
- package/coverage/lcov-report/{src/api/controllers/script.ts.html → api/controllers/script.js.html} +16 -19
- package/coverage/lcov-report/{src/api/controllers/table/bulkFormula.ts.html → api/controllers/table/bulkFormula.js.html} +62 -104
- package/coverage/lcov-report/{src/api/controllers/table/external.ts.html → api/controllers/table/external.js.html} +111 -204
- 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} +49 -58
- package/coverage/lcov-report/{src/api/controllers/templates.ts.html → api/controllers/templates.js.html} +29 -38
- package/coverage/lcov-report/{src/api/controllers/user.ts.html → api/controllers/user.js.html} +99 -93
- package/coverage/lcov-report/{src/api/controllers/view/exporters.ts.html → api/controllers/view/exporters.js.html} +16 -22
- package/coverage/lcov-report/{src/api → api}/controllers/view/index.html +36 -36
- package/coverage/lcov-report/{src/api/controllers/view/index.ts.html → api/controllers/view/index.js.html} +64 -91
- package/coverage/lcov-report/{src/api/controllers/view/utils.ts.html → api/controllers/view/utils.js.html} +54 -72
- package/coverage/lcov-report/{src/api/controllers/view/viewBuilder.ts.html → api/controllers/view/viewBuilder.js.html} +36 -78
- package/coverage/lcov-report/{src/api → api}/index.html +23 -23
- package/coverage/lcov-report/{src/api/index.ts.html → api/index.js.html} +76 -55
- package/coverage/lcov-report/{src/middleware/utils.ts.html → api/routes/analytics.js.html} +19 -19
- package/coverage/lcov-report/api/routes/apikeys.js.html +121 -0
- package/coverage/lcov-report/{src/api/routes/automation.ts.html → api/routes/automation.js.html} +47 -53
- package/coverage/lcov-report/{src/api/routes/backup.ts.html → api/routes/cloud.js.html} +28 -28
- package/coverage/lcov-report/{src/api/routes/component.ts.html → api/routes/component.js.html} +24 -24
- package/coverage/lcov-report/{src/definitions/datasource.ts.html → api/routes/datasource.js.html} +64 -61
- package/coverage/lcov-report/{src/api/routes/cloud.ts.html → api/routes/deploy.js.html} +28 -31
- package/coverage/lcov-report/{src/automations/index.ts.html → api/routes/dev.js.html} +46 -46
- package/coverage/lcov-report/{src/api → api}/routes/index.html +47 -167
- package/coverage/lcov-report/api/routes/integration.js.html +121 -0
- package/coverage/lcov-report/{src/db/index.ts.html → api/routes/layout.js.html} +28 -28
- package/coverage/lcov-report/{src/api/routes/metadata.ts.html → api/routes/metadata.js.html} +31 -31
- package/coverage/lcov-report/{src/sdk/index.ts.html → api/routes/migrations.js.html} +21 -24
- package/coverage/lcov-report/{src/api/routes/permission.ts.html → api/routes/permission.js.html} +31 -55
- package/coverage/lcov-report/{src/api/routes/query.ts.html → api/routes/query.js.html} +50 -41
- 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} +24 -24
- 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} +41 -32
- package/coverage/lcov-report/{src/api/routes/templates.ts.html → api/routes/templates.js.html} +25 -25
- package/coverage/lcov-report/{src/api/routes/user.ts.html → api/routes/user.js.html} +41 -35
- 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} +98 -86
- package/coverage/lcov-report/{src/api/routes/view.ts.html → api/routes/view.js.html} +36 -45
- package/coverage/lcov-report/{src/automations/actions.ts.html → automations/actions.js.html} +60 -69
- package/coverage/lcov-report/{src/automations/automationUtils.ts.html → automations/automationUtils.js.html} +33 -36
- package/coverage/lcov-report/{src/automations/bullboard.ts.html → automations/bullboard.js.html} +42 -39
- package/coverage/lcov-report/{src/automations → automations}/index.html +48 -63
- package/coverage/lcov-report/{src/websocket.ts.html → automations/index.js.html} +50 -41
- package/coverage/lcov-report/{src/automations/steps/bash.ts.html → automations/steps/bash.js.html} +30 -45
- package/coverage/lcov-report/{src/automations/steps/delay.ts.html → automations/steps/delay.js.html} +19 -34
- package/coverage/lcov-report/{src/automations/steps/discord.ts.html → automations/steps/discord.js.html} +28 -43
- package/coverage/lcov-report/{src/automations/steps/executeQuery.ts.html → automations/steps/executeQuery.js.html} +30 -45
- package/coverage/lcov-report/{src/automations/steps/executeScript.ts.html → automations/steps/executeScript.js.html} +28 -58
- package/coverage/lcov-report/{src/automations/steps/filter.ts.html → automations/steps/filter.js.html} +30 -39
- package/coverage/lcov-report/automations/steps/index.html +341 -0
- package/coverage/lcov-report/{src/automations/steps/integromat.ts.html → automations/steps/integromat.js.html} +23 -38
- package/coverage/lcov-report/{src/automations/steps/loop.ts.html → automations/steps/loop.js.html} +15 -21
- package/coverage/lcov-report/{src/automations/steps/outgoingWebhook.ts.html → automations/steps/outgoingWebhook.js.html} +39 -54
- package/coverage/lcov-report/{src/automations/steps/queryRows.ts.html → automations/steps/queryRows.js.html} +66 -102
- package/coverage/lcov-report/{src/automations/steps/sendSmtpEmail.ts.html → automations/steps/sendSmtpEmail.js.html} +25 -40
- package/coverage/lcov-report/{src/automations/steps/serverLog.ts.html → automations/steps/serverLog.js.html} +22 -40
- package/coverage/lcov-report/{src/automations/steps/slack.ts.html → automations/steps/slack.js.html} +23 -38
- package/coverage/lcov-report/{src/automations/steps/updateRow.ts.html → automations/steps/updateRow.js.html} +25 -40
- package/coverage/lcov-report/{src/automations/steps/utils.ts.html → automations/steps/utils.js.html} +27 -45
- package/coverage/lcov-report/{src/automations/steps/zapier.ts.html → automations/steps/zapier.js.html} +23 -41
- package/coverage/lcov-report/{src/definitions/automations.ts.html → automations/triggerInfo/app.js.html} +42 -42
- package/coverage/lcov-report/{src/automations/triggerInfo/cron.ts.html → automations/triggerInfo/cron.js.html} +15 -30
- package/coverage/lcov-report/{src/automations → automations}/triggerInfo/index.html +31 -31
- package/coverage/lcov-report/{src/api/routes/layout.ts.html → automations/triggerInfo/index.js.html} +26 -29
- package/coverage/lcov-report/{src/automations/triggerInfo/rowDeleted.ts.html → automations/triggerInfo/rowDeleted.js.html} +15 -30
- package/coverage/lcov-report/{src/automations/triggerInfo/rowSaved.ts.html → automations/triggerInfo/rowSaved.js.html} +15 -30
- package/coverage/lcov-report/{src/automations/triggerInfo/rowUpdated.ts.html → automations/triggerInfo/rowUpdated.js.html} +15 -30
- package/coverage/lcov-report/{src/automations/triggerInfo/webhook.ts.html → automations/triggerInfo/webhook.js.html} +15 -30
- package/coverage/lcov-report/{src/automations/triggers.ts.html → automations/triggers.js.html} +66 -78
- package/coverage/lcov-report/{src/constants → constants}/index.html +26 -26
- package/coverage/lcov-report/{src/integrations/dynamodb.ts.html → constants/index.js.html} +227 -263
- package/coverage/lcov-report/{src/constants/layouts.ts.html → constants/layouts.js.html} +36 -18
- package/coverage/lcov-report/{src/constants/screens.ts.html → constants/screens.js.html} +58 -64
- package/coverage/lcov-report/{src/db/inMemoryView.ts.html → db/inMemoryView.js.html} +29 -47
- package/coverage/lcov-report/{src/db → db}/index.html +33 -48
- package/coverage/lcov-report/{src/api/routes/integration.ts.html → db/index.js.html} +33 -33
- package/coverage/lcov-report/{src/db/linkedRows/LinkController.ts.html → db/linkedRows/LinkController.js.html} +160 -97
- package/coverage/lcov-report/db/linkedRows/index.html +146 -0
- package/coverage/lcov-report/{src/db/linkedRows/index.ts.html → db/linkedRows/index.js.html} +78 -93
- package/coverage/lcov-report/{src/db/linkedRows/linkUtils.ts.html → db/linkedRows/linkUtils.js.html} +56 -83
- package/coverage/lcov-report/{src/db/newid.ts.html → db/newid.js.html} +14 -14
- package/coverage/lcov-report/{src/db/utils.ts.html → db/utils.js.html} +211 -163
- package/coverage/lcov-report/{src/events/AutomationEmitter.ts.html → events/AutomationEmitter.js.html} +25 -40
- package/coverage/lcov-report/{src/events → events}/index.html +33 -48
- package/coverage/lcov-report/{src/events/BudibaseEmitter.ts.html → events/index.js.html} +29 -26
- package/coverage/lcov-report/{src/api/routes/dev.ts.html → events/utils.js.html} +69 -69
- package/coverage/lcov-report/index.html +184 -679
- 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} +30 -33
- package/coverage/lcov-report/{src/middleware/builder.ts.html → middleware/builder.js.html} +40 -46
- package/coverage/lcov-report/{src/middleware/currentapp.ts.html → middleware/currentapp.js.html} +72 -81
- 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} +27 -27
- package/coverage/lcov-report/{src/middleware/resourceId.ts.html → middleware/resourceId.js.html} +45 -60
- package/coverage/lcov-report/{src/tests/utilities/index.ts.html → middleware/selfhost.js.html} +30 -33
- package/coverage/lcov-report/{src/events/index.ts.html → middleware/utils.js.html} +24 -18
- package/coverage/lcov-report/{src/utilities/budibaseDir.ts.html → utilities/budibaseDir.js.html} +14 -14
- package/coverage/lcov-report/{src/utilities/centralPath.ts.html → utilities/centralPath.js.html} +16 -16
- package/coverage/lcov-report/{src/utilities/csvParser.ts.html → utilities/csvParser.js.html} +59 -107
- package/coverage/lcov-report/{src/utilities/global.ts.html → utilities/global.js.html} +82 -115
- package/coverage/lcov-report/{src/utilities → utilities}/index.html +77 -92
- package/coverage/lcov-report/{src/utilities/index.ts.html → utilities/index.js.html} +74 -98
- package/coverage/lcov-report/{src/utilities/plugins.ts.html → utilities/plugins.js.html} +22 -25
- package/coverage/lcov-report/{src/integrations/airtable.ts.html → utilities/queue/inMemoryQueue.js.html} +135 -213
- package/coverage/lcov-report/{src/migrations → utilities/queue}/index.html +23 -23
- package/coverage/lcov-report/{src/sdk → utilities/routing}/index.html +10 -10
- package/coverage/lcov-report/{src/api/controllers/public/mapping/tables.ts.html → utilities/routing/index.js.html} +43 -46
- package/coverage/lcov-report/{src/definitions → utilities/rowProcessor}/index.html +34 -34
- package/coverage/lcov-report/{src/utilities/rowProcessor/index.ts.html → utilities/rowProcessor/index.js.html} +359 -128
- package/coverage/lcov-report/{src/utilities/rowProcessor/utils.ts.html → utilities/rowProcessor/utils.js.html} +42 -54
- package/coverage/lcov-report/{src/utilities/scriptRunner.ts.html → utilities/scriptRunner.js.html} +19 -31
- package/coverage/lcov-report/{src/utilities/security.ts.html → utilities/security.js.html} +78 -60
- package/coverage/lcov-report/{src/utilities/statusCodes.ts.html → utilities/statusCodes.js.html} +11 -11
- package/coverage/lcov-report/{src/utilities → utilities}/usageQuota/index.html +28 -28
- package/coverage/lcov-report/{src/utilities/usageQuota/rows.ts.html → utilities/usageQuota/rows.js.html} +48 -36
- package/coverage/lcov-report/{src/utilities/usageQuota/usageQuoteReset.ts.html → utilities/usageQuota/usageQuoteReset.js.html} +13 -13
- package/coverage/lcov-report/{src/utilities/users.ts.html → utilities/users.js.html} +40 -34
- package/coverage/lcov-report/{src/utilities/workerRequests.ts.html → utilities/workerRequests.js.html} +112 -127
- package/coverage/lcov.info +7069 -19757
- package/dist/api/controllers/apikeys.js +9 -12
- package/dist/api/controllers/application.js +45 -48
- package/dist/api/controllers/automation.js +82 -122
- package/dist/api/controllers/cloud.js +71 -84
- package/dist/api/controllers/component.js +2 -4
- package/dist/api/controllers/datasource.js +94 -151
- 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/integration.js +8 -11
- package/dist/api/controllers/layout.js +15 -18
- package/dist/api/controllers/metadata.js +37 -51
- package/dist/api/controllers/migrations.js +11 -19
- package/dist/api/controllers/permission.js +43 -52
- package/dist/api/controllers/plugin/index.js +7 -6
- package/dist/api/controllers/plugin/utils.js +1 -2
- package/dist/api/controllers/public/applications.js +9 -17
- package/dist/api/controllers/public/tables.js +9 -29
- package/dist/api/controllers/public/utils.js +2 -2
- 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 +542 -539
- package/dist/api/controllers/row/external.js +190 -258
- package/dist/api/controllers/row/index.js +14 -43
- package/dist/api/controllers/row/internal.js +295 -354
- package/dist/api/controllers/row/internalSearch.js +80 -95
- package/dist/api/controllers/row/staticFormula.js +112 -125
- package/dist/api/controllers/row/utils.js +84 -122
- package/dist/api/controllers/screen.js +66 -81
- package/dist/api/controllers/script.js +6 -13
- package/dist/api/controllers/static/index.js +14 -11
- package/dist/api/controllers/table/bulkFormula.js +35 -47
- package/dist/api/controllers/table/external.js +53 -89
- package/dist/api/controllers/table/index.js +31 -64
- 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/controllers/view/viewBuilder.js +16 -4
- package/dist/api/controllers/webhook.js +2 -25
- 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 -33
- 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 +11 -11
- 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/tests/utilities/index.js +32 -69
- 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 +22 -22
- package/dist/automations/actions.js +24 -53
- package/dist/automations/automationUtils.js +19 -31
- package/dist/automations/bullboard.js +29 -59
- package/dist/automations/index.js +18 -23
- package/dist/automations/steps/bash.js +10 -40
- package/dist/automations/steps/createRow.js +1 -2
- package/dist/automations/steps/delay.js +5 -9
- package/dist/automations/steps/deleteRow.js +1 -2
- package/dist/automations/steps/discord.js +7 -14
- package/dist/automations/steps/executeQuery.js +7 -34
- package/dist/automations/steps/executeScript.js +7 -34
- package/dist/automations/steps/filter.js +18 -20
- package/dist/automations/steps/integromat.js +7 -14
- package/dist/automations/steps/loop.js +1 -4
- package/dist/automations/steps/outgoingWebhook.js +14 -45
- package/dist/automations/steps/queryRows.js +38 -71
- package/dist/automations/steps/sendSmtpEmail.js +6 -33
- package/dist/automations/steps/serverLog.js +8 -12
- package/dist/automations/steps/slack.js +7 -14
- package/dist/automations/steps/updateRow.js +7 -34
- package/dist/automations/steps/utils.js +16 -22
- package/dist/automations/steps/zapier.js +7 -15
- package/dist/automations/tests/utilities/index.js +38 -62
- package/dist/automations/triggerInfo/app.js +1 -4
- package/dist/automations/triggerInfo/cron.js +1 -4
- package/dist/automations/triggerInfo/index.js +6 -31
- package/dist/automations/triggerInfo/rowDeleted.js +1 -4
- package/dist/automations/triggerInfo/rowSaved.js +1 -4
- package/dist/automations/triggerInfo/rowUpdated.js +1 -4
- package/dist/automations/triggerInfo/webhook.js +1 -4
- package/dist/automations/triggers.js +57 -90
- package/dist/automations/utils.js +8 -9
- package/dist/constants/index.js +104 -118
- package/dist/constants/layouts.js +10 -7
- package/dist/constants/screens.js +44 -49
- package/dist/db/dynamoClient.js +20 -20
- package/dist/db/inMemoryView.js +38 -47
- package/dist/db/index.js +4 -7
- package/dist/db/linkedRows/LinkController.js +70 -51
- package/dist/db/linkedRows/index.js +81 -93
- package/dist/db/linkedRows/linkUtils.js +32 -42
- package/dist/db/utils.js +119 -146
- package/dist/db/views/staticViews.js +74 -91
- package/dist/environment.js +6 -9
- package/dist/events/AutomationEmitter.js +10 -13
- package/dist/events/index.js +23 -5
- package/dist/events/utils.js +10 -18
- package/dist/integrations/elasticsearch.js +2 -26
- package/dist/integrations/googlesheets.js +6 -5
- package/dist/integrations/index.js +6 -15
- package/dist/integrations/microsoftSqlServer.js +3 -8
- package/dist/integrations/oracle.js +1 -8
- package/dist/integrations/postgres.js +3 -6
- package/dist/integrations/s3.js +1 -157
- package/dist/integrations/tests/TestConfiguration.js +1 -0
- 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/migrations/index.js +0 -5
- package/dist/package.json +45 -11
- 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 +10 -10
- package/dist/tests/utilities/TestConfiguration.js +87 -111
- package/dist/tests/utilities/controllers.js +15 -38
- package/dist/tests/utilities/structures.js +53 -72
- package/dist/threads/automation.js +27 -49
- package/dist/threads/query.js +19 -17
- package/dist/threads/utils.js +8 -33
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/budibaseDir.js +2 -4
- package/dist/utilities/centralPath.js +7 -14
- package/dist/utilities/csvParser.js +21 -27
- package/dist/utilities/fileSystem/clientLibrary.js +73 -87
- package/dist/utilities/fileSystem/index.js +175 -203
- package/dist/utilities/fileSystem/processor.js +3 -8
- 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/plugins.js +9 -15
- package/dist/utilities/queue/inMemoryQueue.js +126 -0
- package/dist/utilities/redis.js +65 -100
- package/dist/utilities/routing/index.js +23 -27
- package/dist/utilities/rowProcessor/index.js +191 -133
- package/dist/utilities/rowProcessor/utils.js +26 -35
- package/dist/utilities/scriptRunner.js +5 -8
- 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 +46 -12
- package/scripts/exportAppTemplate.js +2 -2
- package/scripts/integrations/mssql/data/setup.sql +3 -3
- 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} +49 -109
- 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/integration.js +14 -0
- package/src/api/controllers/{layout.ts → layout.js} +8 -8
- package/src/api/controllers/{metadata.ts → metadata.js} +10 -11
- package/src/api/controllers/migrations.js +13 -0
- package/src/api/controllers/{permission.ts → permission.js} +46 -49
- package/src/api/controllers/plugin/index.ts +5 -4
- package/src/api/controllers/plugin/utils.ts +5 -3
- package/src/api/controllers/public/applications.ts +9 -15
- package/src/api/controllers/public/rows.ts +1 -1
- package/src/api/controllers/public/tables.ts +2 -2
- package/src/api/controllers/public/utils.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 +624 -605
- package/src/api/controllers/row/{external.ts → external.js} +62 -79
- package/src/api/controllers/row/index.ts +11 -19
- package/src/api/controllers/row/{internal.ts → internal.js} +73 -87
- package/src/api/controllers/row/{internalSearch.ts → internalSearch.js} +68 -92
- package/src/api/controllers/row/{staticFormula.ts → staticFormula.js} +25 -30
- package/src/api/controllers/row/{utils.ts → utils.js} +22 -32
- package/src/api/controllers/screen.ts +6 -10
- package/src/api/controllers/script.js +11 -0
- package/src/api/controllers/static/index.ts +16 -14
- package/src/api/controllers/table/{bulkFormula.ts → bulkFormula.js} +25 -39
- package/src/api/controllers/table/{external.ts → external.js} +55 -86
- package/src/api/controllers/table/{index.ts → index.js} +18 -21
- 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/controllers/view/{viewBuilder.ts → viewBuilder.js} +11 -25
- package/src/api/controllers/webhook.ts +1 -1
- 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 +14 -11
- 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/deployment.spec.ts +1 -1
- 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 +36 -40
- package/src/api/routes/tests/user.spec.js +1 -2
- package/src/api/routes/tests/utilities/TestFunctions.ts +8 -6
- package/src/api/routes/tests/utilities/{index.ts → index.js} +12 -12
- package/src/api/routes/tests/view.spec.js +3 -3
- 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 +14 -15
- package/src/automations/{actions.ts → actions.js} +23 -26
- package/src/automations/{automationUtils.ts → automationUtils.js} +12 -13
- package/src/automations/bullboard.js +39 -0
- package/src/automations/index.js +29 -0
- package/src/automations/steps/{bash.ts → bash.js} +8 -13
- package/src/automations/steps/createRow.ts +3 -8
- package/src/automations/steps/{delay.ts → delay.js} +4 -9
- package/src/automations/steps/deleteRow.ts +3 -8
- package/src/automations/steps/{discord.ts → discord.js} +5 -10
- package/src/automations/steps/{executeQuery.ts → executeQuery.js} +7 -12
- package/src/automations/steps/{executeScript.ts → executeScript.js} +7 -17
- package/src/automations/steps/{filter.ts → filter.js} +9 -12
- package/src/automations/steps/{integromat.ts → integromat.js} +5 -10
- package/src/automations/steps/{loop.ts → loop.js} +2 -4
- package/src/automations/steps/{outgoingWebhook.ts → outgoingWebhook.js} +13 -18
- package/src/automations/steps/{queryRows.ts → queryRows.js} +36 -48
- package/src/automations/steps/{sendSmtpEmail.ts → sendSmtpEmail.js} +5 -10
- package/src/automations/steps/{serverLog.ts → serverLog.js} +3 -9
- package/src/automations/steps/{slack.ts → slack.js} +5 -10
- package/src/automations/steps/{updateRow.ts → updateRow.js} +7 -12
- package/src/automations/steps/{utils.ts → utils.js} +4 -10
- package/src/automations/steps/{zapier.ts → zapier.js} +5 -11
- package/src/automations/tests/updateRow.spec.js +1 -0
- package/src/automations/tests/utilities/index.js +51 -0
- package/src/automations/triggerInfo/{app.ts → app.js} +2 -7
- package/src/automations/triggerInfo/{cron.ts → cron.js} +2 -7
- package/src/automations/triggerInfo/index.js +15 -0
- package/src/automations/triggerInfo/{rowDeleted.ts → rowDeleted.js} +2 -7
- package/src/automations/triggerInfo/{rowSaved.ts → rowSaved.js} +2 -7
- package/src/automations/triggerInfo/{rowUpdated.ts → rowUpdated.js} +2 -7
- package/src/automations/triggerInfo/{webhook.ts → webhook.js} +2 -7
- package/src/automations/{triggers.ts → triggers.js} +26 -30
- package/src/automations/utils.ts +12 -9
- package/src/constants/index.js +208 -0
- package/src/constants/{layouts.ts → layouts.js} +9 -3
- package/src/constants/screens.js +46 -0
- package/src/db/{dynamoClient.ts → dynamoClient.js} +19 -39
- package/src/db/{inMemoryView.ts → inMemoryView.js} +9 -15
- package/src/db/index.js +16 -0
- package/src/db/linkedRows/{LinkController.ts → LinkController.js} +85 -64
- package/src/db/linkedRows/{index.ts → index.js} +38 -43
- package/src/db/linkedRows/{linkUtils.ts → linkUtils.js} +24 -33
- package/src/db/{newid.ts → newid.js} +1 -1
- 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.ts → staticViews.js} +13 -20
- package/src/{environment.ts → environment.js} +7 -11
- package/src/events/{AutomationEmitter.ts → AutomationEmitter.js} +7 -12
- package/src/events/{BudibaseEmitter.ts → index.js} +8 -7
- package/src/events/utils.js +38 -0
- 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 -5
- package/src/integrations/index.ts +41 -45
- package/src/integrations/microsoftSqlServer.ts +12 -14
- package/src/integrations/mysql.ts +3 -4
- package/src/integrations/oracle.ts +46 -17
- package/src/integrations/postgres.ts +2 -8
- package/src/integrations/s3.ts +3 -179
- package/src/integrations/tests/s3.spec.ts +1 -85
- package/src/integrations/utils.ts +2 -6
- 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/migrations/index.ts +0 -9
- package/src/migrations/tests/index.spec.ts +1 -1
- 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 +5 -5
- package/src/tests/utilities/{TestConfiguration.ts → TestConfiguration.js} +78 -111
- package/src/tests/utilities/controllers.js +16 -0
- package/src/tests/utilities/{index.ts → index.js} +2 -2
- package/src/tests/utilities/{structures.ts → structures.js} +36 -41
- package/src/threads/automation.ts +19 -18
- package/src/threads/query.ts +16 -11
- package/src/threads/utils.ts +5 -4
- package/src/utilities/budibaseDir.js +3 -0
- package/src/utilities/{centralPath.ts → centralPath.js} +3 -3
- package/src/utilities/{csvParser.ts → csvParser.js} +26 -42
- package/src/utilities/fileSystem/{clientLibrary.ts → clientLibrary.js} +20 -20
- package/src/utilities/fileSystem/{index.ts → index.js} +65 -61
- package/src/utilities/fileSystem/{processor.ts → processor.js} +5 -3
- 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/{plugins.ts → plugins.js} +4 -5
- package/src/utilities/queue/inMemoryQueue.js +122 -0
- 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} +144 -67
- package/src/utilities/rowProcessor/{utils.ts → utils.js} +15 -19
- package/src/utilities/{scriptRunner.ts → scriptRunner.js} +4 -8
- package/src/utilities/security.js +71 -0
- package/src/utilities/{statusCodes.ts → statusCodes.js} +1 -1
- package/src/utilities/usageQuota/{rows.ts → rows.js} +18 -14
- package/src/utilities/usageQuota/{usageQuoteReset.ts → usageQuoteReset.js} +1 -1
- 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.build.json +2 -1
- package/tsconfig.json +1 -3
- package/builder/assets/index.0c44dac3.css +0 -6
- package/builder/assets/index.e19dcc8e.js +0 -1021
- 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/integration.ts.html +0 -124
- 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 -136
- 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/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 -2269
- 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 -694
- 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/analytics.ts.html +0 -112
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +0 -121
- 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/datasource.ts.html +0 -265
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +0 -148
- package/coverage/lcov-report/src/api/routes/index.ts.html +0 -289
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +0 -127
- 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 -493
- 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/role.ts.html +0 -157
- 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.ts.html +0 -367
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +0 -166
- package/coverage/lcov-report/src/app.ts.html +0 -406
- 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 -382
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +0 -349
- package/coverage/lcov-report/src/automations/steps/index.html +0 -371
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +0 -116
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +0 -265
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +0 -196
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +0 -130
- package/coverage/lcov-report/src/automations/utils.ts.html +0 -886
- package/coverage/lcov-report/src/constants/index.ts.html +0 -697
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +0 -2059
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +0 -541
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +0 -427
- package/coverage/lcov-report/src/db/defaultData/index.html +0 -176
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +0 -403
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +0 -559
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +0 -526
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +0 -265
- package/coverage/lcov-report/src/db/linkedRows/index.html +0 -161
- package/coverage/lcov-report/src/environment.ts.html +0 -457
- package/coverage/lcov-report/src/events/utils.ts.html +0 -319
- 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/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/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 -1315
- 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 -1012
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +0 -1867
- package/coverage/lcov-report/src/integrations/mysql.ts.html +0 -967
- package/coverage/lcov-report/src/integrations/oracle.ts.html +0 -1387
- package/coverage/lcov-report/src/integrations/postgres.ts.html +0 -1087
- 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 -1018
- 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 -161
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +0 -130
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +0 -520
- 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 -430
- 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.ts.html +0 -1966
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +0 -127
- package/coverage/lcov-report/src/tests/utilities/index.html +0 -161
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +0 -667
- 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.ts.html +0 -547
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +0 -1129
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +0 -142
- 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.ts.html +0 -373
- package/coverage/lcov-report/src/watch.ts.html +0 -196
- package/dist/db/defaultData/datasource_bb_default.js +0 -573
- package/dist/db/defaultData/employeeImport.js +0 -155
- package/dist/db/defaultData/expensesImport.js +0 -117
- package/dist/db/defaultData/inventoryImport.js +0 -109
- package/dist/db/defaultData/jobsImport.js +0 -152
- package/dist/db/linkedRows/LinkDocument.js +0 -32
- package/dist/events/BudibaseEmitter.js +0 -24
- package/dist/integrations/base/types.js +0 -2
- package/dist/migrations/functions/tableSettings.js +0 -130
- package/dist/utilities/rowProcessor/map.js +0 -99
- package/jest.config.ts +0 -33
- package/scripts/integrations/postgres/emp-skill.sql +0 -46
- package/src/api/controllers/integration.ts +0 -13
- package/src/api/controllers/migrations.ts +0 -14
- 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/automations/bullboard.ts +0 -38
- package/src/automations/index.ts +0 -26
- package/src/automations/tests/utilities/index.ts +0 -60
- package/src/automations/triggerInfo/index.ts +0 -15
- package/src/constants/index.ts +0 -204
- package/src/constants/screens.ts +0 -48
- package/src/db/defaultData/datasource_bb_default.ts +0 -658
- package/src/db/defaultData/employeeImport.ts +0 -152
- package/src/db/defaultData/expensesImport.ts +0 -114
- package/src/db/defaultData/inventoryImport.ts +0 -106
- package/src/db/defaultData/jobsImport.ts +0 -158
- package/src/db/index.ts +0 -16
- package/src/db/linkedRows/LinkDocument.ts +0 -60
- package/src/events/index.ts +0 -5
- package/src/events/utils.ts +0 -78
- package/src/integrations/base/types.ts +0 -134
- package/src/middleware/appInfo.ts +0 -20
- package/src/middleware/publicApi.ts +0 -21
- package/src/migrations/functions/tableSettings.ts +0 -145
- package/src/migrations/functions/tests/tableSettings.spec.ts +0 -144
- package/src/tests/utilities/controllers.ts +0 -14
- 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.ts +0 -96
- package/src/utilities/security.ts +0 -65
|
@@ -14,14 +14,19 @@ const {
|
|
|
14
14
|
} = require("../../../utilities/fileSystem")
|
|
15
15
|
const env = require("../../../environment")
|
|
16
16
|
const { clientLibraryPath } = require("../../../utilities")
|
|
17
|
+
const { upload, deleteFiles } = require("../../../utilities/fileSystem")
|
|
17
18
|
const { attachmentsRelativeURL } = require("../../../utilities")
|
|
18
19
|
const { DocumentType } = require("../../../db/utils")
|
|
19
|
-
const {
|
|
20
|
+
const { getAppDB, getAppId } = require("@budibase/backend-core/context")
|
|
21
|
+
const { setCookie, clearCookie } = require("@budibase/backend-core/utils")
|
|
20
22
|
const AWS = require("aws-sdk")
|
|
21
23
|
const fs = require("fs")
|
|
24
|
+
const {
|
|
25
|
+
downloadTarballDirect,
|
|
26
|
+
} = require("../../../utilities/fileSystem/utilities")
|
|
22
27
|
|
|
23
28
|
async function prepareUpload({ s3Key, bucket, metadata, file }: any) {
|
|
24
|
-
const response = await
|
|
29
|
+
const response = await upload({
|
|
25
30
|
bucket,
|
|
26
31
|
metadata,
|
|
27
32
|
filename: s3Key,
|
|
@@ -43,7 +48,7 @@ export const toggleBetaUiFeature = async function (ctx: any) {
|
|
|
43
48
|
const cookieName = `beta:${ctx.params.feature}`
|
|
44
49
|
|
|
45
50
|
if (ctx.cookies.get(cookieName)) {
|
|
46
|
-
|
|
51
|
+
clearCookie(ctx, cookieName)
|
|
47
52
|
ctx.body = {
|
|
48
53
|
message: `${ctx.params.feature} disabled`,
|
|
49
54
|
}
|
|
@@ -56,11 +61,11 @@ export const toggleBetaUiFeature = async function (ctx: any) {
|
|
|
56
61
|
if (!fs.existsSync(builderPath)) {
|
|
57
62
|
fs.mkdirSync(builderPath)
|
|
58
63
|
}
|
|
59
|
-
await
|
|
64
|
+
await downloadTarballDirect(
|
|
60
65
|
"https://cdn.budi.live/beta:design_ui/new_ui.tar.gz",
|
|
61
66
|
builderPath
|
|
62
67
|
)
|
|
63
|
-
|
|
68
|
+
setCookie(ctx, {}, cookieName)
|
|
64
69
|
|
|
65
70
|
ctx.body = {
|
|
66
71
|
message: `${ctx.params.feature} enabled`,
|
|
@@ -94,16 +99,13 @@ export const uploadFile = async function (ctx: any) {
|
|
|
94
99
|
}
|
|
95
100
|
|
|
96
101
|
export const deleteObjects = async function (ctx: any) {
|
|
97
|
-
ctx.body = await
|
|
98
|
-
ObjectStoreBuckets.APPS,
|
|
99
|
-
ctx.request.body.keys
|
|
100
|
-
)
|
|
102
|
+
ctx.body = await deleteFiles(ObjectStoreBuckets.APPS, ctx.request.body.keys)
|
|
101
103
|
}
|
|
102
104
|
|
|
103
105
|
export const serveApp = async function (ctx: any) {
|
|
104
|
-
const db =
|
|
106
|
+
const db = getAppDB({ skip_setup: true })
|
|
105
107
|
const appInfo = await db.get(DocumentType.APP_METADATA)
|
|
106
|
-
let appId =
|
|
108
|
+
let appId = getAppId()
|
|
107
109
|
|
|
108
110
|
if (!env.isJest()) {
|
|
109
111
|
const App = require("./templates/BudibaseApp.svelte").default
|
|
@@ -132,11 +134,11 @@ export const serveApp = async function (ctx: any) {
|
|
|
132
134
|
}
|
|
133
135
|
|
|
134
136
|
export const serveBuilderPreview = async function (ctx: any) {
|
|
135
|
-
const db =
|
|
137
|
+
const db = getAppDB({ skip_setup: true })
|
|
136
138
|
const appInfo = await db.get(DocumentType.APP_METADATA)
|
|
137
139
|
|
|
138
140
|
if (!env.isJest()) {
|
|
139
|
-
let appId =
|
|
141
|
+
let appId = getAppId()
|
|
140
142
|
const previewHbs = loadHandlebarsFile(`${__dirname}/templates/preview.hbs`)
|
|
141
143
|
ctx.body = await processString(previewHbs, {
|
|
142
144
|
clientLibPath: clientLibraryPath(appId, appInfo.version, ctx),
|
|
@@ -154,7 +156,7 @@ export const serveClientLibrary = async function (ctx: any) {
|
|
|
154
156
|
}
|
|
155
157
|
|
|
156
158
|
export const getSignedUploadURL = async function (ctx: any) {
|
|
157
|
-
const database =
|
|
159
|
+
const database = getAppDB()
|
|
158
160
|
|
|
159
161
|
// Ensure datasource is valid
|
|
160
162
|
let datasource
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
import sdk from "../../../sdk"
|
|
1
|
+
const { FieldTypes, FormulaTypes } = require("../../../constants")
|
|
2
|
+
const { clearColumns } = require("./utils")
|
|
3
|
+
const { doesContainStrings } = require("@budibase/string-templates")
|
|
4
|
+
const { cloneDeep } = require("lodash/fp")
|
|
5
|
+
const { isEqual, uniq } = require("lodash")
|
|
6
|
+
const { updateAllFormulasInTable } = require("../row/staticFormula")
|
|
7
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
8
|
+
const sdk = require("../../../sdk")
|
|
10
9
|
|
|
11
|
-
function isStaticFormula(column
|
|
10
|
+
function isStaticFormula(column) {
|
|
12
11
|
return (
|
|
13
12
|
column.type === FieldTypes.FORMULA &&
|
|
14
13
|
column.formulaType === FormulaTypes.STATIC
|
|
@@ -19,8 +18,8 @@ function isStaticFormula(column: FieldSchema) {
|
|
|
19
18
|
* This retrieves the formula columns from a table schema that use a specified column name
|
|
20
19
|
* in the formula.
|
|
21
20
|
*/
|
|
22
|
-
function getFormulaThatUseColumn(table
|
|
23
|
-
let formula
|
|
21
|
+
function getFormulaThatUseColumn(table, columnNames) {
|
|
22
|
+
let formula = []
|
|
24
23
|
columnNames = Array.isArray(columnNames) ? columnNames : [columnNames]
|
|
25
24
|
for (let column of Object.values(table.schema)) {
|
|
26
25
|
// not a static formula, or doesn't contain a relationship
|
|
@@ -39,10 +38,7 @@ function getFormulaThatUseColumn(table: Table, columnNames: string[] | string) {
|
|
|
39
38
|
* This functions checks for when a related table, column or related column is deleted, if any
|
|
40
39
|
* tables need to have the formula column removed.
|
|
41
40
|
*/
|
|
42
|
-
async function checkIfFormulaNeedsCleared(
|
|
43
|
-
table: Table,
|
|
44
|
-
{ oldTable, deletion }: { oldTable?: Table; deletion?: boolean }
|
|
45
|
-
) {
|
|
41
|
+
async function checkIfFormulaNeedsCleared(table, { oldTable, deletion }) {
|
|
46
42
|
// start by retrieving all tables, remove the current table from the list
|
|
47
43
|
const tables = (await sdk.tables.getAllInternalTables()).filter(
|
|
48
44
|
tbl => tbl._id !== table._id
|
|
@@ -53,14 +49,11 @@ async function checkIfFormulaNeedsCleared(
|
|
|
53
49
|
)
|
|
54
50
|
// remove any formula columns that used related columns
|
|
55
51
|
for (let removed of removedColumns) {
|
|
56
|
-
let tableToUse
|
|
52
|
+
let tableToUse = table
|
|
57
53
|
// if relationship, get the related table
|
|
58
54
|
if (removed.type === FieldTypes.LINK) {
|
|
59
55
|
tableToUse = tables.find(table => table._id === removed.tableId)
|
|
60
56
|
}
|
|
61
|
-
if (!tableToUse) {
|
|
62
|
-
continue
|
|
63
|
-
}
|
|
64
57
|
const columnsToDelete = getFormulaThatUseColumn(tableToUse, removed.name)
|
|
65
58
|
if (columnsToDelete.length > 0) {
|
|
66
59
|
await clearColumns(table, columnsToDelete)
|
|
@@ -78,11 +71,11 @@ async function checkIfFormulaNeedsCleared(
|
|
|
78
71
|
// look to see if the column was used in a relationship formula,
|
|
79
72
|
// relationships won't be used for this
|
|
80
73
|
if (relatedTable && relatedColumns && removed.type !== FieldTypes.LINK) {
|
|
81
|
-
let relatedFormulaToRemove
|
|
74
|
+
let relatedFormulaToRemove = []
|
|
82
75
|
for (let column of relatedColumns) {
|
|
83
76
|
relatedFormulaToRemove = relatedFormulaToRemove.concat(
|
|
84
77
|
getFormulaThatUseColumn(relatedTable, [
|
|
85
|
-
column.fieldName
|
|
78
|
+
column.fieldName,
|
|
86
79
|
removed.name,
|
|
87
80
|
])
|
|
88
81
|
)
|
|
@@ -102,14 +95,13 @@ async function checkIfFormulaNeedsCleared(
|
|
|
102
95
|
* specifically only for static formula.
|
|
103
96
|
*/
|
|
104
97
|
async function updateRelatedFormulaLinksOnTables(
|
|
105
|
-
table
|
|
106
|
-
{ deletion }
|
|
98
|
+
table,
|
|
99
|
+
{ deletion } = { deletion: false }
|
|
107
100
|
) {
|
|
108
|
-
const
|
|
109
|
-
const db = context.getAppDB()
|
|
101
|
+
const db = getAppDB()
|
|
110
102
|
// start by retrieving all tables, remove the current table from the list
|
|
111
103
|
const tables = (await sdk.tables.getAllInternalTables()).filter(
|
|
112
|
-
tbl => tbl._id !==
|
|
104
|
+
tbl => tbl._id !== table._id
|
|
113
105
|
)
|
|
114
106
|
// clone the tables, so we can compare at end
|
|
115
107
|
const initialTables = cloneDeep(tables)
|
|
@@ -122,7 +114,7 @@ async function updateRelatedFormulaLinksOnTables(
|
|
|
122
114
|
if (!otherTable.relatedFormula) {
|
|
123
115
|
continue
|
|
124
116
|
}
|
|
125
|
-
const index = otherTable.relatedFormula.indexOf(
|
|
117
|
+
const index = otherTable.relatedFormula.indexOf(table._id)
|
|
126
118
|
if (index !== -1) {
|
|
127
119
|
otherTable.relatedFormula.splice(index, 1)
|
|
128
120
|
}
|
|
@@ -141,11 +133,11 @@ async function updateRelatedFormulaLinksOnTables(
|
|
|
141
133
|
if (
|
|
142
134
|
relatedTable &&
|
|
143
135
|
(!relatedTable.relatedFormula ||
|
|
144
|
-
!relatedTable.relatedFormula.includes(
|
|
136
|
+
!relatedTable.relatedFormula.includes(table._id))
|
|
145
137
|
) {
|
|
146
138
|
relatedTable.relatedFormula = relatedTable.relatedFormula
|
|
147
|
-
? [...relatedTable.relatedFormula,
|
|
148
|
-
: [
|
|
139
|
+
? [...relatedTable.relatedFormula, table._id]
|
|
140
|
+
: [table._id]
|
|
149
141
|
}
|
|
150
142
|
}
|
|
151
143
|
}
|
|
@@ -158,10 +150,7 @@ async function updateRelatedFormulaLinksOnTables(
|
|
|
158
150
|
}
|
|
159
151
|
}
|
|
160
152
|
|
|
161
|
-
async function checkIfFormulaUpdated(
|
|
162
|
-
table: Table,
|
|
163
|
-
{ oldTable }: { oldTable?: Table }
|
|
164
|
-
) {
|
|
153
|
+
async function checkIfFormulaUpdated(table, { oldTable }) {
|
|
165
154
|
// look to see if any formula values have changed
|
|
166
155
|
const shouldUpdate = Object.values(table.schema).find(
|
|
167
156
|
column =>
|
|
@@ -176,10 +165,7 @@ async function checkIfFormulaUpdated(
|
|
|
176
165
|
}
|
|
177
166
|
}
|
|
178
167
|
|
|
179
|
-
|
|
180
|
-
table: Table,
|
|
181
|
-
{ oldTable, deletion }: { oldTable?: Table; deletion?: boolean }
|
|
182
|
-
) {
|
|
168
|
+
exports.runStaticFormulaChecks = async (table, { oldTable, deletion }) => {
|
|
183
169
|
await updateRelatedFormulaLinksOnTables(table, { deletion })
|
|
184
170
|
await checkIfFormulaNeedsCleared(table, { oldTable, deletion })
|
|
185
171
|
if (!deletion) {
|
|
@@ -1,43 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
const {
|
|
2
2
|
buildExternalTableId,
|
|
3
3
|
breakExternalTableId,
|
|
4
|
-
}
|
|
5
|
-
|
|
4
|
+
} = require("../../../integrations/utils")
|
|
5
|
+
const {
|
|
6
6
|
generateForeignKey,
|
|
7
7
|
generateJunctionTableName,
|
|
8
8
|
foreignKeyStructure,
|
|
9
9
|
hasTypeChanged,
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
Datasource,
|
|
18
|
-
Table,
|
|
19
|
-
QueryJson,
|
|
20
|
-
Operation,
|
|
21
|
-
RenameColumn,
|
|
22
|
-
FieldSchema,
|
|
23
|
-
BBContext,
|
|
24
|
-
TableRequest,
|
|
25
|
-
} from "@budibase/types"
|
|
26
|
-
import sdk from "../../../sdk"
|
|
10
|
+
} = require("./utils")
|
|
11
|
+
const {
|
|
12
|
+
DataSourceOperation,
|
|
13
|
+
FieldTypes,
|
|
14
|
+
RelationshipTypes,
|
|
15
|
+
} = require("../../../constants")
|
|
16
|
+
const { makeExternalQuery } = require("../../../integrations/base/query")
|
|
27
17
|
const { cloneDeep } = require("lodash/fp")
|
|
18
|
+
const csvParser = require("../../../utilities/csvParser")
|
|
19
|
+
const { handleRequest } = require("../row/external")
|
|
20
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
21
|
+
const { events } = require("@budibase/backend-core")
|
|
22
|
+
const sdk = require("../../../sdk")
|
|
28
23
|
|
|
29
24
|
async function makeTableRequest(
|
|
30
|
-
datasource
|
|
31
|
-
operation
|
|
32
|
-
table
|
|
33
|
-
tables
|
|
34
|
-
oldTable
|
|
35
|
-
renamed
|
|
25
|
+
datasource,
|
|
26
|
+
operation,
|
|
27
|
+
table,
|
|
28
|
+
tables,
|
|
29
|
+
oldTable = null,
|
|
30
|
+
renamed = null
|
|
36
31
|
) {
|
|
37
|
-
const json
|
|
32
|
+
const json = {
|
|
38
33
|
endpoint: {
|
|
39
|
-
datasourceId: datasource._id
|
|
40
|
-
entityId: table._id
|
|
34
|
+
datasourceId: datasource._id,
|
|
35
|
+
entityId: table._id,
|
|
41
36
|
operation,
|
|
42
37
|
},
|
|
43
38
|
meta: {
|
|
@@ -46,19 +41,15 @@ async function makeTableRequest(
|
|
|
46
41
|
table,
|
|
47
42
|
}
|
|
48
43
|
if (oldTable) {
|
|
49
|
-
json.meta
|
|
44
|
+
json.meta.table = oldTable
|
|
50
45
|
}
|
|
51
46
|
if (renamed) {
|
|
52
|
-
json.meta
|
|
47
|
+
json.meta.renamed = renamed
|
|
53
48
|
}
|
|
54
49
|
return makeExternalQuery(datasource, json)
|
|
55
50
|
}
|
|
56
51
|
|
|
57
|
-
function cleanupRelationships(
|
|
58
|
-
table: Table,
|
|
59
|
-
tables: Record<string, Table>,
|
|
60
|
-
oldTable?: Table
|
|
61
|
-
) {
|
|
52
|
+
function cleanupRelationships(table, tables, oldTable = null) {
|
|
62
53
|
const tableToIterate = oldTable ? oldTable : table
|
|
63
54
|
// clean up relationships in couch table schemas
|
|
64
55
|
for (let [key, schema] of Object.entries(tableToIterate.schema)) {
|
|
@@ -87,7 +78,7 @@ function cleanupRelationships(
|
|
|
87
78
|
}
|
|
88
79
|
}
|
|
89
80
|
|
|
90
|
-
function getDatasourceId(table
|
|
81
|
+
function getDatasourceId(table) {
|
|
91
82
|
if (!table) {
|
|
92
83
|
throw "No table supplied"
|
|
93
84
|
}
|
|
@@ -97,7 +88,7 @@ function getDatasourceId(table: Table) {
|
|
|
97
88
|
return breakExternalTableId(table._id).datasourceId
|
|
98
89
|
}
|
|
99
90
|
|
|
100
|
-
function otherRelationshipType(type
|
|
91
|
+
function otherRelationshipType(type) {
|
|
101
92
|
if (type === RelationshipTypes.MANY_TO_MANY) {
|
|
102
93
|
return RelationshipTypes.MANY_TO_MANY
|
|
103
94
|
}
|
|
@@ -106,21 +97,13 @@ function otherRelationshipType(type?: string) {
|
|
|
106
97
|
: RelationshipTypes.ONE_TO_MANY
|
|
107
98
|
}
|
|
108
99
|
|
|
109
|
-
function generateManyLinkSchema(
|
|
110
|
-
datasource: Datasource,
|
|
111
|
-
column: FieldSchema,
|
|
112
|
-
table: Table,
|
|
113
|
-
relatedTable: Table
|
|
114
|
-
): Table {
|
|
115
|
-
if (!table.primary || !relatedTable.primary) {
|
|
116
|
-
throw new Error("Unable to generate many link schema, no primary keys")
|
|
117
|
-
}
|
|
100
|
+
function generateManyLinkSchema(datasource, column, table, relatedTable) {
|
|
118
101
|
const primary = table.name + table.primary[0]
|
|
119
102
|
const relatedPrimary = relatedTable.name + relatedTable.primary[0]
|
|
120
103
|
const jcTblName = generateJunctionTableName(column, table, relatedTable)
|
|
121
104
|
// first create the new table
|
|
122
105
|
const junctionTable = {
|
|
123
|
-
_id: buildExternalTableId(datasource._id
|
|
106
|
+
_id: buildExternalTableId(datasource._id, jcTblName),
|
|
124
107
|
name: jcTblName,
|
|
125
108
|
primary: [primary, relatedPrimary],
|
|
126
109
|
constrained: [primary, relatedPrimary],
|
|
@@ -142,15 +125,7 @@ function generateManyLinkSchema(
|
|
|
142
125
|
return junctionTable
|
|
143
126
|
}
|
|
144
127
|
|
|
145
|
-
function generateLinkSchema(
|
|
146
|
-
column: FieldSchema,
|
|
147
|
-
table: Table,
|
|
148
|
-
relatedTable: Table,
|
|
149
|
-
type: string
|
|
150
|
-
) {
|
|
151
|
-
if (!table.primary || !relatedTable.primary) {
|
|
152
|
-
throw new Error("Unable to generate link schema, no primary keys")
|
|
153
|
-
}
|
|
128
|
+
function generateLinkSchema(column, table, relatedTable, type) {
|
|
154
129
|
const isOneSide = type === RelationshipTypes.ONE_TO_MANY
|
|
155
130
|
const primary = isOneSide ? relatedTable.primary[0] : table.primary[0]
|
|
156
131
|
// generate a foreign key
|
|
@@ -161,12 +136,7 @@ function generateLinkSchema(
|
|
|
161
136
|
return foreignKey
|
|
162
137
|
}
|
|
163
138
|
|
|
164
|
-
function generateRelatedSchema(
|
|
165
|
-
linkColumn: FieldSchema,
|
|
166
|
-
table: Table,
|
|
167
|
-
relatedTable: Table,
|
|
168
|
-
columnName: string
|
|
169
|
-
) {
|
|
139
|
+
function generateRelatedSchema(linkColumn, table, relatedTable, columnName) {
|
|
170
140
|
// generate column for other table
|
|
171
141
|
const relatedSchema = cloneDeep(linkColumn)
|
|
172
142
|
// swap them from the main link
|
|
@@ -189,21 +159,21 @@ function generateRelatedSchema(
|
|
|
189
159
|
table.schema[columnName] = relatedSchema
|
|
190
160
|
}
|
|
191
161
|
|
|
192
|
-
function isRelationshipSetup(column
|
|
162
|
+
function isRelationshipSetup(column) {
|
|
193
163
|
return column.foreignKey || column.through
|
|
194
164
|
}
|
|
195
165
|
|
|
196
|
-
|
|
197
|
-
const table
|
|
198
|
-
const renamed = table
|
|
166
|
+
exports.save = async function (ctx) {
|
|
167
|
+
const table = ctx.request.body
|
|
168
|
+
const { _rename: renamed } = table
|
|
199
169
|
// can't do this right now
|
|
200
170
|
delete table.dataImport
|
|
201
|
-
const datasourceId = getDatasourceId(ctx.request.body)
|
|
171
|
+
const datasourceId = getDatasourceId(ctx.request.body)
|
|
202
172
|
// table doesn't exist already, note that it is created
|
|
203
173
|
if (!table._id) {
|
|
204
174
|
table.created = true
|
|
205
175
|
}
|
|
206
|
-
let tableToSave
|
|
176
|
+
let tableToSave = {
|
|
207
177
|
type: "table",
|
|
208
178
|
_id: buildExternalTableId(datasourceId, table.name),
|
|
209
179
|
...table,
|
|
@@ -218,13 +188,13 @@ export async function save(ctx: BBContext) {
|
|
|
218
188
|
ctx.throw(400, "A column type has changed.")
|
|
219
189
|
}
|
|
220
190
|
|
|
221
|
-
const db =
|
|
191
|
+
const db = getAppDB()
|
|
222
192
|
const datasource = await db.get(datasourceId)
|
|
223
193
|
if (!datasource.entities) {
|
|
224
194
|
datasource.entities = {}
|
|
225
195
|
}
|
|
226
196
|
const oldTables = cloneDeep(datasource.entities)
|
|
227
|
-
const tables
|
|
197
|
+
const tables = datasource.entities
|
|
228
198
|
|
|
229
199
|
const extraTablesToUpdate = []
|
|
230
200
|
|
|
@@ -236,11 +206,8 @@ export async function save(ctx: BBContext) {
|
|
|
236
206
|
const relatedTable = Object.values(tables).find(
|
|
237
207
|
table => table._id === schema.tableId
|
|
238
208
|
)
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
}
|
|
242
|
-
const relatedColumnName = schema.fieldName!
|
|
243
|
-
const relationType = schema.relationshipType!
|
|
209
|
+
const relatedColumnName = schema.fieldName
|
|
210
|
+
const relationType = schema.relationshipType
|
|
244
211
|
if (relationType === RelationshipTypes.MANY_TO_MANY) {
|
|
245
212
|
const junctionTable = generateManyLinkSchema(
|
|
246
213
|
datasource,
|
|
@@ -280,7 +247,9 @@ export async function save(ctx: BBContext) {
|
|
|
280
247
|
|
|
281
248
|
cleanupRelationships(tableToSave, tables, oldTable)
|
|
282
249
|
|
|
283
|
-
const operation = oldTable
|
|
250
|
+
const operation = oldTable
|
|
251
|
+
? DataSourceOperation.UPDATE_TABLE
|
|
252
|
+
: DataSourceOperation.CREATE_TABLE
|
|
284
253
|
await makeTableRequest(
|
|
285
254
|
datasource,
|
|
286
255
|
operation,
|
|
@@ -292,7 +261,9 @@ export async function save(ctx: BBContext) {
|
|
|
292
261
|
// update any extra tables (like foreign keys in other tables)
|
|
293
262
|
for (let extraTable of extraTablesToUpdate) {
|
|
294
263
|
const oldExtraTable = oldTables[extraTable.name]
|
|
295
|
-
let op = oldExtraTable
|
|
264
|
+
let op = oldExtraTable
|
|
265
|
+
? DataSourceOperation.UPDATE_TABLE
|
|
266
|
+
: DataSourceOperation.CREATE_TABLE
|
|
296
267
|
await makeTableRequest(datasource, op, extraTable, tables, oldExtraTable)
|
|
297
268
|
}
|
|
298
269
|
|
|
@@ -312,20 +283,18 @@ export async function save(ctx: BBContext) {
|
|
|
312
283
|
return tableToSave
|
|
313
284
|
}
|
|
314
285
|
|
|
315
|
-
|
|
316
|
-
const tableToDelete
|
|
317
|
-
ctx.params.tableId
|
|
318
|
-
)
|
|
286
|
+
exports.destroy = async function (ctx) {
|
|
287
|
+
const tableToDelete = await sdk.tables.getTable(ctx.params.tableId)
|
|
319
288
|
if (!tableToDelete || !tableToDelete.created) {
|
|
320
289
|
ctx.throw(400, "Cannot delete tables which weren't created in Budibase.")
|
|
321
290
|
}
|
|
322
291
|
const datasourceId = getDatasourceId(tableToDelete)
|
|
323
292
|
|
|
324
|
-
const db =
|
|
293
|
+
const db = getAppDB()
|
|
325
294
|
const datasource = await db.get(datasourceId)
|
|
326
295
|
const tables = datasource.entities
|
|
327
296
|
|
|
328
|
-
const operation =
|
|
297
|
+
const operation = DataSourceOperation.DELETE_TABLE
|
|
329
298
|
await makeTableRequest(datasource, operation, tableToDelete, tables)
|
|
330
299
|
|
|
331
300
|
cleanupRelationships(tableToDelete, tables)
|
|
@@ -336,7 +305,7 @@ export async function destroy(ctx: BBContext) {
|
|
|
336
305
|
return tableToDelete
|
|
337
306
|
}
|
|
338
307
|
|
|
339
|
-
|
|
308
|
+
exports.bulkImport = async function (ctx) {
|
|
340
309
|
const table = await sdk.tables.getTable(ctx.params.tableId)
|
|
341
310
|
const { dataImport } = ctx.request.body
|
|
342
311
|
if (!dataImport || !dataImport.schema || !dataImport.csvString) {
|
|
@@ -346,7 +315,7 @@ export async function bulkImport(ctx: BBContext) {
|
|
|
346
315
|
...dataImport,
|
|
347
316
|
existingTable: table,
|
|
348
317
|
})
|
|
349
|
-
await handleRequest(
|
|
318
|
+
await handleRequest(DataSourceOperation.BULK_CREATE, table._id, {
|
|
350
319
|
rows,
|
|
351
320
|
})
|
|
352
321
|
await events.rows.imported(table, "csv", rows.length)
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
const internal = require("./internal")
|
|
2
|
+
const external = require("./external")
|
|
3
|
+
const csvParser = require("../../../utilities/csvParser")
|
|
4
|
+
const { isExternalTable, isSQL } = require("../../../integrations/utils")
|
|
5
|
+
const { getDatasourceParams } = require("../../../db/utils")
|
|
6
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
7
|
+
const { events } = require("@budibase/backend-core")
|
|
8
|
+
const sdk = require("../../../sdk")
|
|
9
9
|
|
|
10
|
-
function pickApi({ tableId, table }
|
|
10
|
+
function pickApi({ tableId, table }) {
|
|
11
11
|
if (table && !tableId) {
|
|
12
12
|
tableId = table._id
|
|
13
13
|
}
|
|
@@ -20,8 +20,8 @@ function pickApi({ tableId, table }: { tableId?: string; table?: Table }) {
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
// covers both internal and external
|
|
23
|
-
|
|
24
|
-
const db =
|
|
23
|
+
exports.fetch = async function (ctx) {
|
|
24
|
+
const db = getAppDB()
|
|
25
25
|
|
|
26
26
|
const internal = await sdk.tables.getAllInternalTables()
|
|
27
27
|
|
|
@@ -34,7 +34,7 @@ export async function fetch(ctx: BBContext) {
|
|
|
34
34
|
const external = externalTables.rows.flatMap(tableDoc => {
|
|
35
35
|
let entities = tableDoc.doc.entities
|
|
36
36
|
if (entities) {
|
|
37
|
-
return Object.values(entities).map(
|
|
37
|
+
return Object.values(entities).map(entity => ({
|
|
38
38
|
...entity,
|
|
39
39
|
type: "external",
|
|
40
40
|
sourceId: tableDoc.doc._id,
|
|
@@ -48,12 +48,12 @@ export async function fetch(ctx: BBContext) {
|
|
|
48
48
|
ctx.body = [...internal, ...external]
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
exports.find = async function (ctx) {
|
|
52
52
|
const tableId = ctx.params.tableId
|
|
53
53
|
ctx.body = await sdk.tables.getTable(tableId)
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
exports.save = async function (ctx) {
|
|
57
57
|
const appId = ctx.appId
|
|
58
58
|
const table = ctx.request.body
|
|
59
59
|
const importFormat =
|
|
@@ -74,7 +74,7 @@ export async function save(ctx: BBContext) {
|
|
|
74
74
|
ctx.body = savedTable
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
exports.destroy = async function (ctx) {
|
|
78
78
|
const appId = ctx.appId
|
|
79
79
|
const tableId = ctx.params.tableId
|
|
80
80
|
const deletedTable = await pickApi({ tableId }).destroy(ctx)
|
|
@@ -86,7 +86,7 @@ export async function destroy(ctx: BBContext) {
|
|
|
86
86
|
ctx.body = { message: `Table ${tableId} deleted.` }
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
exports.bulkImport = async function (ctx) {
|
|
90
90
|
const tableId = ctx.params.tableId
|
|
91
91
|
await pickApi({ tableId }).bulkImport(ctx)
|
|
92
92
|
// right now we don't trigger anything for bulk import because it
|
|
@@ -96,17 +96,14 @@ export async function bulkImport(ctx: BBContext) {
|
|
|
96
96
|
ctx.body = { message: `Bulk rows created.` }
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
exports.validateCSVSchema = async function (ctx) {
|
|
100
100
|
// tableId being specified means its an import to an existing table
|
|
101
101
|
const { csvString, schema = {}, tableId } = ctx.request.body
|
|
102
102
|
let existingTable
|
|
103
103
|
if (tableId) {
|
|
104
104
|
existingTable = await sdk.tables.getTable(tableId)
|
|
105
105
|
}
|
|
106
|
-
let result
|
|
107
|
-
csvString,
|
|
108
|
-
schema
|
|
109
|
-
)
|
|
106
|
+
let result = await csvParser.parse(csvString, schema)
|
|
110
107
|
if (existingTable) {
|
|
111
108
|
result = csvParser.updateSchema({ schema: result, existingTable })
|
|
112
109
|
}
|
|
@@ -2,7 +2,7 @@ import { updateLinks, EventType } from "../../../db/linkedRows"
|
|
|
2
2
|
import { getRowParams, generateTableID } from "../../../db/utils"
|
|
3
3
|
import { FieldTypes } from "../../../constants"
|
|
4
4
|
import { TableSaveFunctions, hasTypeChanged, handleDataImport } from "./utils"
|
|
5
|
-
|
|
5
|
+
const { getAppDB } = require("@budibase/backend-core/context")
|
|
6
6
|
import { isTest } from "../../../environment"
|
|
7
7
|
import {
|
|
8
8
|
cleanupAttachments,
|
|
@@ -35,7 +35,7 @@ function checkAutoColumns(table: Table, oldTable: Table) {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
export async function save(ctx: any) {
|
|
38
|
-
const db =
|
|
38
|
+
const db = getAppDB()
|
|
39
39
|
const { dataImport, ...rest } = ctx.request.body
|
|
40
40
|
let tableToSave = {
|
|
41
41
|
type: "table",
|
|
@@ -133,12 +133,12 @@ export async function save(ctx: any) {
|
|
|
133
133
|
tableToSave._rev = result.rev
|
|
134
134
|
}
|
|
135
135
|
// has to run after, make sure it has _id
|
|
136
|
-
await runStaticFormulaChecks(tableToSave, { oldTable, deletion:
|
|
136
|
+
await runStaticFormulaChecks(tableToSave, { oldTable, deletion: null })
|
|
137
137
|
return tableToSave
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
export async function destroy(ctx: any) {
|
|
141
|
-
const db =
|
|
141
|
+
const db = getAppDB()
|
|
142
142
|
const tableToDelete = await db.get(ctx.params.tableId)
|
|
143
143
|
|
|
144
144
|
// Delete all rows for that table
|
|
@@ -161,7 +161,7 @@ export async function destroy(ctx: any) {
|
|
|
161
161
|
})
|
|
162
162
|
|
|
163
163
|
// don't remove the table itself until very end
|
|
164
|
-
await db.remove(tableToDelete
|
|
164
|
+
await db.remove(tableToDelete)
|
|
165
165
|
|
|
166
166
|
// remove table search index
|
|
167
167
|
if (!isTest() || env.COUCH_DB_URL) {
|
|
@@ -176,6 +176,7 @@ export async function destroy(ctx: any) {
|
|
|
176
176
|
|
|
177
177
|
// has to run after, make sure it has _id
|
|
178
178
|
await runStaticFormulaChecks(tableToDelete, {
|
|
179
|
+
oldTable: null,
|
|
179
180
|
deletion: true,
|
|
180
181
|
})
|
|
181
182
|
await cleanupAttachments(tableToDelete, {
|