@budibase/server 2.2.26 → 2.2.27-alpha.0
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/Dockerfile +1 -1
- package/__mocks__/aws-sdk.ts +19 -0
- package/__mocks__/node-fetch.ts +80 -0
- package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
- package/builder/assets/bg.29e85dd5.png +0 -0
- package/builder/assets/bulgaria.bd68393d.png +0 -0
- package/builder/assets/covanta.72c46c1e.png +0 -0
- package/builder/assets/index.3dd03883.css +6 -0
- package/builder/assets/index.f9b8b175.js +1802 -0
- package/builder/assets/schnellecke.cf1837a8.png +0 -0
- package/builder/index.html +3 -3
- package/coverage/clover.xml +6618 -6528
- package/coverage/coverage-final.json +282 -276
- package/coverage/lcov-report/index.html +489 -444
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/application.ts.html +362 -266
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +61 -61
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +93 -81
- package/coverage/lcov-report/src/api/controllers/component.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +122 -98
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +21 -18
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +21 -21
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +142 -196
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +28 -28
- package/coverage/lcov-report/src/api/controllers/index.html +115 -115
- package/coverage/lcov-report/src/api/controllers/integration.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/layout.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/metadata.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/migrations.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/permission.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +62 -62
- package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +150 -135
- package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +56 -56
- package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +75 -24
- package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +15 -15
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +21 -21
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +21 -21
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +27 -27
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +16 -16
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/query/index.html +20 -20
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +131 -107
- package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/role.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/routing.ts.html +10 -10
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +56 -41
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +87 -57
- package/coverage/lcov-report/src/api/controllers/row/index.html +66 -66
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +37 -37
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +181 -106
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +146 -146
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +44 -35
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +156 -39
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +31 -31
- package/coverage/lcov-report/src/api/controllers/script.ts.html +19 -19
- package/coverage/lcov-report/src/api/controllers/static/index.html +18 -18
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +56 -71
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +60 -60
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +56 -50
- package/coverage/lcov-report/src/api/controllers/table/index.html +48 -48
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +157 -70
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +58 -61
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +109 -112
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +21 -21
- package/coverage/lcov-report/src/api/controllers/user.ts.html +159 -135
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +64 -19
- package/coverage/lcov-report/src/api/controllers/view/index.html +38 -38
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +97 -133
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +31 -31
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +37 -37
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +69 -63
- package/coverage/lcov-report/src/api/index.html +15 -15
- package/coverage/lcov-report/src/api/index.ts.html +40 -40
- package/coverage/lcov-report/src/api/routes/analytics.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/application.ts.html +46 -13
- package/coverage/lcov-report/src/api/routes/auth.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/automation.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/backup.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/cloud.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/component.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/datasource.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -14
- package/coverage/lcov-report/src/api/routes/dev.ts.html +17 -17
- package/coverage/lcov-report/src/api/routes/index.html +68 -68
- package/coverage/lcov-report/src/api/routes/index.ts.html +49 -40
- package/coverage/lcov-report/src/api/routes/integration.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/layout.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/metadata.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/permission.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +147 -15
- package/coverage/lcov-report/src/api/routes/public/index.html +27 -27
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +60 -60
- package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
- package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +28 -16
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/public/tests/index.html +7 -7
- package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
- package/coverage/lcov-report/src/api/routes/public/users.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +21 -21
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
- package/coverage/lcov-report/src/api/routes/query.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/role.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/routing.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/row.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/screen.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/static.ts.html +18 -18
- package/coverage/lcov-report/src/api/routes/table.ts.html +29 -98
- package/coverage/lcov-report/src/api/routes/templates.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +27 -27
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +23 -23
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +33 -33
- package/coverage/lcov-report/src/api/routes/user.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
- package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +44 -44
- package/coverage/lcov-report/src/api/routes/view.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +13 -13
- package/coverage/lcov-report/src/app.ts.html +53 -47
- package/coverage/lcov-report/src/automations/actions.ts.html +31 -31
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +127 -55
- package/coverage/lcov-report/src/automations/bullboard.ts.html +19 -19
- package/coverage/lcov-report/src/automations/index.html +54 -54
- package/coverage/lcov-report/src/automations/index.ts.html +23 -23
- package/coverage/lcov-report/src/automations/logging/index.html +3 -3
- package/coverage/lcov-report/src/automations/logging/index.ts.html +15 -15
- package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +9 -9
- package/coverage/lcov-report/src/automations/steps/delay.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +9 -9
- package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
- package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
- package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
- package/coverage/lcov-report/src/automations/steps/filter.ts.html +12 -12
- package/coverage/lcov-report/src/automations/steps/index.html +129 -129
- package/coverage/lcov-report/src/automations/steps/integromat.ts.html +10 -10
- package/coverage/lcov-report/src/automations/steps/loop.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +19 -19
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +43 -43
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +19 -19
- package/coverage/lcov-report/src/automations/steps/slack.ts.html +10 -10
- package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +12 -12
- package/coverage/lcov-report/src/automations/steps/utils.ts.html +18 -18
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +32 -32
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +10 -10
- package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggers.ts.html +53 -38
- package/coverage/lcov-report/src/automations/utils.ts.html +80 -80
- package/coverage/lcov-report/src/constants/index.html +19 -19
- package/coverage/lcov-report/src/constants/index.ts.html +103 -103
- package/coverage/lcov-report/src/constants/layouts.ts.html +9 -9
- package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +45 -45
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +26 -26
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +13 -13
- package/coverage/lcov-report/src/db/index.html +34 -34
- package/coverage/lcov-report/src/db/index.ts.html +10 -10
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +38 -38
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +7 -7
- package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
- package/coverage/lcov-report/src/db/linkedRows/index.ts.html +40 -40
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +25 -25
- package/coverage/lcov-report/src/db/newid.ts.html +5 -5
- package/coverage/lcov-report/src/db/utils.ts.html +90 -90
- package/coverage/lcov-report/src/definitions/automations.ts.html +9 -6
- package/coverage/lcov-report/src/definitions/index.html +5 -20
- package/coverage/lcov-report/src/environment.ts.html +44 -32
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +14 -14
- package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +8 -8
- package/coverage/lcov-report/src/events/index.html +20 -20
- package/coverage/lcov-report/src/events/index.ts.html +7 -7
- package/coverage/lcov-report/src/events/utils.ts.html +11 -11
- package/coverage/lcov-report/src/index.html +47 -47
- package/coverage/lcov-report/src/index.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/airtable.ts.html +10 -10
- package/coverage/lcov-report/src/integrations/arangodb.ts.html +9 -9
- package/coverage/lcov-report/src/integrations/base/index.html +29 -29
- package/coverage/lcov-report/src/integrations/base/query.ts.html +15 -9
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +38 -38
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +23 -23
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +109 -31
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +17 -17
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +27 -15
- package/coverage/lcov-report/src/integrations/firebase.ts.html +12 -12
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +42 -42
- package/coverage/lcov-report/src/integrations/index.html +130 -130
- package/coverage/lcov-report/src/integrations/index.ts.html +50 -62
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +31 -31
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +421 -289
- package/coverage/lcov-report/src/integrations/mysql.ts.html +28 -28
- package/coverage/lcov-report/src/integrations/oracle.ts.html +31 -31
- package/coverage/lcov-report/src/integrations/postgres.ts.html +54 -54
- package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +24 -159
- package/coverage/lcov-report/src/integrations/redis.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/rest.ts.html +43 -52
- package/coverage/lcov-report/src/integrations/s3.ts.html +17 -17
- package/coverage/lcov-report/src/integrations/snowflake.ts.html +15 -15
- package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/src/integrations/utils.ts.html +54 -54
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +11 -11
- package/coverage/lcov-report/src/middleware/authorized.ts.html +49 -37
- package/coverage/lcov-report/src/middleware/builder.ts.html +26 -26
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +50 -47
- package/coverage/lcov-report/src/middleware/index.html +40 -40
- package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
- package/coverage/lcov-report/src/middleware/publicApi.ts.html +9 -9
- package/coverage/lcov-report/src/middleware/resourceId.ts.html +23 -23
- package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
- package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
- package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +13 -13
- package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +21 -21
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +17 -14
- package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
- package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +9 -9
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +13 -13
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +23 -23
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +14 -14
- package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +11 -11
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/index.html +15 -15
- package/coverage/lcov-report/src/migrations/index.ts.html +43 -43
- package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/tests/index.html +6 -6
- package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/applications/index.html +20 -20
- package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
- package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +15 -15
- package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
- package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +8 -8
- package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +30 -30
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +45 -57
- package/coverage/lcov-report/src/sdk/app/backups/index.html +42 -42
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +7 -7
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
- package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +493 -0
- package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
- package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
- package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
- package/coverage/lcov-report/src/{utilities/statusCodes.ts.html → sdk/app/queries/index.ts.html} +22 -28
- package/coverage/lcov-report/src/{definitions/datasource.ts.html → sdk/app/queries/queries.ts.html} +82 -82
- package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +8 -8
- package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
- package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/tables/index.html +15 -15
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +29 -20
- package/coverage/lcov-report/src/sdk/index.html +7 -7
- package/coverage/lcov-report/src/sdk/index.ts.html +24 -12
- package/coverage/lcov-report/src/sdk/users/index.html +10 -10
- package/coverage/lcov-report/src/sdk/users/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +35 -35
- package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
- package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
- package/coverage/lcov-report/src/startup.ts.html +48 -63
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +218 -152
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +20 -20
- package/coverage/lcov-report/src/tests/utilities/index.html +33 -33
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +235 -46
- package/coverage/lcov-report/src/threads/automation.ts.html +212 -251
- package/coverage/lcov-report/src/threads/index.html +46 -46
- package/coverage/lcov-report/src/threads/index.ts.html +39 -39
- package/coverage/lcov-report/src/threads/query.ts.html +140 -101
- package/coverage/lcov-report/src/threads/utils.ts.html +29 -29
- package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
- package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +20 -20
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +601 -0
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +88 -28
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +20 -1049
- package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +277 -0
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
- package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
- package/coverage/lcov-report/src/utilities/global.ts.html +60 -60
- package/coverage/lcov-report/src/utilities/index.html +89 -119
- package/coverage/lcov-report/src/utilities/index.ts.html +40 -172
- package/coverage/lcov-report/src/utilities/redis.ts.html +38 -38
- package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +34 -34
- package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +102 -75
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +9 -9
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +54 -54
- package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +174 -234
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +33 -33
- package/coverage/lcov-report/src/utilities/security.ts.html +13 -13
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +38 -38
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/users.ts.html +7 -7
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +89 -62
- package/coverage/lcov-report/src/watch.ts.html +20 -20
- package/coverage/lcov-report/src/websocket.ts.html +15 -15
- package/coverage/lcov.info +13499 -12800
- package/dist/api/controllers/application.js +120 -109
- package/dist/api/controllers/cloud.js +6 -2
- package/dist/api/controllers/datasource.js +24 -15
- package/dist/api/controllers/deploy/index.js +43 -60
- package/dist/api/controllers/plugin/index.js +6 -6
- package/dist/api/controllers/public/applications.js +22 -1
- package/dist/api/controllers/query/index.js +23 -13
- package/dist/api/controllers/row/ExternalRequest.js +12 -4
- package/dist/api/controllers/row/external.js +20 -13
- package/dist/api/controllers/row/internal.js +52 -27
- package/dist/api/controllers/row/staticFormula.js +1 -1
- package/dist/api/controllers/row/utils.js +35 -3
- package/dist/api/controllers/static/index.js +47 -47
- package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
- package/dist/api/controllers/table/external.js +16 -35
- package/dist/api/controllers/table/index.js +44 -15
- package/dist/api/controllers/table/internal.js +6 -7
- package/dist/api/controllers/table/utils.js +9 -9
- package/dist/api/controllers/user.js +14 -6
- package/dist/api/controllers/view/exporters.js +22 -6
- package/dist/api/controllers/view/index.js +23 -58
- package/dist/api/controllers/view/viewBuilder.js +15 -2
- package/dist/api/controllers/webhook.js +45 -43
- package/dist/api/routes/analytics.js +2 -1
- package/dist/api/routes/apikeys.js +2 -1
- package/dist/api/routes/application.js +5 -1
- package/dist/api/routes/auth.js +2 -1
- package/dist/api/routes/automation.js +2 -1
- package/dist/api/routes/backup.js +2 -1
- package/dist/api/routes/cloud.js +2 -1
- package/dist/api/routes/component.js +2 -1
- package/dist/api/routes/datasource.js +2 -1
- package/dist/api/routes/deploy.js +3 -3
- package/dist/api/routes/dev.js +2 -1
- package/dist/api/routes/index.js +2 -0
- package/dist/api/routes/integration.js +2 -1
- package/dist/api/routes/layout.js +2 -1
- package/dist/api/routes/metadata.js +2 -1
- package/dist/api/routes/migrations.js +2 -1
- package/dist/api/routes/permission.js +2 -1
- package/dist/api/routes/public/applications.js +37 -0
- package/dist/api/routes/public/middleware/mapper.js +3 -0
- package/dist/api/routes/query.js +2 -1
- package/dist/api/routes/role.js +2 -1
- package/dist/api/routes/routing.js +2 -1
- package/dist/api/routes/row.js +2 -2
- package/dist/api/routes/screen.js +2 -1
- package/dist/api/routes/script.js +2 -1
- package/dist/api/routes/static.js +6 -5
- package/dist/api/routes/table.js +8 -38
- package/dist/api/routes/templates.js +2 -1
- package/dist/api/routes/user.js +2 -1
- package/dist/api/routes/utils/validators.js +1 -1
- package/dist/api/routes/view.js +2 -1
- package/dist/api/routes/webhook.js +2 -1
- package/dist/app.js +9 -7
- package/dist/automations/automationUtils.js +26 -1
- package/dist/automations/logging/index.js +5 -25
- package/dist/automations/triggers.js +1 -0
- package/dist/db/index.js +5 -2
- package/dist/db/linkedRows/LinkController.js +2 -1
- package/dist/db/linkedRows/LinkDocument.js +2 -1
- package/dist/db/newid.js +4 -2
- package/dist/definitions/datasource.js +0 -6
- package/dist/environment.js +7 -2
- package/dist/events/AutomationEmitter.js +2 -1
- package/dist/events/BudibaseEmitter.js +2 -1
- package/dist/events/index.js +2 -1
- package/dist/index.js +2 -2
- package/dist/integrations/base/query.js +7 -2
- package/dist/integrations/base/sqlTable.js +14 -14
- package/dist/integrations/couchdb.js +34 -8
- package/dist/integrations/dynamodb.js +8 -5
- package/dist/integrations/elasticsearch.js +7 -3
- package/dist/integrations/googlesheets.js +1 -1
- package/dist/integrations/index.js +6 -7
- package/dist/integrations/mongodb.js +311 -271
- package/dist/integrations/mysql.js +2 -2
- package/dist/integrations/queries/sql.js +73 -100
- package/dist/integrations/rest.js +16 -18
- package/dist/middleware/authorized.js +2 -1
- package/dist/middleware/builder.js +4 -2
- package/dist/middleware/currentapp.js +6 -3
- package/dist/middleware/publicApi.js +4 -2
- package/dist/middleware/selfhost.js +4 -1
- package/dist/migrations/functions/backfill/global/configs.js +4 -4
- package/dist/package.json +12 -8
- package/dist/sdk/app/backups/imports.js +2 -6
- package/dist/sdk/app/datasources/datasources.js +147 -0
- package/dist/sdk/app/datasources/index.js +27 -0
- package/dist/sdk/app/queries/index.js +27 -0
- package/dist/sdk/app/queries/queries.js +60 -0
- package/dist/sdk/app/tables/index.js +6 -2
- package/dist/sdk/index.js +4 -0
- package/dist/sdk/utils/index.js +29 -0
- package/dist/startup.js +17 -17
- package/dist/threads/automation.js +22 -35
- package/dist/threads/index.js +4 -4
- package/dist/threads/query.js +27 -13
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/app.js +97 -0
- package/dist/utilities/fileSystem/clientLibrary.js +3 -3
- package/dist/utilities/fileSystem/filesystem.js +184 -0
- package/dist/utilities/fileSystem/index.js +18 -342
- package/dist/utilities/fileSystem/plugin.js +66 -0
- package/dist/utilities/fileSystem/template.js +47 -0
- package/dist/utilities/index.js +1 -44
- package/dist/utilities/rowProcessor/index.js +12 -4
- package/dist/utilities/schema.js +108 -0
- package/dist/utilities/scriptRunner.js +2 -1
- package/dist/utilities/statusCodes.js +2 -1
- package/dist/utilities/workerRequests.js +2 -0
- package/dist/watch.js +2 -25
- package/jest.config.ts +5 -2
- package/package.json +13 -9
- package/scripts/dev/manage.js +3 -2
- package/specs/openapi.json +84 -0
- package/specs/openapi.yaml +53 -0
- package/specs/resources/application.js +19 -0
- package/src/api/controllers/application.ts +142 -110
- package/src/api/controllers/auth.ts +2 -2
- package/src/api/controllers/cloud.ts +10 -6
- package/src/api/controllers/datasource.ts +33 -25
- package/src/api/controllers/deploy/Deployment.ts +1 -0
- package/src/api/controllers/deploy/index.ts +40 -58
- package/src/api/controllers/plugin/index.ts +14 -9
- package/src/api/controllers/public/applications.ts +17 -0
- package/src/api/controllers/query/index.ts +49 -41
- package/src/api/controllers/row/ExternalRequest.ts +8 -3
- package/src/api/controllers/row/external.ts +24 -14
- package/src/api/controllers/row/internal.ts +66 -41
- package/src/api/controllers/row/staticFormula.ts +5 -2
- package/src/api/controllers/row/utils.ts +42 -3
- package/src/api/controllers/static/index.ts +22 -27
- package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
- package/src/api/controllers/table/external.ts +18 -16
- package/src/api/controllers/table/index.ts +46 -17
- package/src/api/controllers/table/internal.ts +6 -7
- package/src/api/controllers/table/utils.ts +12 -13
- package/src/api/controllers/user.ts +21 -13
- package/src/api/controllers/view/exporters.ts +20 -5
- package/src/api/controllers/view/index.ts +30 -42
- package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
- package/src/api/controllers/view/viewBuilder.ts +1 -1
- package/src/api/controllers/webhook.ts +48 -46
- package/src/api/routes/analytics.ts +1 -1
- package/src/api/routes/apikeys.ts +1 -1
- package/src/api/routes/application.ts +12 -1
- package/src/api/routes/auth.ts +1 -1
- package/src/api/routes/automation.ts +1 -1
- package/src/api/routes/backup.ts +1 -1
- package/src/api/routes/cloud.ts +1 -1
- package/src/api/routes/component.ts +1 -1
- package/src/api/routes/datasource.ts +1 -1
- package/src/api/routes/deploy.ts +1 -2
- package/src/api/routes/dev.ts +1 -1
- package/src/api/routes/index.ts +6 -3
- package/src/api/routes/integration.ts +1 -1
- package/src/api/routes/layout.ts +1 -1
- package/src/api/routes/metadata.ts +1 -1
- package/src/api/routes/migrations.ts +1 -1
- package/src/api/routes/permission.ts +1 -1
- package/src/api/routes/public/applications.ts +44 -0
- package/src/api/routes/public/middleware/mapper.ts +4 -0
- package/src/api/routes/query.ts +1 -1
- package/src/api/routes/role.ts +1 -1
- package/src/api/routes/routing.ts +1 -1
- package/src/api/routes/row.ts +1 -1
- package/src/api/routes/screen.ts +1 -1
- package/src/api/routes/script.ts +1 -1
- package/src/api/routes/static.ts +2 -2
- package/src/api/routes/table.ts +16 -39
- package/src/api/routes/templates.ts +1 -1
- package/src/api/routes/tests/__snapshots__/{datasource.spec.js.snap → datasource.spec.ts.snap} +0 -0
- package/src/api/routes/tests/{application.spec.js → application.spec.ts} +94 -18
- package/src/api/routes/tests/{backup.spec.js → backup.spec.ts} +17 -6
- package/src/api/routes/tests/cloud.spec.ts +65 -0
- package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
- package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
- package/src/api/routes/tests/data/export-test.tar.gz +0 -0
- package/src/api/routes/tests/{datasource.spec.js → datasource.spec.ts} +56 -14
- package/src/api/routes/tests/misc.spec.js +4 -10
- package/src/api/routes/tests/permissions.spec.js +1 -1
- package/src/api/routes/tests/plugin.spec.ts +179 -0
- package/src/api/routes/tests/routing.spec.js +1 -2
- package/src/api/routes/tests/row.spec.js +4 -2
- package/src/api/routes/tests/static.spec.js +2 -17
- package/src/api/routes/tests/table.spec.js +16 -32
- package/src/api/routes/tests/user.spec.js +105 -0
- package/src/api/routes/tests/utilities/TestFunctions.ts +1 -1
- package/src/api/routes/tests/utilities/index.ts +2 -2
- package/src/api/routes/tests/webhook.spec.js +1 -1
- package/src/api/routes/user.ts +1 -1
- package/src/api/routes/utils/validators.ts +1 -1
- package/src/api/routes/view.ts +1 -1
- package/src/api/routes/webhook.ts +1 -1
- package/src/app.ts +5 -3
- package/src/automations/automationUtils.ts +24 -0
- package/src/automations/logging/index.ts +1 -1
- package/src/automations/tests/bash.spec.js +34 -0
- package/src/automations/tests/discord.spec.js +27 -0
- package/src/automations/tests/executeQuery.spec.js +49 -0
- package/src/automations/tests/executeScript.spec.js +48 -0
- package/src/automations/tests/loop.spec.ts +45 -0
- package/src/automations/tests/sendSmtpEmail.spec.js +71 -0
- package/src/automations/tests/serverLog.spec.js +22 -0
- package/src/automations/tests/utilities/index.ts +2 -2
- package/src/automations/tests/zapier.spec.js +27 -0
- package/src/automations/triggers.ts +6 -1
- package/src/automations/unitTests/automationUtils.spec.ts +65 -0
- package/src/db/index.ts +1 -1
- package/src/db/linkedRows/LinkController.ts +1 -1
- package/src/db/linkedRows/LinkDocument.ts +1 -1
- package/src/db/newid.ts +1 -1
- package/src/db/tests/linkController.spec.js +1 -1
- package/src/definitions/automations.ts +1 -0
- package/src/definitions/datasource.ts +0 -41
- package/src/definitions/openapi.ts +10 -0
- package/src/environment.ts +6 -2
- package/src/events/AutomationEmitter.ts +1 -1
- package/src/events/BudibaseEmitter.ts +1 -1
- package/src/events/index.ts +1 -1
- package/src/index.ts +1 -1
- package/src/integrations/base/query.ts +3 -1
- package/src/integrations/base/sqlTable.ts +1 -1
- package/src/integrations/couchdb.ts +40 -14
- package/src/integrations/dynamodb.ts +3 -3
- package/src/integrations/elasticsearch.ts +8 -4
- package/src/integrations/googlesheets.ts +1 -1
- package/src/integrations/index.ts +5 -9
- package/src/integrations/mongodb.ts +315 -271
- package/src/integrations/mysql.ts +1 -1
- package/src/integrations/queries/sql.ts +5 -50
- package/src/integrations/rest.ts +16 -19
- package/src/integrations/tests/couchdb.spec.ts +33 -21
- package/src/integrations/tests/rest.spec.ts +19 -15
- package/src/middleware/authorized.ts +5 -1
- package/src/middleware/builder.ts +1 -1
- package/src/middleware/currentapp.ts +4 -3
- package/src/middleware/publicApi.ts +1 -1
- package/src/middleware/selfhost.ts +1 -1
- package/src/middleware/tests/authorized.spec.js +1 -1
- package/src/middleware/tests/currentapp.spec.js +1 -1
- package/src/middleware/tests/selfhost.spec.js +1 -1
- package/src/migrations/functions/backfill/global/configs.ts +5 -4
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
- package/src/sdk/app/backups/imports.ts +2 -6
- package/src/sdk/app/datasources/datasources.ts +136 -0
- package/src/sdk/app/datasources/index.ts +5 -0
- package/src/sdk/app/queries/index.ts +5 -0
- package/src/sdk/app/queries/queries.ts +50 -0
- package/src/sdk/app/tables/index.ts +6 -3
- package/src/sdk/index.ts +4 -0
- package/src/sdk/tests/attachments.spec.ts +1 -4
- package/src/sdk/utils/index.ts +16 -0
- package/src/startup.ts +3 -8
- package/src/tests/jestEnv.ts +13 -0
- package/src/tests/jestSetup.ts +4 -15
- package/src/tests/utilities/TestConfiguration.ts +38 -16
- package/src/tests/utilities/structures.ts +65 -2
- package/src/threads/automation.ts +22 -35
- package/src/threads/definitions.ts +3 -0
- package/src/threads/index.ts +1 -1
- package/src/threads/query.ts +28 -15
- package/src/utilities/fileSystem/app.ts +86 -0
- package/src/utilities/fileSystem/clientLibrary.ts +1 -1
- package/src/utilities/fileSystem/filesystem.ts +172 -0
- package/src/utilities/fileSystem/index.ts +5 -348
- package/src/utilities/fileSystem/plugin.ts +64 -0
- package/src/utilities/fileSystem/template.ts +36 -0
- package/src/utilities/index.ts +1 -45
- package/src/utilities/rowProcessor/index.ts +17 -8
- package/src/utilities/rowProcessor/tests/utils.spec.ts +57 -0
- package/src/utilities/schema.ts +141 -0
- package/src/utilities/scriptRunner.ts +1 -1
- package/src/utilities/statusCodes.ts +1 -1
- package/src/utilities/workerRequests.ts +10 -1
- package/src/watch.ts +1 -1
- package/tsconfig.build.json +2 -0
- package/tsconfig.json +2 -1
- package/builder/assets/index.96b9ffed.css +0 -6
- package/builder/assets/index.fae8f9eb.js +0 -1024
- package/coverage/lcov-report/src/utilities/plugins.ts.html +0 -151
- package/dist/api/routes/tests/utilities/TestFunctions.js +0 -167
- package/dist/api/routes/tests/utilities/index.js +0 -131
- package/dist/automations/tests/utilities/index.js +0 -81
- package/dist/tests/utilities/TestConfiguration.js +0 -562
- package/dist/tests/utilities/controllers.js +0 -40
- package/dist/tests/utilities/structures.js +0 -168
- package/dist/utilities/csvParser.js +0 -152
- package/dist/utilities/plugins.js +0 -26
- package/src/api/routes/tests/deployment.spec.ts +0 -25
- package/src/automations/unitTests/automationUtils.spec.js +0 -17
- package/src/utilities/csvParser.ts +0 -161
- package/src/utilities/plugins.ts +0 -22
- package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
- package/src/utilities/tests/csvParser.spec.js +0 -112
package/specs/openapi.yaml
CHANGED
|
@@ -411,6 +411,30 @@ components:
|
|
|
411
411
|
- version
|
|
412
412
|
required:
|
|
413
413
|
- data
|
|
414
|
+
deploymentOutput:
|
|
415
|
+
type: object
|
|
416
|
+
properties:
|
|
417
|
+
data:
|
|
418
|
+
type: object
|
|
419
|
+
properties:
|
|
420
|
+
_id:
|
|
421
|
+
description: The ID of the app.
|
|
422
|
+
type: string
|
|
423
|
+
status:
|
|
424
|
+
description: Status of the deployment, whether it succeeded or failed
|
|
425
|
+
type: string
|
|
426
|
+
enum:
|
|
427
|
+
- SUCCESS
|
|
428
|
+
- FAILURE
|
|
429
|
+
appUrl:
|
|
430
|
+
description: The URL of the published app
|
|
431
|
+
type: string
|
|
432
|
+
required:
|
|
433
|
+
- _id
|
|
434
|
+
- status
|
|
435
|
+
- appUrl
|
|
436
|
+
required:
|
|
437
|
+
- data
|
|
414
438
|
row:
|
|
415
439
|
description: The row to be created/updated, based on the table schema.
|
|
416
440
|
type: object
|
|
@@ -1453,6 +1477,35 @@ paths:
|
|
|
1453
1477
|
examples:
|
|
1454
1478
|
application:
|
|
1455
1479
|
$ref: "#/components/examples/application"
|
|
1480
|
+
"/applications/{appId}/unpublish":
|
|
1481
|
+
post:
|
|
1482
|
+
operationId: unpublish
|
|
1483
|
+
summary: Unpublish an application
|
|
1484
|
+
tags:
|
|
1485
|
+
- applications
|
|
1486
|
+
parameters:
|
|
1487
|
+
- $ref: "#/components/parameters/appIdUrl"
|
|
1488
|
+
responses:
|
|
1489
|
+
"204":
|
|
1490
|
+
description: The app was published successfully.
|
|
1491
|
+
"/applications/{appId}/publish":
|
|
1492
|
+
post:
|
|
1493
|
+
operationId: publish
|
|
1494
|
+
summary: Unpublish an application
|
|
1495
|
+
tags:
|
|
1496
|
+
- applications
|
|
1497
|
+
parameters:
|
|
1498
|
+
- $ref: "#/components/parameters/appIdUrl"
|
|
1499
|
+
responses:
|
|
1500
|
+
"200":
|
|
1501
|
+
description: Returns the deployment object.
|
|
1502
|
+
content:
|
|
1503
|
+
application/json:
|
|
1504
|
+
schema:
|
|
1505
|
+
$ref: "#/components/schemas/deploymentOutput"
|
|
1506
|
+
examples:
|
|
1507
|
+
deployment:
|
|
1508
|
+
$ref: "#/components/examples/deploymentOutput"
|
|
1456
1509
|
/applications/search:
|
|
1457
1510
|
post:
|
|
1458
1511
|
operationId: search
|
|
@@ -80,6 +80,22 @@ const applicationOutputSchema = object(
|
|
|
80
80
|
}
|
|
81
81
|
)
|
|
82
82
|
|
|
83
|
+
const deploymentOutputSchema = object({
|
|
84
|
+
_id: {
|
|
85
|
+
description: "The ID of the app.",
|
|
86
|
+
type: "string",
|
|
87
|
+
},
|
|
88
|
+
status: {
|
|
89
|
+
description: "Status of the deployment, whether it succeeded or failed",
|
|
90
|
+
type: "string",
|
|
91
|
+
enum: ["SUCCESS", "FAILURE"],
|
|
92
|
+
},
|
|
93
|
+
appUrl: {
|
|
94
|
+
description: "The URL of the published app",
|
|
95
|
+
type: "string",
|
|
96
|
+
},
|
|
97
|
+
})
|
|
98
|
+
|
|
83
99
|
module.exports = new Resource()
|
|
84
100
|
.setExamples({
|
|
85
101
|
application: {
|
|
@@ -104,4 +120,7 @@ module.exports = new Resource()
|
|
|
104
120
|
items: applicationOutputSchema,
|
|
105
121
|
},
|
|
106
122
|
}),
|
|
123
|
+
deploymentOutput: object({
|
|
124
|
+
data: deploymentOutputSchema,
|
|
125
|
+
}),
|
|
107
126
|
})
|
|
@@ -23,21 +23,18 @@ import {
|
|
|
23
23
|
errors,
|
|
24
24
|
events,
|
|
25
25
|
migrations,
|
|
26
|
+
objectStore,
|
|
26
27
|
} from "@budibase/backend-core"
|
|
27
28
|
import { USERS_TABLE_SCHEMA } from "../../constants"
|
|
28
29
|
import { buildDefaultDocs } from "../../db/defaultData/datasource_bb_default"
|
|
29
30
|
import { removeAppFromUserRoles } from "../../utilities/workerRequests"
|
|
30
|
-
import {
|
|
31
|
-
clientLibraryPath,
|
|
32
|
-
stringToReadStream,
|
|
33
|
-
isQsTrue,
|
|
34
|
-
} from "../../utilities"
|
|
31
|
+
import { stringToReadStream, isQsTrue } from "../../utilities"
|
|
35
32
|
import { getLocksById } from "../../utilities/redis"
|
|
36
33
|
import {
|
|
37
34
|
updateClientLibrary,
|
|
38
35
|
backupClientLibrary,
|
|
39
36
|
revertClientLibrary,
|
|
40
|
-
} from "../../utilities/fileSystem
|
|
37
|
+
} from "../../utilities/fileSystem"
|
|
41
38
|
import { cleanupAutomations } from "../../automations/utils"
|
|
42
39
|
import { checkAppMetadata } from "../../automations/logging"
|
|
43
40
|
import { getUniqueRows } from "../../utilities/usageQuota/rows"
|
|
@@ -49,9 +46,9 @@ import {
|
|
|
49
46
|
MigrationType,
|
|
50
47
|
BBContext,
|
|
51
48
|
Database,
|
|
49
|
+
UserCtx,
|
|
52
50
|
} from "@budibase/types"
|
|
53
51
|
import { BASE_LAYOUT_PROP_IDS } from "../../constants/layouts"
|
|
54
|
-
import { enrichPluginURLs } from "../../utilities/plugins"
|
|
55
52
|
import sdk from "../../sdk"
|
|
56
53
|
|
|
57
54
|
// utility function, need to do away with this
|
|
@@ -115,12 +112,11 @@ function checkAppName(
|
|
|
115
112
|
}
|
|
116
113
|
}
|
|
117
114
|
|
|
118
|
-
async function createInstance(
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
115
|
+
async function createInstance(
|
|
116
|
+
appId: string,
|
|
117
|
+
template: any,
|
|
118
|
+
includeSampleData: boolean
|
|
119
|
+
) {
|
|
124
120
|
const db = context.getAppDB()
|
|
125
121
|
await db.put({
|
|
126
122
|
_id: "_design/database",
|
|
@@ -204,27 +200,34 @@ export async function fetchAppDefinition(ctx: BBContext) {
|
|
|
204
200
|
}
|
|
205
201
|
}
|
|
206
202
|
|
|
207
|
-
export async function fetchAppPackage(ctx:
|
|
203
|
+
export async function fetchAppPackage(ctx: UserCtx) {
|
|
208
204
|
const db = context.getAppDB()
|
|
209
205
|
let application = await db.get(DocumentType.APP_METADATA)
|
|
210
206
|
const layouts = await getLayouts()
|
|
211
207
|
let screens = await getScreens()
|
|
212
208
|
|
|
213
209
|
// Enrich plugin URLs
|
|
214
|
-
application.usedPlugins = enrichPluginURLs(
|
|
210
|
+
application.usedPlugins = objectStore.enrichPluginURLs(
|
|
211
|
+
application.usedPlugins
|
|
212
|
+
)
|
|
215
213
|
|
|
216
214
|
// Only filter screens if the user is not a builder
|
|
217
|
-
if (!(ctx.user
|
|
215
|
+
if (!(ctx.user.builder && ctx.user.builder.global)) {
|
|
218
216
|
const userRoleId = getUserRoleId(ctx)
|
|
219
217
|
const accessController = new roles.AccessController()
|
|
220
218
|
screens = await accessController.checkScreensAccess(screens, userRoleId)
|
|
221
219
|
}
|
|
222
220
|
|
|
221
|
+
const clientLibPath = objectStore.clientLibraryUrl(
|
|
222
|
+
ctx.params.appId,
|
|
223
|
+
application.version
|
|
224
|
+
)
|
|
225
|
+
|
|
223
226
|
ctx.body = {
|
|
224
227
|
application,
|
|
225
228
|
screens,
|
|
226
229
|
layouts,
|
|
227
|
-
clientLibPath
|
|
230
|
+
clientLibPath,
|
|
228
231
|
}
|
|
229
232
|
}
|
|
230
233
|
|
|
@@ -246,82 +249,90 @@ async function performAppCreate(ctx: BBContext) {
|
|
|
246
249
|
instanceConfig.file = ctx.request.files.templateFile
|
|
247
250
|
}
|
|
248
251
|
const includeSampleData = isQsTrue(ctx.request.body.sampleData)
|
|
249
|
-
const
|
|
250
|
-
const appId =
|
|
251
|
-
const db = context.getAppDB()
|
|
252
|
+
const tenantId = tenancy.isMultiTenant() ? tenancy.getTenantId() : null
|
|
253
|
+
const appId = generateDevAppID(generateAppID(tenantId))
|
|
252
254
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
name: name,
|
|
261
|
-
url: url,
|
|
262
|
-
template: templateKey,
|
|
263
|
-
instance,
|
|
264
|
-
tenantId: tenancy.getTenantId(),
|
|
265
|
-
updatedAt: new Date().toISOString(),
|
|
266
|
-
createdAt: new Date().toISOString(),
|
|
267
|
-
status: AppStatus.DEV,
|
|
268
|
-
navigation: {
|
|
269
|
-
navigation: "Top",
|
|
270
|
-
title: name,
|
|
271
|
-
navWidth: "Large",
|
|
272
|
-
navBackground: "var(--spectrum-global-color-gray-100)",
|
|
273
|
-
links: [
|
|
274
|
-
{
|
|
275
|
-
url: "/home",
|
|
276
|
-
text: "Home",
|
|
277
|
-
},
|
|
278
|
-
],
|
|
279
|
-
},
|
|
280
|
-
theme: "spectrum--light",
|
|
281
|
-
customTheme: {
|
|
282
|
-
buttonBorderRadius: "16px",
|
|
283
|
-
},
|
|
284
|
-
}
|
|
255
|
+
return await context.doInAppContext(appId, async () => {
|
|
256
|
+
const instance = await createInstance(
|
|
257
|
+
appId,
|
|
258
|
+
instanceConfig,
|
|
259
|
+
includeSampleData
|
|
260
|
+
)
|
|
261
|
+
const db = context.getAppDB()
|
|
285
262
|
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
"
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
263
|
+
let newApplication: App = {
|
|
264
|
+
_id: DocumentType.APP_METADATA,
|
|
265
|
+
_rev: undefined,
|
|
266
|
+
appId,
|
|
267
|
+
type: "app",
|
|
268
|
+
version: packageJson.version,
|
|
269
|
+
componentLibraries: ["@budibase/standard-components"],
|
|
270
|
+
name: name,
|
|
271
|
+
url: url,
|
|
272
|
+
template: templateKey,
|
|
273
|
+
instance,
|
|
274
|
+
tenantId: tenancy.getTenantId(),
|
|
275
|
+
updatedAt: new Date().toISOString(),
|
|
276
|
+
createdAt: new Date().toISOString(),
|
|
277
|
+
status: AppStatus.DEV,
|
|
278
|
+
navigation: {
|
|
279
|
+
navigation: "Top",
|
|
280
|
+
title: name,
|
|
281
|
+
navWidth: "Large",
|
|
282
|
+
navBackground: "var(--spectrum-global-color-gray-100)",
|
|
283
|
+
links: [
|
|
284
|
+
{
|
|
285
|
+
url: "/home",
|
|
286
|
+
text: "Home",
|
|
287
|
+
},
|
|
288
|
+
],
|
|
289
|
+
},
|
|
290
|
+
theme: "spectrum--light",
|
|
291
|
+
customTheme: {
|
|
292
|
+
buttonBorderRadius: "16px",
|
|
293
|
+
},
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
// If we used a template or imported an app there will be an existing doc.
|
|
297
|
+
// Fetch and migrate some metadata from the existing app.
|
|
298
|
+
try {
|
|
299
|
+
const existing: App = await db.get(DocumentType.APP_METADATA)
|
|
300
|
+
const keys: (keyof App)[] = [
|
|
301
|
+
"_rev",
|
|
302
|
+
"navigation",
|
|
303
|
+
"theme",
|
|
304
|
+
"customTheme",
|
|
305
|
+
"icon",
|
|
306
|
+
]
|
|
307
|
+
keys.forEach(key => {
|
|
308
|
+
if (existing[key]) {
|
|
309
|
+
// @ts-ignore
|
|
310
|
+
newApplication[key] = existing[key]
|
|
311
|
+
}
|
|
312
|
+
})
|
|
303
313
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
314
|
+
// Migrate navigation settings and screens if required
|
|
315
|
+
if (existing) {
|
|
316
|
+
const navigation = await migrateAppNavigation()
|
|
317
|
+
if (navigation) {
|
|
318
|
+
newApplication.navigation = navigation
|
|
319
|
+
}
|
|
309
320
|
}
|
|
321
|
+
} catch (err) {
|
|
322
|
+
// Nothing to do
|
|
310
323
|
}
|
|
311
|
-
} catch (err) {
|
|
312
|
-
// Nothing to do
|
|
313
|
-
}
|
|
314
324
|
|
|
315
|
-
|
|
316
|
-
|
|
325
|
+
const response = await db.put(newApplication, { force: true })
|
|
326
|
+
newApplication._rev = response.rev
|
|
317
327
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
328
|
+
/* istanbul ignore next */
|
|
329
|
+
if (!env.isTest()) {
|
|
330
|
+
await createApp(appId)
|
|
331
|
+
}
|
|
322
332
|
|
|
323
|
-
|
|
324
|
-
|
|
333
|
+
await cache.app.invalidateAppMetadata(appId, newApplication)
|
|
334
|
+
return newApplication
|
|
335
|
+
})
|
|
325
336
|
}
|
|
326
337
|
|
|
327
338
|
async function creationEvents(request: any, app: App) {
|
|
@@ -370,7 +381,7 @@ async function appPostCreate(ctx: BBContext, app: App) {
|
|
|
370
381
|
if (err.code && err.code === errors.codes.USAGE_LIMIT_EXCEEDED) {
|
|
371
382
|
// this import resulted in row usage exceeding the quota
|
|
372
383
|
// delete the app
|
|
373
|
-
// skip pre
|
|
384
|
+
// skip pre and post-steps as no rows have been added to quotas yet
|
|
374
385
|
ctx.params.appId = app.appId
|
|
375
386
|
await destroyApp(ctx)
|
|
376
387
|
}
|
|
@@ -460,41 +471,47 @@ export async function revertClient(ctx: BBContext) {
|
|
|
460
471
|
ctx.body = app
|
|
461
472
|
}
|
|
462
473
|
|
|
474
|
+
const unpublishApp = async (ctx: any) => {
|
|
475
|
+
let appId = ctx.params.appId
|
|
476
|
+
appId = dbCore.getProdAppID(appId)
|
|
477
|
+
|
|
478
|
+
const db = context.getProdAppDB()
|
|
479
|
+
const result = await db.destroy()
|
|
480
|
+
|
|
481
|
+
await events.app.unpublished({ appId } as App)
|
|
482
|
+
|
|
483
|
+
// automations only in production
|
|
484
|
+
await cleanupAutomations(appId)
|
|
485
|
+
|
|
486
|
+
await cache.app.invalidateAppMetadata(appId)
|
|
487
|
+
return result
|
|
488
|
+
}
|
|
489
|
+
|
|
463
490
|
async function destroyApp(ctx: BBContext) {
|
|
464
491
|
let appId = ctx.params.appId
|
|
465
|
-
|
|
492
|
+
appId = dbCore.getProdAppID(appId)
|
|
493
|
+
const devAppId = dbCore.getDevAppID(appId)
|
|
466
494
|
|
|
467
|
-
if
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
// sync before removing the published app
|
|
495
|
+
// check if we need to unpublish first
|
|
496
|
+
if (await dbCore.dbExists(appId)) {
|
|
497
|
+
// app is deployed, run through unpublish flow
|
|
471
498
|
await sdk.applications.syncApp(devAppId)
|
|
499
|
+
await unpublishApp(ctx)
|
|
472
500
|
}
|
|
473
501
|
|
|
474
|
-
const db =
|
|
502
|
+
const db = dbCore.getDB(devAppId)
|
|
503
|
+
// standard app deletion flow
|
|
475
504
|
const app = await db.get(DocumentType.APP_METADATA)
|
|
476
505
|
const result = await db.destroy()
|
|
506
|
+
await quotas.removeApp()
|
|
507
|
+
await events.app.deleted(app)
|
|
477
508
|
|
|
478
|
-
if (
|
|
479
|
-
await events.app.unpublished(app)
|
|
480
|
-
} else {
|
|
481
|
-
await quotas.removeApp()
|
|
482
|
-
await events.app.deleted(app)
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
/* istanbul ignore next */
|
|
486
|
-
if (!env.isTest() && !isUnpublish) {
|
|
509
|
+
if (!env.isTest()) {
|
|
487
510
|
await deleteApp(appId)
|
|
488
511
|
}
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
}
|
|
493
|
-
// remove app role when the dev app is deleted (no trace of app anymore)
|
|
494
|
-
else {
|
|
495
|
-
await removeAppFromUserRoles(ctx, appId)
|
|
496
|
-
}
|
|
497
|
-
await cache.app.invalidateAppMetadata(appId)
|
|
512
|
+
|
|
513
|
+
await removeAppFromUserRoles(ctx, appId)
|
|
514
|
+
await cache.app.invalidateAppMetadata(devAppId)
|
|
498
515
|
return result
|
|
499
516
|
}
|
|
500
517
|
|
|
@@ -519,6 +536,21 @@ export async function destroy(ctx: BBContext) {
|
|
|
519
536
|
ctx.body = result
|
|
520
537
|
}
|
|
521
538
|
|
|
539
|
+
export const unpublish = async (ctx: BBContext) => {
|
|
540
|
+
const prodAppId = dbCore.getProdAppID(ctx.params.appId)
|
|
541
|
+
const dbExists = await dbCore.dbExists(prodAppId)
|
|
542
|
+
|
|
543
|
+
// check app has been published
|
|
544
|
+
if (!dbExists) {
|
|
545
|
+
return ctx.throw(400, "App has not been published.")
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
await preDestroyApp(ctx)
|
|
549
|
+
await unpublishApp(ctx)
|
|
550
|
+
await postDestroyApp(ctx)
|
|
551
|
+
ctx.status = 204
|
|
552
|
+
}
|
|
553
|
+
|
|
522
554
|
export async function sync(ctx: BBContext) {
|
|
523
555
|
const appId = ctx.params.appId
|
|
524
556
|
try {
|
|
@@ -3,7 +3,7 @@ import { InternalTables } from "../../db/utils"
|
|
|
3
3
|
import { getFullUser } from "../../utilities/users"
|
|
4
4
|
import { roles, context } from "@budibase/backend-core"
|
|
5
5
|
import { groups } from "@budibase/pro"
|
|
6
|
-
import { ContextUser, User, Row } from "@budibase/types"
|
|
6
|
+
import { ContextUser, User, Row, UserCtx } from "@budibase/types"
|
|
7
7
|
|
|
8
8
|
const PUBLIC_ROLE = roles.BUILTIN_ROLE_IDS.PUBLIC
|
|
9
9
|
|
|
@@ -16,7 +16,7 @@ const addSessionAttributesToUser = (ctx: any) => {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
export async function fetchSelf(ctx:
|
|
19
|
+
export async function fetchSelf(ctx: UserCtx) {
|
|
20
20
|
let userId = ctx.user.userId || ctx.user._id
|
|
21
21
|
/* istanbul ignore next */
|
|
22
22
|
if (!userId || !ctx.isAuthenticated) {
|
|
@@ -5,8 +5,8 @@ import { stringToReadStream } from "../../utilities"
|
|
|
5
5
|
import { getDocParams, DocumentType, isDevAppID } from "../../db/utils"
|
|
6
6
|
import { create } from "./application"
|
|
7
7
|
import { join } from "path"
|
|
8
|
-
import { App, BBContext, Database } from "@budibase/types"
|
|
9
8
|
import sdk from "../../sdk"
|
|
9
|
+
import { App, Ctx, Database } from "@budibase/types"
|
|
10
10
|
|
|
11
11
|
async function createApp(appName: string, appDirectory: string) {
|
|
12
12
|
const ctx = {
|
|
@@ -35,7 +35,7 @@ async function getAllDocType(db: Database, docType: string) {
|
|
|
35
35
|
return response.rows.map(row => row.doc)
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
export async function exportApps(ctx:
|
|
38
|
+
export async function exportApps(ctx: Ctx) {
|
|
39
39
|
if (env.SELF_HOSTED || !env.MULTI_TENANCY) {
|
|
40
40
|
ctx.throw(400, "Exporting only allowed in multi-tenant cloud environments.")
|
|
41
41
|
}
|
|
@@ -65,13 +65,13 @@ async function checkHasBeenImported() {
|
|
|
65
65
|
return apps.length !== 0
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
export async function hasBeenImported(ctx:
|
|
68
|
+
export async function hasBeenImported(ctx: Ctx) {
|
|
69
69
|
ctx.body = {
|
|
70
70
|
imported: await checkHasBeenImported(),
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
export async function importApps(ctx:
|
|
74
|
+
export async function importApps(ctx: Ctx) {
|
|
75
75
|
if (!env.SELF_HOSTED || env.MULTI_TENANCY) {
|
|
76
76
|
ctx.throw(400, "Importing only allowed in self hosted environments.")
|
|
77
77
|
}
|
|
@@ -82,12 +82,16 @@ export async function importApps(ctx: BBContext) {
|
|
|
82
82
|
"Import file is required and environment must be fresh to import apps."
|
|
83
83
|
)
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
const file = ctx.request.files.importFile as any
|
|
86
|
+
if (Array.isArray(file)) {
|
|
87
|
+
ctx.throw(400, "Single file is required")
|
|
88
|
+
}
|
|
89
|
+
if (file.type !== "application/gzip" && file.type !== "application/x-gzip") {
|
|
86
90
|
ctx.throw(400, "Import file must be a gzipped tarball.")
|
|
87
91
|
}
|
|
88
92
|
|
|
89
93
|
// initially get all the app databases out of the tarball
|
|
90
|
-
const tmpPath = sdk.backups.untarFile(
|
|
94
|
+
const tmpPath = sdk.backups.untarFile(file)
|
|
91
95
|
const globalDbImport = sdk.backups.getGlobalDBFile(tmpPath)
|
|
92
96
|
const appNames = sdk.backups.getListOfAppsInMulti(tmpPath)
|
|
93
97
|
|
|
@@ -12,9 +12,11 @@ import { getIntegration } from "../../integrations"
|
|
|
12
12
|
import { getDatasourceAndQuery } from "./row/utils"
|
|
13
13
|
import { invalidateDynamicVariables } from "../../threads/utils"
|
|
14
14
|
import { db as dbCore, context, events } from "@budibase/backend-core"
|
|
15
|
-
import {
|
|
15
|
+
import { UserCtx, Datasource, Row } from "@budibase/types"
|
|
16
|
+
import sdk from "../../sdk"
|
|
17
|
+
import { mergeConfigs } from "../../sdk/app/datasources/datasources"
|
|
16
18
|
|
|
17
|
-
export async function fetch(ctx:
|
|
19
|
+
export async function fetch(ctx: UserCtx) {
|
|
18
20
|
// Get internal tables
|
|
19
21
|
const db = context.getAppDB()
|
|
20
22
|
const internalTables = await db.allDocs(
|
|
@@ -43,25 +45,23 @@ export async function fetch(ctx: BBContext) {
|
|
|
43
45
|
)
|
|
44
46
|
).rows.map(row => row.doc)
|
|
45
47
|
|
|
46
|
-
const allDatasources =
|
|
48
|
+
const allDatasources: Datasource[] = await sdk.datasources.removeSecrets([
|
|
49
|
+
bbInternalDb,
|
|
50
|
+
...datasources,
|
|
51
|
+
])
|
|
47
52
|
|
|
48
53
|
for (let datasource of allDatasources) {
|
|
49
|
-
if (datasource.config && datasource.config.auth) {
|
|
50
|
-
// strip secrets from response so they don't show in the network request
|
|
51
|
-
delete datasource.config.auth
|
|
52
|
-
}
|
|
53
|
-
|
|
54
54
|
if (datasource.type === dbCore.BUDIBASE_DATASOURCE_TYPE) {
|
|
55
|
-
datasource.entities = internal[datasource._id]
|
|
55
|
+
datasource.entities = internal[datasource._id!]
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
ctx.body = [bbInternalDb, ...datasources]
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
export async function buildSchemaFromDb(ctx:
|
|
62
|
+
export async function buildSchemaFromDb(ctx: UserCtx) {
|
|
63
63
|
const db = context.getAppDB()
|
|
64
|
-
const datasource = await
|
|
64
|
+
const datasource = await sdk.datasources.get(ctx.params.datasourceId)
|
|
65
65
|
const tablesFilter = ctx.request.body.tablesFilter
|
|
66
66
|
|
|
67
67
|
let { tables, error } = await buildSchemaHelper(datasource)
|
|
@@ -146,11 +146,11 @@ async function invalidateVariables(
|
|
|
146
146
|
await invalidateDynamicVariables(toInvalidate)
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
export async function update(ctx:
|
|
149
|
+
export async function update(ctx: UserCtx) {
|
|
150
150
|
const db = context.getAppDB()
|
|
151
151
|
const datasourceId = ctx.params.datasourceId
|
|
152
|
-
let datasource = await
|
|
153
|
-
const auth = datasource.config
|
|
152
|
+
let datasource = await sdk.datasources.get(datasourceId)
|
|
153
|
+
const auth = datasource.config?.auth
|
|
154
154
|
await invalidateVariables(datasource, ctx.request.body)
|
|
155
155
|
|
|
156
156
|
const isBudibaseSource = datasource.type === dbCore.BUDIBASE_DATASOURCE_TYPE
|
|
@@ -159,10 +159,13 @@ export async function update(ctx: BBContext) {
|
|
|
159
159
|
? { name: ctx.request.body?.name }
|
|
160
160
|
: ctx.request.body
|
|
161
161
|
|
|
162
|
-
datasource = {
|
|
162
|
+
datasource = {
|
|
163
|
+
...datasource,
|
|
164
|
+
...sdk.datasources.mergeConfigs(dataSourceBody, datasource),
|
|
165
|
+
}
|
|
163
166
|
if (auth && !ctx.request.body.auth) {
|
|
164
167
|
// don't strip auth config from DB
|
|
165
|
-
datasource.config
|
|
168
|
+
datasource.config!.auth = auth
|
|
166
169
|
}
|
|
167
170
|
|
|
168
171
|
const response = await db.put(datasource)
|
|
@@ -179,10 +182,12 @@ export async function update(ctx: BBContext) {
|
|
|
179
182
|
|
|
180
183
|
ctx.status = 200
|
|
181
184
|
ctx.message = "Datasource saved successfully."
|
|
182
|
-
ctx.body = {
|
|
185
|
+
ctx.body = {
|
|
186
|
+
datasource: await sdk.datasources.removeSecretSingle(datasource),
|
|
187
|
+
}
|
|
183
188
|
}
|
|
184
189
|
|
|
185
|
-
export async function save(ctx:
|
|
190
|
+
export async function save(ctx: UserCtx) {
|
|
186
191
|
const db = context.getAppDB()
|
|
187
192
|
const plus = ctx.request.body.datasource.plus
|
|
188
193
|
const fetchSchema = ctx.request.body.fetchSchema
|
|
@@ -213,7 +218,9 @@ export async function save(ctx: BBContext) {
|
|
|
213
218
|
}
|
|
214
219
|
}
|
|
215
220
|
|
|
216
|
-
const response: any = {
|
|
221
|
+
const response: any = {
|
|
222
|
+
datasource: await sdk.datasources.removeSecretSingle(datasource),
|
|
223
|
+
}
|
|
217
224
|
if (schemaError) {
|
|
218
225
|
response.error = schemaError
|
|
219
226
|
}
|
|
@@ -251,11 +258,11 @@ async function destroyInternalTablesBySourceId(datasourceId: string) {
|
|
|
251
258
|
}
|
|
252
259
|
}
|
|
253
260
|
|
|
254
|
-
export async function destroy(ctx:
|
|
261
|
+
export async function destroy(ctx: UserCtx) {
|
|
255
262
|
const db = context.getAppDB()
|
|
256
263
|
const datasourceId = ctx.params.datasourceId
|
|
257
264
|
|
|
258
|
-
const datasource = await
|
|
265
|
+
const datasource = await sdk.datasources.get(datasourceId)
|
|
259
266
|
// Delete all queries for the datasource
|
|
260
267
|
|
|
261
268
|
if (datasource.type === dbCore.BUDIBASE_DATASOURCE_TYPE) {
|
|
@@ -279,13 +286,14 @@ export async function destroy(ctx: BBContext) {
|
|
|
279
286
|
ctx.status = 200
|
|
280
287
|
}
|
|
281
288
|
|
|
282
|
-
export async function find(ctx:
|
|
289
|
+
export async function find(ctx: UserCtx) {
|
|
283
290
|
const database = context.getAppDB()
|
|
284
|
-
|
|
291
|
+
const datasource = await database.get(ctx.params.datasourceId)
|
|
292
|
+
ctx.body = await sdk.datasources.removeSecretSingle(datasource)
|
|
285
293
|
}
|
|
286
294
|
|
|
287
295
|
// dynamic query functionality
|
|
288
|
-
export async function query(ctx:
|
|
296
|
+
export async function query(ctx: UserCtx) {
|
|
289
297
|
const queryJson = ctx.request.body
|
|
290
298
|
try {
|
|
291
299
|
ctx.body = await getDatasourceAndQuery(queryJson)
|
|
@@ -313,7 +321,7 @@ function updateError(error: any, newError: any, tables: string[]) {
|
|
|
313
321
|
|
|
314
322
|
async function buildSchemaHelper(datasource: Datasource) {
|
|
315
323
|
const Connector = await getIntegration(datasource.source)
|
|
316
|
-
|
|
324
|
+
datasource = await sdk.datasources.enrich(datasource)
|
|
317
325
|
// Connect to the DB and build the schema
|
|
318
326
|
const connector = new Connector(datasource.config)
|
|
319
327
|
await connector.buildSchema(datasource._id, datasource.entities)
|