@budibase/server 2.2.12-alpha.6 → 2.2.12-alpha.61
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/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
- package/builder/assets/bg.c1563288.png +0 -0
- package/builder/assets/bulgaria.bd68393d.png +0 -0
- package/builder/assets/covanta.72c46c1e.png +0 -0
- package/builder/assets/index.9f16f5ff.js +1798 -0
- package/builder/assets/index.f87b8d33.css +6 -0
- package/builder/assets/schnellecke.cf1837a8.png +0 -0
- package/builder/index.html +3 -3
- package/coverage/clover.xml +5114 -4925
- package/coverage/coverage-final.json +268 -264
- package/coverage/lcov-report/index.html +202 -157
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/application.ts.html +185 -164
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +24 -24
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +15 -15
- package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +112 -88
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +80 -80
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +17 -17
- package/coverage/lcov-report/src/api/controllers/index.html +36 -36
- package/coverage/lcov-report/src/api/controllers/integration.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/layout.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/metadata.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/migrations.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/permission.ts.html +13 -13
- 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 +19 -19
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +29 -29
- 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 +6 -6
- package/coverage/lcov-report/src/api/controllers/public/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +2 -2
- 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 +7 -7
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +4 -4
- 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 +7 -7
- 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 +3 -3
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +7 -7
- 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 +9 -9
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +13 -13
- package/coverage/lcov-report/src/api/controllers/query/index.html +7 -7
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +89 -65
- package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/role.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/routing.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +36 -18
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +60 -30
- package/coverage/lcov-report/src/api/controllers/row/index.html +40 -40
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +34 -34
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +142 -70
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +120 -120
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +22 -22
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +152 -38
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/script.ts.html +2 -2
- package/coverage/lcov-report/src/api/controllers/static/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +39 -42
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +52 -52
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +43 -37
- package/coverage/lcov-report/src/api/controllers/table/index.html +34 -34
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +155 -68
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +47 -47
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +66 -69
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/user.ts.html +99 -75
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +62 -17
- package/coverage/lcov-report/src/api/controllers/view/index.html +29 -29
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +53 -92
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +69 -63
- package/coverage/lcov-report/src/api/index.html +1 -1
- package/coverage/lcov-report/src/api/index.ts.html +27 -27
- package/coverage/lcov-report/src/api/routes/analytics.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/application.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/auth.ts.html +6 -6
- package/coverage/lcov-report/src/api/routes/automation.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/backup.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/cloud.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/component.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/datasource.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/index.html +5 -5
- package/coverage/lcov-report/src/api/routes/index.ts.html +42 -36
- package/coverage/lcov-report/src/api/routes/integration.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/layout.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/metadata.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +7 -7
- package/coverage/lcov-report/src/api/routes/permission.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/public/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
- 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 +4 -4
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +12 -12
- 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 +12 -12
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +19 -19
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/query.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/role.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/routing.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/row.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/screen.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/script.ts.html +1 -1
- package/coverage/lcov-report/src/api/routes/static.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/table.ts.html +26 -95
- package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
- 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 +9 -9
- package/coverage/lcov-report/src/api/routes/utils/index.html +1 -1
- package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +43 -43
- package/coverage/lcov-report/src/api/routes/view.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +10 -10
- package/coverage/lcov-report/src/app.ts.html +13 -7
- package/coverage/lcov-report/src/automations/actions.ts.html +27 -27
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +59 -59
- package/coverage/lcov-report/src/automations/bullboard.ts.html +9 -9
- package/coverage/lcov-report/src/automations/index.html +30 -30
- package/coverage/lcov-report/src/automations/index.ts.html +10 -10
- package/coverage/lcov-report/src/automations/logging/index.html +1 -1
- package/coverage/lcov-report/src/automations/logging/index.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/bash.ts.html +8 -8
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/delay.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/discord.ts.html +8 -8
- package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/filter.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/index.html +15 -15
- package/coverage/lcov-report/src/automations/steps/integromat.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/loop.ts.html +3 -3
- package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +9 -9
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +38 -38
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/slack.ts.html +6 -6
- package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/utils.ts.html +10 -10
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +6 -6
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +1 -1
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +13 -13
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +8 -8
- package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +3 -3
- package/coverage/lcov-report/src/automations/triggers.ts.html +52 -37
- package/coverage/lcov-report/src/automations/utils.ts.html +52 -52
- 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 +4 -4
- package/coverage/lcov-report/src/constants/screens.ts.html +3 -3
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +22 -22
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/defaultData/index.html +1 -1
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +2 -2
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +15 -15
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +4 -4
- package/coverage/lcov-report/src/db/index.html +1 -1
- package/coverage/lcov-report/src/db/index.ts.html +9 -9
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +18 -18
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +4 -4
- package/coverage/lcov-report/src/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/src/db/linkedRows/index.ts.html +27 -27
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +13 -13
- package/coverage/lcov-report/src/db/newid.ts.html +4 -4
- package/coverage/lcov-report/src/db/utils.ts.html +40 -40
- package/coverage/lcov-report/src/definitions/automations.ts.html +6 -3
- package/coverage/lcov-report/src/definitions/index.html +5 -20
- package/coverage/lcov-report/src/environment.ts.html +10 -10
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +8 -8
- package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +5 -5
- package/coverage/lcov-report/src/events/index.html +1 -1
- package/coverage/lcov-report/src/events/index.ts.html +4 -4
- package/coverage/lcov-report/src/events/utils.ts.html +1 -1
- package/coverage/lcov-report/src/index.html +13 -13
- 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 +14 -8
- 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 +5 -5
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +113 -32
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +9 -9
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +26 -14
- 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 +47 -47
- package/coverage/lcov-report/src/integrations/index.ts.html +49 -49
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +417 -285
- 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 +36 -45
- 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 +18 -18
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +5 -5
- package/coverage/lcov-report/src/middleware/authorized.ts.html +27 -27
- package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +45 -42
- 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 +4 -4
- package/coverage/lcov-report/src/middleware/resourceId.ts.html +21 -21
- package/coverage/lcov-report/src/middleware/selfhost.ts.html +1 -1
- package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +5 -5
- 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 +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +19 -19
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +6 -6
- 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 +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +15 -15
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +1 -1
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +2 -2
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +5 -5
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/index.html +1 -1
- package/coverage/lcov-report/src/migrations/index.ts.html +32 -32
- 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 +4 -4
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +22 -22
- package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +9 -9
- package/coverage/lcov-report/src/sdk/app/automations/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +17 -17
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +18 -18
- package/coverage/lcov-report/src/sdk/app/backups/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +7 -7
- 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/sdk/app/queries/index.ts.html +100 -0
- 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 +6 -6
- package/coverage/lcov-report/src/sdk/app/rows/index.html +1 -1
- package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/tables/index.html +11 -11
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +27 -18
- package/coverage/lcov-report/src/sdk/index.html +5 -5
- package/coverage/lcov-report/src/sdk/index.ts.html +23 -11
- package/coverage/lcov-report/src/sdk/users/index.html +1 -1
- package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +28 -28
- 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 +34 -34
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +134 -125
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
- package/coverage/lcov-report/src/tests/utilities/index.html +21 -21
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +213 -24
- package/coverage/lcov-report/src/threads/automation.ts.html +216 -186
- package/coverage/lcov-report/src/threads/index.html +30 -30
- package/coverage/lcov-report/src/threads/index.ts.html +24 -24
- package/coverage/lcov-report/src/threads/query.ts.html +68 -29
- package/coverage/lcov-report/src/threads/utils.ts.html +9 -9
- 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 +9 -9
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +28 -22
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +21 -21
- 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 +40 -40
- package/coverage/lcov-report/src/utilities/index.html +39 -39
- package/coverage/lcov-report/src/utilities/index.ts.html +12 -12
- package/coverage/lcov-report/src/utilities/redis.ts.html +12 -12
- package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +50 -50
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +14 -14
- package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +173 -233
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/security.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/users.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +38 -11
- package/coverage/lcov-report/src/watch.ts.html +7 -7
- package/coverage/lcov-report/src/websocket.ts.html +3 -3
- package/coverage/lcov.info +7899 -7539
- package/dist/api/controllers/application.js +73 -74
- package/dist/api/controllers/cloud.js +1 -1
- package/dist/api/controllers/datasource.js +24 -15
- package/dist/api/controllers/query/index.js +18 -11
- package/dist/api/controllers/row/ExternalRequest.js +12 -3
- package/dist/api/controllers/row/external.js +20 -13
- package/dist/api/controllers/row/internal.js +40 -15
- package/dist/api/controllers/row/utils.js +35 -3
- package/dist/api/controllers/static/index.js +38 -38
- 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 +4 -4
- 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 +20 -56
- 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/api/routes/table.js +6 -37
- package/dist/api/routes/utils/validators.js +1 -1
- package/dist/app.js +1 -0
- package/dist/automations/triggers.js +1 -0
- package/dist/definitions/datasource.js +0 -6
- 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/index.js +5 -5
- 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/currentapp.js +4 -2
- package/dist/package.json +7 -7
- 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/threads/automation.js +18 -7
- 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/dist/utilities/schema.js +108 -0
- package/dist/utilities/workerRequests.js +2 -0
- package/package.json +8 -8
- package/scripts/dev/manage.js +1 -0
- package/src/api/controllers/application.ts +81 -74
- package/src/api/controllers/cloud.ts +1 -1
- package/src/api/controllers/datasource.ts +33 -25
- package/src/api/controllers/query/index.ts +47 -39
- package/src/api/controllers/row/ExternalRequest.ts +8 -2
- package/src/api/controllers/row/external.ts +24 -14
- package/src/api/controllers/row/internal.ts +42 -18
- package/src/api/controllers/row/utils.ts +40 -2
- package/src/api/controllers/static/index.ts +17 -18
- 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 +4 -4
- 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 +22 -35
- 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/table.ts +15 -38
- package/src/api/routes/tests/datasource.spec.ts +35 -1
- package/src/api/routes/tests/misc.spec.js +4 -10
- package/src/api/routes/tests/table.spec.js +8 -30
- package/src/api/routes/tests/user.spec.js +20 -1
- package/src/api/routes/utils/validators.ts +1 -1
- package/src/app.ts +3 -1
- package/src/automations/tests/loop.spec.ts +45 -0
- package/src/automations/triggers.ts +6 -1
- package/src/definitions/automations.ts +1 -0
- package/src/definitions/datasource.ts +0 -41
- 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 +41 -14
- package/src/integrations/dynamodb.ts +3 -3
- package/src/integrations/elasticsearch.ts +8 -4
- package/src/integrations/index.ts +4 -4
- 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 +4 -2
- package/src/middleware/currentapp.ts +3 -2
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -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/utils/index.ts +16 -0
- package/src/tests/utilities/TestConfiguration.ts +15 -12
- package/src/tests/utilities/structures.ts +65 -2
- package/src/threads/automation.ts +18 -8
- 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
- package/src/utilities/schema.ts +141 -0
- package/src/utilities/workerRequests.ts +10 -1
- package/tsconfig.json +2 -1
- package/builder/assets/index.0b010a07.js +0 -1023
- package/builder/assets/index.fa480d5b.css +0 -6
- package/dist/utilities/csvParser.js +0 -152
- package/src/utilities/csvParser.ts +0 -161
- package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
- package/src/utilities/tests/csvParser.spec.js +0 -112
|
@@ -1,111 +1,84 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
2
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.interpolateSQL =
|
|
15
|
+
exports.interpolateSQL = void 0;
|
|
4
16
|
const string_templates_1 = require("@budibase/string-templates");
|
|
17
|
+
const sdk_1 = __importDefault(require("../../sdk"));
|
|
5
18
|
const CONST_CHAR_REGEX = new RegExp("'[^']*'", "g");
|
|
6
|
-
function enrichQueryFields(fields, parameters = {}) {
|
|
7
|
-
const enrichedQuery = Array.isArray(fields) ? [] : {};
|
|
8
|
-
if (!fields || !parameters) {
|
|
9
|
-
return enrichedQuery;
|
|
10
|
-
}
|
|
11
|
-
// enrich the fields with dynamic parameters
|
|
12
|
-
for (let key of Object.keys(fields)) {
|
|
13
|
-
if (fields[key] == null) {
|
|
14
|
-
continue;
|
|
15
|
-
}
|
|
16
|
-
if (typeof fields[key] === "object") {
|
|
17
|
-
// enrich nested fields object
|
|
18
|
-
enrichedQuery[key] = enrichQueryFields(fields[key], parameters);
|
|
19
|
-
}
|
|
20
|
-
else if (typeof fields[key] === "string") {
|
|
21
|
-
// enrich string value as normal
|
|
22
|
-
enrichedQuery[key] = (0, string_templates_1.processStringSync)(fields[key], parameters, {
|
|
23
|
-
noEscaping: true,
|
|
24
|
-
noHelpers: true,
|
|
25
|
-
escapeNewlines: true,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
enrichedQuery[key] = fields[key];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (enrichedQuery.json ||
|
|
33
|
-
enrichedQuery.customData ||
|
|
34
|
-
enrichedQuery.requestBody) {
|
|
35
|
-
try {
|
|
36
|
-
enrichedQuery.json = JSON.parse(enrichedQuery.json ||
|
|
37
|
-
enrichedQuery.customData ||
|
|
38
|
-
enrichedQuery.requestBody);
|
|
39
|
-
}
|
|
40
|
-
catch (err) {
|
|
41
|
-
// no json found, ignore
|
|
42
|
-
}
|
|
43
|
-
delete enrichedQuery.customData;
|
|
44
|
-
}
|
|
45
|
-
return enrichedQuery;
|
|
46
|
-
}
|
|
47
|
-
exports.enrichQueryFields = enrichQueryFields;
|
|
48
19
|
function interpolateSQL(fields, parameters, integration) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const bindings = (0, string_templates_1.findHBSBlocks)(sql);
|
|
54
|
-
let variables = [], arrays = [];
|
|
55
|
-
for (let binding of bindings) {
|
|
56
|
-
// look for array/list operations in the SQL statement, which will need handled later
|
|
57
|
-
const listRegexMatch = sql.match(new RegExp(`(in|IN|In|iN)( )+[(]?${binding}[)]?`));
|
|
58
|
-
// check if the variable was used as part of a string concat e.g. 'Hello {{binding}}'
|
|
59
|
-
// start by finding all the instances of const character strings
|
|
60
|
-
const charConstMatch = sql.match(CONST_CHAR_REGEX) || [];
|
|
61
|
-
// now look within them to see if a binding is used
|
|
62
|
-
const charConstBindingMatch = charConstMatch.find((string) => string.match(new RegExp(`'[^']*${binding}[^']*'`)));
|
|
63
|
-
if (charConstBindingMatch) {
|
|
64
|
-
let [part1, part2] = charConstBindingMatch.split(binding);
|
|
65
|
-
part1 = `'${part1.substring(1)}'`;
|
|
66
|
-
part2 = `'${part2.substring(0, part2.length - 1)}'`;
|
|
67
|
-
sql = sql.replace(charConstBindingMatch, integration.getStringConcat([
|
|
68
|
-
part1,
|
|
69
|
-
integration.getBindingIdentifier(),
|
|
70
|
-
part2,
|
|
71
|
-
]));
|
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
let sql = fields.sql;
|
|
22
|
+
if (!sql || typeof sql !== "string") {
|
|
23
|
+
return fields;
|
|
72
24
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
//
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
25
|
+
const bindings = (0, string_templates_1.findHBSBlocks)(sql);
|
|
26
|
+
let variables = [], arrays = [];
|
|
27
|
+
for (let binding of bindings) {
|
|
28
|
+
// look for array/list operations in the SQL statement, which will need handled later
|
|
29
|
+
const listRegexMatch = sql.match(new RegExp(`(in|IN|In|iN)( )+[(]?${binding}[)]?`));
|
|
30
|
+
// check if the variable was used as part of a string concat e.g. 'Hello {{binding}}'
|
|
31
|
+
// start by finding all the instances of const character strings
|
|
32
|
+
const charConstMatch = sql.match(CONST_CHAR_REGEX) || [];
|
|
33
|
+
// now look within them to see if a binding is used
|
|
34
|
+
const charConstBindingMatch = charConstMatch.find((string) => string.match(new RegExp(`'[^']*${binding}[^']*'`)));
|
|
35
|
+
if (charConstBindingMatch) {
|
|
36
|
+
let [part1, part2] = charConstBindingMatch.split(binding);
|
|
37
|
+
part1 = `'${part1.substring(1)}'`;
|
|
38
|
+
part2 = `'${part2.substring(0, part2.length - 1)}'`;
|
|
39
|
+
sql = sql.replace(charConstBindingMatch, integration.getStringConcat([
|
|
40
|
+
part1,
|
|
41
|
+
integration.getBindingIdentifier(),
|
|
42
|
+
part2,
|
|
43
|
+
]));
|
|
87
44
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
45
|
+
// generate SQL parameterised array
|
|
46
|
+
else if (listRegexMatch) {
|
|
47
|
+
arrays.push(binding);
|
|
48
|
+
// determine the length of the array
|
|
49
|
+
const value = (yield sdk_1.default.queries.enrichContext([binding], parameters))[0]
|
|
50
|
+
.split(",")
|
|
51
|
+
.map((val) => val.trim());
|
|
52
|
+
// build a string like ($1, $2, $3)
|
|
53
|
+
let replacement = `${Array.apply(null, Array(value.length))
|
|
54
|
+
.map(() => integration.getBindingIdentifier())
|
|
55
|
+
.join(",")}`;
|
|
56
|
+
// check if parentheses are needed
|
|
57
|
+
if (!listRegexMatch[0].includes(`(${binding})`)) {
|
|
58
|
+
replacement = `(${replacement})`;
|
|
59
|
+
}
|
|
60
|
+
sql = sql.replace(binding, replacement);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
sql = sql.replace(binding, integration.getBindingIdentifier());
|
|
64
|
+
}
|
|
65
|
+
variables.push(binding);
|
|
103
66
|
}
|
|
104
|
-
|
|
105
|
-
|
|
67
|
+
// replicate the knex structure
|
|
68
|
+
fields.sql = sql;
|
|
69
|
+
fields.bindings = yield sdk_1.default.queries.enrichContext(variables, parameters);
|
|
70
|
+
// check for arrays in the data
|
|
71
|
+
let updated = [];
|
|
72
|
+
for (let i = 0; i < variables.length; i++) {
|
|
73
|
+
if (arrays.includes(variables[i])) {
|
|
74
|
+
updated = updated.concat(fields.bindings[i].split(",").map((val) => val.trim()));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
updated.push(fields.bindings[i]);
|
|
78
|
+
}
|
|
106
79
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
80
|
+
fields.bindings = updated;
|
|
81
|
+
return fields;
|
|
82
|
+
});
|
|
110
83
|
}
|
|
111
84
|
exports.interpolateSQL = interpolateSQL;
|
|
@@ -36,15 +36,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
38
|
const types_1 = require("@budibase/types");
|
|
39
|
-
const datasource_1 = require("../definitions/datasource");
|
|
40
39
|
const lodash_1 = require("lodash");
|
|
41
40
|
const https = __importStar(require("https"));
|
|
42
41
|
const querystring_1 = __importDefault(require("querystring"));
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
const
|
|
42
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
43
|
+
const utilities_1 = require("../utilities");
|
|
44
|
+
const perf_hooks_1 = require("perf_hooks");
|
|
45
|
+
const form_data_1 = __importDefault(require("form-data"));
|
|
46
|
+
const url_1 = require("url");
|
|
48
47
|
const BodyTypes = {
|
|
49
48
|
NONE: "none",
|
|
50
49
|
FORM_DATA: "form",
|
|
@@ -138,7 +137,7 @@ const SCHEMA = {
|
|
|
138
137
|
class RestIntegration {
|
|
139
138
|
constructor(config) {
|
|
140
139
|
this.headers = {};
|
|
141
|
-
this.startTimeMs = performance.now();
|
|
140
|
+
this.startTimeMs = perf_hooks_1.performance.now();
|
|
142
141
|
this.config = config;
|
|
143
142
|
}
|
|
144
143
|
parseResponse(response, pagination) {
|
|
@@ -174,8 +173,8 @@ class RestIntegration {
|
|
|
174
173
|
catch (err) {
|
|
175
174
|
throw "Failed to parse response body.";
|
|
176
175
|
}
|
|
177
|
-
const size = formatBytes(response.headers.get("content-length") || Buffer.byteLength(raw, "utf8"));
|
|
178
|
-
const time = `${Math.round(performance.now() - this.startTimeMs)}ms`;
|
|
176
|
+
const size = (0, utilities_1.formatBytes)(response.headers.get("content-length") || Buffer.byteLength(raw, "utf8"));
|
|
177
|
+
const time = `${Math.round(perf_hooks_1.performance.now() - this.startTimeMs)}ms`;
|
|
179
178
|
headers = response.headers.raw();
|
|
180
179
|
for (let [key, value] of Object.entries(headers)) {
|
|
181
180
|
headers[key] = Array.isArray(value) ? value[0] : value;
|
|
@@ -206,14 +205,14 @@ class RestIntegration {
|
|
|
206
205
|
// Add pagination params to query string if required
|
|
207
206
|
if ((pagination === null || pagination === void 0 ? void 0 : pagination.location) === "query" && paginationValues) {
|
|
208
207
|
const { pageParam, sizeParam } = pagination;
|
|
209
|
-
const params = new URLSearchParams();
|
|
208
|
+
const params = new url_1.URLSearchParams();
|
|
210
209
|
// Append page number or cursor param if configured
|
|
211
210
|
if (pageParam && paginationValues.page != null) {
|
|
212
211
|
params.append(pageParam, paginationValues.page);
|
|
213
212
|
}
|
|
214
213
|
// Append page size param if configured
|
|
215
214
|
if (sizeParam && paginationValues.limit != null) {
|
|
216
|
-
params.append(sizeParam, paginationValues.limit);
|
|
215
|
+
params.append(sizeParam, String(paginationValues.limit));
|
|
217
216
|
}
|
|
218
217
|
// Prepend query string with pagination params
|
|
219
218
|
let paginationString = params.toString();
|
|
@@ -269,7 +268,7 @@ class RestIntegration {
|
|
|
269
268
|
input.body = string;
|
|
270
269
|
break;
|
|
271
270
|
case BodyTypes.ENCODED:
|
|
272
|
-
const params = new URLSearchParams();
|
|
271
|
+
const params = new url_1.URLSearchParams();
|
|
273
272
|
for (let [key, value] of Object.entries(object)) {
|
|
274
273
|
params.append(key, value);
|
|
275
274
|
}
|
|
@@ -279,7 +278,7 @@ class RestIntegration {
|
|
|
279
278
|
input.body = params;
|
|
280
279
|
break;
|
|
281
280
|
case BodyTypes.FORM_DATA:
|
|
282
|
-
const form = new
|
|
281
|
+
const form = new form_data_1.default();
|
|
283
282
|
for (let [key, value] of Object.entries(object)) {
|
|
284
283
|
form.append(key, value);
|
|
285
284
|
}
|
|
@@ -318,11 +317,11 @@ class RestIntegration {
|
|
|
318
317
|
if (authConfig) {
|
|
319
318
|
let config;
|
|
320
319
|
switch (authConfig.type) {
|
|
321
|
-
case
|
|
320
|
+
case types_1.RestAuthType.BASIC:
|
|
322
321
|
config = authConfig.config;
|
|
323
322
|
headers.Authorization = `Basic ${Buffer.from(`${config.username}:${config.password}`).toString("base64")}`;
|
|
324
323
|
break;
|
|
325
|
-
case
|
|
324
|
+
case types_1.RestAuthType.BEARER:
|
|
326
325
|
config = authConfig.config;
|
|
327
326
|
headers.Authorization = `Bearer ${config.token}`;
|
|
328
327
|
break;
|
|
@@ -355,9 +354,9 @@ class RestIntegration {
|
|
|
355
354
|
// https://github.com/nodejs/node/issues/43798
|
|
356
355
|
input.extraHttpOptions = { insecureHTTPParser: true };
|
|
357
356
|
}
|
|
358
|
-
this.startTimeMs = performance.now();
|
|
357
|
+
this.startTimeMs = perf_hooks_1.performance.now();
|
|
359
358
|
const url = this.getUrl(path, queryString, pagination, paginationValues);
|
|
360
|
-
const response = yield
|
|
359
|
+
const response = yield (0, node_fetch_1.default)(url, input);
|
|
361
360
|
return yield this.parseResponse(response, pagination);
|
|
362
361
|
});
|
|
363
362
|
}
|
|
@@ -390,5 +389,4 @@ class RestIntegration {
|
|
|
390
389
|
exports.default = {
|
|
391
390
|
schema: SCHEMA,
|
|
392
391
|
integration: RestIntegration,
|
|
393
|
-
AuthType: datasource_1.AuthType,
|
|
394
392
|
};
|
|
@@ -18,6 +18,7 @@ const global_1 = require("../utilities/global");
|
|
|
18
18
|
const environment_1 = __importDefault(require("../environment"));
|
|
19
19
|
const utils_2 = require("./utils");
|
|
20
20
|
exports.default = (ctx, next) => __awaiter(void 0, void 0, void 0, function* () {
|
|
21
|
+
var _a;
|
|
21
22
|
// try to get the appID from the request
|
|
22
23
|
let requestAppId = yield backend_core_1.utils.getAppIdFromCtx(ctx);
|
|
23
24
|
// get app cookie if it exists
|
|
@@ -52,7 +53,7 @@ exports.default = (ctx, next) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
let appId, roleId = backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC;
|
|
55
|
-
if (!ctx.user) {
|
|
56
|
+
if (!((_a = ctx.user) === null || _a === void 0 ? void 0 : _a._id)) {
|
|
56
57
|
// not logged in, try to set a cookie for public apps
|
|
57
58
|
appId = requestAppId;
|
|
58
59
|
}
|
|
@@ -88,11 +89,12 @@ exports.default = (ctx, next) => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
88
89
|
return next();
|
|
89
90
|
}
|
|
90
91
|
return backend_core_1.context.doInAppContext(appId, () => __awaiter(void 0, void 0, void 0, function* () {
|
|
92
|
+
var _b;
|
|
91
93
|
let skipCookie = false;
|
|
92
94
|
// if the user not in the right tenant then make sure they have no permissions
|
|
93
95
|
// need to judge this only based on the request app ID,
|
|
94
96
|
if (environment_1.default.MULTI_TENANCY &&
|
|
95
|
-
ctx.user &&
|
|
97
|
+
((_b = ctx.user) === null || _b === void 0 ? void 0 : _b._id) &&
|
|
96
98
|
requestAppId &&
|
|
97
99
|
!backend_core_1.tenancy.isUserInAppTenant(requestAppId, ctx.user)) {
|
|
98
100
|
// don't error, simply remove the users rights (they are a public user)
|
package/dist/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "2.2.12-alpha.
|
|
4
|
+
"version": "2.2.12-alpha.60",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
"license": "GPL-3.0",
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@apidevtools/swagger-parser": "10.0.3",
|
|
46
|
-
"@budibase/backend-core": "2.2.12-alpha.
|
|
47
|
-
"@budibase/client": "2.2.12-alpha.
|
|
48
|
-
"@budibase/pro": "2.2.12-alpha.
|
|
49
|
-
"@budibase/string-templates": "2.2.12-alpha.
|
|
50
|
-
"@budibase/types": "2.2.12-alpha.
|
|
46
|
+
"@budibase/backend-core": "2.2.12-alpha.60",
|
|
47
|
+
"@budibase/client": "2.2.12-alpha.60",
|
|
48
|
+
"@budibase/pro": "2.2.12-alpha.60",
|
|
49
|
+
"@budibase/string-templates": "2.2.12-alpha.60",
|
|
50
|
+
"@budibase/types": "2.2.12-alpha.60",
|
|
51
51
|
"@bull-board/api": "3.7.0",
|
|
52
52
|
"@bull-board/koa": "3.9.4",
|
|
53
53
|
"@elastic/elasticsearch": "7.10.0",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"joi": "17.6.0",
|
|
78
78
|
"js-yaml": "4.1.0",
|
|
79
79
|
"jsonschema": "1.4.0",
|
|
80
|
-
"knex": "
|
|
80
|
+
"knex": "2.4.0",
|
|
81
81
|
"koa": "2.13.4",
|
|
82
82
|
"koa-body": "4.2.0",
|
|
83
83
|
"koa-compress": "4.0.1",
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.mergeConfigs = exports.removeSecretSingle = exports.removeSecrets = exports.getWithEnvVars = exports.get = exports.enrich = void 0;
|
|
13
|
+
const backend_core_1 = require("@budibase/backend-core");
|
|
14
|
+
const string_templates_1 = require("@budibase/string-templates");
|
|
15
|
+
const types_1 = require("@budibase/types");
|
|
16
|
+
const fp_1 = require("lodash/fp");
|
|
17
|
+
const utils_1 = require("../../utils");
|
|
18
|
+
const integrations_1 = require("../../../integrations");
|
|
19
|
+
const ENV_VAR_PREFIX = "env.";
|
|
20
|
+
function enrichDatasourceWithValues(datasource) {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const cloned = (0, fp_1.cloneDeep)(datasource);
|
|
23
|
+
const env = yield (0, utils_1.getEnvironmentVariables)();
|
|
24
|
+
const processed = (0, string_templates_1.processObjectSync)(cloned, { env }, { onlyFound: true });
|
|
25
|
+
return {
|
|
26
|
+
datasource: processed,
|
|
27
|
+
envVars: env,
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function enrich(datasource) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
const { datasource: response } = yield enrichDatasourceWithValues(datasource);
|
|
34
|
+
return response;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
exports.enrich = enrich;
|
|
38
|
+
function get(datasourceId, opts) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const appDb = backend_core_1.context.getAppDB();
|
|
41
|
+
const datasource = yield appDb.get(datasourceId);
|
|
42
|
+
if (opts === null || opts === void 0 ? void 0 : opts.enriched) {
|
|
43
|
+
return (yield enrichDatasourceWithValues(datasource)).datasource;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return datasource;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
exports.get = get;
|
|
51
|
+
function getWithEnvVars(datasourceId) {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
const appDb = backend_core_1.context.getAppDB();
|
|
54
|
+
const datasource = yield appDb.get(datasourceId);
|
|
55
|
+
return enrichDatasourceWithValues(datasource);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
exports.getWithEnvVars = getWithEnvVars;
|
|
59
|
+
function hasAuthConfigs(datasource) {
|
|
60
|
+
var _a;
|
|
61
|
+
return datasource.source === types_1.SourceName.REST && ((_a = datasource.config) === null || _a === void 0 ? void 0 : _a.authConfigs);
|
|
62
|
+
}
|
|
63
|
+
function useEnvVars(str) {
|
|
64
|
+
if (typeof str !== "string") {
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
const blocks = (0, string_templates_1.findHBSBlocks)(str);
|
|
68
|
+
return blocks.find(block => block.includes(ENV_VAR_PREFIX)) != null;
|
|
69
|
+
}
|
|
70
|
+
function removeSecrets(datasources) {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
const definitions = yield (0, integrations_1.getDefinitions)();
|
|
74
|
+
for (let datasource of datasources) {
|
|
75
|
+
const schema = definitions[datasource.source];
|
|
76
|
+
if (datasource.config) {
|
|
77
|
+
// strip secrets from response, so they don't show in the network request
|
|
78
|
+
if (datasource.config.auth) {
|
|
79
|
+
delete datasource.config.auth;
|
|
80
|
+
}
|
|
81
|
+
// specific to REST datasources, contains passwords
|
|
82
|
+
if (hasAuthConfigs(datasource)) {
|
|
83
|
+
const configs = datasource.config.authConfigs;
|
|
84
|
+
for (let config of configs) {
|
|
85
|
+
if (config.type !== types_1.RestAuthType.BASIC) {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const basic = config.config;
|
|
89
|
+
if (!useEnvVars(basic.password)) {
|
|
90
|
+
basic.password = types_1.PASSWORD_REPLACEMENT;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
// remove general passwords
|
|
95
|
+
for (let key of Object.keys(datasource.config)) {
|
|
96
|
+
if (((_b = (_a = schema.datasource) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.type) === types_1.DatasourceFieldType.PASSWORD &&
|
|
97
|
+
!useEnvVars(datasource.config[key])) {
|
|
98
|
+
datasource.config[key] = types_1.PASSWORD_REPLACEMENT;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return datasources;
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
exports.removeSecrets = removeSecrets;
|
|
107
|
+
function removeSecretSingle(datasource) {
|
|
108
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
109
|
+
return (yield removeSecrets([datasource]))[0];
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
exports.removeSecretSingle = removeSecretSingle;
|
|
113
|
+
function mergeConfigs(update, old) {
|
|
114
|
+
var _a, _b, _c, _d;
|
|
115
|
+
if (!update.config) {
|
|
116
|
+
return update;
|
|
117
|
+
}
|
|
118
|
+
// specific to REST datasources, fix the auth configs again if required
|
|
119
|
+
if (hasAuthConfigs(update)) {
|
|
120
|
+
const configs = update.config.authConfigs;
|
|
121
|
+
const oldConfigs = (_a = old.config) === null || _a === void 0 ? void 0 : _a.authConfigs;
|
|
122
|
+
for (let config of configs) {
|
|
123
|
+
if (config.type !== types_1.RestAuthType.BASIC) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
const basic = config.config;
|
|
127
|
+
const oldBasic = (_b = oldConfigs.find(old => old.name === config.name)) === null || _b === void 0 ? void 0 : _b.config;
|
|
128
|
+
if (basic.password === types_1.PASSWORD_REPLACEMENT) {
|
|
129
|
+
basic.password = oldBasic.password;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// update back to actual passwords for everything else
|
|
134
|
+
for (let [key, value] of Object.entries(update.config)) {
|
|
135
|
+
if (value !== types_1.PASSWORD_REPLACEMENT) {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
if ((_c = old.config) === null || _c === void 0 ? void 0 : _c[key]) {
|
|
139
|
+
update.config[key] = (_d = old.config) === null || _d === void 0 ? void 0 : _d[key];
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
delete update.config[key];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return update;
|
|
146
|
+
}
|
|
147
|
+
exports.mergeConfigs = mergeConfigs;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const datasources = __importStar(require("./datasources"));
|
|
27
|
+
exports.default = Object.assign({}, datasources);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const queries = __importStar(require("./queries"));
|
|
27
|
+
exports.default = Object.assign({}, queries);
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.enrichContext = void 0;
|
|
13
|
+
const utils_1 = require("../../utils");
|
|
14
|
+
const string_templates_1 = require("@budibase/string-templates");
|
|
15
|
+
function enrichContext(fields, inputs = {}) {
|
|
16
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
const enrichedQuery = Array.isArray(fields) ? [] : {};
|
|
18
|
+
if (!fields || !inputs) {
|
|
19
|
+
return enrichedQuery;
|
|
20
|
+
}
|
|
21
|
+
const env = yield (0, utils_1.getEnvironmentVariables)();
|
|
22
|
+
const parameters = Object.assign(Object.assign({}, inputs), { env });
|
|
23
|
+
// enrich the fields with dynamic parameters
|
|
24
|
+
for (let key of Object.keys(fields)) {
|
|
25
|
+
if (fields[key] == null) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if (typeof fields[key] === "object") {
|
|
29
|
+
// enrich nested fields object
|
|
30
|
+
enrichedQuery[key] = yield enrichContext(fields[key], parameters);
|
|
31
|
+
}
|
|
32
|
+
else if (typeof fields[key] === "string") {
|
|
33
|
+
// enrich string value as normal
|
|
34
|
+
enrichedQuery[key] = (0, string_templates_1.processStringSync)(fields[key], parameters, {
|
|
35
|
+
noEscaping: true,
|
|
36
|
+
noHelpers: true,
|
|
37
|
+
escapeNewlines: true,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
enrichedQuery[key] = fields[key];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (enrichedQuery.json ||
|
|
45
|
+
enrichedQuery.customData ||
|
|
46
|
+
enrichedQuery.requestBody) {
|
|
47
|
+
try {
|
|
48
|
+
enrichedQuery.json = JSON.parse(enrichedQuery.json ||
|
|
49
|
+
enrichedQuery.customData ||
|
|
50
|
+
enrichedQuery.requestBody);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
// no json found, ignore
|
|
54
|
+
}
|
|
55
|
+
delete enrichedQuery.customData;
|
|
56
|
+
}
|
|
57
|
+
return enrichedQuery;
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
exports.enrichContext = enrichContext;
|
|
@@ -8,10 +8,14 @@ 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 backend_core_1 = require("@budibase/backend-core");
|
|
13
16
|
const utils_1 = require("../../../db/utils");
|
|
14
17
|
const utils_2 = require("../../../integrations/utils");
|
|
18
|
+
const datasources_1 = __importDefault(require("../datasources"));
|
|
15
19
|
function getAllInternalTables(db) {
|
|
16
20
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17
21
|
if (!db) {
|
|
@@ -26,7 +30,7 @@ function getAllInternalTables(db) {
|
|
|
26
30
|
function getAllExternalTables(datasourceId) {
|
|
27
31
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
32
|
const db = backend_core_1.context.getAppDB();
|
|
29
|
-
const datasource = yield
|
|
33
|
+
const datasource = yield datasources_1.default.get(datasourceId, { enriched: true });
|
|
30
34
|
if (!datasource || !datasource.entities) {
|
|
31
35
|
throw "Datasource is not configured fully.";
|
|
32
36
|
}
|
|
@@ -44,7 +48,7 @@ function getTable(tableId) {
|
|
|
44
48
|
const db = backend_core_1.context.getAppDB();
|
|
45
49
|
if ((0, utils_2.isExternalTable)(tableId)) {
|
|
46
50
|
let { datasourceId, tableName } = (0, utils_2.breakExternalTableId)(tableId);
|
|
47
|
-
const datasource = yield
|
|
51
|
+
const datasource = yield datasources_1.default.get(datasourceId);
|
|
48
52
|
const table = yield getExternalTable(datasourceId, tableName);
|
|
49
53
|
return Object.assign(Object.assign({}, table), { sql: (0, utils_2.isSQL)(datasource) });
|
|
50
54
|
}
|