@budibase/server 2.2.12-alpha.7 → 2.2.12-alpha.71
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__/node-fetch.ts +2 -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.4389672b.js +1798 -0
- package/builder/assets/index.80bd6b61.css +6 -0
- package/builder/assets/schnellecke.cf1837a8.png +0 -0
- package/builder/index.html +3 -3
- package/coverage/clover.xml +5113 -4924
- 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 +110 -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 +7892 -7532
- 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 +3 -2
- 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 +40 -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.e386f2c1.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
|
@@ -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;
|
|
@@ -14,20 +14,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.getSignedUploadURL = exports.serveClientLibrary = exports.serveBuilderPreview = exports.serveApp = exports.deleteObjects = exports.uploadFile = exports.serveBuilder = exports.toggleBetaUiFeature = void 0;
|
|
16
16
|
require("svelte/register");
|
|
17
|
-
const
|
|
18
|
-
const { resolve, join } = require("../../../utilities/centralPath");
|
|
17
|
+
const centralPath_1 = require("../../../utilities/centralPath");
|
|
19
18
|
const uuid = require("uuid");
|
|
20
19
|
const constants_1 = require("../../../constants");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
20
|
+
const string_templates_1 = require("@budibase/string-templates");
|
|
21
|
+
const fileSystem_1 = require("../../../utilities/fileSystem");
|
|
23
22
|
const environment_1 = __importDefault(require("../../../environment"));
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
const
|
|
27
|
-
const
|
|
23
|
+
const utils_1 = require("../../../db/utils");
|
|
24
|
+
const backend_core_1 = require("@budibase/backend-core");
|
|
25
|
+
const aws_sdk_1 = __importDefault(require("aws-sdk"));
|
|
26
|
+
const fs_1 = __importDefault(require("fs"));
|
|
27
|
+
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
28
|
+
const send = require("koa-send");
|
|
28
29
|
function prepareUpload({ s3Key, bucket, metadata, file }) {
|
|
29
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
const response = yield objectStore.upload({
|
|
31
|
+
const response = yield backend_core_1.objectStore.upload({
|
|
31
32
|
bucket,
|
|
32
33
|
metadata,
|
|
33
34
|
filename: s3Key,
|
|
@@ -38,7 +39,7 @@ function prepareUpload({ s3Key, bucket, metadata, file }) {
|
|
|
38
39
|
return {
|
|
39
40
|
size: file.size,
|
|
40
41
|
name: file.name,
|
|
41
|
-
url: objectStore.getAppFileUrl(s3Key),
|
|
42
|
+
url: backend_core_1.objectStore.getAppFileUrl(s3Key),
|
|
42
43
|
extension: [...file.name.split(".")].pop(),
|
|
43
44
|
key: response.Key,
|
|
44
45
|
};
|
|
@@ -48,19 +49,19 @@ const toggleBetaUiFeature = function (ctx) {
|
|
|
48
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
50
|
const cookieName = `beta:${ctx.params.feature}`;
|
|
50
51
|
if (ctx.cookies.get(cookieName)) {
|
|
51
|
-
utils.clearCookie(ctx, cookieName);
|
|
52
|
+
backend_core_1.utils.clearCookie(ctx, cookieName);
|
|
52
53
|
ctx.body = {
|
|
53
54
|
message: `${ctx.params.feature} disabled`,
|
|
54
55
|
};
|
|
55
56
|
return;
|
|
56
57
|
}
|
|
57
|
-
let builderPath = resolve(TOP_LEVEL_PATH, "new_design_ui");
|
|
58
|
+
let builderPath = (0, centralPath_1.resolve)(fileSystem_1.TOP_LEVEL_PATH, "new_design_ui");
|
|
58
59
|
// // download it from S3
|
|
59
|
-
if (!
|
|
60
|
-
|
|
60
|
+
if (!fs_1.default.existsSync(builderPath)) {
|
|
61
|
+
fs_1.default.mkdirSync(builderPath);
|
|
61
62
|
}
|
|
62
|
-
yield objectStore.downloadTarballDirect("https://cdn.budi.live/beta:design_ui/new_ui.tar.gz", builderPath);
|
|
63
|
-
utils.setCookie(ctx, {}, cookieName);
|
|
63
|
+
yield backend_core_1.objectStore.downloadTarballDirect("https://cdn.budi.live/beta:design_ui/new_ui.tar.gz", builderPath);
|
|
64
|
+
backend_core_1.utils.setCookie(ctx, {}, cookieName);
|
|
64
65
|
ctx.body = {
|
|
65
66
|
message: `${ctx.params.feature} enabled`,
|
|
66
67
|
};
|
|
@@ -69,7 +70,7 @@ const toggleBetaUiFeature = function (ctx) {
|
|
|
69
70
|
exports.toggleBetaUiFeature = toggleBetaUiFeature;
|
|
70
71
|
const serveBuilder = function (ctx) {
|
|
71
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
const builderPath = resolve(TOP_LEVEL_PATH, "builder");
|
|
73
|
+
const builderPath = (0, centralPath_1.resolve)(fileSystem_1.TOP_LEVEL_PATH, "builder");
|
|
73
74
|
yield send(ctx, ctx.file, { root: builderPath });
|
|
74
75
|
});
|
|
75
76
|
};
|
|
@@ -85,7 +86,7 @@ const uploadFile = function (ctx) {
|
|
|
85
86
|
const processedFileName = `${uuid.v4()}.${fileExtension}`;
|
|
86
87
|
return prepareUpload({
|
|
87
88
|
file,
|
|
88
|
-
s3Key: `${context.getProdAppId()}/attachments/${processedFileName}`,
|
|
89
|
+
s3Key: `${backend_core_1.context.getProdAppId()}/attachments/${processedFileName}`,
|
|
89
90
|
bucket: constants_1.ObjectStoreBuckets.APPS,
|
|
90
91
|
});
|
|
91
92
|
}));
|
|
@@ -95,28 +96,28 @@ const uploadFile = function (ctx) {
|
|
|
95
96
|
exports.uploadFile = uploadFile;
|
|
96
97
|
const deleteObjects = function (ctx) {
|
|
97
98
|
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
-
ctx.body = yield objectStore.deleteFiles(constants_1.ObjectStoreBuckets.APPS, ctx.request.body.keys);
|
|
99
|
+
ctx.body = yield backend_core_1.objectStore.deleteFiles(constants_1.ObjectStoreBuckets.APPS, ctx.request.body.keys);
|
|
99
100
|
});
|
|
100
101
|
};
|
|
101
102
|
exports.deleteObjects = deleteObjects;
|
|
102
103
|
const serveApp = function (ctx) {
|
|
103
104
|
return __awaiter(this, void 0, void 0, function* () {
|
|
104
|
-
const db = context.getAppDB({ skip_setup: true });
|
|
105
|
-
const appInfo = yield db.get(DocumentType.APP_METADATA);
|
|
106
|
-
let appId = context.getAppId();
|
|
105
|
+
const db = backend_core_1.context.getAppDB({ skip_setup: true });
|
|
106
|
+
const appInfo = yield db.get(utils_1.DocumentType.APP_METADATA);
|
|
107
|
+
let appId = backend_core_1.context.getAppId();
|
|
107
108
|
if (!environment_1.default.isJest()) {
|
|
108
109
|
const App = require("./templates/BudibaseApp.svelte").default;
|
|
109
|
-
const plugins = objectStore.enrichPluginURLs(appInfo.usedPlugins);
|
|
110
|
+
const plugins = backend_core_1.objectStore.enrichPluginURLs(appInfo.usedPlugins);
|
|
110
111
|
const { head, html, css } = App.render({
|
|
111
112
|
metaImage: "https://res.cloudinary.com/daog6scxm/image/upload/v1666109324/meta-images/budibase-meta-image_uukc1m.png",
|
|
112
113
|
title: appInfo.name,
|
|
113
114
|
production: environment_1.default.isProd(),
|
|
114
115
|
appId,
|
|
115
|
-
clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
116
|
+
clientLibPath: backend_core_1.objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
116
117
|
usedPlugins: plugins,
|
|
117
118
|
});
|
|
118
|
-
const appHbs = loadHandlebarsFile(`${__dirname}/templates/app.hbs`);
|
|
119
|
-
ctx.body = yield processString(appHbs, {
|
|
119
|
+
const appHbs = (0, fileSystem_1.loadHandlebarsFile)(`${__dirname}/templates/app.hbs`);
|
|
120
|
+
ctx.body = yield (0, string_templates_1.processString)(appHbs, {
|
|
120
121
|
head,
|
|
121
122
|
body: html,
|
|
122
123
|
style: css.code,
|
|
@@ -132,13 +133,13 @@ const serveApp = function (ctx) {
|
|
|
132
133
|
exports.serveApp = serveApp;
|
|
133
134
|
const serveBuilderPreview = function (ctx) {
|
|
134
135
|
return __awaiter(this, void 0, void 0, function* () {
|
|
135
|
-
const db = context.getAppDB({ skip_setup: true });
|
|
136
|
-
const appInfo = yield db.get(DocumentType.APP_METADATA);
|
|
136
|
+
const db = backend_core_1.context.getAppDB({ skip_setup: true });
|
|
137
|
+
const appInfo = yield db.get(utils_1.DocumentType.APP_METADATA);
|
|
137
138
|
if (!environment_1.default.isJest()) {
|
|
138
|
-
let appId = context.getAppId();
|
|
139
|
-
const previewHbs = loadHandlebarsFile(`${__dirname}/templates/preview.hbs`);
|
|
140
|
-
ctx.body = yield processString(previewHbs, {
|
|
141
|
-
clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
139
|
+
let appId = backend_core_1.context.getAppId();
|
|
140
|
+
const previewHbs = (0, fileSystem_1.loadHandlebarsFile)(`${__dirname}/templates/preview.hbs`);
|
|
141
|
+
ctx.body = yield (0, string_templates_1.processString)(previewHbs, {
|
|
142
|
+
clientLibPath: backend_core_1.objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
142
143
|
});
|
|
143
144
|
}
|
|
144
145
|
else {
|
|
@@ -151,7 +152,7 @@ exports.serveBuilderPreview = serveBuilderPreview;
|
|
|
151
152
|
const serveClientLibrary = function (ctx) {
|
|
152
153
|
return __awaiter(this, void 0, void 0, function* () {
|
|
153
154
|
return send(ctx, "budibase-client.js", {
|
|
154
|
-
root: join(NODE_MODULES_PATH, "@budibase", "client", "dist"),
|
|
155
|
+
root: (0, centralPath_1.join)(fileSystem_1.NODE_MODULES_PATH, "@budibase", "client", "dist"),
|
|
155
156
|
});
|
|
156
157
|
});
|
|
157
158
|
};
|
|
@@ -159,12 +160,11 @@ exports.serveClientLibrary = serveClientLibrary;
|
|
|
159
160
|
const getSignedUploadURL = function (ctx) {
|
|
160
161
|
var _a, _b, _c, _d;
|
|
161
162
|
return __awaiter(this, void 0, void 0, function* () {
|
|
162
|
-
const database = context.getAppDB();
|
|
163
163
|
// Ensure datasource is valid
|
|
164
164
|
let datasource;
|
|
165
165
|
try {
|
|
166
166
|
const { datasourceId } = ctx.params;
|
|
167
|
-
datasource = yield
|
|
167
|
+
datasource = yield sdk_1.default.datasources.get(datasourceId, { enriched: true });
|
|
168
168
|
if (!datasource) {
|
|
169
169
|
ctx.throw(400, "The specified datasource could not be found");
|
|
170
170
|
}
|
|
@@ -179,15 +179,15 @@ const getSignedUploadURL = function (ctx) {
|
|
|
179
179
|
// Determine type of datasource and generate signed URL
|
|
180
180
|
let signedUrl;
|
|
181
181
|
let publicUrl;
|
|
182
|
-
const awsRegion = ((_b = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _b === void 0 ? void 0 : _b.region) || "eu-west-1";
|
|
183
|
-
if (datasource.source === "S3") {
|
|
182
|
+
const awsRegion = (((_b = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _b === void 0 ? void 0 : _b.region) || "eu-west-1");
|
|
183
|
+
if ((datasource === null || datasource === void 0 ? void 0 : datasource.source) === "S3") {
|
|
184
184
|
const { bucket, key } = ctx.request.body || {};
|
|
185
185
|
if (!bucket || !key) {
|
|
186
186
|
ctx.throw(400, "bucket and key values are required");
|
|
187
187
|
return;
|
|
188
188
|
}
|
|
189
189
|
try {
|
|
190
|
-
const s3 = new
|
|
190
|
+
const s3 = new aws_sdk_1.default.S3({
|
|
191
191
|
region: awsRegion,
|
|
192
192
|
accessKeyId: (_c = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _c === void 0 ? void 0 : _c.accessKeyId,
|
|
193
193
|
secretAccessKey: (_d = datasource === null || datasource === void 0 ? void 0 : datasource.config) === null || _d === void 0 ? void 0 : _d.secretAccessKey,
|
|
@@ -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) {
|
|
@@ -40,9 +17,9 @@ const utils_1 = require("../../../integrations/utils");
|
|
|
40
17
|
const utils_2 = require("./utils");
|
|
41
18
|
const constants_1 = require("../../../constants");
|
|
42
19
|
const query_1 = require("../../../integrations/base/query");
|
|
43
|
-
const csvParser = __importStar(require("../../../utilities/csvParser"));
|
|
44
20
|
const external_1 = require("../row/external");
|
|
45
21
|
const backend_core_1 = require("@budibase/backend-core");
|
|
22
|
+
const schema_1 = require("../../../utilities/schema");
|
|
46
23
|
const types_1 = require("@budibase/types");
|
|
47
24
|
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
48
25
|
const { cloneDeep } = require("lodash/fp");
|
|
@@ -176,7 +153,7 @@ function save(ctx) {
|
|
|
176
153
|
const table = ctx.request.body;
|
|
177
154
|
const renamed = table === null || table === void 0 ? void 0 : table._rename;
|
|
178
155
|
// can't do this right now
|
|
179
|
-
delete table.
|
|
156
|
+
delete table.rows;
|
|
180
157
|
const datasourceId = getDatasourceId(ctx.request.body);
|
|
181
158
|
// table doesn't exist already, note that it is created
|
|
182
159
|
if (!table._id) {
|
|
@@ -191,7 +168,7 @@ function save(ctx) {
|
|
|
191
168
|
ctx.throw(400, "A column type has changed.");
|
|
192
169
|
}
|
|
193
170
|
const db = backend_core_1.context.getAppDB();
|
|
194
|
-
const datasource = yield
|
|
171
|
+
const datasource = yield sdk_1.default.datasources.get(datasourceId);
|
|
195
172
|
if (!datasource.entities) {
|
|
196
173
|
datasource.entities = {};
|
|
197
174
|
}
|
|
@@ -265,12 +242,15 @@ function destroy(ctx) {
|
|
|
265
242
|
}
|
|
266
243
|
const datasourceId = getDatasourceId(tableToDelete);
|
|
267
244
|
const db = backend_core_1.context.getAppDB();
|
|
268
|
-
const datasource = yield
|
|
245
|
+
const datasource = yield sdk_1.default.datasources.get(datasourceId);
|
|
269
246
|
const tables = datasource.entities;
|
|
270
247
|
const operation = types_1.Operation.DELETE_TABLE;
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
248
|
+
if (tables) {
|
|
249
|
+
yield makeTableRequest(datasource, operation, tableToDelete, tables);
|
|
250
|
+
cleanupRelationships(tableToDelete, tables);
|
|
251
|
+
delete tables[tableToDelete.name];
|
|
252
|
+
datasource.entities = tables;
|
|
253
|
+
}
|
|
274
254
|
yield db.put(datasource);
|
|
275
255
|
return tableToDelete;
|
|
276
256
|
});
|
|
@@ -279,15 +259,16 @@ exports.destroy = destroy;
|
|
|
279
259
|
function bulkImport(ctx) {
|
|
280
260
|
return __awaiter(this, void 0, void 0, function* () {
|
|
281
261
|
const table = yield sdk_1.default.tables.getTable(ctx.params.tableId);
|
|
282
|
-
const {
|
|
283
|
-
|
|
262
|
+
const { rows } = ctx.request.body;
|
|
263
|
+
const schema = table.schema;
|
|
264
|
+
if (!rows || !(0, schema_1.isRows)(rows) || !(0, schema_1.isSchema)(schema)) {
|
|
284
265
|
ctx.throw(400, "Provided data import information is invalid.");
|
|
285
266
|
}
|
|
286
|
-
const
|
|
267
|
+
const parsedRows = yield (0, schema_1.parse)(rows, schema);
|
|
287
268
|
yield (0, external_1.handleRequest)(types_1.Operation.BULK_CREATE, table._id, {
|
|
288
|
-
rows,
|
|
269
|
+
rows: parsedRows,
|
|
289
270
|
});
|
|
290
|
-
yield backend_core_1.events.rows.imported(table,
|
|
271
|
+
yield backend_core_1.events.rows.imported(table, parsedRows.length);
|
|
291
272
|
return table;
|
|
292
273
|
});
|
|
293
274
|
}
|
|
@@ -35,14 +35,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.
|
|
38
|
+
exports.validateExistingTableImport = exports.validateNewTableImport = exports.csvToJson = exports.bulkImport = exports.destroy = exports.save = exports.find = exports.fetch = void 0;
|
|
39
39
|
const internal = __importStar(require("./internal"));
|
|
40
40
|
const external = __importStar(require("./external"));
|
|
41
|
-
const
|
|
41
|
+
const schema_1 = require("../../../utilities/schema");
|
|
42
42
|
const utils_1 = require("../../../integrations/utils");
|
|
43
43
|
const utils_2 = require("../../../db/utils");
|
|
44
44
|
const backend_core_1 = require("@budibase/backend-core");
|
|
45
45
|
const sdk_1 = __importDefault(require("../../../sdk"));
|
|
46
|
+
const csvtojson_1 = __importDefault(require("csvtojson"));
|
|
46
47
|
function pickApi({ tableId, table }) {
|
|
47
48
|
if (table && !tableId) {
|
|
48
49
|
tableId = table._id;
|
|
@@ -87,7 +88,7 @@ function save(ctx) {
|
|
|
87
88
|
return __awaiter(this, void 0, void 0, function* () {
|
|
88
89
|
const appId = ctx.appId;
|
|
89
90
|
const table = ctx.request.body;
|
|
90
|
-
const
|
|
91
|
+
const isImport = table.rows;
|
|
91
92
|
const savedTable = yield pickApi({ table }).save(ctx);
|
|
92
93
|
if (!table._id) {
|
|
93
94
|
yield backend_core_1.events.table.created(savedTable);
|
|
@@ -95,8 +96,8 @@ function save(ctx) {
|
|
|
95
96
|
else {
|
|
96
97
|
yield backend_core_1.events.table.updated(savedTable);
|
|
97
98
|
}
|
|
98
|
-
if (
|
|
99
|
-
yield backend_core_1.events.table.imported(savedTable
|
|
99
|
+
if (isImport) {
|
|
100
|
+
yield backend_core_1.events.table.imported(savedTable);
|
|
100
101
|
}
|
|
101
102
|
ctx.status = 200;
|
|
102
103
|
ctx.message = `Table ${table.name} saved successfully.`;
|
|
@@ -132,19 +133,47 @@ function bulkImport(ctx) {
|
|
|
132
133
|
});
|
|
133
134
|
}
|
|
134
135
|
exports.bulkImport = bulkImport;
|
|
135
|
-
function
|
|
136
|
+
function csvToJson(ctx) {
|
|
136
137
|
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
-
|
|
138
|
-
const
|
|
139
|
-
|
|
138
|
+
const { csvString } = ctx.request.body;
|
|
139
|
+
const result = yield (0, csvtojson_1.default)().fromString(csvString);
|
|
140
|
+
ctx.status = 200;
|
|
141
|
+
ctx.body = result;
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
exports.csvToJson = csvToJson;
|
|
145
|
+
function validateNewTableImport(ctx) {
|
|
146
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
147
|
+
const { rows, schema } = ctx.request.body;
|
|
148
|
+
if ((0, schema_1.isRows)(rows) && (0, schema_1.isSchema)(schema)) {
|
|
149
|
+
ctx.status = 200;
|
|
150
|
+
ctx.body = (0, schema_1.validate)(rows, schema);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
ctx.status = 422;
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
exports.validateNewTableImport = validateNewTableImport;
|
|
158
|
+
function validateExistingTableImport(ctx) {
|
|
159
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
const { rows, tableId } = ctx.request.body;
|
|
161
|
+
let schema = null;
|
|
140
162
|
if (tableId) {
|
|
141
|
-
|
|
163
|
+
const table = yield sdk_1.default.tables.getTable(tableId);
|
|
164
|
+
schema = table.schema;
|
|
142
165
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
166
|
+
else {
|
|
167
|
+
ctx.status = 422;
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
if (tableId && (0, schema_1.isRows)(rows) && (0, schema_1.isSchema)(schema)) {
|
|
171
|
+
ctx.status = 200;
|
|
172
|
+
ctx.body = (0, schema_1.validate)(rows, schema);
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
ctx.status = 422;
|
|
146
176
|
}
|
|
147
|
-
ctx.body = { schema: result };
|
|
148
177
|
});
|
|
149
178
|
}
|
|
150
|
-
exports.
|
|
179
|
+
exports.validateExistingTableImport = validateExistingTableImport;
|
|
@@ -57,7 +57,7 @@ function checkAutoColumns(table, oldTable) {
|
|
|
57
57
|
function save(ctx) {
|
|
58
58
|
return __awaiter(this, void 0, void 0, function* () {
|
|
59
59
|
const db = backend_core_1.context.getAppDB();
|
|
60
|
-
const _a = ctx.request.body, {
|
|
60
|
+
const _a = ctx.request.body, { rows } = _a, rest = __rest(_a, ["rows"]);
|
|
61
61
|
let tableToSave = Object.assign({ type: "table", _id: (0, utils_1.generateTableID)(), views: {} }, rest);
|
|
62
62
|
// if the table obj had an _id then it will have been retrieved
|
|
63
63
|
let oldTable;
|
|
@@ -75,7 +75,7 @@ function save(ctx) {
|
|
|
75
75
|
const tableSaveFunctions = new utils_2.TableSaveFunctions({
|
|
76
76
|
user: ctx.user,
|
|
77
77
|
oldTable,
|
|
78
|
-
|
|
78
|
+
importRows: rows,
|
|
79
79
|
});
|
|
80
80
|
tableToSave = yield tableSaveFunctions.before(tableToSave);
|
|
81
81
|
// make sure that types don't change of a column, have to remove
|
|
@@ -186,8 +186,8 @@ exports.destroy = destroy;
|
|
|
186
186
|
function bulkImport(ctx) {
|
|
187
187
|
return __awaiter(this, void 0, void 0, function* () {
|
|
188
188
|
const table = yield sdk_1.default.tables.getTable(ctx.params.tableId);
|
|
189
|
-
const {
|
|
190
|
-
yield (0, utils_2.handleDataImport)(ctx.user, table,
|
|
189
|
+
const { rows } = ctx.request.body;
|
|
190
|
+
yield (0, utils_2.handleDataImport)(ctx.user, table, rows);
|
|
191
191
|
return table;
|
|
192
192
|
});
|
|
193
193
|
}
|
|
@@ -13,7 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.TableSaveFunctions = exports.hasTypeChanged = exports.areSwitchableTypes = exports.foreignKeyStructure = exports.generateJunctionTableName = exports.generateForeignKey = exports.checkForViewUpdates = exports.checkStaticTables = exports.handleSearchIndexes = exports.handleDataImport = exports.importToRows = exports.makeSureTableUpToDate = exports.checkForColumnUpdates = exports.clearColumns = void 0;
|
|
16
|
-
const
|
|
16
|
+
const schema_1 = require("../../../utilities/schema");
|
|
17
17
|
const utils_1 = require("../../../db/utils");
|
|
18
18
|
const lodash_1 = require("lodash");
|
|
19
19
|
const constants_1 = require("../../../constants");
|
|
@@ -124,19 +124,19 @@ function importToRows(data, table, user = {}) {
|
|
|
124
124
|
return finalData;
|
|
125
125
|
}
|
|
126
126
|
exports.importToRows = importToRows;
|
|
127
|
-
function handleDataImport(user, table,
|
|
127
|
+
function handleDataImport(user, table, rows) {
|
|
128
128
|
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
-
|
|
129
|
+
const schema = table.schema;
|
|
130
|
+
if (!rows || !(0, schema_1.isRows)(rows) || !(0, schema_1.isSchema)(schema)) {
|
|
130
131
|
return table;
|
|
131
132
|
}
|
|
132
133
|
const db = backend_core_1.context.getAppDB();
|
|
133
|
-
|
|
134
|
-
const data = yield (0, csvParser_1.transform)(Object.assign(Object.assign({}, dataImport), { existingTable: table }));
|
|
134
|
+
const data = (0, schema_1.parse)(rows, schema);
|
|
135
135
|
let finalData = importToRows(data, table, user);
|
|
136
136
|
yield pro_1.quotas.addRows(finalData.length, () => db.bulkDocs(finalData), {
|
|
137
137
|
tableId: table._id,
|
|
138
138
|
});
|
|
139
|
-
yield backend_core_1.events.rows.imported(table,
|
|
139
|
+
yield backend_core_1.events.rows.imported(table, finalData.length);
|
|
140
140
|
return table;
|
|
141
141
|
});
|
|
142
142
|
}
|
|
@@ -195,11 +195,11 @@ function checkStaticTables(table) {
|
|
|
195
195
|
}
|
|
196
196
|
exports.checkStaticTables = checkStaticTables;
|
|
197
197
|
class TableSaveFunctions {
|
|
198
|
-
constructor({ user, oldTable,
|
|
198
|
+
constructor({ user, oldTable, importRows }) {
|
|
199
199
|
this.db = backend_core_1.context.getAppDB();
|
|
200
200
|
this.user = user;
|
|
201
201
|
this.oldTable = oldTable;
|
|
202
|
-
this.
|
|
202
|
+
this.importRows = importRows;
|
|
203
203
|
// any rows that need updated
|
|
204
204
|
this.rows = [];
|
|
205
205
|
}
|
|
@@ -225,7 +225,7 @@ class TableSaveFunctions {
|
|
|
225
225
|
after(table) {
|
|
226
226
|
return __awaiter(this, void 0, void 0, function* () {
|
|
227
227
|
table = yield handleSearchIndexes(table);
|
|
228
|
-
table = yield handleDataImport(this.user, table, this.
|
|
228
|
+
table = yield handleDataImport(this.user, table, this.importRows);
|
|
229
229
|
return table;
|
|
230
230
|
});
|
|
231
231
|
}
|
|
@@ -20,11 +20,13 @@ const users_1 = require("../../utilities/users");
|
|
|
20
20
|
const backend_core_1 = require("@budibase/backend-core");
|
|
21
21
|
const sdk_1 = __importDefault(require("../../sdk"));
|
|
22
22
|
function syncUser(ctx) {
|
|
23
|
+
var _a;
|
|
23
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
24
25
|
let deleting = false, user;
|
|
25
26
|
const userId = ctx.params.id;
|
|
27
|
+
const previousUser = (_a = ctx.request.body) === null || _a === void 0 ? void 0 : _a.previousUser;
|
|
26
28
|
try {
|
|
27
|
-
user = yield (0, global_1.getRawGlobalUser)(userId);
|
|
29
|
+
user = (yield (0, global_1.getRawGlobalUser)(userId));
|
|
28
30
|
}
|
|
29
31
|
catch (err) {
|
|
30
32
|
if (err && err.status === 404) {
|
|
@@ -35,6 +37,9 @@ function syncUser(ctx) {
|
|
|
35
37
|
throw err;
|
|
36
38
|
}
|
|
37
39
|
}
|
|
40
|
+
let previousApps = previousUser
|
|
41
|
+
? Object.keys(previousUser.roles).map(appId => appId)
|
|
42
|
+
: [];
|
|
38
43
|
const roles = deleting ? {} : user.roles;
|
|
39
44
|
// remove props which aren't useful to metadata
|
|
40
45
|
delete user.password;
|
|
@@ -51,8 +56,9 @@ function syncUser(ctx) {
|
|
|
51
56
|
.filter(entry => entry[1] !== backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC)
|
|
52
57
|
.map(([appId]) => appId);
|
|
53
58
|
}
|
|
54
|
-
for (let prodAppId of prodAppIds) {
|
|
59
|
+
for (let prodAppId of new Set([...prodAppIds, ...previousApps])) {
|
|
55
60
|
const roleId = roles[prodAppId];
|
|
61
|
+
const deleteFromApp = !roleId;
|
|
56
62
|
const devAppId = backend_core_1.db.getDevelopmentAppID(prodAppId);
|
|
57
63
|
for (let appId of [prodAppId, devAppId]) {
|
|
58
64
|
if (!(yield backend_core_1.db.dbExists(appId))) {
|
|
@@ -66,20 +72,22 @@ function syncUser(ctx) {
|
|
|
66
72
|
metadata = yield db.get(metadataId);
|
|
67
73
|
}
|
|
68
74
|
catch (err) {
|
|
69
|
-
if (
|
|
75
|
+
if (deleteFromApp) {
|
|
70
76
|
return;
|
|
71
77
|
}
|
|
72
78
|
metadata = {
|
|
73
79
|
tableId: utils_2.InternalTables.USER_METADATA,
|
|
74
80
|
};
|
|
75
81
|
}
|
|
82
|
+
if (deleteFromApp) {
|
|
83
|
+
yield db.remove(metadata);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
76
86
|
// assign the roleId for the metadata doc
|
|
77
87
|
if (roleId) {
|
|
78
88
|
metadata.roleId = roleId;
|
|
79
89
|
}
|
|
80
|
-
let combined =
|
|
81
|
-
? sdk_1.default.users.combineMetadataAndUser(user, metadata)
|
|
82
|
-
: Object.assign(Object.assign({}, metadata), { status: backend_core_1.constants.UserStatus.INACTIVE, metadata: backend_core_1.roles.BUILTIN_ROLE_IDS.PUBLIC });
|
|
90
|
+
let combined = sdk_1.default.users.combineMetadataAndUser(user, metadata);
|
|
83
91
|
// if its null then there was no updates required
|
|
84
92
|
if (combined) {
|
|
85
93
|
yield db.put(combined);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.isFormat = exports.Format = exports.jsonWithSchema = exports.json = exports.csv = void 0;
|
|
4
4
|
function csv(headers, rows) {
|
|
5
5
|
let csv = headers.map(key => `"${key}"`).join(",");
|
|
6
6
|
for (let row of rows) {
|
|
@@ -18,11 +18,27 @@ function csv(headers, rows) {
|
|
|
18
18
|
return csv;
|
|
19
19
|
}
|
|
20
20
|
exports.csv = csv;
|
|
21
|
-
function json(
|
|
21
|
+
function json(rows) {
|
|
22
22
|
return JSON.stringify(rows, undefined, 2);
|
|
23
23
|
}
|
|
24
24
|
exports.json = json;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
function jsonWithSchema(schema, rows) {
|
|
26
|
+
const newSchema = {};
|
|
27
|
+
Object.values(schema).forEach(column => {
|
|
28
|
+
if (!column.autocolumn) {
|
|
29
|
+
newSchema[column.name] = column;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return JSON.stringify({ schema: newSchema, rows }, undefined, 2);
|
|
33
|
+
}
|
|
34
|
+
exports.jsonWithSchema = jsonWithSchema;
|
|
35
|
+
var Format;
|
|
36
|
+
(function (Format) {
|
|
37
|
+
Format["CSV"] = "csv";
|
|
38
|
+
Format["JSON"] = "json";
|
|
39
|
+
Format["JSON_WITH_SCHEMA"] = "jsonWithSchema";
|
|
40
|
+
})(Format = exports.Format || (exports.Format = {}));
|
|
41
|
+
function isFormat(format) {
|
|
42
|
+
return Object.values(Format).includes(format);
|
|
43
|
+
}
|
|
44
|
+
exports.isFormat = isFormat;
|