@budibase/server 2.2.12-alpha.6 → 2.2.12-alpha.60
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.426b225d.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 +5112 -4923
- 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 +27 -21
- 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 +7897 -7537
- 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,27 +1,4 @@
|
|
|
1
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
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -49,13 +26,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
49
26
|
exports.exportView = exports.destroy = exports.filterEvents = exports.calculationEvents = exports.save = exports.fetch = void 0;
|
|
50
27
|
const viewBuilder_1 = __importDefault(require("./viewBuilder"));
|
|
51
28
|
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
52
|
-
const
|
|
29
|
+
const exporters_1 = require("./exporters");
|
|
53
30
|
const utils_1 = require("./utils");
|
|
54
31
|
const row_1 = require("../row");
|
|
55
|
-
const constants_1 = require("../../../constants");
|
|
56
32
|
const backend_core_1 = require("@budibase/backend-core");
|
|
57
33
|
const utils_2 = require("../../../db/utils");
|
|
58
34
|
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
35
|
+
const utils_3 = require("../row/utils");
|
|
59
36
|
const { cloneDeep, isEqual } = require("lodash");
|
|
60
37
|
function fetch(ctx) {
|
|
61
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -160,8 +137,8 @@ function exportView(ctx) {
|
|
|
160
137
|
const viewName = decodeURIComponent(ctx.query.view);
|
|
161
138
|
const view = yield (0, utils_1.getView)(viewName);
|
|
162
139
|
const format = ctx.query.format;
|
|
163
|
-
if (!
|
|
164
|
-
ctx.throw(400, "Format must be specified, either csv or
|
|
140
|
+
if (!(0, exporters_1.isFormat)(format)) {
|
|
141
|
+
ctx.throw(400, "Format must be specified, either csv, json or jsonWithSchema");
|
|
165
142
|
}
|
|
166
143
|
if (view) {
|
|
167
144
|
ctx.params.viewName = viewName;
|
|
@@ -187,35 +164,22 @@ function exportView(ctx) {
|
|
|
187
164
|
if (!schema) {
|
|
188
165
|
schema = table.schema;
|
|
189
166
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
.
|
|
193
|
-
.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
if (row[key] == null) {
|
|
207
|
-
row[key] = "";
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
// Export part
|
|
213
|
-
let headers = Object.keys(schema);
|
|
214
|
-
const exporter = format === "csv" ? exporters.csv : exporters.json;
|
|
215
|
-
const filename = `${viewName}.${format}`;
|
|
216
|
-
// send down the file
|
|
217
|
-
ctx.attachment(filename);
|
|
218
|
-
ctx.body = (0, fileSystem_1.apiFileReturn)(exporter(headers, rows));
|
|
167
|
+
let exportRows = (0, utils_3.cleanExportRows)(rows, schema, format, []);
|
|
168
|
+
if (format === exporters_1.Format.CSV) {
|
|
169
|
+
ctx.attachment(`${viewName}.csv`);
|
|
170
|
+
ctx.body = (0, fileSystem_1.apiFileReturn)((0, exporters_1.csv)(Object.keys(schema), exportRows));
|
|
171
|
+
}
|
|
172
|
+
else if (format === exporters_1.Format.JSON) {
|
|
173
|
+
ctx.attachment(`${viewName}.json`);
|
|
174
|
+
ctx.body = (0, fileSystem_1.apiFileReturn)((0, exporters_1.json)(exportRows));
|
|
175
|
+
}
|
|
176
|
+
else if (format === exporters_1.Format.JSON_WITH_SCHEMA) {
|
|
177
|
+
ctx.attachment(`${viewName}.json`);
|
|
178
|
+
ctx.body = (0, fileSystem_1.apiFileReturn)((0, exporters_1.jsonWithSchema)(schema, exportRows));
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
throw "Format not recognised";
|
|
182
|
+
}
|
|
219
183
|
if (viewName.startsWith(utils_2.DocumentType.TABLE)) {
|
|
220
184
|
yield backend_core_1.events.table.exported(table, format);
|
|
221
185
|
}
|
|
@@ -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/api/routes/table.js
CHANGED
|
@@ -88,10 +88,7 @@ router
|
|
|
88
88
|
* structure, and the "updated", new column name should also be supplied. The schema should also be updated, this field
|
|
89
89
|
* lets the server know that a field hasn't just been deleted, that the data has moved to a new name, this will fix
|
|
90
90
|
* the rows in the table. This functionality is only available for internal tables.
|
|
91
|
-
* @apiParam (Body) {object} [
|
|
92
|
-
* CSV validation endpoint. Send the CSV data to the validation endpoint, then put the results of that call
|
|
93
|
-
* into this property, along with the CSV and a table/rows will be built from it. This is not supported when updating
|
|
94
|
-
* or for external tables.
|
|
91
|
+
* @apiParam (Body) {object[]} [rows] When creating a table using a compatible data source, an array of objects to be imported into the new table can be provided.
|
|
95
92
|
*
|
|
96
93
|
* @apiParamExample {json} Example:
|
|
97
94
|
* {
|
|
@@ -120,15 +117,7 @@ router
|
|
|
120
117
|
* "old": "columnName",
|
|
121
118
|
* "updated": "newColumnName",
|
|
122
119
|
* },
|
|
123
|
-
* "
|
|
124
|
-
* "csvString": "column\nvalue",
|
|
125
|
-
* "primaryDisplay": "column",
|
|
126
|
-
* "schema": {
|
|
127
|
-
* "column": {
|
|
128
|
-
* "type": "string"
|
|
129
|
-
* }
|
|
130
|
-
* }
|
|
131
|
-
* }
|
|
120
|
+
* "rows": []
|
|
132
121
|
* }
|
|
133
122
|
*
|
|
134
123
|
* @apiSuccess {object} table The response body will contain the table structure after being cleaned up and
|
|
@@ -137,27 +126,9 @@ router
|
|
|
137
126
|
.post("/api/tables",
|
|
138
127
|
// allows control over updating a table
|
|
139
128
|
(0, resourceId_1.bodyResource)("_id"), (0, authorized_1.default)(BUILDER), (0, validators_1.tableValidator)(), tableController.save)
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
* @apiGroup tables
|
|
144
|
-
* @apiPermission builder
|
|
145
|
-
* @apiDescription When creating a new table, or importing a CSV to an existing table the CSV must be validated and
|
|
146
|
-
* converted into a Budibase schema; this endpoint does this.
|
|
147
|
-
*
|
|
148
|
-
* @apiParam (Body) {string} csvString The CSV which is to be validated as a string.
|
|
149
|
-
* @apiParam (Body) {object} [schema] When a CSV has been validated it is possible to re-validate after changing the
|
|
150
|
-
* type of a field, by default everything will be strings as there is no way to infer types. The returned schema can
|
|
151
|
-
* be updated and then returned to the endpoint to re-validate and check if the type will work for the CSV, e.g.
|
|
152
|
-
* using a number instead of strings.
|
|
153
|
-
* @apiParam (Body) {string} [tableId] If importing data to an existing table this will pull the current table and
|
|
154
|
-
* remove any fields from the CSV schema which do not exist on the table/don't match the type of the table. When
|
|
155
|
-
* importing a CSV to an existing table only fields that are present on the table can be imported.
|
|
156
|
-
*
|
|
157
|
-
* @apiSuccess {object} schema The response body will contain a "schema" object that represents the schema found for
|
|
158
|
-
* the CSV - this will be in the same format used for table schema.s
|
|
159
|
-
*/
|
|
160
|
-
.post("/api/tables/csv/validate", (0, authorized_1.default)(BUILDER), tableController.validateCSVSchema)
|
|
129
|
+
.post("/api/convert/csvToJson", (0, authorized_1.default)(BUILDER), tableController.csvToJson)
|
|
130
|
+
.post("/api/tables/validateNewTableImport", (0, authorized_1.default)(BUILDER), tableController.validateNewTableImport)
|
|
131
|
+
.post("/api/tables/validateExistingTableImport", (0, authorized_1.default)(BUILDER), tableController.validateExistingTableImport)
|
|
161
132
|
/**
|
|
162
133
|
* @api {post} /api/tables/:tableId/:revId Delete a table
|
|
163
134
|
* @apiName Delete a table
|
|
@@ -184,9 +155,7 @@ router
|
|
|
184
155
|
*
|
|
185
156
|
* @apiParam {string} tableId The ID of the table which the data should be imported to.
|
|
186
157
|
*
|
|
187
|
-
* @apiParam (Body) {object}
|
|
188
|
-
* a CSV, it will have the "schema" returned from the CSV validation endpoint and the "csvString" which is to be
|
|
189
|
-
* turned into rows.
|
|
158
|
+
* @apiParam (Body) {object[]} rows An array of objects representing the rows to be imported, key-value pairs not matching the table schema will be ignored.
|
|
190
159
|
*
|
|
191
160
|
* @apiSuccess {string} message A message stating that the data was imported successfully.
|
|
192
161
|
*/
|
|
@@ -22,7 +22,7 @@ function tableValidator() {
|
|
|
22
22
|
schema: joi_1.default.object().required(),
|
|
23
23
|
name: joi_1.default.string().required(),
|
|
24
24
|
views: joi_1.default.object(),
|
|
25
|
-
|
|
25
|
+
rows: joi_1.default.array(),
|
|
26
26
|
}).unknown(true));
|
|
27
27
|
}
|
|
28
28
|
exports.tableValidator = tableValidator;
|
package/dist/app.js
CHANGED
|
@@ -69,6 +69,7 @@ app.use((0, koa_body_1.default)({
|
|
|
69
69
|
enableTypes: ["json", "form", "text"],
|
|
70
70
|
parsedMethods: ["POST", "PUT", "PATCH", "DELETE"],
|
|
71
71
|
}));
|
|
72
|
+
app.use(backend_core_1.middleware.logging);
|
|
72
73
|
if (environment_1.default.isProd()) {
|
|
73
74
|
environment_1.default._set("NODE_ENV", "production");
|
|
74
75
|
Sentry.init();
|
|
@@ -134,6 +134,7 @@ function externalTrigger(automation, params, { getResponses } = {}) {
|
|
|
134
134
|
}
|
|
135
135
|
const data = { automation, event: params };
|
|
136
136
|
if (getResponses) {
|
|
137
|
+
data.event = Object.assign(Object.assign({}, data.event), { appId: backend_core_1.context.getAppId(), automation });
|
|
137
138
|
return utils.processEvent({ data });
|
|
138
139
|
}
|
|
139
140
|
else {
|
|
@@ -5,9 +5,3 @@
|
|
|
5
5
|
* be exposed for use by other services. *
|
|
6
6
|
********************************************/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.AuthType = void 0;
|
|
9
|
-
var AuthType;
|
|
10
|
-
(function (AuthType) {
|
|
11
|
-
AuthType["BASIC"] = "basic";
|
|
12
|
-
AuthType["BEARER"] = "bearer";
|
|
13
|
-
})(AuthType = exports.AuthType || (exports.AuthType = {}));
|
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 => {
|
|
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
const types_1 = require("@budibase/types");
|
|
13
|
-
const
|
|
13
|
+
const backend_core_1 = require("@budibase/backend-core");
|
|
14
14
|
const SCHEMA = {
|
|
15
15
|
docs: "https://docs.couchdb.org/en/stable/",
|
|
16
16
|
friendlyName: "CouchDB",
|
|
@@ -37,6 +37,15 @@ const SCHEMA = {
|
|
|
37
37
|
update: {
|
|
38
38
|
type: types_1.QueryType.JSON,
|
|
39
39
|
},
|
|
40
|
+
get: {
|
|
41
|
+
type: types_1.QueryType.FIELDS,
|
|
42
|
+
fields: {
|
|
43
|
+
id: {
|
|
44
|
+
type: types_1.DatasourceFieldType.STRING,
|
|
45
|
+
required: true,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
40
49
|
delete: {
|
|
41
50
|
type: types_1.QueryType.FIELDS,
|
|
42
51
|
fields: {
|
|
@@ -51,14 +60,12 @@ const SCHEMA = {
|
|
|
51
60
|
class CouchDBIntegration {
|
|
52
61
|
constructor(config) {
|
|
53
62
|
this.config = config;
|
|
54
|
-
this.client =
|
|
63
|
+
this.client = backend_core_1.db.DatabaseWithConnection(config.database, config.url);
|
|
55
64
|
}
|
|
56
65
|
query(command, errorMsg, query) {
|
|
57
66
|
return __awaiter(this, void 0, void 0, function* () {
|
|
58
67
|
try {
|
|
59
|
-
|
|
60
|
-
yield this.client.close();
|
|
61
|
-
return response;
|
|
68
|
+
return yield this.client[command](query.id || query.json);
|
|
62
69
|
}
|
|
63
70
|
catch (err) {
|
|
64
71
|
console.error(errorMsg, err);
|
|
@@ -66,22 +73,41 @@ class CouchDBIntegration {
|
|
|
66
73
|
}
|
|
67
74
|
});
|
|
68
75
|
}
|
|
76
|
+
parse(query) {
|
|
77
|
+
return typeof query.json === "string" ? JSON.parse(query.json) : query.json;
|
|
78
|
+
}
|
|
69
79
|
create(query) {
|
|
70
80
|
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
|
|
81
|
+
const parsed = this.parse(query);
|
|
82
|
+
return this.query("post", "Error writing to couchDB", { json: parsed });
|
|
72
83
|
});
|
|
73
84
|
}
|
|
74
85
|
read(query) {
|
|
75
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
+
const parsed = this.parse(query);
|
|
76
88
|
const result = yield this.query("allDocs", "Error querying couchDB", {
|
|
77
|
-
json: Object.assign({ include_docs: true },
|
|
89
|
+
json: Object.assign({ include_docs: true }, parsed),
|
|
78
90
|
});
|
|
79
91
|
return result.rows.map((row) => row.doc);
|
|
80
92
|
});
|
|
81
93
|
}
|
|
82
94
|
update(query) {
|
|
83
95
|
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
-
|
|
96
|
+
const parsed = this.parse(query);
|
|
97
|
+
if (!(parsed === null || parsed === void 0 ? void 0 : parsed._rev) && (parsed === null || parsed === void 0 ? void 0 : parsed._id)) {
|
|
98
|
+
const oldDoc = yield this.get({ id: parsed._id });
|
|
99
|
+
parsed._rev = oldDoc._rev;
|
|
100
|
+
}
|
|
101
|
+
return this.query("put", "Error updating couchDB document", {
|
|
102
|
+
json: parsed,
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
get(query) {
|
|
107
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
return this.query("get", "Error retrieving couchDB document by ID", {
|
|
109
|
+
id: query.id,
|
|
110
|
+
});
|
|
85
111
|
});
|
|
86
112
|
}
|
|
87
113
|
delete(query) {
|
|
@@ -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) {
|
|
@@ -76,11 +76,11 @@ const SCHEMA = {
|
|
|
76
76
|
delete: {
|
|
77
77
|
type: types_1.QueryType.FIELDS,
|
|
78
78
|
fields: {
|
|
79
|
-
|
|
79
|
+
id: {
|
|
80
80
|
type: types_1.DatasourceFieldType.STRING,
|
|
81
81
|
required: true,
|
|
82
82
|
},
|
|
83
|
-
|
|
83
|
+
index: {
|
|
84
84
|
type: types_1.DatasourceFieldType.STRING,
|
|
85
85
|
required: true,
|
|
86
86
|
},
|
|
@@ -162,8 +162,12 @@ class ElasticSearchIntegration {
|
|
|
162
162
|
}
|
|
163
163
|
delete(query) {
|
|
164
164
|
return __awaiter(this, void 0, void 0, function* () {
|
|
165
|
+
const { id, index } = query;
|
|
165
166
|
try {
|
|
166
|
-
const result = yield this.client.delete(
|
|
167
|
+
const result = yield this.client.delete({
|
|
168
|
+
id,
|
|
169
|
+
index,
|
|
170
|
+
});
|
|
167
171
|
return result.body;
|
|
168
172
|
}
|
|
169
173
|
catch (err) {
|