@budibase/server 2.2.25 → 2.2.27-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dockerfile +1 -1
- package/__mocks__/aws-sdk.ts +19 -0
- package/__mocks__/node-fetch.ts +80 -0
- package/builder/assets/{bb-emblem.4e4717da.svg → bb-emblem.05f7ae7a.svg} +1 -1
- package/builder/assets/bg.29e85dd5.png +0 -0
- package/builder/assets/bulgaria.bd68393d.png +0 -0
- package/builder/assets/covanta.72c46c1e.png +0 -0
- package/builder/assets/index.3dd03883.css +6 -0
- package/builder/assets/index.f9b8b175.js +1802 -0
- package/builder/assets/schnellecke.cf1837a8.png +0 -0
- package/builder/index.html +3 -3
- package/coverage/clover.xml +6618 -6528
- package/coverage/coverage-final.json +282 -276
- package/coverage/lcov-report/index.html +489 -444
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/application.ts.html +362 -266
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +61 -61
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +93 -81
- package/coverage/lcov-report/src/api/controllers/component.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +122 -98
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +21 -18
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +21 -21
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +142 -196
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +28 -28
- package/coverage/lcov-report/src/api/controllers/index.html +115 -115
- package/coverage/lcov-report/src/api/controllers/integration.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/layout.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/metadata.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/migrations.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/permission.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/plugin/file.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +62 -62
- package/coverage/lcov-report/src/api/controllers/plugin/index.html +72 -72
- package/coverage/lcov-report/src/api/controllers/plugin/index.ts.html +150 -135
- package/coverage/lcov-report/src/api/controllers/plugin/npm.ts.html +56 -56
- package/coverage/lcov-report/src/api/controllers/plugin/uploaders.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/plugin/url.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/plugin/utils.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/public/applications.ts.html +75 -24
- package/coverage/lcov-report/src/api/controllers/public/index.html +58 -58
- package/coverage/lcov-report/src/api/controllers/public/mapping/applications.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.html +25 -25
- package/coverage/lcov-report/src/api/controllers/public/mapping/index.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/public/mapping/queries.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/public/mapping/rows.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/mapping/tables.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/mapping/users.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/public/queries.ts.html +15 -15
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +21 -21
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +21 -21
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +27 -27
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/index.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/index.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.html +14 -14
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/index.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/query/import/sources/base/openapi.ts.html +8 -8
- package/coverage/lcov-report/src/api/controllers/query/import/sources/curl.ts.html +12 -12
- package/coverage/lcov-report/src/api/controllers/query/import/sources/index.html +23 -23
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi2.ts.html +16 -16
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/query/index.html +20 -20
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +131 -107
- package/coverage/lcov-report/src/api/controllers/query/validation.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/role.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/routing.ts.html +10 -10
- package/coverage/lcov-report/src/api/controllers/row/ExternalRequest.ts.html +56 -41
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +87 -57
- package/coverage/lcov-report/src/api/controllers/row/index.html +66 -66
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +37 -37
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +181 -106
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +146 -146
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +44 -35
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +156 -39
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +31 -31
- package/coverage/lcov-report/src/api/controllers/script.ts.html +19 -19
- package/coverage/lcov-report/src/api/controllers/static/index.html +18 -18
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +56 -71
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +60 -60
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +56 -50
- package/coverage/lcov-report/src/api/controllers/table/index.html +48 -48
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +157 -70
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +58 -61
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +109 -112
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +21 -21
- package/coverage/lcov-report/src/api/controllers/user.ts.html +159 -135
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +64 -19
- package/coverage/lcov-report/src/api/controllers/view/index.html +38 -38
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +97 -133
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +31 -31
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +37 -37
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +69 -63
- package/coverage/lcov-report/src/api/index.html +15 -15
- package/coverage/lcov-report/src/api/index.ts.html +40 -40
- package/coverage/lcov-report/src/api/routes/analytics.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/apikeys.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/application.ts.html +46 -13
- package/coverage/lcov-report/src/api/routes/auth.ts.html +9 -9
- package/coverage/lcov-report/src/api/routes/automation.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/backup.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/cloud.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/component.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/datasource.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/deploy.ts.html +11 -14
- package/coverage/lcov-report/src/api/routes/dev.ts.html +17 -17
- package/coverage/lcov-report/src/api/routes/index.html +68 -68
- package/coverage/lcov-report/src/api/routes/index.ts.html +49 -40
- package/coverage/lcov-report/src/api/routes/integration.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/layout.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/metadata.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/migrations.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/permission.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/plugin.ts.html +10 -10
- package/coverage/lcov-report/src/api/routes/public/applications.ts.html +147 -15
- package/coverage/lcov-report/src/api/routes/public/index.html +27 -27
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +60 -60
- package/coverage/lcov-report/src/api/routes/public/middleware/index.html +15 -15
- package/coverage/lcov-report/src/api/routes/public/middleware/mapper.ts.html +28 -16
- package/coverage/lcov-report/src/api/routes/public/queries.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/public/rows.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/public/tables.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/public/tests/index.html +7 -7
- package/coverage/lcov-report/src/api/routes/public/tests/utils.ts.html +5 -5
- package/coverage/lcov-report/src/api/routes/public/users.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/public/utils/Endpoint.ts.html +21 -21
- package/coverage/lcov-report/src/api/routes/public/utils/index.html +5 -5
- package/coverage/lcov-report/src/api/routes/query.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/role.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/routing.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/row.ts.html +14 -14
- package/coverage/lcov-report/src/api/routes/screen.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/script.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/static.ts.html +18 -18
- package/coverage/lcov-report/src/api/routes/table.ts.html +29 -98
- package/coverage/lcov-report/src/api/routes/templates.ts.html +11 -11
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +27 -27
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.html +23 -23
- package/coverage/lcov-report/src/api/routes/tests/utilities/index.ts.html +33 -33
- package/coverage/lcov-report/src/api/routes/user.ts.html +12 -12
- package/coverage/lcov-report/src/api/routes/utils/index.html +3 -3
- package/coverage/lcov-report/src/api/routes/utils/validators.ts.html +44 -44
- package/coverage/lcov-report/src/api/routes/view.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/webhook.ts.html +13 -13
- package/coverage/lcov-report/src/app.ts.html +53 -47
- package/coverage/lcov-report/src/automations/actions.ts.html +31 -31
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +127 -55
- package/coverage/lcov-report/src/automations/bullboard.ts.html +19 -19
- package/coverage/lcov-report/src/automations/index.html +54 -54
- package/coverage/lcov-report/src/automations/index.ts.html +23 -23
- package/coverage/lcov-report/src/automations/logging/index.html +3 -3
- package/coverage/lcov-report/src/automations/logging/index.ts.html +15 -15
- package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
- package/coverage/lcov-report/src/automations/steps/createRow.ts.html +9 -9
- package/coverage/lcov-report/src/automations/steps/delay.ts.html +7 -7
- package/coverage/lcov-report/src/automations/steps/deleteRow.ts.html +9 -9
- package/coverage/lcov-report/src/automations/steps/discord.ts.html +33 -33
- package/coverage/lcov-report/src/automations/steps/executeQuery.ts.html +35 -35
- package/coverage/lcov-report/src/automations/steps/executeScript.ts.html +31 -31
- package/coverage/lcov-report/src/automations/steps/filter.ts.html +12 -12
- package/coverage/lcov-report/src/automations/steps/index.html +129 -129
- package/coverage/lcov-report/src/automations/steps/integromat.ts.html +10 -10
- package/coverage/lcov-report/src/automations/steps/loop.ts.html +5 -5
- package/coverage/lcov-report/src/automations/steps/outgoingWebhook.ts.html +19 -19
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +43 -43
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +19 -19
- package/coverage/lcov-report/src/automations/steps/slack.ts.html +10 -10
- package/coverage/lcov-report/src/automations/steps/updateRow.ts.html +12 -12
- package/coverage/lcov-report/src/automations/steps/utils.ts.html +18 -18
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +15 -15
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +32 -32
- package/coverage/lcov-report/src/automations/triggerInfo/app.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/cron.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/index.html +17 -17
- package/coverage/lcov-report/src/automations/triggerInfo/index.ts.html +10 -10
- package/coverage/lcov-report/src/automations/triggerInfo/rowDeleted.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/rowSaved.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/rowUpdated.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggerInfo/webhook.ts.html +6 -6
- package/coverage/lcov-report/src/automations/triggers.ts.html +53 -38
- package/coverage/lcov-report/src/automations/utils.ts.html +80 -80
- package/coverage/lcov-report/src/constants/index.html +19 -19
- package/coverage/lcov-report/src/constants/index.ts.html +103 -103
- package/coverage/lcov-report/src/constants/layouts.ts.html +9 -9
- package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +45 -45
- package/coverage/lcov-report/src/db/defaultData/employeeImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/defaultData/expensesImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/defaultData/index.html +43 -43
- package/coverage/lcov-report/src/db/defaultData/inventoryImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/defaultData/jobsImport.ts.html +8 -8
- package/coverage/lcov-report/src/db/dynamoClient.ts.html +26 -26
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +13 -13
- package/coverage/lcov-report/src/db/index.html +34 -34
- package/coverage/lcov-report/src/db/index.ts.html +10 -10
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +38 -38
- package/coverage/lcov-report/src/db/linkedRows/LinkDocument.ts.html +7 -7
- package/coverage/lcov-report/src/db/linkedRows/index.html +37 -37
- package/coverage/lcov-report/src/db/linkedRows/index.ts.html +40 -40
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +25 -25
- package/coverage/lcov-report/src/db/newid.ts.html +5 -5
- package/coverage/lcov-report/src/db/utils.ts.html +90 -90
- package/coverage/lcov-report/src/definitions/automations.ts.html +9 -6
- package/coverage/lcov-report/src/definitions/index.html +5 -20
- package/coverage/lcov-report/src/environment.ts.html +44 -32
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +14 -14
- package/coverage/lcov-report/src/events/BudibaseEmitter.ts.html +8 -8
- package/coverage/lcov-report/src/events/index.html +20 -20
- package/coverage/lcov-report/src/events/index.ts.html +7 -7
- package/coverage/lcov-report/src/events/utils.ts.html +11 -11
- package/coverage/lcov-report/src/index.html +47 -47
- package/coverage/lcov-report/src/index.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/airtable.ts.html +10 -10
- package/coverage/lcov-report/src/integrations/arangodb.ts.html +9 -9
- package/coverage/lcov-report/src/integrations/base/index.html +29 -29
- package/coverage/lcov-report/src/integrations/base/query.ts.html +15 -9
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +38 -38
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +23 -23
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +109 -31
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +17 -17
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +27 -15
- package/coverage/lcov-report/src/integrations/firebase.ts.html +12 -12
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +42 -42
- package/coverage/lcov-report/src/integrations/index.html +130 -130
- package/coverage/lcov-report/src/integrations/index.ts.html +50 -62
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +31 -31
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +421 -289
- package/coverage/lcov-report/src/integrations/mysql.ts.html +28 -28
- package/coverage/lcov-report/src/integrations/oracle.ts.html +31 -31
- package/coverage/lcov-report/src/integrations/postgres.ts.html +54 -54
- package/coverage/lcov-report/src/integrations/queries/index.html +19 -19
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +24 -159
- package/coverage/lcov-report/src/integrations/redis.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/rest.ts.html +43 -52
- package/coverage/lcov-report/src/integrations/s3.ts.html +17 -17
- package/coverage/lcov-report/src/integrations/snowflake.ts.html +15 -15
- package/coverage/lcov-report/src/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/src/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/src/integrations/utils.ts.html +54 -54
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +11 -11
- package/coverage/lcov-report/src/middleware/authorized.ts.html +49 -37
- package/coverage/lcov-report/src/middleware/builder.ts.html +26 -26
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +50 -47
- package/coverage/lcov-report/src/middleware/index.html +40 -40
- package/coverage/lcov-report/src/middleware/joi-validator.ts.html +10 -10
- package/coverage/lcov-report/src/middleware/publicApi.ts.html +9 -9
- package/coverage/lcov-report/src/middleware/resourceId.ts.html +23 -23
- package/coverage/lcov-report/src/middleware/selfhost.ts.html +2 -2
- package/coverage/lcov-report/src/middleware/utils.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/functions/appUrls.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/backfill/app/automations.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/datasources.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/index.html +31 -31
- package/coverage/lcov-report/src/migrations/functions/backfill/app/layouts.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/backfill/app/queries.ts.html +13 -13
- package/coverage/lcov-report/src/migrations/functions/backfill/app/roles.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/screens.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/app/tables.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/backfill/app.ts.html +21 -21
- package/coverage/lcov-report/src/migrations/functions/backfill/global/configs.ts.html +17 -14
- package/coverage/lcov-report/src/migrations/functions/backfill/global/index.html +19 -19
- package/coverage/lcov-report/src/migrations/functions/backfill/global/quotas.ts.html +9 -9
- package/coverage/lcov-report/src/migrations/functions/backfill/global/users.ts.html +13 -13
- package/coverage/lcov-report/src/migrations/functions/backfill/global.ts.html +23 -23
- package/coverage/lcov-report/src/migrations/functions/backfill/index.html +26 -26
- package/coverage/lcov-report/src/migrations/functions/backfill/index.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/backfill/installation.ts.html +14 -14
- package/coverage/lcov-report/src/migrations/functions/index.html +18 -18
- package/coverage/lcov-report/src/migrations/functions/syncQuotas.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/tableSettings.ts.html +11 -11
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.html +11 -11
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/index.ts.html +3 -3
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncApps.ts.html +6 -6
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncPlugins.ts.html +8 -8
- package/coverage/lcov-report/src/migrations/functions/usageQuotas/syncRows.ts.html +7 -7
- package/coverage/lcov-report/src/migrations/functions/userEmailViewCasing.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/index.html +15 -15
- package/coverage/lcov-report/src/migrations/index.ts.html +43 -43
- package/coverage/lcov-report/src/migrations/tests/helpers.ts.html +4 -4
- package/coverage/lcov-report/src/migrations/tests/index.html +6 -6
- package/coverage/lcov-report/src/migrations/tests/structures.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/app/applications/index.html +20 -20
- package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
- package/coverage/lcov-report/src/sdk/app/applications/utils.ts.html +15 -15
- package/coverage/lcov-report/src/sdk/app/automations/index.html +7 -7
- package/coverage/lcov-report/src/sdk/app/automations/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/app/automations/webhook.ts.html +8 -8
- package/coverage/lcov-report/src/sdk/app/backups/constants.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/app/backups/exports.ts.html +30 -30
- package/coverage/lcov-report/src/sdk/app/backups/imports.ts.html +45 -57
- package/coverage/lcov-report/src/sdk/app/backups/index.html +42 -42
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +7 -7
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
- package/coverage/lcov-report/src/sdk/app/datasources/datasources.ts.html +493 -0
- package/coverage/lcov-report/src/sdk/app/datasources/index.html +131 -0
- package/coverage/lcov-report/src/sdk/app/datasources/index.ts.html +100 -0
- package/coverage/lcov-report/src/sdk/app/queries/index.html +131 -0
- package/coverage/lcov-report/src/{utilities/statusCodes.ts.html → sdk/app/queries/index.ts.html} +22 -28
- package/coverage/lcov-report/src/{definitions/datasource.ts.html → sdk/app/queries/queries.ts.html} +82 -82
- package/coverage/lcov-report/src/sdk/app/rows/attachments.ts.html +8 -8
- package/coverage/lcov-report/src/sdk/app/rows/index.html +8 -8
- package/coverage/lcov-report/src/sdk/app/rows/index.ts.html +6 -6
- package/coverage/lcov-report/src/sdk/app/rows/rows.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/tables/index.html +15 -15
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +29 -20
- package/coverage/lcov-report/src/sdk/index.html +7 -7
- package/coverage/lcov-report/src/sdk/index.ts.html +24 -12
- package/coverage/lcov-report/src/sdk/users/index.html +10 -10
- package/coverage/lcov-report/src/sdk/users/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +35 -35
- package/coverage/lcov-report/src/sdk/utils/index.html +116 -0
- package/coverage/lcov-report/src/sdk/utils/index.ts.html +133 -0
- package/coverage/lcov-report/src/startup.ts.html +48 -63
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +218 -152
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +20 -20
- package/coverage/lcov-report/src/tests/utilities/index.html +33 -33
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +2 -2
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +235 -46
- package/coverage/lcov-report/src/threads/automation.ts.html +212 -251
- package/coverage/lcov-report/src/threads/index.html +46 -46
- package/coverage/lcov-report/src/threads/index.ts.html +39 -39
- package/coverage/lcov-report/src/threads/query.ts.html +140 -101
- package/coverage/lcov-report/src/threads/utils.ts.html +29 -29
- package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/centralPath.ts.html +11 -11
- package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +20 -20
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +601 -0
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +88 -28
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +20 -1049
- package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +277 -0
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +9 -9
- package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
- package/coverage/lcov-report/src/utilities/global.ts.html +60 -60
- package/coverage/lcov-report/src/utilities/index.html +89 -119
- package/coverage/lcov-report/src/utilities/index.ts.html +40 -172
- package/coverage/lcov-report/src/utilities/redis.ts.html +38 -38
- package/coverage/lcov-report/src/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/src/utilities/routing/index.ts.html +5 -5
- package/coverage/lcov-report/src/utilities/rowProcessor/index.html +34 -34
- package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +102 -75
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +9 -9
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +54 -54
- package/coverage/lcov-report/src/utilities/{csvParser.ts.html → schema.ts.html} +174 -234
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +33 -33
- package/coverage/lcov-report/src/utilities/security.ts.html +13 -13
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +9 -9
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +38 -38
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/users.ts.html +7 -7
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +89 -62
- package/coverage/lcov-report/src/watch.ts.html +20 -20
- package/coverage/lcov-report/src/websocket.ts.html +15 -15
- package/coverage/lcov.info +13499 -12800
- package/dist/api/controllers/application.js +120 -109
- package/dist/api/controllers/cloud.js +6 -2
- package/dist/api/controllers/datasource.js +24 -15
- package/dist/api/controllers/deploy/index.js +43 -60
- package/dist/api/controllers/plugin/index.js +6 -6
- package/dist/api/controllers/public/applications.js +22 -1
- package/dist/api/controllers/query/index.js +23 -13
- package/dist/api/controllers/row/ExternalRequest.js +12 -4
- package/dist/api/controllers/row/external.js +20 -13
- package/dist/api/controllers/row/internal.js +52 -27
- package/dist/api/controllers/row/staticFormula.js +1 -1
- package/dist/api/controllers/row/utils.js +35 -3
- package/dist/api/controllers/static/index.js +47 -47
- package/dist/api/controllers/static/templates/BudibaseApp.svelte +0 -1
- package/dist/api/controllers/table/external.js +16 -35
- package/dist/api/controllers/table/index.js +44 -15
- package/dist/api/controllers/table/internal.js +6 -7
- package/dist/api/controllers/table/utils.js +9 -9
- package/dist/api/controllers/user.js +14 -6
- package/dist/api/controllers/view/exporters.js +22 -6
- package/dist/api/controllers/view/index.js +23 -58
- package/dist/api/controllers/view/viewBuilder.js +15 -2
- package/dist/api/controllers/webhook.js +45 -43
- package/dist/api/routes/analytics.js +2 -1
- package/dist/api/routes/apikeys.js +2 -1
- package/dist/api/routes/application.js +5 -1
- package/dist/api/routes/auth.js +2 -1
- package/dist/api/routes/automation.js +2 -1
- package/dist/api/routes/backup.js +2 -1
- package/dist/api/routes/cloud.js +2 -1
- package/dist/api/routes/component.js +2 -1
- package/dist/api/routes/datasource.js +2 -1
- package/dist/api/routes/deploy.js +3 -3
- package/dist/api/routes/dev.js +2 -1
- package/dist/api/routes/index.js +2 -0
- package/dist/api/routes/integration.js +2 -1
- package/dist/api/routes/layout.js +2 -1
- package/dist/api/routes/metadata.js +2 -1
- package/dist/api/routes/migrations.js +2 -1
- package/dist/api/routes/permission.js +2 -1
- package/dist/api/routes/public/applications.js +37 -0
- package/dist/api/routes/public/middleware/mapper.js +3 -0
- package/dist/api/routes/query.js +2 -1
- package/dist/api/routes/role.js +2 -1
- package/dist/api/routes/routing.js +2 -1
- package/dist/api/routes/row.js +2 -2
- package/dist/api/routes/screen.js +2 -1
- package/dist/api/routes/script.js +2 -1
- package/dist/api/routes/static.js +6 -5
- package/dist/api/routes/table.js +8 -38
- package/dist/api/routes/templates.js +2 -1
- package/dist/api/routes/user.js +2 -1
- package/dist/api/routes/utils/validators.js +1 -1
- package/dist/api/routes/view.js +2 -1
- package/dist/api/routes/webhook.js +2 -1
- package/dist/app.js +9 -7
- package/dist/automations/automationUtils.js +26 -1
- package/dist/automations/logging/index.js +5 -25
- package/dist/automations/triggers.js +1 -0
- package/dist/db/index.js +5 -2
- package/dist/db/linkedRows/LinkController.js +2 -1
- package/dist/db/linkedRows/LinkDocument.js +2 -1
- package/dist/db/newid.js +4 -2
- package/dist/definitions/datasource.js +0 -6
- package/dist/environment.js +7 -2
- package/dist/events/AutomationEmitter.js +2 -1
- package/dist/events/BudibaseEmitter.js +2 -1
- package/dist/events/index.js +2 -1
- package/dist/index.js +2 -2
- package/dist/integrations/base/query.js +7 -2
- package/dist/integrations/base/sqlTable.js +14 -14
- package/dist/integrations/couchdb.js +34 -8
- package/dist/integrations/dynamodb.js +8 -5
- package/dist/integrations/elasticsearch.js +7 -3
- package/dist/integrations/googlesheets.js +1 -1
- package/dist/integrations/index.js +6 -7
- package/dist/integrations/mongodb.js +311 -271
- package/dist/integrations/mysql.js +2 -2
- package/dist/integrations/queries/sql.js +73 -100
- package/dist/integrations/rest.js +16 -18
- package/dist/middleware/authorized.js +2 -1
- package/dist/middleware/builder.js +4 -2
- package/dist/middleware/currentapp.js +6 -3
- package/dist/middleware/publicApi.js +4 -2
- package/dist/middleware/selfhost.js +4 -1
- package/dist/migrations/functions/backfill/global/configs.js +4 -4
- package/dist/package.json +12 -8
- package/dist/sdk/app/backups/imports.js +2 -6
- package/dist/sdk/app/datasources/datasources.js +147 -0
- package/dist/sdk/app/datasources/index.js +27 -0
- package/dist/sdk/app/queries/index.js +27 -0
- package/dist/sdk/app/queries/queries.js +60 -0
- package/dist/sdk/app/tables/index.js +6 -2
- package/dist/sdk/index.js +4 -0
- package/dist/sdk/utils/index.js +29 -0
- package/dist/startup.js +17 -17
- package/dist/threads/automation.js +22 -35
- package/dist/threads/index.js +4 -4
- package/dist/threads/query.js +27 -13
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/fileSystem/app.js +97 -0
- package/dist/utilities/fileSystem/clientLibrary.js +3 -3
- package/dist/utilities/fileSystem/filesystem.js +184 -0
- package/dist/utilities/fileSystem/index.js +18 -342
- package/dist/utilities/fileSystem/plugin.js +66 -0
- package/dist/utilities/fileSystem/template.js +47 -0
- package/dist/utilities/index.js +1 -44
- package/dist/utilities/rowProcessor/index.js +12 -4
- package/dist/utilities/schema.js +108 -0
- package/dist/utilities/scriptRunner.js +2 -1
- package/dist/utilities/statusCodes.js +2 -1
- package/dist/utilities/workerRequests.js +2 -0
- package/dist/watch.js +2 -25
- package/jest.config.ts +5 -2
- package/package.json +13 -9
- package/scripts/dev/manage.js +3 -2
- package/specs/openapi.json +84 -0
- package/specs/openapi.yaml +53 -0
- package/specs/resources/application.js +19 -0
- package/src/api/controllers/application.ts +142 -110
- package/src/api/controllers/auth.ts +2 -2
- package/src/api/controllers/cloud.ts +10 -6
- package/src/api/controllers/datasource.ts +33 -25
- package/src/api/controllers/deploy/Deployment.ts +1 -0
- package/src/api/controllers/deploy/index.ts +40 -58
- package/src/api/controllers/plugin/index.ts +14 -9
- package/src/api/controllers/public/applications.ts +17 -0
- package/src/api/controllers/query/index.ts +49 -41
- package/src/api/controllers/row/ExternalRequest.ts +8 -3
- package/src/api/controllers/row/external.ts +24 -14
- package/src/api/controllers/row/internal.ts +66 -41
- package/src/api/controllers/row/staticFormula.ts +5 -2
- package/src/api/controllers/row/utils.ts +42 -3
- package/src/api/controllers/static/index.ts +22 -27
- package/src/api/controllers/static/templates/BudibaseApp.svelte +0 -1
- package/src/api/controllers/table/external.ts +18 -16
- package/src/api/controllers/table/index.ts +46 -17
- package/src/api/controllers/table/internal.ts +6 -7
- package/src/api/controllers/table/utils.ts +12 -13
- package/src/api/controllers/user.ts +21 -13
- package/src/api/controllers/view/exporters.ts +20 -5
- package/src/api/controllers/view/index.ts +30 -42
- package/src/api/controllers/view/tests/viewBuilder.spec.js +1 -1
- package/src/api/controllers/view/viewBuilder.ts +1 -1
- package/src/api/controllers/webhook.ts +48 -46
- package/src/api/routes/analytics.ts +1 -1
- package/src/api/routes/apikeys.ts +1 -1
- package/src/api/routes/application.ts +12 -1
- package/src/api/routes/auth.ts +1 -1
- package/src/api/routes/automation.ts +1 -1
- package/src/api/routes/backup.ts +1 -1
- package/src/api/routes/cloud.ts +1 -1
- package/src/api/routes/component.ts +1 -1
- package/src/api/routes/datasource.ts +1 -1
- package/src/api/routes/deploy.ts +1 -2
- package/src/api/routes/dev.ts +1 -1
- package/src/api/routes/index.ts +6 -3
- package/src/api/routes/integration.ts +1 -1
- package/src/api/routes/layout.ts +1 -1
- package/src/api/routes/metadata.ts +1 -1
- package/src/api/routes/migrations.ts +1 -1
- package/src/api/routes/permission.ts +1 -1
- package/src/api/routes/public/applications.ts +44 -0
- package/src/api/routes/public/middleware/mapper.ts +4 -0
- package/src/api/routes/query.ts +1 -1
- package/src/api/routes/role.ts +1 -1
- package/src/api/routes/routing.ts +1 -1
- package/src/api/routes/row.ts +1 -1
- package/src/api/routes/screen.ts +1 -1
- package/src/api/routes/script.ts +1 -1
- package/src/api/routes/static.ts +2 -2
- package/src/api/routes/table.ts +16 -39
- package/src/api/routes/templates.ts +1 -1
- package/src/api/routes/tests/__snapshots__/{datasource.spec.js.snap → datasource.spec.ts.snap} +0 -0
- package/src/api/routes/tests/{application.spec.js → application.spec.ts} +94 -18
- package/src/api/routes/tests/{backup.spec.js → backup.spec.ts} +17 -6
- package/src/api/routes/tests/cloud.spec.ts +65 -0
- package/src/api/routes/tests/data/budibase-component-1.0.1.tgz +0 -0
- package/src/api/routes/tests/data/comment-box-1.0.2.tar.gz +0 -0
- package/src/api/routes/tests/data/export-test.tar.gz +0 -0
- package/src/api/routes/tests/{datasource.spec.js → datasource.spec.ts} +56 -14
- package/src/api/routes/tests/misc.spec.js +4 -10
- package/src/api/routes/tests/permissions.spec.js +1 -1
- package/src/api/routes/tests/plugin.spec.ts +179 -0
- package/src/api/routes/tests/routing.spec.js +1 -2
- package/src/api/routes/tests/row.spec.js +4 -2
- package/src/api/routes/tests/static.spec.js +2 -17
- package/src/api/routes/tests/table.spec.js +16 -32
- package/src/api/routes/tests/user.spec.js +105 -0
- package/src/api/routes/tests/utilities/TestFunctions.ts +1 -1
- package/src/api/routes/tests/utilities/index.ts +2 -2
- package/src/api/routes/tests/webhook.spec.js +1 -1
- package/src/api/routes/user.ts +1 -1
- package/src/api/routes/utils/validators.ts +1 -1
- package/src/api/routes/view.ts +1 -1
- package/src/api/routes/webhook.ts +1 -1
- package/src/app.ts +5 -3
- package/src/automations/automationUtils.ts +24 -0
- package/src/automations/logging/index.ts +1 -1
- package/src/automations/tests/bash.spec.js +34 -0
- package/src/automations/tests/discord.spec.js +27 -0
- package/src/automations/tests/executeQuery.spec.js +49 -0
- package/src/automations/tests/executeScript.spec.js +48 -0
- package/src/automations/tests/loop.spec.ts +45 -0
- package/src/automations/tests/sendSmtpEmail.spec.js +71 -0
- package/src/automations/tests/serverLog.spec.js +22 -0
- package/src/automations/tests/utilities/index.ts +2 -2
- package/src/automations/tests/zapier.spec.js +27 -0
- package/src/automations/triggers.ts +6 -1
- package/src/automations/unitTests/automationUtils.spec.ts +65 -0
- package/src/db/index.ts +1 -1
- package/src/db/linkedRows/LinkController.ts +1 -1
- package/src/db/linkedRows/LinkDocument.ts +1 -1
- package/src/db/newid.ts +1 -1
- package/src/db/tests/linkController.spec.js +1 -1
- package/src/definitions/automations.ts +1 -0
- package/src/definitions/datasource.ts +0 -41
- package/src/definitions/openapi.ts +10 -0
- package/src/environment.ts +6 -2
- package/src/events/AutomationEmitter.ts +1 -1
- package/src/events/BudibaseEmitter.ts +1 -1
- package/src/events/index.ts +1 -1
- package/src/index.ts +1 -1
- package/src/integrations/base/query.ts +3 -1
- package/src/integrations/base/sqlTable.ts +1 -1
- package/src/integrations/couchdb.ts +40 -14
- package/src/integrations/dynamodb.ts +3 -3
- package/src/integrations/elasticsearch.ts +8 -4
- package/src/integrations/googlesheets.ts +1 -1
- package/src/integrations/index.ts +5 -9
- package/src/integrations/mongodb.ts +315 -271
- package/src/integrations/mysql.ts +1 -1
- package/src/integrations/queries/sql.ts +5 -50
- package/src/integrations/rest.ts +16 -19
- package/src/integrations/tests/couchdb.spec.ts +33 -21
- package/src/integrations/tests/rest.spec.ts +19 -15
- package/src/middleware/authorized.ts +5 -1
- package/src/middleware/builder.ts +1 -1
- package/src/middleware/currentapp.ts +4 -3
- package/src/middleware/publicApi.ts +1 -1
- package/src/middleware/selfhost.ts +1 -1
- package/src/middleware/tests/authorized.spec.js +1 -1
- package/src/middleware/tests/currentapp.spec.js +1 -1
- package/src/middleware/tests/selfhost.spec.js +1 -1
- package/src/migrations/functions/backfill/global/configs.ts +5 -4
- package/src/migrations/functions/usageQuotas/tests/syncRows.spec.ts +10 -6
- package/src/sdk/app/backups/imports.ts +2 -6
- package/src/sdk/app/datasources/datasources.ts +136 -0
- package/src/sdk/app/datasources/index.ts +5 -0
- package/src/sdk/app/queries/index.ts +5 -0
- package/src/sdk/app/queries/queries.ts +50 -0
- package/src/sdk/app/tables/index.ts +6 -3
- package/src/sdk/index.ts +4 -0
- package/src/sdk/tests/attachments.spec.ts +1 -4
- package/src/sdk/utils/index.ts +16 -0
- package/src/startup.ts +3 -8
- package/src/tests/jestEnv.ts +13 -0
- package/src/tests/jestSetup.ts +4 -15
- package/src/tests/utilities/TestConfiguration.ts +38 -16
- package/src/tests/utilities/structures.ts +65 -2
- package/src/threads/automation.ts +22 -35
- package/src/threads/definitions.ts +3 -0
- package/src/threads/index.ts +1 -1
- package/src/threads/query.ts +28 -15
- package/src/utilities/fileSystem/app.ts +86 -0
- package/src/utilities/fileSystem/clientLibrary.ts +1 -1
- package/src/utilities/fileSystem/filesystem.ts +172 -0
- package/src/utilities/fileSystem/index.ts +5 -348
- package/src/utilities/fileSystem/plugin.ts +64 -0
- package/src/utilities/fileSystem/template.ts +36 -0
- package/src/utilities/index.ts +1 -45
- package/src/utilities/rowProcessor/index.ts +17 -8
- package/src/utilities/rowProcessor/tests/utils.spec.ts +57 -0
- package/src/utilities/schema.ts +141 -0
- package/src/utilities/scriptRunner.ts +1 -1
- package/src/utilities/statusCodes.ts +1 -1
- package/src/utilities/workerRequests.ts +10 -1
- package/src/watch.ts +1 -1
- package/tsconfig.build.json +2 -0
- package/tsconfig.json +2 -1
- package/builder/assets/index.01a9ab3b.js +0 -1024
- package/builder/assets/index.96b9ffed.css +0 -6
- package/coverage/lcov-report/src/utilities/plugins.ts.html +0 -151
- package/dist/api/routes/tests/utilities/TestFunctions.js +0 -167
- package/dist/api/routes/tests/utilities/index.js +0 -131
- package/dist/automations/tests/utilities/index.js +0 -81
- package/dist/tests/utilities/TestConfiguration.js +0 -562
- package/dist/tests/utilities/controllers.js +0 -40
- package/dist/tests/utilities/structures.js +0 -168
- package/dist/utilities/csvParser.js +0 -152
- package/dist/utilities/plugins.js +0 -26
- package/src/api/routes/tests/deployment.spec.ts +0 -25
- package/src/automations/unitTests/automationUtils.spec.js +0 -17
- package/src/utilities/csvParser.ts +0 -161
- package/src/utilities/plugins.ts +0 -22
- package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -15
- package/src/utilities/tests/csvParser.spec.js +0 -112
|
@@ -32,10 +32,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.destroy = exports.update = exports.read = exports.create = exports.search = void 0;
|
|
35
|
+
exports.publish = exports.unpublish = exports.destroy = exports.update = exports.read = exports.create = exports.search = void 0;
|
|
36
36
|
const backend_core_1 = require("@budibase/backend-core");
|
|
37
37
|
const utils_1 = require("./utils");
|
|
38
38
|
const controller = __importStar(require("../application"));
|
|
39
|
+
const deployController = __importStar(require("../deploy"));
|
|
39
40
|
function fixAppID(app, params) {
|
|
40
41
|
if (!params) {
|
|
41
42
|
return app;
|
|
@@ -116,10 +117,30 @@ function destroy(ctx, next) {
|
|
|
116
117
|
});
|
|
117
118
|
}
|
|
118
119
|
exports.destroy = destroy;
|
|
120
|
+
function unpublish(ctx, next) {
|
|
121
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
122
|
+
yield backend_core_1.context.doInAppContext(ctx.params.appId, () => __awaiter(this, void 0, void 0, function* () {
|
|
123
|
+
yield controller.unpublish(ctx);
|
|
124
|
+
yield next();
|
|
125
|
+
}));
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
exports.unpublish = unpublish;
|
|
129
|
+
function publish(ctx, next) {
|
|
130
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
131
|
+
yield backend_core_1.context.doInAppContext(ctx.params.appId, () => __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
yield deployController.publishApp(ctx);
|
|
133
|
+
yield next();
|
|
134
|
+
}));
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
exports.publish = publish;
|
|
119
138
|
exports.default = {
|
|
120
139
|
create,
|
|
121
140
|
update,
|
|
122
141
|
read,
|
|
123
142
|
destroy,
|
|
124
143
|
search,
|
|
144
|
+
publish,
|
|
145
|
+
unpublish,
|
|
125
146
|
};
|
|
@@ -8,6 +8,9 @@ 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.destroy = exports.executeV2 = exports.executeV1 = exports.preview = exports.find = exports.save = exports.import = exports.fetch = void 0;
|
|
13
16
|
const utils_1 = require("../../../db/utils");
|
|
@@ -16,11 +19,12 @@ const threads_1 = require("../../../threads");
|
|
|
16
19
|
const datasource_1 = require("../datasource");
|
|
17
20
|
const import_1 = require("./import");
|
|
18
21
|
const utils_2 = require("../../../threads/utils");
|
|
19
|
-
const environment_1 = require("../../../environment");
|
|
22
|
+
const environment_1 = __importDefault(require("../../../environment"));
|
|
20
23
|
const pro_1 = require("@budibase/pro");
|
|
21
24
|
const backend_core_1 = require("@budibase/backend-core");
|
|
25
|
+
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
22
26
|
const Runner = new threads_1.Thread(threads_1.ThreadType.QUERY, {
|
|
23
|
-
timeoutMs: environment_1.QUERY_THREAD_TIMEOUT || 10000,
|
|
27
|
+
timeoutMs: environment_1.default.QUERY_THREAD_TIMEOUT || 10000,
|
|
24
28
|
});
|
|
25
29
|
// simple function to append "readable" to all read queries
|
|
26
30
|
function enrichQueries(input) {
|
|
@@ -81,7 +85,7 @@ function save(ctx) {
|
|
|
81
85
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
86
|
const db = backend_core_1.context.getAppDB();
|
|
83
87
|
const query = ctx.request.body;
|
|
84
|
-
const datasource = yield
|
|
88
|
+
const datasource = yield sdk_1.default.datasources.get(query.datasourceId);
|
|
85
89
|
let eventFn;
|
|
86
90
|
if (!query._id) {
|
|
87
91
|
query._id = (0, utils_1.generateQueryID)(query.datasourceId);
|
|
@@ -126,15 +130,14 @@ function getAuthConfig(ctx) {
|
|
|
126
130
|
}
|
|
127
131
|
function preview(ctx) {
|
|
128
132
|
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
-
const
|
|
130
|
-
const datasource = yield db.get(ctx.request.body.datasourceId);
|
|
133
|
+
const { datasource, envVars } = yield sdk_1.default.datasources.getWithEnvVars(ctx.request.body.datasourceId);
|
|
131
134
|
const query = ctx.request.body;
|
|
132
135
|
// preview may not have a queryId as it hasn't been saved, but if it does
|
|
133
136
|
// this stops dynamic variables from calling the same query
|
|
134
137
|
const { fields, parameters, queryVerb, transformer, queryId } = query;
|
|
135
138
|
const authConfigCtx = getAuthConfig(ctx);
|
|
136
139
|
try {
|
|
137
|
-
const
|
|
140
|
+
const inputs = {
|
|
138
141
|
appId: ctx.appId,
|
|
139
142
|
datasource,
|
|
140
143
|
queryVerb,
|
|
@@ -142,11 +145,14 @@ function preview(ctx) {
|
|
|
142
145
|
parameters,
|
|
143
146
|
transformer,
|
|
144
147
|
queryId,
|
|
148
|
+
// have to pass down to the thread runner - can't put into context now
|
|
149
|
+
environmentVariables: envVars,
|
|
145
150
|
ctx: {
|
|
146
151
|
user: ctx.user,
|
|
147
152
|
auth: Object.assign({}, authConfigCtx),
|
|
148
153
|
},
|
|
149
|
-
}
|
|
154
|
+
};
|
|
155
|
+
const runFn = () => Runner.run(inputs);
|
|
150
156
|
const { rows, keys, info, extra } = yield pro_1.quotas.addQuery(runFn, {
|
|
151
157
|
datasourceId: datasource._id,
|
|
152
158
|
});
|
|
@@ -196,7 +202,7 @@ function execute(ctx, opts = { rowsOnly: false, isAutomation: false }) {
|
|
|
196
202
|
return __awaiter(this, void 0, void 0, function* () {
|
|
197
203
|
const db = backend_core_1.context.getAppDB();
|
|
198
204
|
const query = yield db.get(ctx.params.queryId);
|
|
199
|
-
const datasource = yield
|
|
205
|
+
const { datasource, envVars } = yield sdk_1.default.datasources.getWithEnvVars(query.datasourceId);
|
|
200
206
|
let authConfigCtx = {};
|
|
201
207
|
if (!opts.isAutomation) {
|
|
202
208
|
authConfigCtx = getAuthConfig(ctx);
|
|
@@ -212,7 +218,7 @@ function execute(ctx, opts = { rowsOnly: false, isAutomation: false }) {
|
|
|
212
218
|
}
|
|
213
219
|
// call the relevant CRUD method on the integration class
|
|
214
220
|
try {
|
|
215
|
-
const
|
|
221
|
+
const inputs = {
|
|
216
222
|
appId: ctx.appId,
|
|
217
223
|
datasource,
|
|
218
224
|
queryVerb: query.queryVerb,
|
|
@@ -221,11 +227,14 @@ function execute(ctx, opts = { rowsOnly: false, isAutomation: false }) {
|
|
|
221
227
|
parameters: enrichedParameters,
|
|
222
228
|
transformer: query.transformer,
|
|
223
229
|
queryId: ctx.params.queryId,
|
|
230
|
+
// have to pass down to the thread runner - can't put into context now
|
|
231
|
+
environmentVariables: envVars,
|
|
224
232
|
ctx: {
|
|
225
233
|
user: ctx.user,
|
|
226
234
|
auth: Object.assign({}, authConfigCtx),
|
|
227
235
|
},
|
|
228
|
-
}
|
|
236
|
+
};
|
|
237
|
+
const runFn = () => Runner.run(inputs);
|
|
229
238
|
const { rows, pagination, extra } = yield pro_1.quotas.addQuery(runFn, {
|
|
230
239
|
datasourceId: datasource._id,
|
|
231
240
|
});
|
|
@@ -258,10 +267,11 @@ function executeV2(ctx, { isAutomation } = {}) {
|
|
|
258
267
|
}
|
|
259
268
|
exports.executeV2 = executeV2;
|
|
260
269
|
const removeDynamicVariables = (queryId) => __awaiter(void 0, void 0, void 0, function* () {
|
|
270
|
+
var _a;
|
|
261
271
|
const db = backend_core_1.context.getAppDB();
|
|
262
272
|
const query = yield db.get(queryId);
|
|
263
|
-
const datasource = yield
|
|
264
|
-
const dynamicVariables = datasource.config.dynamicVariables;
|
|
273
|
+
const datasource = yield sdk_1.default.datasources.get(query.datasourceId);
|
|
274
|
+
const dynamicVariables = (_a = datasource.config) === null || _a === void 0 ? void 0 : _a.dynamicVariables;
|
|
265
275
|
if (dynamicVariables) {
|
|
266
276
|
// delete dynamic variables from the datasource
|
|
267
277
|
datasource.config.dynamicVariables = dynamicVariables.filter((dv) => dv.queryId !== queryId);
|
|
@@ -277,7 +287,7 @@ function destroy(ctx) {
|
|
|
277
287
|
const queryId = ctx.params.queryId;
|
|
278
288
|
yield removeDynamicVariables(queryId);
|
|
279
289
|
const query = yield db.get(queryId);
|
|
280
|
-
const datasource = yield
|
|
290
|
+
const datasource = yield sdk_1.default.datasources.get(query.datasourceId);
|
|
281
291
|
yield db.remove(ctx.params.queryId, ctx.params.revId);
|
|
282
292
|
ctx.message = `Query deleted.`;
|
|
283
293
|
ctx.status = 200;
|
|
@@ -19,6 +19,9 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
19
19
|
}
|
|
20
20
|
return t;
|
|
21
21
|
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
22
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
26
|
exports.ExternalRequest = void 0;
|
|
24
27
|
const types_1 = require("@budibase/types");
|
|
@@ -27,11 +30,10 @@ const utils_2 = require("./utils");
|
|
|
27
30
|
const constants_1 = require("../../../constants");
|
|
28
31
|
const utils_3 = require("../../../integrations/utils");
|
|
29
32
|
const string_templates_1 = require("@budibase/string-templates");
|
|
30
|
-
// @ts-ignore
|
|
31
33
|
const fp_1 = require("lodash/fp");
|
|
32
34
|
const rowProcessor_1 = require("../../../utilities/rowProcessor");
|
|
33
|
-
const backend_core_1 = require("@budibase/backend-core");
|
|
34
35
|
const utils_4 = require("./utils");
|
|
36
|
+
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
35
37
|
function buildFilters(id, filters, table) {
|
|
36
38
|
const primary = table.primary;
|
|
37
39
|
// if passed in array need to copy for shifting etc
|
|
@@ -563,6 +565,7 @@ class ExternalRequest {
|
|
|
563
565
|
return fields;
|
|
564
566
|
}
|
|
565
567
|
run(config) {
|
|
568
|
+
var _a;
|
|
566
569
|
return __awaiter(this, void 0, void 0, function* () {
|
|
567
570
|
const { operation, tableId } = this;
|
|
568
571
|
let { datasourceId, tableName } = (0, utils_3.breakExternalTableId)(tableId);
|
|
@@ -570,8 +573,7 @@ class ExternalRequest {
|
|
|
570
573
|
throw "Unable to run without a table name";
|
|
571
574
|
}
|
|
572
575
|
if (!this.datasource) {
|
|
573
|
-
|
|
574
|
-
this.datasource = yield db.get(datasourceId);
|
|
576
|
+
this.datasource = yield sdk_1.default.datasources.get(datasourceId);
|
|
575
577
|
if (!this.datasource || !this.datasource.entities) {
|
|
576
578
|
throw "No tables found, fetch tables before query.";
|
|
577
579
|
}
|
|
@@ -584,6 +586,12 @@ class ExternalRequest {
|
|
|
584
586
|
}
|
|
585
587
|
// look for specific components of config which may not be considered acceptable
|
|
586
588
|
let { id, row, filters, sort, paginate, rows } = cleanupConfig(config, table);
|
|
589
|
+
//if the sort column is a formula, remove it
|
|
590
|
+
for (let sortColumn of Object.keys(sort || {})) {
|
|
591
|
+
if (((_a = table.schema[sortColumn]) === null || _a === void 0 ? void 0 : _a.type) === "formula") {
|
|
592
|
+
sort === null || sort === void 0 ? true : delete sort[sortColumn];
|
|
593
|
+
}
|
|
594
|
+
}
|
|
587
595
|
filters = buildFilters(id, filters || {}, table);
|
|
588
596
|
const relationships = this.buildRelationships(table);
|
|
589
597
|
// clean up row on ingress using schema
|
|
@@ -42,15 +42,19 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
42
42
|
}
|
|
43
43
|
return t;
|
|
44
44
|
};
|
|
45
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
46
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
|
+
};
|
|
45
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
46
49
|
exports.fetchEnrichedRow = exports.exportRows = exports.validate = exports.search = exports.bulkDestroy = exports.destroy = exports.find = exports.fetch = exports.fetchView = exports.save = exports.patch = exports.handleRequest = void 0;
|
|
47
50
|
const constants_1 = require("../../../constants");
|
|
48
51
|
const utils_1 = require("../../../integrations/utils");
|
|
49
52
|
const ExternalRequest_1 = require("./ExternalRequest");
|
|
50
|
-
const backend_core_1 = require("@budibase/backend-core");
|
|
51
53
|
const exporters = __importStar(require("../view/exporters"));
|
|
52
54
|
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
53
55
|
const types_1 = require("@budibase/types");
|
|
56
|
+
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
57
|
+
const { cleanExportRows } = require("./utils");
|
|
54
58
|
function handleRequest(operation, tableId, opts) {
|
|
55
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
60
|
// make sure the filters are cleaned up, no empty strings for equals, fuzzy or string
|
|
@@ -222,20 +226,21 @@ exports.validate = validate;
|
|
|
222
226
|
function exportRows(ctx) {
|
|
223
227
|
return __awaiter(this, void 0, void 0, function* () {
|
|
224
228
|
const { datasourceId } = (0, utils_1.breakExternalTableId)(ctx.params.tableId);
|
|
225
|
-
const db = backend_core_1.context.getAppDB();
|
|
226
229
|
const format = ctx.query.format;
|
|
227
230
|
const { columns } = ctx.request.body;
|
|
228
|
-
const datasource = yield
|
|
231
|
+
const datasource = yield sdk_1.default.datasources.get(datasourceId);
|
|
229
232
|
if (!datasource || !datasource.entities) {
|
|
230
233
|
ctx.throw(400, "Datasource has not been configured for plus API.");
|
|
231
234
|
}
|
|
232
|
-
ctx.request.body
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
235
|
+
if (ctx.request.body.rows) {
|
|
236
|
+
ctx.request.body = {
|
|
237
|
+
query: {
|
|
238
|
+
oneOf: {
|
|
239
|
+
_id: ctx.request.body.rows.map((row) => JSON.parse(decodeURI(row))[0]),
|
|
240
|
+
},
|
|
236
241
|
},
|
|
237
|
-
}
|
|
238
|
-
}
|
|
242
|
+
};
|
|
243
|
+
}
|
|
239
244
|
let result = yield search(ctx);
|
|
240
245
|
let rows = [];
|
|
241
246
|
// Filter data to only specified columns if required
|
|
@@ -250,13 +255,16 @@ function exportRows(ctx) {
|
|
|
250
255
|
else {
|
|
251
256
|
rows = result.rows;
|
|
252
257
|
}
|
|
253
|
-
|
|
258
|
+
// @ts-ignore
|
|
259
|
+
let schema = datasource.entities[tableName].schema;
|
|
260
|
+
let exportRows = cleanExportRows(rows, schema, format, columns);
|
|
261
|
+
let headers = Object.keys(schema);
|
|
254
262
|
// @ts-ignore
|
|
255
263
|
const exporter = exporters[format];
|
|
256
264
|
const filename = `export.${format}`;
|
|
257
265
|
// send down the file
|
|
258
266
|
ctx.attachment(filename);
|
|
259
|
-
return (0, fileSystem_1.apiFileReturn)(exporter(headers,
|
|
267
|
+
return (0, fileSystem_1.apiFileReturn)(exporter(headers, exportRows));
|
|
260
268
|
});
|
|
261
269
|
}
|
|
262
270
|
exports.exportRows = exportRows;
|
|
@@ -266,8 +274,7 @@ function fetchEnrichedRow(ctx) {
|
|
|
266
274
|
const id = ctx.params.rowId;
|
|
267
275
|
const tableId = ctx.params.tableId;
|
|
268
276
|
const { datasourceId, tableName } = (0, utils_1.breakExternalTableId)(tableId);
|
|
269
|
-
const
|
|
270
|
-
const datasource = yield db.get(datasourceId);
|
|
277
|
+
const datasource = yield sdk_1.default.datasources.get(datasourceId);
|
|
271
278
|
if (!tableName) {
|
|
272
279
|
ctx.throw(400, "Unable to find table.");
|
|
273
280
|
}
|
|
@@ -52,17 +52,18 @@ const utils_1 = require("../../../db/utils");
|
|
|
52
52
|
const userController = __importStar(require("../user"));
|
|
53
53
|
const rowProcessor_1 = require("../../../utilities/rowProcessor");
|
|
54
54
|
const constants_1 = require("../../../constants");
|
|
55
|
-
const
|
|
55
|
+
const utils = __importStar(require("./utils"));
|
|
56
56
|
const internalSearch_1 = require("./internalSearch");
|
|
57
57
|
const global_1 = require("../../../utilities/global");
|
|
58
58
|
const inMemoryViews = __importStar(require("../../../db/inMemoryView"));
|
|
59
59
|
const environment_1 = __importDefault(require("../../../environment"));
|
|
60
|
-
const
|
|
60
|
+
const utils_2 = require("../view/utils");
|
|
61
61
|
const fp_1 = require("lodash/fp");
|
|
62
62
|
const backend_core_1 = require("@budibase/backend-core");
|
|
63
63
|
const staticFormula_1 = require("./staticFormula");
|
|
64
|
-
const
|
|
64
|
+
const exporters_1 = require("../view/exporters");
|
|
65
65
|
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
66
|
+
const { cleanExportRows } = require("./utils");
|
|
66
67
|
const CALCULATION_TYPES = {
|
|
67
68
|
SUM: "sum",
|
|
68
69
|
COUNT: "count",
|
|
@@ -70,9 +71,9 @@ const CALCULATION_TYPES = {
|
|
|
70
71
|
};
|
|
71
72
|
function getView(db, viewName) {
|
|
72
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
let mainGetter = environment_1.default.SELF_HOSTED ?
|
|
74
|
-
let secondaryGetter = environment_1.default.SELF_HOSTED ?
|
|
75
|
-
let migration = environment_1.default.SELF_HOSTED ?
|
|
74
|
+
let mainGetter = environment_1.default.SELF_HOSTED ? utils_2.getFromDesignDoc : utils_2.getFromMemoryDoc;
|
|
75
|
+
let secondaryGetter = environment_1.default.SELF_HOSTED ? utils_2.getFromMemoryDoc : utils_2.getFromDesignDoc;
|
|
76
|
+
let migration = environment_1.default.SELF_HOSTED ? utils_2.migrateToDesignView : utils_2.migrateToInMemoryView;
|
|
76
77
|
let viewInfo, migrate = false;
|
|
77
78
|
try {
|
|
78
79
|
viewInfo = yield mainGetter(db, viewName);
|
|
@@ -121,7 +122,7 @@ function patch(ctx) {
|
|
|
121
122
|
let oldRow;
|
|
122
123
|
try {
|
|
123
124
|
let dbTable = yield db.get(tableId);
|
|
124
|
-
oldRow = yield (0, rowProcessor_1.outputProcessing)(dbTable, yield
|
|
125
|
+
oldRow = yield (0, rowProcessor_1.outputProcessing)(dbTable, yield utils.findRow(ctx, tableId, inputs._id));
|
|
125
126
|
}
|
|
126
127
|
catch (err) {
|
|
127
128
|
if (isUserTable) {
|
|
@@ -145,7 +146,7 @@ function patch(ctx) {
|
|
|
145
146
|
}
|
|
146
147
|
// this returns the table and row incase they have been updated
|
|
147
148
|
let { table, row } = (0, rowProcessor_1.inputProcessing)(ctx.user, dbTable, combinedRow);
|
|
148
|
-
const validateResult = yield
|
|
149
|
+
const validateResult = yield utils.validate({
|
|
149
150
|
row,
|
|
150
151
|
table,
|
|
151
152
|
});
|
|
@@ -185,7 +186,7 @@ function save(ctx) {
|
|
|
185
186
|
// this returns the table and row incase they have been updated
|
|
186
187
|
const dbTable = yield db.get(inputs.tableId);
|
|
187
188
|
let { table, row } = (0, rowProcessor_1.inputProcessing)(ctx.user, dbTable, inputs);
|
|
188
|
-
const validateResult = yield
|
|
189
|
+
const validateResult = yield utils.validate({
|
|
189
190
|
row,
|
|
190
191
|
table,
|
|
191
192
|
});
|
|
@@ -208,7 +209,7 @@ function save(ctx) {
|
|
|
208
209
|
exports.save = save;
|
|
209
210
|
function fetchView(ctx) {
|
|
210
211
|
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
-
const viewName = ctx.params.viewName;
|
|
212
|
+
const viewName = decodeURIComponent(ctx.params.viewName);
|
|
212
213
|
// if this is a table view being looked for just transfer to that
|
|
213
214
|
if (viewName.startsWith(utils_1.DocumentType.TABLE)) {
|
|
214
215
|
ctx.params.tableId = viewName;
|
|
@@ -274,7 +275,7 @@ function find(ctx) {
|
|
|
274
275
|
return __awaiter(this, void 0, void 0, function* () {
|
|
275
276
|
const db = backend_core_1.db.getDB(ctx.appId);
|
|
276
277
|
const table = yield db.get(ctx.params.tableId);
|
|
277
|
-
let row = yield
|
|
278
|
+
let row = yield utils.findRow(ctx, ctx.params.tableId, ctx.params.rowId);
|
|
278
279
|
row = yield (0, rowProcessor_1.outputProcessing)(table, row);
|
|
279
280
|
return row;
|
|
280
281
|
});
|
|
@@ -364,6 +365,13 @@ function search(ctx) {
|
|
|
364
365
|
const _a = ctx.request.body, { paginate, query } = _a, params = __rest(_a, ["paginate", "query"]);
|
|
365
366
|
params.version = ctx.version;
|
|
366
367
|
params.tableId = tableId;
|
|
368
|
+
let table;
|
|
369
|
+
if (params.sort && !params.sortType) {
|
|
370
|
+
table = yield db.get(tableId);
|
|
371
|
+
const schema = table.schema;
|
|
372
|
+
const sortField = schema[params.sort];
|
|
373
|
+
params.sortType = sortField.type == "number" ? "number" : "string";
|
|
374
|
+
}
|
|
367
375
|
let response;
|
|
368
376
|
if (paginate) {
|
|
369
377
|
response = yield (0, internalSearch_1.paginatedSearch)(query, params);
|
|
@@ -377,7 +385,7 @@ function search(ctx) {
|
|
|
377
385
|
if (tableId === utils_1.InternalTables.USER_METADATA) {
|
|
378
386
|
response.rows = yield (0, global_1.getGlobalUsersFromMetadata)(response.rows);
|
|
379
387
|
}
|
|
380
|
-
|
|
388
|
+
table = table || (yield db.get(tableId));
|
|
381
389
|
response.rows = yield (0, rowProcessor_1.outputProcessing)(table, response.rows);
|
|
382
390
|
}
|
|
383
391
|
return response;
|
|
@@ -386,7 +394,7 @@ function search(ctx) {
|
|
|
386
394
|
exports.search = search;
|
|
387
395
|
function validate(ctx) {
|
|
388
396
|
return __awaiter(this, void 0, void 0, function* () {
|
|
389
|
-
return
|
|
397
|
+
return utils.validate({
|
|
390
398
|
tableId: ctx.params.tableId,
|
|
391
399
|
row: ctx.request.body,
|
|
392
400
|
});
|
|
@@ -399,13 +407,21 @@ function exportRows(ctx) {
|
|
|
399
407
|
const table = yield db.get(ctx.params.tableId);
|
|
400
408
|
const rowIds = ctx.request.body.rows;
|
|
401
409
|
let format = ctx.query.format;
|
|
402
|
-
const { columns } = ctx.request.body;
|
|
403
|
-
let
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
410
|
+
const { columns, query } = ctx.request.body;
|
|
411
|
+
let result;
|
|
412
|
+
if (rowIds) {
|
|
413
|
+
let response = (yield db.allDocs({
|
|
414
|
+
include_docs: true,
|
|
415
|
+
keys: rowIds,
|
|
416
|
+
})).rows.map(row => row.doc);
|
|
417
|
+
result = yield (0, rowProcessor_1.outputProcessing)(table, response);
|
|
418
|
+
}
|
|
419
|
+
else if (query) {
|
|
420
|
+
let searchResponse = yield exports.search(ctx);
|
|
421
|
+
result = searchResponse.rows;
|
|
422
|
+
}
|
|
408
423
|
let rows = [];
|
|
424
|
+
let schema = table.schema;
|
|
409
425
|
// Filter data to only specified columns if required
|
|
410
426
|
if (columns && columns.length) {
|
|
411
427
|
for (let i = 0; i < result.length; i++) {
|
|
@@ -418,13 +434,22 @@ function exportRows(ctx) {
|
|
|
418
434
|
else {
|
|
419
435
|
rows = result;
|
|
420
436
|
}
|
|
421
|
-
let
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
437
|
+
let exportRows = cleanExportRows(rows, schema, format, columns);
|
|
438
|
+
if (format === exporters_1.Format.CSV) {
|
|
439
|
+
ctx.attachment("export.csv");
|
|
440
|
+
return (0, fileSystem_1.apiFileReturn)((0, exporters_1.csv)(Object.keys(rows[0]), exportRows));
|
|
441
|
+
}
|
|
442
|
+
else if (format === exporters_1.Format.JSON) {
|
|
443
|
+
ctx.attachment("export.json");
|
|
444
|
+
return (0, fileSystem_1.apiFileReturn)((0, exporters_1.json)(exportRows));
|
|
445
|
+
}
|
|
446
|
+
else if (format === exporters_1.Format.JSON_WITH_SCHEMA) {
|
|
447
|
+
ctx.attachment("export.json");
|
|
448
|
+
return (0, fileSystem_1.apiFileReturn)((0, exporters_1.jsonWithSchema)(schema, exportRows));
|
|
449
|
+
}
|
|
450
|
+
else {
|
|
451
|
+
throw "Format not recognised";
|
|
452
|
+
}
|
|
428
453
|
});
|
|
429
454
|
}
|
|
430
455
|
exports.exportRows = exportRows;
|
|
@@ -436,7 +461,7 @@ function fetchEnrichedRow(ctx) {
|
|
|
436
461
|
// need table to work out where links go in row
|
|
437
462
|
let [table, row] = yield Promise.all([
|
|
438
463
|
db.get(tableId),
|
|
439
|
-
|
|
464
|
+
utils.findRow(ctx, tableId, rowId),
|
|
440
465
|
]);
|
|
441
466
|
// get the link docs
|
|
442
467
|
const linkVals = (yield linkRows.getLinkDocuments({
|
|
@@ -153,7 +153,7 @@ function finaliseRow(table, row, { oldTable, updateFormula } = {
|
|
|
153
153
|
enrichedRow = yield (0, rowProcessor_1.processFormulas)(table, enrichedRow, { dynamic: false });
|
|
154
154
|
// this updates the related formulas in other rows based on the relations to this row
|
|
155
155
|
if (updateFormula) {
|
|
156
|
-
yield
|
|
156
|
+
yield updateRelatedFormula(table, enrichedRow);
|
|
157
157
|
}
|
|
158
158
|
return { row: enrichedRow, table };
|
|
159
159
|
});
|
|
@@ -31,8 +31,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
31
31
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
34
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
-
exports.validate = exports.findRow = exports.getDatasourceAndQuery = exports.removeKeyNumbering = void 0;
|
|
38
|
+
exports.cleanExportRows = exports.validate = exports.findRow = exports.getDatasourceAndQuery = exports.removeKeyNumbering = void 0;
|
|
36
39
|
const utils_1 = require("../../../db/utils");
|
|
37
40
|
const userController = __importStar(require("../user"));
|
|
38
41
|
const constants_1 = require("../../../constants");
|
|
@@ -42,6 +45,8 @@ var utils_2 = require("../../../integrations/base/utils");
|
|
|
42
45
|
Object.defineProperty(exports, "removeKeyNumbering", { enumerable: true, get: function () { return utils_2.removeKeyNumbering; } });
|
|
43
46
|
const validateJs = require("validate.js");
|
|
44
47
|
const { cloneDeep } = require("lodash/fp");
|
|
48
|
+
const exporters_1 = require("../view/exporters");
|
|
49
|
+
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
45
50
|
validateJs.extend(validateJs.validators.datetime, {
|
|
46
51
|
parse: function (value) {
|
|
47
52
|
return new Date(value).getTime();
|
|
@@ -54,8 +59,7 @@ validateJs.extend(validateJs.validators.datetime, {
|
|
|
54
59
|
function getDatasourceAndQuery(json) {
|
|
55
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
56
61
|
const datasourceId = json.endpoint.datasourceId;
|
|
57
|
-
const
|
|
58
|
-
const datasource = yield db.get(datasourceId);
|
|
62
|
+
const datasource = yield sdk_1.default.datasources.get(datasourceId);
|
|
59
63
|
return (0, query_1.makeExternalQuery)(datasource, json);
|
|
60
64
|
});
|
|
61
65
|
}
|
|
@@ -151,3 +155,31 @@ function validate({ tableId, row, table, }) {
|
|
|
151
155
|
});
|
|
152
156
|
}
|
|
153
157
|
exports.validate = validate;
|
|
158
|
+
function cleanExportRows(rows, schema, format, columns) {
|
|
159
|
+
let cleanRows = [...rows];
|
|
160
|
+
const relationships = Object.entries(schema)
|
|
161
|
+
.filter((entry) => entry[1].type === constants_1.FieldTypes.LINK)
|
|
162
|
+
.map(entry => entry[0]);
|
|
163
|
+
relationships.forEach(column => {
|
|
164
|
+
cleanRows.forEach(row => {
|
|
165
|
+
delete row[column];
|
|
166
|
+
});
|
|
167
|
+
delete schema[column];
|
|
168
|
+
});
|
|
169
|
+
// Intended to avoid 'undefined' in export
|
|
170
|
+
if (format === exporters_1.Format.CSV) {
|
|
171
|
+
const schemaKeys = Object.keys(schema);
|
|
172
|
+
for (let key of schemaKeys) {
|
|
173
|
+
if ((columns === null || columns === void 0 ? void 0 : columns.length) && columns.indexOf(key) > 0) {
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
for (let row of cleanRows) {
|
|
177
|
+
if (row[key] == null) {
|
|
178
|
+
row[key] = "";
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return cleanRows;
|
|
184
|
+
}
|
|
185
|
+
exports.cleanExportRows = cleanExportRows;
|