@budibase/server 2.2.12-alpha.43 → 2.2.12-alpha.45
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__/node-fetch.ts +2 -0
- package/builder/assets/{index.68e5f22f.js → index.353f1284.js} +392 -386
- package/builder/assets/{index.80229ab4.css → index.f9c1cb26.css} +2 -2
- package/builder/index.html +2 -2
- package/coverage/clover.xml +1872 -1762
- package/coverage/coverage-final.json +83 -78
- package/coverage/lcov-report/index.html +141 -96
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/application.ts.html +158 -137
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/component.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +99 -75
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +69 -69
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/index.html +24 -24
- package/coverage/lcov-report/src/api/controllers/integration.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/layout.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/metadata.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/migrations.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/permission.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/plugin/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +3 -3
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/query/index.html +7 -7
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +70 -46
- package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/role.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/routing.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +11 -14
- package/coverage/lcov-report/src/api/controllers/row/index.html +15 -15
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/script.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +21 -24
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +21 -15
- package/coverage/lcov-report/src/api/controllers/table/index.html +13 -13
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/user.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +1 -1
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +57 -51
- package/coverage/lcov-report/src/api/index.html +1 -1
- package/coverage/lcov-report/src/api/index.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/analytics.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/application.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/auth.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/automation.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/backup.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/cloud.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/component.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/datasource.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/dev.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/index.html +5 -5
- package/coverage/lcov-report/src/api/routes/index.ts.html +10 -4
- package/coverage/lcov-report/src/api/routes/integration.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/layout.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/metadata.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/permission.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/middleware/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/tests/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/users.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/query.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/role.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/routing.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/row.ts.html +2 -2
- package/coverage/lcov-report/src/api/routes/screen.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/static.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/table.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/templates.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/user.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/view.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +1 -1
- package/coverage/lcov-report/src/app.ts.html +1 -1
- package/coverage/lcov-report/src/automations/actions.ts.html +1 -1
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +1 -1
- package/coverage/lcov-report/src/automations/bullboard.ts.html +2 -2
- package/coverage/lcov-report/src/automations/index.html +15 -15
- package/coverage/lcov-report/src/automations/index.ts.html +1 -1
- package/coverage/lcov-report/src/automations/logging/index.html +1 -1
- package/coverage/lcov-report/src/automations/logging/index.ts.html +4 -4
- package/coverage/lcov-report/src/automations/steps/bash.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/delay.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/discord.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/filter.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/index.html +1 -1
- package/coverage/lcov-report/src/automations/steps/integromat.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/loop.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/slack.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/utils.ts.html +1 -1
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +1 -1
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +2 -2
- package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +1 -1
- package/coverage/lcov-report/src/automations/triggers.ts.html +1 -1
- package/coverage/lcov-report/src/automations/utils.ts.html +21 -21
- package/coverage/lcov-report/src/constants/index.html +1 -1
- package/coverage/lcov-report/src/constants/index.ts.html +2 -2
- package/coverage/lcov-report/src/constants/layouts.ts.html +1 -1
- package/coverage/lcov-report/src/constants/screens.ts.html +1 -1
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +1 -1
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +1 -1
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +1 -1
- package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +1 -1
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +1 -1
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +15 -15
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +1 -1
- package/coverage/lcov-report/src/db/index.html +1 -1
- package/coverage/lcov-report/src/db/index.ts.html +1 -1
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +1 -1
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +1 -1
- package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/src/db/linkedRows/index.ts.html +1 -1
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +1 -1
- package/coverage/lcov-report/src/db/newid.ts.html +3 -3
- package/coverage/lcov-report/src/db/utils.ts.html +17 -17
- package/coverage/lcov-report/src/definitions/automations.ts.html +5 -2
- package/coverage/lcov-report/src/definitions/datasource.ts.html +2 -2
- package/coverage/lcov-report/src/definitions/index.html +1 -1
- package/coverage/lcov-report/src/environment.ts.html +9 -9
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +1 -1
- package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +1 -1
- package/coverage/lcov-report/src/events/index.html +1 -1
- package/coverage/lcov-report/src/events/index.ts.html +1 -1
- package/coverage/lcov-report/src/events/utils.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +7 -7
- package/coverage/lcov-report/src/index.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/airtable.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/arangodb.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/base/index.html +11 -11
- package/coverage/lcov-report/src/integrations/base/query.ts.html +13 -7
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +12 -12
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +2 -2
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +9 -9
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +11 -11
- package/coverage/lcov-report/src/integrations/index.html +1 -1
- package/coverage/lcov-report/src/integrations/index.ts.html +37 -37
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +11 -11
- package/coverage/lcov-report/src/integrations/mysql.ts.html +11 -11
- package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
- package/coverage/lcov-report/src/integrations/postgres.ts.html +10 -10
- package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +15 -150
- package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/rest.ts.html +24 -24
- package/coverage/lcov-report/src/integrations/s3.ts.html +6 -6
- package/coverage/lcov-report/src/integrations/snowflake.ts.html +5 -5
- 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 +2 -2
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/authorized.ts.html +19 -19
- package/coverage/lcov-report/src/middleware/builder.ts.html +13 -13
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +33 -33
- package/coverage/lcov-report/src/middleware/index.html +1 -1
- package/coverage/lcov-report/src/middleware/joi-validator.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/publicApi.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/resourceId.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/utils.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/index.html +1 -1
- package/coverage/lcov-report/src/migrations/index.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +1 -1
- package/coverage/lcov-report/src/migrations/tests/index.html +1 -1
- package/coverage/lcov-report/src/migrations/tests/structures.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/applications/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +18 -18
- package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +7 -7
- package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +379 -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/sdk/app/queries/index.ts.html +100 -0
- package/coverage/lcov-report/src/sdk/app/queries/queries.ts.html +235 -0
- package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/app/tables/index.html +11 -11
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +18 -9
- package/coverage/lcov-report/src/sdk/index.html +5 -5
- package/coverage/lcov-report/src/sdk/index.ts.html +17 -5
- package/coverage/lcov-report/src/sdk/users/index.html +1 -1
- package/coverage/lcov-report/src/sdk/users/index.ts.html +1 -1
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +20 -20
- 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 +1 -1
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +89 -80
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +4 -4
- package/coverage/lcov-report/src/tests/utilities/index.html +5 -5
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +4 -4
- package/coverage/lcov-report/src/threads/automation.ts.html +42 -24
- package/coverage/lcov-report/src/threads/index.html +28 -28
- package/coverage/lcov-report/src/threads/index.ts.html +1 -1
- package/coverage/lcov-report/src/threads/query.ts.html +68 -29
- package/coverage/lcov-report/src/threads/utils.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +2 -2
- package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
- package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +8 -8
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +18 -12
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +17 -17
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +5 -8
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/global.ts.html +33 -33
- package/coverage/lcov-report/src/utilities/index.html +16 -16
- package/coverage/lcov-report/src/utilities/index.ts.html +12 -12
- package/coverage/lcov-report/src/utilities/redis.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/schema.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/security.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/users.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +1 -1
- package/coverage/lcov-report/src/watch.ts.html +1 -1
- package/coverage/lcov-report/src/websocket.ts.html +3 -3
- package/coverage/lcov.info +2986 -2796
- package/dist/api/controllers/application.js +73 -74
- package/dist/api/controllers/datasource.js +24 -15
- package/dist/api/controllers/query/index.js +18 -11
- package/dist/api/controllers/row/ExternalRequest.js +5 -3
- package/dist/api/controllers/row/external.js +6 -5
- package/dist/api/controllers/row/utils.js +5 -2
- package/dist/api/controllers/static/index.js +38 -38
- package/dist/api/controllers/table/external.js +8 -5
- package/dist/api/controllers/webhook.js +45 -43
- package/dist/api/routes/index.js +2 -0
- package/dist/api/routes/row.js +2 -2
- 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/dynamodb.js +8 -5
- package/dist/integrations/mysql.js +2 -2
- package/dist/integrations/queries/sql.js +73 -100
- package/dist/integrations/rest.js +14 -14
- package/dist/package.json +6 -6
- package/dist/sdk/app/datasources/datasources.js +113 -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/threads/automation.js +9 -2
- package/dist/threads/query.js +27 -13
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/filesystem.js +36 -34
- package/dist/utilities/fileSystem/plugin.js +17 -14
- package/dist/utilities/fileSystem/template.js +7 -4
- package/package.json +7 -7
- package/scripts/dev/manage.js +1 -0
- package/src/api/controllers/application.ts +81 -74
- package/src/api/controllers/datasource.ts +33 -25
- package/src/api/controllers/query/index.ts +47 -39
- package/src/api/controllers/row/ExternalRequest.ts +2 -2
- package/src/api/controllers/row/external.ts +3 -4
- package/src/api/controllers/row/utils.ts +2 -2
- package/src/api/controllers/static/index.ts +17 -18
- package/src/api/controllers/table/external.ts +8 -6
- package/src/api/controllers/webhook.ts +48 -46
- package/src/api/routes/index.ts +2 -0
- package/src/api/routes/row.ts +1 -1
- package/src/api/routes/tests/datasource.spec.ts +35 -1
- package/src/definitions/automations.ts +1 -0
- 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/dynamodb.ts +3 -3
- package/src/integrations/mysql.ts +1 -1
- package/src/integrations/queries/sql.ts +5 -50
- package/src/integrations/rest.ts +8 -8
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
- package/src/sdk/app/datasources/datasources.ts +98 -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/utils/index.ts +16 -0
- package/src/tests/utilities/TestConfiguration.ts +15 -12
- package/src/threads/automation.ts +9 -3
- package/src/threads/definitions.ts +3 -0
- package/src/threads/query.ts +28 -15
- package/src/utilities/fileSystem/filesystem.ts +6 -4
- package/src/utilities/fileSystem/plugin.ts +3 -4
- package/src/utilities/fileSystem/template.ts +2 -2
|
@@ -14,20 +14,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.getSignedUploadURL = exports.serveClientLibrary = exports.serveBuilderPreview = exports.serveApp = exports.deleteObjects = exports.uploadFile = exports.serveBuilder = exports.toggleBetaUiFeature = void 0;
|
|
16
16
|
require("svelte/register");
|
|
17
|
-
const
|
|
18
|
-
const { resolve, join } = require("../../../utilities/centralPath");
|
|
17
|
+
const centralPath_1 = require("../../../utilities/centralPath");
|
|
19
18
|
const uuid = require("uuid");
|
|
20
19
|
const constants_1 = require("../../../constants");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
20
|
+
const string_templates_1 = require("@budibase/string-templates");
|
|
21
|
+
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
23
22
|
const environment_1 = __importDefault(require("../../../environment"));
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
23
|
+
const utils_1 = require("../../../db/utils");
|
|
24
|
+
const backend_core_1 = require("@budibase/backend-core");
|
|
25
|
+
const aws_sdk_1 = __importDefault(require("aws-sdk"));
|
|
26
|
+
const fs_1 = __importDefault(require("fs"));
|
|
27
|
+
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
28
|
+
const send = require("koa-send");
|
|
28
29
|
function prepareUpload({ s3Key, bucket, metadata, file }) {
|
|
29
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
const response = yield objectStore.upload({
|
|
31
|
+
const response = yield backend_core_1.objectStore.upload({
|
|
31
32
|
bucket,
|
|
32
33
|
metadata,
|
|
33
34
|
filename: s3Key,
|
|
@@ -38,7 +39,7 @@ function prepareUpload({ s3Key, bucket, metadata, file }) {
|
|
|
38
39
|
return {
|
|
39
40
|
size: file.size,
|
|
40
41
|
name: file.name,
|
|
41
|
-
url: objectStore.getAppFileUrl(s3Key),
|
|
42
|
+
url: backend_core_1.objectStore.getAppFileUrl(s3Key),
|
|
42
43
|
extension: [...file.name.split(".")].pop(),
|
|
43
44
|
key: response.Key,
|
|
44
45
|
};
|
|
@@ -48,19 +49,19 @@ const toggleBetaUiFeature = function (ctx) {
|
|
|
48
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
50
|
const cookieName = `beta:${ctx.params.feature}`;
|
|
50
51
|
if (ctx.cookies.get(cookieName)) {
|
|
51
|
-
utils.clearCookie(ctx, cookieName);
|
|
52
|
+
backend_core_1.utils.clearCookie(ctx, cookieName);
|
|
52
53
|
ctx.body = {
|
|
53
54
|
message: `${ctx.params.feature} disabled`,
|
|
54
55
|
};
|
|
55
56
|
return;
|
|
56
57
|
}
|
|
57
|
-
let builderPath = resolve(TOP_LEVEL_PATH, "new_design_ui");
|
|
58
|
+
let builderPath = (0, centralPath_1.resolve)(fileSystem_1.TOP_LEVEL_PATH, "new_design_ui");
|
|
58
59
|
// // download it from S3
|
|
59
|
-
if (!
|
|
60
|
-
|
|
60
|
+
if (!fs_1.default.existsSync(builderPath)) {
|
|
61
|
+
fs_1.default.mkdirSync(builderPath);
|
|
61
62
|
}
|
|
62
|
-
yield objectStore.downloadTarballDirect("https://cdn.budi.live/beta:design_ui/new_ui.tar.gz", builderPath);
|
|
63
|
-
utils.setCookie(ctx, {}, cookieName);
|
|
63
|
+
yield backend_core_1.objectStore.downloadTarballDirect("https://cdn.budi.live/beta:design_ui/new_ui.tar.gz", builderPath);
|
|
64
|
+
backend_core_1.utils.setCookie(ctx, {}, cookieName);
|
|
64
65
|
ctx.body = {
|
|
65
66
|
message: `${ctx.params.feature} enabled`,
|
|
66
67
|
};
|
|
@@ -69,7 +70,7 @@ const toggleBetaUiFeature = function (ctx) {
|
|
|
69
70
|
exports.toggleBetaUiFeature = toggleBetaUiFeature;
|
|
70
71
|
const serveBuilder = function (ctx) {
|
|
71
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const builderPath = resolve(TOP_LEVEL_PATH, "builder");
|
|
73
|
+
const builderPath = (0, centralPath_1.resolve)(fileSystem_1.TOP_LEVEL_PATH, "builder");
|
|
73
74
|
yield send(ctx, ctx.file, { root: builderPath });
|
|
74
75
|
});
|
|
75
76
|
};
|
|
@@ -85,7 +86,7 @@ const uploadFile = function (ctx) {
|
|
|
85
86
|
const processedFileName = `${uuid.v4()}.${fileExtension}`;
|
|
86
87
|
return prepareUpload({
|
|
87
88
|
file,
|
|
88
|
-
s3Key: `${context.getProdAppId()}/attachments/${processedFileName}`,
|
|
89
|
+
s3Key: `${backend_core_1.context.getProdAppId()}/attachments/${processedFileName}`,
|
|
89
90
|
bucket: constants_1.ObjectStoreBuckets.APPS,
|
|
90
91
|
});
|
|
91
92
|
}));
|
|
@@ -95,28 +96,28 @@ const uploadFile = function (ctx) {
|
|
|
95
96
|
exports.uploadFile = uploadFile;
|
|
96
97
|
const deleteObjects = function (ctx) {
|
|
97
98
|
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
-
ctx.body = yield objectStore.deleteFiles(constants_1.ObjectStoreBuckets.APPS, ctx.request.body.keys);
|
|
99
|
+
ctx.body = yield backend_core_1.objectStore.deleteFiles(constants_1.ObjectStoreBuckets.APPS, ctx.request.body.keys);
|
|
99
100
|
});
|
|
100
101
|
};
|
|
101
102
|
exports.deleteObjects = deleteObjects;
|
|
102
103
|
const serveApp = function (ctx) {
|
|
103
104
|
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
-
const db = context.getAppDB({ skip_setup: true });
|
|
105
|
-
const appInfo = yield db.get(DocumentType.APP_METADATA);
|
|
106
|
-
let appId = context.getAppId();
|
|
105
|
+
const db = backend_core_1.context.getAppDB({ skip_setup: true });
|
|
106
|
+
const appInfo = yield db.get(utils_1.DocumentType.APP_METADATA);
|
|
107
|
+
let appId = backend_core_1.context.getAppId();
|
|
107
108
|
if (!environment_1.default.isJest()) {
|
|
108
109
|
const App = require("./templates/BudibaseApp.svelte").default;
|
|
109
|
-
const plugins = objectStore.enrichPluginURLs(appInfo.usedPlugins);
|
|
110
|
+
const plugins = backend_core_1.objectStore.enrichPluginURLs(appInfo.usedPlugins);
|
|
110
111
|
const { head, html, css } = App.render({
|
|
111
112
|
metaImage: "https://res.cloudinary.com/daog6scxm/image/upload/v1666109324/meta-images/budibase-meta-image_uukc1m.png",
|
|
112
113
|
title: appInfo.name,
|
|
113
114
|
production: environment_1.default.isProd(),
|
|
114
115
|
appId,
|
|
115
|
-
clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
116
|
+
clientLibPath: backend_core_1.objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
116
117
|
usedPlugins: plugins,
|
|
117
118
|
});
|
|
118
|
-
const appHbs = loadHandlebarsFile(`${__dirname}/templates/app.hbs`);
|
|
119
|
-
ctx.body = yield processString(appHbs, {
|
|
119
|
+
const appHbs = (0, fileSystem_1.loadHandlebarsFile)(`${__dirname}/templates/app.hbs`);
|
|
120
|
+
ctx.body = yield (0, string_templates_1.processString)(appHbs, {
|
|
120
121
|
head,
|
|
121
122
|
body: html,
|
|
122
123
|
style: css.code,
|
|
@@ -132,13 +133,13 @@ const serveApp = function (ctx) {
|
|
|
132
133
|
exports.serveApp = serveApp;
|
|
133
134
|
const serveBuilderPreview = function (ctx) {
|
|
134
135
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
-
const db = context.getAppDB({ skip_setup: true });
|
|
136
|
-
const appInfo = yield db.get(DocumentType.APP_METADATA);
|
|
136
|
+
const db = backend_core_1.context.getAppDB({ skip_setup: true });
|
|
137
|
+
const appInfo = yield db.get(utils_1.DocumentType.APP_METADATA);
|
|
137
138
|
if (!environment_1.default.isJest()) {
|
|
138
|
-
let appId = context.getAppId();
|
|
139
|
-
const previewHbs = loadHandlebarsFile(`${__dirname}/templates/preview.hbs`);
|
|
140
|
-
ctx.body = yield processString(previewHbs, {
|
|
141
|
-
clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
139
|
+
let appId = backend_core_1.context.getAppId();
|
|
140
|
+
const previewHbs = (0, fileSystem_1.loadHandlebarsFile)(`${__dirname}/templates/preview.hbs`);
|
|
141
|
+
ctx.body = yield (0, string_templates_1.processString)(previewHbs, {
|
|
142
|
+
clientLibPath: backend_core_1.objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
142
143
|
});
|
|
143
144
|
}
|
|
144
145
|
else {
|
|
@@ -151,7 +152,7 @@ exports.serveBuilderPreview = serveBuilderPreview;
|
|
|
151
152
|
const serveClientLibrary = function (ctx) {
|
|
152
153
|
return __awaiter(this, void 0, void 0, function* () {
|
|
153
154
|
return send(ctx, "budibase-client.js", {
|
|
154
|
-
root: join(NODE_MODULES_PATH, "@budibase", "client", "dist"),
|
|
155
|
+
root: (0, centralPath_1.join)(fileSystem_1.NODE_MODULES_PATH, "@budibase", "client", "dist"),
|
|
155
156
|
});
|
|
156
157
|
});
|
|
157
158
|
};
|
|
@@ -159,12 +160,11 @@ exports.serveClientLibrary = serveClientLibrary;
|
|
|
159
160
|
const getSignedUploadURL = function (ctx) {
|
|
160
161
|
var _a, _b, _c, _d;
|
|
161
162
|
return __awaiter(this, void 0, void 0, function* () {
|
|
162
|
-
const database = context.getAppDB();
|
|
163
163
|
// Ensure datasource is valid
|
|
164
164
|
let datasource;
|
|
165
165
|
try {
|
|
166
166
|
const { datasourceId } = ctx.params;
|
|
167
|
-
datasource = yield
|
|
167
|
+
datasource = yield sdk_1.default.datasources.get(datasourceId, { enriched: true });
|
|
168
168
|
if (!datasource) {
|
|
169
169
|
ctx.throw(400, "The specified datasource could not be found");
|
|
170
170
|
}
|
|
@@ -179,15 +179,15 @@ const getSignedUploadURL = function (ctx) {
|
|
|
179
179
|
// Determine type of datasource and generate signed URL
|
|
180
180
|
let signedUrl;
|
|
181
181
|
let publicUrl;
|
|
182
|
-
const awsRegion = ((_b = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _b === void 0 ? void 0 : _b.region) || "eu-west-1";
|
|
183
|
-
if (datasource.source === "S3") {
|
|
182
|
+
const awsRegion = (((_b = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _b === void 0 ? void 0 : _b.region) || "eu-west-1");
|
|
183
|
+
if ((datasource === null || datasource === void 0 ? void 0 : datasource.source) === "S3") {
|
|
184
184
|
const { bucket, key } = ctx.request.body || {};
|
|
185
185
|
if (!bucket || !key) {
|
|
186
186
|
ctx.throw(400, "bucket and key values are required");
|
|
187
187
|
return;
|
|
188
188
|
}
|
|
189
189
|
try {
|
|
190
|
-
const s3 = new
|
|
190
|
+
const s3 = new aws_sdk_1.default.S3({
|
|
191
191
|
region: awsRegion,
|
|
192
192
|
accessKeyId: (_c = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _c === void 0 ? void 0 : _c.accessKeyId,
|
|
193
193
|
secretAccessKey: (_d = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _d === void 0 ? void 0 : _d.secretAccessKey,
|
|
@@ -168,7 +168,7 @@ function save(ctx) {
|
|
|
168
168
|
ctx.throw(400, "A column type has changed.");
|
|
169
169
|
}
|
|
170
170
|
const db = backend_core_1.context.getAppDB();
|
|
171
|
-
const datasource = yield
|
|
171
|
+
const datasource = yield sdk_1.default.datasources.get(datasourceId);
|
|
172
172
|
if (!datasource.entities) {
|
|
173
173
|
datasource.entities = {};
|
|
174
174
|
}
|
|
@@ -242,12 +242,15 @@ function destroy(ctx) {
|
|
|
242
242
|
}
|
|
243
243
|
const datasourceId = getDatasourceId(tableToDelete);
|
|
244
244
|
const db = backend_core_1.context.getAppDB();
|
|
245
|
-
const datasource = yield
|
|
245
|
+
const datasource = yield sdk_1.default.datasources.get(datasourceId);
|
|
246
246
|
const tables = datasource.entities;
|
|
247
247
|
const operation = types_1.Operation.DELETE_TABLE;
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
248
|
+
if (tables) {
|
|
249
|
+
yield makeTableRequest(datasource, operation, tableToDelete, tables);
|
|
250
|
+
cleanupRelationships(tableToDelete, tables);
|
|
251
|
+
delete tables[tableToDelete.name];
|
|
252
|
+
datasource.entities = tables;
|
|
253
|
+
}
|
|
251
254
|
yield db.put(datasource);
|
|
252
255
|
return tableToDelete;
|
|
253
256
|
});
|
|
@@ -72,61 +72,63 @@ function destroy(ctx) {
|
|
|
72
72
|
exports.destroy = destroy;
|
|
73
73
|
function buildSchema(ctx) {
|
|
74
74
|
return __awaiter(this, void 0, void 0, function* () {
|
|
75
|
-
yield backend_core_1.context.
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
};
|
|
88
|
-
for (let prop of Object.keys(properties)) {
|
|
89
|
-
autoOutputs.properties[prop] = {
|
|
90
|
-
type: properties[prop].type,
|
|
91
|
-
description: AUTOMATION_DESCRIPTION,
|
|
75
|
+
yield backend_core_1.context.doInAppContext(ctx.params.instance, () => __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
const db = backend_core_1.context.getAppDB();
|
|
77
|
+
const webhook = (yield db.get(ctx.params.id));
|
|
78
|
+
webhook.bodySchema = toJsonSchema(ctx.request.body);
|
|
79
|
+
// update the automation outputs
|
|
80
|
+
if (webhook.action.type === types_1.WebhookActionType.AUTOMATION) {
|
|
81
|
+
let automation = (yield db.get(webhook.action.target));
|
|
82
|
+
const autoOutputs = automation.definition.trigger.schema.outputs;
|
|
83
|
+
let properties = webhook.bodySchema.properties;
|
|
84
|
+
// reset webhook outputs
|
|
85
|
+
autoOutputs.properties = {
|
|
86
|
+
body: autoOutputs.properties.body,
|
|
92
87
|
};
|
|
88
|
+
for (let prop of Object.keys(properties)) {
|
|
89
|
+
autoOutputs.properties[prop] = {
|
|
90
|
+
type: properties[prop].type,
|
|
91
|
+
description: AUTOMATION_DESCRIPTION,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
yield db.put(automation);
|
|
93
95
|
}
|
|
94
|
-
yield db.put(
|
|
95
|
-
}
|
|
96
|
-
ctx.body = yield db.put(webhook);
|
|
96
|
+
ctx.body = yield db.put(webhook);
|
|
97
|
+
}));
|
|
97
98
|
});
|
|
98
99
|
}
|
|
99
100
|
exports.buildSchema = buildSchema;
|
|
100
101
|
function trigger(ctx) {
|
|
101
102
|
return __awaiter(this, void 0, void 0, function* () {
|
|
102
103
|
const prodAppId = backend_core_1.db.getProdAppID(ctx.params.instance);
|
|
103
|
-
yield backend_core_1.context.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
ctx.status = 200;
|
|
118
|
-
ctx.body = {
|
|
119
|
-
message: "Webhook trigger fired successfully",
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
catch (err) {
|
|
123
|
-
if (err.status === 404) {
|
|
104
|
+
yield backend_core_1.context.doInAppContext(prodAppId, () => __awaiter(this, void 0, void 0, function* () {
|
|
105
|
+
try {
|
|
106
|
+
const db = backend_core_1.context.getAppDB();
|
|
107
|
+
const webhook = (yield db.get(ctx.params.id));
|
|
108
|
+
// validate against the schema
|
|
109
|
+
if (webhook.bodySchema) {
|
|
110
|
+
validate(ctx.request.body, webhook.bodySchema);
|
|
111
|
+
}
|
|
112
|
+
const target = yield db.get(webhook.action.target);
|
|
113
|
+
if (webhook.action.type === types_1.WebhookActionType.AUTOMATION) {
|
|
114
|
+
// trigger with both the pure request and then expand it
|
|
115
|
+
// incase the user has produced a schema to bind to
|
|
116
|
+
yield triggers.externalTrigger(target, Object.assign(Object.assign({ body: ctx.request.body }, ctx.request.body), { appId: prodAppId }));
|
|
117
|
+
}
|
|
124
118
|
ctx.status = 200;
|
|
125
119
|
ctx.body = {
|
|
126
|
-
message: "
|
|
120
|
+
message: "Webhook trigger fired successfully",
|
|
127
121
|
};
|
|
128
122
|
}
|
|
129
|
-
|
|
123
|
+
catch (err) {
|
|
124
|
+
if (err.status === 404) {
|
|
125
|
+
ctx.status = 200;
|
|
126
|
+
ctx.body = {
|
|
127
|
+
message: "Application not deployed yet.",
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}));
|
|
130
132
|
});
|
|
131
133
|
}
|
|
132
134
|
exports.trigger = trigger;
|
package/dist/api/routes/index.js
CHANGED
|
@@ -38,6 +38,7 @@ var public_1 = require("./public");
|
|
|
38
38
|
Object.defineProperty(exports, "publicRoutes", { enumerable: true, get: function () { return __importDefault(public_1).default; } });
|
|
39
39
|
const appBackupRoutes = pro_1.api.appBackups;
|
|
40
40
|
const scheduleRoutes = pro_1.api.schedules;
|
|
41
|
+
const environmentVariableRoutes = pro_1.api.environmentVariables;
|
|
41
42
|
exports.mainRoutes = [
|
|
42
43
|
appBackupRoutes,
|
|
43
44
|
backup_1.default,
|
|
@@ -67,6 +68,7 @@ exports.mainRoutes = [
|
|
|
67
68
|
migrations_1.default,
|
|
68
69
|
plugin_1.default,
|
|
69
70
|
scheduleRoutes,
|
|
71
|
+
environmentVariableRoutes,
|
|
70
72
|
// these need to be handled last as they still use /api/:tableId
|
|
71
73
|
// this could be breaking as koa may recognise other routes as this
|
|
72
74
|
table_1.default,
|
package/dist/api/routes/row.js
CHANGED
|
@@ -31,7 +31,7 @@ const rowController = __importStar(require("../controllers/row"));
|
|
|
31
31
|
const authorized_1 = __importDefault(require("../../middleware/authorized"));
|
|
32
32
|
const resourceId_1 = require("../../middleware/resourceId");
|
|
33
33
|
const backend_core_1 = require("@budibase/backend-core");
|
|
34
|
-
const
|
|
34
|
+
const validators_1 = require("./utils/validators");
|
|
35
35
|
const { PermissionType, PermissionLevel } = backend_core_1.permissions;
|
|
36
36
|
const router = new router_1.default();
|
|
37
37
|
router
|
|
@@ -142,7 +142,7 @@ router
|
|
|
142
142
|
* @apiSuccess {string} bookmark The bookmark to be sent with the next request to get the next
|
|
143
143
|
* page.
|
|
144
144
|
*/
|
|
145
|
-
.post("/api/:tableId/search", internalSearchValidator(), (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.search)
|
|
145
|
+
.post("/api/:tableId/search", (0, validators_1.internalSearchValidator)(), (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.search)
|
|
146
146
|
// DEPRECATED - this is an old API, but for backwards compat it needs to be
|
|
147
147
|
// supported still
|
|
148
148
|
.post("/api/search/:tableId/rows", (0, resourceId_1.paramResource)("tableId"), (0, authorized_1.default)(PermissionType.TABLE, PermissionLevel.READ), rowController.search)
|
package/dist/index.js
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const global_agent_1 = require("global-agent");
|
|
4
4
|
const fixPath = require("fix-path");
|
|
5
|
-
const
|
|
5
|
+
const fileSystem_1 = require("./utilities/fileSystem");
|
|
6
6
|
function runServer() {
|
|
7
7
|
// this will shutdown the system if development environment not ready
|
|
8
8
|
// will print an error explaining what to do
|
|
9
|
-
checkDevelopmentEnvironment();
|
|
9
|
+
(0, fileSystem_1.checkDevelopmentEnvironment)();
|
|
10
10
|
fixPath();
|
|
11
11
|
// this will setup http and https proxies form env variables
|
|
12
12
|
process.env.GLOBAL_AGENT_FORCE_GLOBAL_AGENT = "false";
|
|
@@ -8,12 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.makeExternalQuery = void 0;
|
|
13
|
-
const
|
|
16
|
+
const index_1 = require("../index");
|
|
17
|
+
const sdk_1 = __importDefault(require("../../sdk"));
|
|
14
18
|
function makeExternalQuery(datasource, json) {
|
|
15
19
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
|
|
20
|
+
datasource = yield sdk_1.default.datasources.enrich(datasource);
|
|
21
|
+
const Integration = yield (0, index_1.getIntegration)(datasource.source);
|
|
17
22
|
// query is the opinionated function
|
|
18
23
|
if (Integration.prototype.query) {
|
|
19
24
|
const integration = new Integration(datasource.config);
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const knex_1 = require("knex");
|
|
4
4
|
const types_1 = require("@budibase/types");
|
|
5
5
|
const utils_1 = require("../utils");
|
|
6
|
-
const
|
|
6
|
+
const constants_1 = require("../../constants");
|
|
7
7
|
function generateSchema(schema, table, tables, oldTable = null, renamed) {
|
|
8
8
|
let primaryKey = table && table.primary ? table.primary[0] : null;
|
|
9
9
|
const columns = Object.values(table.schema);
|
|
@@ -28,13 +28,13 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
|
|
|
28
28
|
continue;
|
|
29
29
|
}
|
|
30
30
|
switch (column.type) {
|
|
31
|
-
case FieldTypes.STRING:
|
|
32
|
-
case FieldTypes.OPTIONS:
|
|
33
|
-
case FieldTypes.LONGFORM:
|
|
34
|
-
case FieldTypes.BARCODEQR:
|
|
31
|
+
case constants_1.FieldTypes.STRING:
|
|
32
|
+
case constants_1.FieldTypes.OPTIONS:
|
|
33
|
+
case constants_1.FieldTypes.LONGFORM:
|
|
34
|
+
case constants_1.FieldTypes.BARCODEQR:
|
|
35
35
|
schema.text(key);
|
|
36
36
|
break;
|
|
37
|
-
case FieldTypes.NUMBER:
|
|
37
|
+
case constants_1.FieldTypes.NUMBER:
|
|
38
38
|
// if meta is specified then this is a junction table entry
|
|
39
39
|
if (column.meta && column.meta.toKey && column.meta.toTable) {
|
|
40
40
|
const { toKey, toTable } = column.meta;
|
|
@@ -45,21 +45,21 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
|
|
|
45
45
|
schema.float(key);
|
|
46
46
|
}
|
|
47
47
|
break;
|
|
48
|
-
case FieldTypes.BOOLEAN:
|
|
48
|
+
case constants_1.FieldTypes.BOOLEAN:
|
|
49
49
|
schema.boolean(key);
|
|
50
50
|
break;
|
|
51
|
-
case FieldTypes.DATETIME:
|
|
51
|
+
case constants_1.FieldTypes.DATETIME:
|
|
52
52
|
schema.datetime(key, {
|
|
53
53
|
useTz: !column.ignoreTimezones,
|
|
54
54
|
});
|
|
55
55
|
break;
|
|
56
|
-
case FieldTypes.ARRAY:
|
|
56
|
+
case constants_1.FieldTypes.ARRAY:
|
|
57
57
|
schema.json(key);
|
|
58
58
|
break;
|
|
59
|
-
case FieldTypes.LINK:
|
|
59
|
+
case constants_1.FieldTypes.LINK:
|
|
60
60
|
// this side of the relationship doesn't need any SQL work
|
|
61
|
-
if (column.relationshipType !== RelationshipTypes.MANY_TO_ONE &&
|
|
62
|
-
column.relationshipType !== RelationshipTypes.MANY_TO_MANY) {
|
|
61
|
+
if (column.relationshipType !== constants_1.RelationshipTypes.MANY_TO_ONE &&
|
|
62
|
+
column.relationshipType !== constants_1.RelationshipTypes.MANY_TO_MANY) {
|
|
63
63
|
if (!column.foreignKey || !column.tableId) {
|
|
64
64
|
throw "Invalid relationship schema";
|
|
65
65
|
}
|
|
@@ -83,8 +83,8 @@ function generateSchema(schema, table, tables, oldTable = null, renamed) {
|
|
|
83
83
|
// need to check if any columns have been deleted
|
|
84
84
|
if (oldTable) {
|
|
85
85
|
const deletedColumns = Object.entries(oldTable.schema)
|
|
86
|
-
.filter(([key, schema]) => schema.type !== FieldTypes.LINK &&
|
|
87
|
-
schema.type !== FieldTypes.FORMULA &&
|
|
86
|
+
.filter(([key, schema]) => schema.type !== constants_1.FieldTypes.LINK &&
|
|
87
|
+
schema.type !== constants_1.FieldTypes.FORMULA &&
|
|
88
88
|
table.schema[key] == null)
|
|
89
89
|
.map(([key]) => key);
|
|
90
90
|
deletedColumns.forEach(key => {
|
|
@@ -8,10 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
const types_1 = require("@budibase/types");
|
|
13
|
-
const
|
|
14
|
-
const
|
|
16
|
+
const aws_sdk_1 = __importDefault(require("aws-sdk"));
|
|
17
|
+
const dynamoClient_1 = require("../db/dynamoClient");
|
|
15
18
|
const SCHEMA = {
|
|
16
19
|
docs: "https://github.com/dabit3/dynamodb-documentclient-cheat-sheet",
|
|
17
20
|
description: "Amazon DynamoDB is a key-value and document database that delivers single-digit millisecond performance at any scale.",
|
|
@@ -129,8 +132,8 @@ class DynamoDBIntegration {
|
|
|
129
132
|
// @ts-ignore
|
|
130
133
|
this.config = {};
|
|
131
134
|
}
|
|
132
|
-
this.config = Object.assign(Object.assign({}, this.config), { currentClockSkew: true, region: config.region || AWS_REGION, endpoint: config.endpoint || undefined });
|
|
133
|
-
this.client = new
|
|
135
|
+
this.config = Object.assign(Object.assign({}, this.config), { currentClockSkew: true, region: config.region || dynamoClient_1.AWS_REGION, endpoint: config.endpoint || undefined });
|
|
136
|
+
this.client = new aws_sdk_1.default.DynamoDB.DocumentClient(this.config);
|
|
134
137
|
}
|
|
135
138
|
create(query) {
|
|
136
139
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -163,7 +166,7 @@ class DynamoDBIntegration {
|
|
|
163
166
|
const params = {
|
|
164
167
|
TableName: query.table,
|
|
165
168
|
};
|
|
166
|
-
return new
|
|
169
|
+
return new aws_sdk_1.default.DynamoDB(this.config).describeTable(params).promise();
|
|
167
170
|
});
|
|
168
171
|
}
|
|
169
172
|
get(query) {
|
|
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
const types_1 = require("@budibase/types");
|
|
16
16
|
const utils_1 = require("./utils");
|
|
17
17
|
const dayjs_1 = __importDefault(require("dayjs"));
|
|
18
|
-
const
|
|
18
|
+
const utilities_1 = require("../utilities");
|
|
19
19
|
const sql_1 = __importDefault(require("./base/sql"));
|
|
20
20
|
const mysql = require("mysql2/promise");
|
|
21
21
|
const SCHEMA = {
|
|
@@ -81,7 +81,7 @@ function bindingTypeCoerce(bindings) {
|
|
|
81
81
|
if (typeof binding !== "string") {
|
|
82
82
|
continue;
|
|
83
83
|
}
|
|
84
|
-
const matches = binding.match(NUMBER_REGEX);
|
|
84
|
+
const matches = binding.match(utilities_1.NUMBER_REGEX);
|
|
85
85
|
// check if number first
|
|
86
86
|
if (matches && matches[0] !== "" && !isNaN(Number(matches[0]))) {
|
|
87
87
|
bindings[i] = parseFloat(binding);
|