@budibase/server 2.2.11 → 2.2.12-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__mocks__/aws-sdk.ts +19 -0
- package/__mocks__/node-fetch.ts +78 -0
- package/builder/assets/{index.7481e2b4.js → index.5e79c3b5.js} +363 -360
- package/builder/assets/{index.9cb087df.css → index.fa480d5b.css} +2 -2
- package/builder/index.html +2 -2
- package/coverage/clover.xml +5038 -5004
- package/coverage/coverage-final.json +268 -265
- package/coverage/lcov-report/index.html +206 -206
- package/coverage/lcov-report/src/api/controllers/analytics.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/apikeys.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/application.ts.html +258 -183
- package/coverage/lcov-report/src/api/controllers/auth.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/automation.ts.html +51 -51
- package/coverage/lcov-report/src/api/controllers/backup.ts.html +6 -6
- package/coverage/lcov-report/src/api/controllers/cloud.ts.html +91 -79
- package/coverage/lcov-report/src/api/controllers/component.ts.html +5 -5
- package/coverage/lcov-report/src/api/controllers/datasource.ts.html +30 -30
- package/coverage/lcov-report/src/api/controllers/deploy/Deployment.ts.html +17 -14
- package/coverage/lcov-report/src/api/controllers/deploy/index.html +19 -19
- package/coverage/lcov-report/src/api/controllers/deploy/index.ts.html +141 -195
- package/coverage/lcov-report/src/api/controllers/dev.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/index.html +51 -51
- 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 +19 -19
- package/coverage/lcov-report/src/api/controllers/plugin/github.ts.html +63 -63
- 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 +55 -55
- 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 +67 -16
- package/coverage/lcov-report/src/api/controllers/public/index.html +15 -15
- 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 +6 -6
- package/coverage/lcov-report/src/api/controllers/public/rows.ts.html +10 -10
- package/coverage/lcov-report/src/api/controllers/public/tables.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/public/users.ts.html +11 -11
- package/coverage/lcov-report/src/api/controllers/public/utils.ts.html +6 -6
- 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 +8 -8
- 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 +8 -8
- 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 +8 -8
- 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 +10 -10
- package/coverage/lcov-report/src/api/controllers/query/import/sources/openapi3.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/query/index.html +19 -19
- package/coverage/lcov-report/src/api/controllers/query/index.ts.html +60 -60
- 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 +12 -15
- package/coverage/lcov-report/src/api/controllers/row/external.ts.html +20 -20
- package/coverage/lcov-report/src/api/controllers/row/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/row/index.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/row/internal.ts.html +55 -52
- package/coverage/lcov-report/src/api/controllers/row/internalSearch.ts.html +9 -9
- package/coverage/lcov-report/src/api/controllers/row/staticFormula.ts.html +21 -12
- package/coverage/lcov-report/src/api/controllers/row/utils.ts.html +17 -14
- package/coverage/lcov-report/src/api/controllers/screen.ts.html +26 -26
- package/coverage/lcov-report/src/api/controllers/script.ts.html +18 -18
- package/coverage/lcov-report/src/api/controllers/static/index.html +11 -11
- package/coverage/lcov-report/src/api/controllers/static/index.ts.html +32 -44
- package/coverage/lcov-report/src/api/controllers/table/bulkFormula.ts.html +10 -10
- package/coverage/lcov-report/src/api/controllers/table/external.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/table/index.html +19 -19
- package/coverage/lcov-report/src/api/controllers/table/index.ts.html +14 -14
- package/coverage/lcov-report/src/api/controllers/table/internal.ts.html +17 -17
- package/coverage/lcov-report/src/api/controllers/table/utils.ts.html +51 -51
- package/coverage/lcov-report/src/api/controllers/templates.ts.html +7 -7
- package/coverage/lcov-report/src/api/controllers/user.ts.html +119 -119
- package/coverage/lcov-report/src/api/controllers/view/exporters.ts.html +4 -4
- package/coverage/lcov-report/src/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/src/api/controllers/view/index.ts.html +49 -49
- package/coverage/lcov-report/src/api/controllers/view/utils.ts.html +22 -22
- package/coverage/lcov-report/src/api/controllers/view/viewBuilder.ts.html +33 -33
- package/coverage/lcov-report/src/api/controllers/webhook.ts.html +14 -14
- package/coverage/lcov-report/src/api/index.html +1 -1
- package/coverage/lcov-report/src/api/index.ts.html +33 -33
- 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 +44 -11
- 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 -11
- package/coverage/lcov-report/src/api/routes/dev.ts.html +13 -13
- package/coverage/lcov-report/src/api/routes/index.html +7 -7
- package/coverage/lcov-report/src/api/routes/index.ts.html +40 -37
- 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 +146 -14
- package/coverage/lcov-report/src/api/routes/public/index.html +7 -7
- package/coverage/lcov-report/src/api/routes/public/index.ts.html +52 -52
- 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 +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 +11 -11
- 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 +11 -11
- package/coverage/lcov-report/src/api/routes/templates.ts.html +8 -8
- package/coverage/lcov-report/src/api/routes/tests/utilities/TestFunctions.ts.html +15 -15
- 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 +24 -24
- 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 +42 -42
- 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 +32 -32
- package/coverage/lcov-report/src/automations/actions.ts.html +25 -25
- package/coverage/lcov-report/src/automations/automationUtils.ts.html +91 -19
- package/coverage/lcov-report/src/automations/bullboard.ts.html +11 -11
- package/coverage/lcov-report/src/automations/index.html +19 -19
- package/coverage/lcov-report/src/automations/index.ts.html +13 -13
- package/coverage/lcov-report/src/automations/logging/index.html +1 -1
- package/coverage/lcov-report/src/automations/logging/index.ts.html +11 -11
- package/coverage/lcov-report/src/automations/steps/bash.ts.html +34 -34
- 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 +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 +6 -6
- package/coverage/lcov-report/src/automations/steps/index.html +83 -83
- 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 +14 -14
- package/coverage/lcov-report/src/automations/steps/queryRows.ts.html +17 -17
- package/coverage/lcov-report/src/automations/steps/sendSmtpEmail.ts.html +28 -28
- package/coverage/lcov-report/src/automations/steps/serverLog.ts.html +18 -18
- 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 +16 -16
- package/coverage/lcov-report/src/automations/steps/zapier.ts.html +22 -22
- package/coverage/lcov-report/src/automations/tests/utilities/index.html +5 -5
- package/coverage/lcov-report/src/automations/tests/utilities/index.ts.html +26 -26
- 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 +21 -21
- package/coverage/lcov-report/src/automations/utils.ts.html +56 -56
- package/coverage/lcov-report/src/constants/index.html +1 -1
- package/coverage/lcov-report/src/constants/index.ts.html +92 -92
- package/coverage/lcov-report/src/constants/layouts.ts.html +4 -4
- package/coverage/lcov-report/src/constants/screens.ts.html +5 -5
- package/coverage/lcov-report/src/db/defaultData/datasource_bb_default.ts.html +23 -23
- 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 +16 -16
- package/coverage/lcov-report/src/db/inMemoryView.ts.html +5 -5
- package/coverage/lcov-report/src/db/index.html +19 -19
- package/coverage/lcov-report/src/db/index.ts.html +9 -9
- package/coverage/lcov-report/src/db/linkedRows/LinkController.ts.html +8 -8
- 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 +15 -15
- package/coverage/lcov-report/src/db/linkedRows/linkUtils.ts.html +12 -12
- package/coverage/lcov-report/src/db/newid.ts.html +4 -4
- package/coverage/lcov-report/src/db/utils.ts.html +80 -80
- package/coverage/lcov-report/src/definitions/automations.ts.html +4 -4
- package/coverage/lcov-report/src/definitions/datasource.ts.html +4 -4
- package/coverage/lcov-report/src/definitions/index.html +1 -1
- package/coverage/lcov-report/src/environment.ts.html +40 -28
- package/coverage/lcov-report/src/events/AutomationEmitter.ts.html +6 -6
- 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 +3 -3
- package/coverage/lcov-report/src/index.html +25 -25
- package/coverage/lcov-report/src/index.ts.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/src/integrations/base/query.ts.html +3 -3
- package/coverage/lcov-report/src/integrations/base/sql.ts.html +14 -14
- package/coverage/lcov-report/src/integrations/base/sqlTable.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/base/utils.ts.html +3 -3
- package/coverage/lcov-report/src/integrations/couchdb.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/dynamodb.ts.html +6 -6
- package/coverage/lcov-report/src/integrations/elasticsearch.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/firebase.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/googlesheets.ts.html +12 -12
- package/coverage/lcov-report/src/integrations/index.html +5 -5
- package/coverage/lcov-report/src/integrations/index.ts.html +35 -47
- package/coverage/lcov-report/src/integrations/microsoftSqlServer.ts.html +8 -8
- package/coverage/lcov-report/src/integrations/mongodb.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/mysql.ts.html +10 -10
- package/coverage/lcov-report/src/integrations/oracle.ts.html +13 -13
- package/coverage/lcov-report/src/integrations/postgres.ts.html +42 -42
- package/coverage/lcov-report/src/integrations/queries/index.html +1 -1
- package/coverage/lcov-report/src/integrations/queries/sql.ts.html +13 -13
- package/coverage/lcov-report/src/integrations/redis.ts.html +5 -5
- package/coverage/lcov-report/src/integrations/rest.ts.html +16 -16
- 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 +36 -36
- package/coverage/lcov-report/src/middleware/appInfo.ts.html +7 -7
- package/coverage/lcov-report/src/middleware/authorized.ts.html +28 -28
- package/coverage/lcov-report/src/middleware/builder.ts.html +17 -17
- package/coverage/lcov-report/src/middleware/currentapp.ts.html +39 -39
- 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 +22 -22
- 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 +13 -10
- 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 +15 -15
- package/coverage/lcov-report/src/sdk/app/applications/index.ts.html +4 -4
- package/coverage/lcov-report/src/sdk/app/applications/sync.ts.html +34 -34
- 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 +6 -6
- 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 +41 -53
- package/coverage/lcov-report/src/sdk/app/backups/index.html +28 -28
- package/coverage/lcov-report/src/sdk/app/backups/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/app/backups/statistics.ts.html +73 -73
- 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 +1 -1
- package/coverage/lcov-report/src/sdk/app/tables/index.ts.html +5 -5
- package/coverage/lcov-report/src/sdk/index.html +1 -1
- package/coverage/lcov-report/src/sdk/index.ts.html +9 -9
- package/coverage/lcov-report/src/sdk/users/index.html +5 -5
- package/coverage/lcov-report/src/sdk/users/index.ts.html +3 -3
- package/coverage/lcov-report/src/sdk/users/utils.ts.html +34 -34
- package/coverage/lcov-report/src/startup.ts.html +42 -42
- package/coverage/lcov-report/src/tests/utilities/TestConfiguration.ts.html +182 -125
- package/coverage/lcov-report/src/tests/utilities/controllers.ts.html +15 -15
- package/coverage/lcov-report/src/tests/utilities/index.html +15 -15
- package/coverage/lcov-report/src/tests/utilities/index.ts.html +1 -1
- package/coverage/lcov-report/src/tests/utilities/structures.ts.html +30 -30
- package/coverage/lcov-report/src/threads/automation.ts.html +34 -103
- package/coverage/lcov-report/src/threads/index.html +19 -19
- package/coverage/lcov-report/src/threads/index.ts.html +25 -25
- package/coverage/lcov-report/src/threads/query.ts.html +71 -71
- package/coverage/lcov-report/src/threads/utils.ts.html +18 -18
- package/coverage/lcov-report/src/utilities/budibaseDir.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/centralPath.ts.html +4 -4
- package/coverage/lcov-report/src/utilities/csvParser.ts.html +8 -8
- package/coverage/lcov-report/src/utilities/fileSystem/app.ts.html +343 -0
- package/coverage/lcov-report/src/utilities/fileSystem/clientLibrary.ts.html +12 -12
- package/coverage/lcov-report/src/utilities/fileSystem/filesystem.ts.html +595 -0
- package/coverage/lcov-report/src/utilities/fileSystem/index.html +79 -19
- package/coverage/lcov-report/src/utilities/fileSystem/index.ts.html +20 -1049
- package/coverage/lcov-report/src/utilities/fileSystem/plugin.ts.html +280 -0
- package/coverage/lcov-report/src/utilities/fileSystem/processor.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/fileSystem/template.ts.html +193 -0
- package/coverage/lcov-report/src/utilities/global.ts.html +43 -43
- package/coverage/lcov-report/src/utilities/index.html +48 -63
- package/coverage/lcov-report/src/utilities/index.ts.html +36 -168
- package/coverage/lcov-report/src/utilities/redis.ts.html +32 -32
- 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 +28 -28
- package/coverage/lcov-report/src/utilities/rowProcessor/index.ts.html +60 -33
- package/coverage/lcov-report/src/utilities/rowProcessor/map.ts.html +3 -3
- package/coverage/lcov-report/src/utilities/rowProcessor/utils.ts.html +38 -38
- package/coverage/lcov-report/src/utilities/scriptRunner.ts.html +32 -32
- package/coverage/lcov-report/src/utilities/security.ts.html +6 -6
- package/coverage/lcov-report/src/utilities/statusCodes.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/src/utilities/usageQuota/rows.ts.html +35 -35
- package/coverage/lcov-report/src/utilities/usageQuota/usageQuoteReset.ts.html +1 -1
- package/coverage/lcov-report/src/utilities/users.ts.html +6 -6
- package/coverage/lcov-report/src/utilities/workerRequests.ts.html +56 -56
- package/coverage/lcov-report/src/watch.ts.html +9 -9
- package/coverage/lcov-report/src/websocket.ts.html +15 -15
- package/coverage/lcov.info +7198 -7131
- package/dist/api/controllers/application.js +47 -35
- package/dist/api/controllers/cloud.js +6 -2
- 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/row/ExternalRequest.js +0 -1
- package/dist/api/controllers/row/internal.js +12 -12
- package/dist/api/controllers/row/staticFormula.js +1 -1
- package/dist/api/controllers/static/index.js +8 -11
- package/dist/api/controllers/view/index.js +2 -2
- package/dist/api/routes/application.js +3 -0
- package/dist/api/routes/deploy.js +1 -2
- package/dist/api/routes/public/applications.js +37 -0
- package/dist/api/routes/public/middleware/mapper.js +3 -0
- package/dist/automations/automationUtils.js +26 -1
- package/dist/environment.js +5 -1
- package/dist/integrations/googlesheets.js +1 -1
- package/dist/integrations/index.js +1 -2
- package/dist/migrations/functions/backfill/global/configs.js +4 -4
- package/dist/package.json +9 -7
- package/dist/sdk/app/backups/imports.js +2 -6
- package/dist/threads/automation.js +4 -28
- 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 +182 -0
- package/dist/utilities/fileSystem/index.js +18 -342
- package/dist/utilities/fileSystem/plugin.js +63 -0
- package/dist/utilities/fileSystem/template.js +44 -0
- package/dist/utilities/index.js +1 -44
- package/dist/utilities/rowProcessor/index.js +12 -4
- package/package.json +10 -8
- package/scripts/dev/manage.js +0 -16
- 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 +61 -36
- package/src/api/controllers/auth.ts +2 -2
- package/src/api/controllers/cloud.ts +10 -6
- 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/row/ExternalRequest.ts +0 -1
- package/src/api/controllers/row/internal.ts +24 -23
- package/src/api/controllers/row/staticFormula.ts +5 -2
- package/src/api/controllers/row/utils.ts +2 -1
- package/src/api/controllers/static/index.ts +6 -10
- package/src/api/controllers/view/index.ts +2 -2
- package/src/api/routes/application.ts +11 -0
- package/src/api/routes/deploy.ts +0 -1
- package/src/api/routes/index.ts +4 -3
- package/src/api/routes/public/applications.ts +44 -0
- package/src/api/routes/public/middleware/mapper.ts +4 -0
- 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} +23 -15
- 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 +8 -2
- package/src/api/routes/tests/user.spec.js +86 -0
- package/src/api/routes/tests/utilities/index.ts +2 -2
- package/src/api/routes/tests/webhook.spec.js +1 -1
- package/src/automations/automationUtils.ts +24 -0
- 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/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/unitTests/automationUtils.spec.ts +65 -0
- package/src/definitions/openapi.ts +10 -0
- package/src/environment.ts +5 -1
- package/src/integrations/googlesheets.ts +1 -1
- package/src/integrations/index.ts +1 -5
- package/src/migrations/functions/backfill/global/configs.ts +5 -4
- package/src/sdk/app/backups/imports.ts +2 -6
- package/src/sdk/tests/attachments.spec.ts +1 -4
- package/src/tests/jestSetup.ts +4 -1
- package/src/tests/utilities/TestConfiguration.ts +23 -4
- package/src/threads/automation.ts +4 -27
- package/src/utilities/fileSystem/app.ts +86 -0
- package/src/utilities/fileSystem/clientLibrary.ts +1 -1
- package/src/utilities/fileSystem/filesystem.ts +170 -0
- package/src/utilities/fileSystem/index.ts +5 -348
- package/src/utilities/fileSystem/plugin.ts +65 -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/tsconfig.build.json +2 -0
- 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/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/plugins.ts +0 -22
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.updateAppPackage = exports.sync = exports.destroy = exports.revertClient = exports.updateClient = exports.update = exports.create = exports.fetchAppPackage = exports.fetchAppDefinition = exports.fetch = void 0;
|
|
15
|
+
exports.updateAppPackage = exports.sync = exports.unpublish = exports.destroy = exports.revertClient = exports.updateClient = exports.update = exports.create = exports.fetchAppPackage = exports.fetchAppDefinition = exports.fetch = void 0;
|
|
16
16
|
const environment_1 = __importDefault(require("../../environment"));
|
|
17
17
|
const package_json_1 = __importDefault(require("../../../package.json"));
|
|
18
18
|
const staticViews_1 = require("../../db/views/staticViews");
|
|
@@ -24,14 +24,13 @@ const datasource_bb_default_1 = require("../../db/defaultData/datasource_bb_defa
|
|
|
24
24
|
const workerRequests_1 = require("../../utilities/workerRequests");
|
|
25
25
|
const utilities_1 = require("../../utilities");
|
|
26
26
|
const redis_1 = require("../../utilities/redis");
|
|
27
|
-
const
|
|
27
|
+
const fileSystem_2 = require("../../utilities/fileSystem");
|
|
28
28
|
const utils_2 = require("../../automations/utils");
|
|
29
29
|
const logging_1 = require("../../automations/logging");
|
|
30
30
|
const rows_1 = require("../../utilities/usageQuota/rows");
|
|
31
31
|
const pro_1 = require("@budibase/pro");
|
|
32
32
|
const types_1 = require("@budibase/types");
|
|
33
33
|
const layouts_1 = require("../../constants/layouts");
|
|
34
|
-
const plugins_1 = require("../../utilities/plugins");
|
|
35
34
|
const sdk_1 = __importDefault(require("../../sdk"));
|
|
36
35
|
// utility function, need to do away with this
|
|
37
36
|
function getLayouts() {
|
|
@@ -164,25 +163,25 @@ function fetchAppDefinition(ctx) {
|
|
|
164
163
|
}
|
|
165
164
|
exports.fetchAppDefinition = fetchAppDefinition;
|
|
166
165
|
function fetchAppPackage(ctx) {
|
|
167
|
-
var _a;
|
|
168
166
|
return __awaiter(this, void 0, void 0, function* () {
|
|
169
167
|
const db = backend_core_1.context.getAppDB();
|
|
170
168
|
let application = yield db.get(utils_1.DocumentType.APP_METADATA);
|
|
171
169
|
const layouts = yield getLayouts();
|
|
172
170
|
let screens = yield getScreens();
|
|
173
171
|
// Enrich plugin URLs
|
|
174
|
-
application.usedPlugins =
|
|
172
|
+
application.usedPlugins = backend_core_1.objectStore.enrichPluginURLs(application.usedPlugins);
|
|
175
173
|
// Only filter screens if the user is not a builder
|
|
176
|
-
if (!(
|
|
174
|
+
if (!(ctx.user.builder && ctx.user.builder.global)) {
|
|
177
175
|
const userRoleId = getUserRoleId(ctx);
|
|
178
176
|
const accessController = new backend_core_1.roles.AccessController();
|
|
179
177
|
screens = yield accessController.checkScreensAccess(screens, userRoleId);
|
|
180
178
|
}
|
|
179
|
+
const clientLibPath = backend_core_1.objectStore.clientLibraryUrl(ctx.params.appId, application.version);
|
|
181
180
|
ctx.body = {
|
|
182
181
|
application,
|
|
183
182
|
screens,
|
|
184
183
|
layouts,
|
|
185
|
-
clientLibPath
|
|
184
|
+
clientLibPath,
|
|
186
185
|
};
|
|
187
186
|
});
|
|
188
187
|
}
|
|
@@ -325,7 +324,7 @@ function appPostCreate(ctx, app) {
|
|
|
325
324
|
if (err.code && err.code === backend_core_1.errors.codes.USAGE_LIMIT_EXCEEDED) {
|
|
326
325
|
// this import resulted in row usage exceeding the quota
|
|
327
326
|
// delete the app
|
|
328
|
-
// skip pre
|
|
327
|
+
// skip pre and post-steps as no rows have been added to quotas yet
|
|
329
328
|
ctx.params.appId = app.appId;
|
|
330
329
|
yield destroyApp(ctx);
|
|
331
330
|
}
|
|
@@ -375,8 +374,8 @@ function updateClient(ctx) {
|
|
|
375
374
|
const currentVersion = application.version;
|
|
376
375
|
// Update client library and manifest
|
|
377
376
|
if (!environment_1.default.isTest()) {
|
|
378
|
-
yield (0,
|
|
379
|
-
yield (0,
|
|
377
|
+
yield (0, fileSystem_2.backupClientLibrary)(ctx.params.appId);
|
|
378
|
+
yield (0, fileSystem_2.updateClientLibrary)(ctx.params.appId);
|
|
380
379
|
}
|
|
381
380
|
// Update versions in app package
|
|
382
381
|
const updatedToVersion = package_json_1.default.version;
|
|
@@ -401,7 +400,7 @@ function revertClient(ctx) {
|
|
|
401
400
|
}
|
|
402
401
|
// Update client library and manifest
|
|
403
402
|
if (!environment_1.default.isTest()) {
|
|
404
|
-
yield (0,
|
|
403
|
+
yield (0, fileSystem_2.revertClientLibrary)(ctx.params.appId);
|
|
405
404
|
}
|
|
406
405
|
// Update versions in app package
|
|
407
406
|
const currentVersion = application.version;
|
|
@@ -417,39 +416,39 @@ function revertClient(ctx) {
|
|
|
417
416
|
});
|
|
418
417
|
}
|
|
419
418
|
exports.revertClient = revertClient;
|
|
419
|
+
const unpublishApp = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
420
|
+
let appId = ctx.params.appId;
|
|
421
|
+
appId = backend_core_1.db.getProdAppID(appId);
|
|
422
|
+
const db = backend_core_1.context.getProdAppDB();
|
|
423
|
+
const result = yield db.destroy();
|
|
424
|
+
yield backend_core_1.events.app.unpublished({ appId });
|
|
425
|
+
// automations only in production
|
|
426
|
+
yield (0, utils_2.cleanupAutomations)(appId);
|
|
427
|
+
yield backend_core_1.cache.app.invalidateAppMetadata(appId);
|
|
428
|
+
return result;
|
|
429
|
+
});
|
|
420
430
|
function destroyApp(ctx) {
|
|
421
431
|
return __awaiter(this, void 0, void 0, function* () {
|
|
422
432
|
let appId = ctx.params.appId;
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
//
|
|
433
|
+
appId = backend_core_1.db.getProdAppID(appId);
|
|
434
|
+
const devAppId = backend_core_1.db.getDevAppID(appId);
|
|
435
|
+
// check if we need to unpublish first
|
|
436
|
+
if (yield backend_core_1.db.dbExists(appId)) {
|
|
437
|
+
// app is deployed, run through unpublish flow
|
|
428
438
|
yield sdk_1.default.applications.syncApp(devAppId);
|
|
439
|
+
yield unpublishApp(ctx);
|
|
429
440
|
}
|
|
430
|
-
const db =
|
|
441
|
+
const db = backend_core_1.db.getDB(devAppId);
|
|
442
|
+
// standard app deletion flow
|
|
431
443
|
const app = yield db.get(utils_1.DocumentType.APP_METADATA);
|
|
432
444
|
const result = yield db.destroy();
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
else {
|
|
437
|
-
yield pro_1.quotas.removeApp();
|
|
438
|
-
yield backend_core_1.events.app.deleted(app);
|
|
439
|
-
}
|
|
440
|
-
/* istanbul ignore next */
|
|
441
|
-
if (!environment_1.default.isTest() && !isUnpublish) {
|
|
445
|
+
yield pro_1.quotas.removeApp();
|
|
446
|
+
yield backend_core_1.events.app.deleted(app);
|
|
447
|
+
if (!environment_1.default.isTest()) {
|
|
442
448
|
yield (0, fileSystem_1.deleteApp)(appId);
|
|
443
449
|
}
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
yield (0, utils_2.cleanupAutomations)(appId);
|
|
447
|
-
}
|
|
448
|
-
// remove app role when the dev app is deleted (no trace of app anymore)
|
|
449
|
-
else {
|
|
450
|
-
yield (0, workerRequests_1.removeAppFromUserRoles)(ctx, appId);
|
|
451
|
-
}
|
|
452
|
-
yield backend_core_1.cache.app.invalidateAppMetadata(appId);
|
|
450
|
+
yield (0, workerRequests_1.removeAppFromUserRoles)(ctx, appId);
|
|
451
|
+
yield backend_core_1.cache.app.invalidateAppMetadata(devAppId);
|
|
453
452
|
return result;
|
|
454
453
|
});
|
|
455
454
|
}
|
|
@@ -478,6 +477,19 @@ function destroy(ctx) {
|
|
|
478
477
|
});
|
|
479
478
|
}
|
|
480
479
|
exports.destroy = destroy;
|
|
480
|
+
const unpublish = (ctx) => __awaiter(void 0, void 0, void 0, function* () {
|
|
481
|
+
const prodAppId = backend_core_1.db.getProdAppID(ctx.params.appId);
|
|
482
|
+
const dbExists = yield backend_core_1.db.dbExists(prodAppId);
|
|
483
|
+
// check app has been published
|
|
484
|
+
if (!dbExists) {
|
|
485
|
+
return ctx.throw(400, "App has not been published.");
|
|
486
|
+
}
|
|
487
|
+
yield preDestroyApp(ctx);
|
|
488
|
+
yield unpublishApp(ctx);
|
|
489
|
+
yield postDestroyApp(ctx);
|
|
490
|
+
ctx.status = 204;
|
|
491
|
+
});
|
|
492
|
+
exports.unpublish = unpublish;
|
|
481
493
|
function sync(ctx) {
|
|
482
494
|
return __awaiter(this, void 0, void 0, function* () {
|
|
483
495
|
const appId = ctx.params.appId;
|
|
@@ -95,11 +95,15 @@ function importApps(ctx) {
|
|
|
95
95
|
if (beenImported || !ctx.request.files || !ctx.request.files.importFile) {
|
|
96
96
|
ctx.throw(400, "Import file is required and environment must be fresh to import apps.");
|
|
97
97
|
}
|
|
98
|
-
|
|
98
|
+
const file = ctx.request.files.importFile;
|
|
99
|
+
if (Array.isArray(file)) {
|
|
100
|
+
ctx.throw(400, "Single file is required");
|
|
101
|
+
}
|
|
102
|
+
if (file.type !== "application/gzip") {
|
|
99
103
|
ctx.throw(400, "Import file must be a gzipped tarball.");
|
|
100
104
|
}
|
|
101
105
|
// initially get all the app databases out of the tarball
|
|
102
|
-
const tmpPath = sdk_1.default.backups.untarFile(
|
|
106
|
+
const tmpPath = sdk_1.default.backups.untarFile(file);
|
|
103
107
|
const globalDbImport = sdk_1.default.backups.getGlobalDBFile(tmpPath);
|
|
104
108
|
const appNames = sdk_1.default.backups.getListOfAppsInMulti(tmpPath);
|
|
105
109
|
const globalDb = backend_core_1.tenancy.getGlobalDB();
|
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
15
|
+
exports.publishApp = exports.deploymentProgress = exports.fetchDeployments = void 0;
|
|
16
16
|
const Deployment_1 = __importDefault(require("./Deployment"));
|
|
17
17
|
const backend_core_1 = require("@budibase/backend-core");
|
|
18
18
|
const utils_1 = require("../../../db/utils");
|
|
@@ -92,8 +92,46 @@ function initDeployedApp(prodAppId) {
|
|
|
92
92
|
});
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
|
-
function
|
|
95
|
+
function fetchDeployments(ctx) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
try {
|
|
98
|
+
const db = backend_core_1.context.getAppDB();
|
|
99
|
+
const deploymentDoc = yield db.get(utils_1.DocumentType.DEPLOYMENTS);
|
|
100
|
+
const { updated, deployments } = yield checkAllDeployments(deploymentDoc);
|
|
101
|
+
if (updated) {
|
|
102
|
+
yield db.put(deployments);
|
|
103
|
+
}
|
|
104
|
+
ctx.body = Object.values(deployments.history).reverse();
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
ctx.body = [];
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
exports.fetchDeployments = fetchDeployments;
|
|
112
|
+
function deploymentProgress(ctx) {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
try {
|
|
115
|
+
const db = backend_core_1.context.getAppDB();
|
|
116
|
+
const deploymentDoc = yield db.get(utils_1.DocumentType.DEPLOYMENTS);
|
|
117
|
+
ctx.body = deploymentDoc[ctx.params.deploymentId];
|
|
118
|
+
}
|
|
119
|
+
catch (err) {
|
|
120
|
+
ctx.throw(500, `Error fetching data for deployment ${ctx.params.deploymentId}`);
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
exports.deploymentProgress = deploymentProgress;
|
|
125
|
+
const publishApp = function (ctx) {
|
|
96
126
|
return __awaiter(this, void 0, void 0, function* () {
|
|
127
|
+
let deployment = new Deployment_1.default();
|
|
128
|
+
console.log("Deployment object created");
|
|
129
|
+
deployment.setStatus(DeploymentStatus.PENDING);
|
|
130
|
+
console.log("Deployment object set to pending");
|
|
131
|
+
deployment = yield storeDeploymentHistory(deployment);
|
|
132
|
+
console.log("Stored deployment history");
|
|
133
|
+
console.log("Deploying app...");
|
|
134
|
+
let app;
|
|
97
135
|
let replication;
|
|
98
136
|
try {
|
|
99
137
|
const appId = backend_core_1.context.getAppId();
|
|
@@ -103,7 +141,7 @@ function deployApp(deployment, userId) {
|
|
|
103
141
|
if (yield pro_1.backups.isEnabled()) {
|
|
104
142
|
// trigger backup initially
|
|
105
143
|
yield pro_1.backups.triggerAppBackup(productionAppId, types_1.AppBackupTrigger.PUBLISH, {
|
|
106
|
-
createdBy:
|
|
144
|
+
createdBy: ctx.user._id,
|
|
107
145
|
});
|
|
108
146
|
}
|
|
109
147
|
const config = {
|
|
@@ -141,7 +179,7 @@ function deployApp(deployment, userId) {
|
|
|
141
179
|
console.log("Deployed app initialised, setting deployment to successful");
|
|
142
180
|
deployment.setStatus(DeploymentStatus.SUCCESS);
|
|
143
181
|
yield storeDeploymentHistory(deployment);
|
|
144
|
-
|
|
182
|
+
app = appDoc;
|
|
145
183
|
}
|
|
146
184
|
catch (err) {
|
|
147
185
|
deployment.setStatus(DeploymentStatus.FAILURE, err.message);
|
|
@@ -153,63 +191,8 @@ function deployApp(deployment, userId) {
|
|
|
153
191
|
yield replication.close();
|
|
154
192
|
}
|
|
155
193
|
}
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
function fetchDeployments(ctx) {
|
|
159
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
-
try {
|
|
161
|
-
const db = backend_core_1.context.getAppDB();
|
|
162
|
-
const deploymentDoc = yield db.get(utils_1.DocumentType.DEPLOYMENTS);
|
|
163
|
-
const { updated, deployments } = yield checkAllDeployments(deploymentDoc);
|
|
164
|
-
if (updated) {
|
|
165
|
-
yield db.put(deployments);
|
|
166
|
-
}
|
|
167
|
-
ctx.body = Object.values(deployments.history).reverse();
|
|
168
|
-
}
|
|
169
|
-
catch (err) {
|
|
170
|
-
ctx.body = [];
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
exports.fetchDeployments = fetchDeployments;
|
|
175
|
-
function deploymentProgress(ctx) {
|
|
176
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
177
|
-
try {
|
|
178
|
-
const db = backend_core_1.context.getAppDB();
|
|
179
|
-
const deploymentDoc = yield db.get(utils_1.DocumentType.DEPLOYMENTS);
|
|
180
|
-
ctx.body = deploymentDoc[ctx.params.deploymentId];
|
|
181
|
-
}
|
|
182
|
-
catch (err) {
|
|
183
|
-
ctx.throw(500, `Error fetching data for deployment ${ctx.params.deploymentId}`);
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
exports.deploymentProgress = deploymentProgress;
|
|
188
|
-
const isFirstDeploy = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
189
|
-
try {
|
|
190
|
-
const db = backend_core_1.context.getProdAppDB();
|
|
191
|
-
yield db.get(utils_1.DocumentType.APP_METADATA);
|
|
192
|
-
}
|
|
193
|
-
catch (e) {
|
|
194
|
-
if (e.status === 404) {
|
|
195
|
-
return true;
|
|
196
|
-
}
|
|
197
|
-
throw e;
|
|
198
|
-
}
|
|
199
|
-
return false;
|
|
200
|
-
});
|
|
201
|
-
const _deployApp = function (ctx) {
|
|
202
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
203
|
-
let deployment = new Deployment_1.default();
|
|
204
|
-
console.log("Deployment object created");
|
|
205
|
-
deployment.setStatus(DeploymentStatus.PENDING);
|
|
206
|
-
console.log("Deployment object set to pending");
|
|
207
|
-
deployment = yield storeDeploymentHistory(deployment);
|
|
208
|
-
console.log("Stored deployment history");
|
|
209
|
-
console.log("Deploying app...");
|
|
210
|
-
let app = yield deployApp(deployment, ctx.user._id);
|
|
211
194
|
yield backend_core_1.events.app.published(app);
|
|
212
195
|
ctx.body = deployment;
|
|
213
196
|
});
|
|
214
197
|
};
|
|
215
|
-
exports.
|
|
198
|
+
exports.publishApp = publishApp;
|
|
@@ -18,15 +18,15 @@ const backend_core_1 = require("@budibase/backend-core");
|
|
|
18
18
|
const types_1 = require("@budibase/types");
|
|
19
19
|
const environment_1 = __importDefault(require("../../../environment"));
|
|
20
20
|
const websocket_1 = require("../../../websocket");
|
|
21
|
-
const backend_core_2 = require("@budibase/backend-core");
|
|
22
21
|
const pro_1 = require("@budibase/pro");
|
|
23
22
|
function getPlugins(type) {
|
|
24
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
24
|
const db = backend_core_1.tenancy.getGlobalDB();
|
|
26
|
-
const response = yield db.allDocs(
|
|
25
|
+
const response = yield db.allDocs(backend_core_1.db.getPluginParams(null, {
|
|
27
26
|
include_docs: true,
|
|
28
27
|
}));
|
|
29
|
-
|
|
28
|
+
let plugins = response.rows.map((row) => row.doc);
|
|
29
|
+
plugins = backend_core_1.objectStore.enrichPluginURLs(plugins);
|
|
30
30
|
if (type) {
|
|
31
31
|
return plugins.filter((plugin) => { var _a; return ((_a = plugin.schema) === null || _a === void 0 ? void 0 : _a.type) === type; });
|
|
32
32
|
}
|
|
@@ -92,7 +92,7 @@ function create(ctx) {
|
|
|
92
92
|
if (!environment_1.default.SELF_HOSTED && ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.schema) === null || _a === void 0 ? void 0 : _a.type) !== types_1.PluginType.COMPONENT) {
|
|
93
93
|
throw new Error("Only component plugins are supported outside of self-host");
|
|
94
94
|
}
|
|
95
|
-
const doc = yield pro_1.plugins.storePlugin(metadata, directory, source);
|
|
95
|
+
const doc = yield pro_1.sdk.plugins.storePlugin(metadata, directory, source);
|
|
96
96
|
websocket_1.ClientAppSocket.emit("plugins-update", { name, hash: doc.hash });
|
|
97
97
|
ctx.body = {
|
|
98
98
|
message: "Plugin uploaded successfully",
|
|
@@ -117,7 +117,7 @@ function destroy(ctx) {
|
|
|
117
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
118
118
|
const { pluginId } = ctx.params;
|
|
119
119
|
try {
|
|
120
|
-
yield pro_1.plugins.deletePlugin(pluginId);
|
|
120
|
+
yield pro_1.sdk.plugins.deletePlugin(pluginId);
|
|
121
121
|
ctx.body = { message: `Plugin ${ctx.params.pluginId} deleted.` };
|
|
122
122
|
}
|
|
123
123
|
catch (err) {
|
|
@@ -135,7 +135,7 @@ function processUploadedPlugin(plugin, source) {
|
|
|
135
135
|
if (!environment_1.default.SELF_HOSTED && ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.schema) === null || _a === void 0 ? void 0 : _a.type) !== types_1.PluginType.COMPONENT) {
|
|
136
136
|
throw new Error("Only component plugins are supported outside of self-host");
|
|
137
137
|
}
|
|
138
|
-
const doc = yield pro_1.plugins.storePlugin(metadata, directory, source);
|
|
138
|
+
const doc = yield pro_1.sdk.plugins.storePlugin(metadata, directory, source);
|
|
139
139
|
websocket_1.ClientAppSocket.emit("plugin-update", { name: doc.name, hash: doc.hash });
|
|
140
140
|
return doc;
|
|
141
141
|
});
|
|
@@ -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
|
};
|
|
@@ -27,7 +27,6 @@ const utils_2 = require("./utils");
|
|
|
27
27
|
const constants_1 = require("../../../constants");
|
|
28
28
|
const utils_3 = require("../../../integrations/utils");
|
|
29
29
|
const string_templates_1 = require("@budibase/string-templates");
|
|
30
|
-
// @ts-ignore
|
|
31
30
|
const fp_1 = require("lodash/fp");
|
|
32
31
|
const rowProcessor_1 = require("../../../utilities/rowProcessor");
|
|
33
32
|
const backend_core_1 = require("@budibase/backend-core");
|
|
@@ -52,12 +52,12 @@ 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");
|
|
@@ -70,9 +70,9 @@ const CALCULATION_TYPES = {
|
|
|
70
70
|
};
|
|
71
71
|
function getView(db, viewName) {
|
|
72
72
|
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 ?
|
|
73
|
+
let mainGetter = environment_1.default.SELF_HOSTED ? utils_2.getFromDesignDoc : utils_2.getFromMemoryDoc;
|
|
74
|
+
let secondaryGetter = environment_1.default.SELF_HOSTED ? utils_2.getFromMemoryDoc : utils_2.getFromDesignDoc;
|
|
75
|
+
let migration = environment_1.default.SELF_HOSTED ? utils_2.migrateToDesignView : utils_2.migrateToInMemoryView;
|
|
76
76
|
let viewInfo, migrate = false;
|
|
77
77
|
try {
|
|
78
78
|
viewInfo = yield mainGetter(db, viewName);
|
|
@@ -121,7 +121,7 @@ function patch(ctx) {
|
|
|
121
121
|
let oldRow;
|
|
122
122
|
try {
|
|
123
123
|
let dbTable = yield db.get(tableId);
|
|
124
|
-
oldRow = yield (0, rowProcessor_1.outputProcessing)(dbTable, yield
|
|
124
|
+
oldRow = yield (0, rowProcessor_1.outputProcessing)(dbTable, yield utils.findRow(ctx, tableId, inputs._id));
|
|
125
125
|
}
|
|
126
126
|
catch (err) {
|
|
127
127
|
if (isUserTable) {
|
|
@@ -145,7 +145,7 @@ function patch(ctx) {
|
|
|
145
145
|
}
|
|
146
146
|
// this returns the table and row incase they have been updated
|
|
147
147
|
let { table, row } = (0, rowProcessor_1.inputProcessing)(ctx.user, dbTable, combinedRow);
|
|
148
|
-
const validateResult = yield
|
|
148
|
+
const validateResult = yield utils.validate({
|
|
149
149
|
row,
|
|
150
150
|
table,
|
|
151
151
|
});
|
|
@@ -185,7 +185,7 @@ function save(ctx) {
|
|
|
185
185
|
// this returns the table and row incase they have been updated
|
|
186
186
|
const dbTable = yield db.get(inputs.tableId);
|
|
187
187
|
let { table, row } = (0, rowProcessor_1.inputProcessing)(ctx.user, dbTable, inputs);
|
|
188
|
-
const validateResult = yield
|
|
188
|
+
const validateResult = yield utils.validate({
|
|
189
189
|
row,
|
|
190
190
|
table,
|
|
191
191
|
});
|
|
@@ -208,7 +208,7 @@ function save(ctx) {
|
|
|
208
208
|
exports.save = save;
|
|
209
209
|
function fetchView(ctx) {
|
|
210
210
|
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
-
const viewName = ctx.params.viewName;
|
|
211
|
+
const viewName = decodeURIComponent(ctx.params.viewName);
|
|
212
212
|
// if this is a table view being looked for just transfer to that
|
|
213
213
|
if (viewName.startsWith(utils_1.DocumentType.TABLE)) {
|
|
214
214
|
ctx.params.tableId = viewName;
|
|
@@ -274,7 +274,7 @@ function find(ctx) {
|
|
|
274
274
|
return __awaiter(this, void 0, void 0, function* () {
|
|
275
275
|
const db = backend_core_1.db.getDB(ctx.appId);
|
|
276
276
|
const table = yield db.get(ctx.params.tableId);
|
|
277
|
-
let row = yield
|
|
277
|
+
let row = yield utils.findRow(ctx, ctx.params.tableId, ctx.params.rowId);
|
|
278
278
|
row = yield (0, rowProcessor_1.outputProcessing)(table, row);
|
|
279
279
|
return row;
|
|
280
280
|
});
|
|
@@ -386,7 +386,7 @@ function search(ctx) {
|
|
|
386
386
|
exports.search = search;
|
|
387
387
|
function validate(ctx) {
|
|
388
388
|
return __awaiter(this, void 0, void 0, function* () {
|
|
389
|
-
return
|
|
389
|
+
return utils.validate({
|
|
390
390
|
tableId: ctx.params.tableId,
|
|
391
391
|
row: ctx.request.body,
|
|
392
392
|
});
|
|
@@ -436,7 +436,7 @@ function fetchEnrichedRow(ctx) {
|
|
|
436
436
|
// need table to work out where links go in row
|
|
437
437
|
let [table, row] = yield Promise.all([
|
|
438
438
|
db.get(tableId),
|
|
439
|
-
|
|
439
|
+
utils.findRow(ctx, tableId, rowId),
|
|
440
440
|
]);
|
|
441
441
|
// get the link docs
|
|
442
442
|
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
|
});
|
|
@@ -10,17 +10,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.getSignedUploadURL = exports.serveClientLibrary = exports.serveBuilderPreview = exports.serveApp = exports.deleteObjects = exports.uploadFile = exports.serveBuilder = exports.toggleBetaUiFeature = void 0;
|
|
13
|
-
const plugins_1 = require("../../../utilities/plugins");
|
|
14
13
|
require("svelte/register");
|
|
15
14
|
const send = require("koa-send");
|
|
16
15
|
const { resolve, join } = require("../../../utilities/centralPath");
|
|
17
16
|
const uuid = require("uuid");
|
|
18
|
-
const
|
|
17
|
+
const constants_1 = require("../../../constants");
|
|
19
18
|
const { processString } = require("@budibase/string-templates");
|
|
20
19
|
const { loadHandlebarsFile, NODE_MODULES_PATH, TOP_LEVEL_PATH, } = require("../../../utilities/fileSystem");
|
|
21
20
|
const env = require("../../../environment");
|
|
22
|
-
const { clientLibraryPath } = require("../../../utilities");
|
|
23
|
-
const { attachmentsRelativeURL } = require("../../../utilities");
|
|
24
21
|
const { DocumentType } = require("../../../db/utils");
|
|
25
22
|
const { context, objectStore, utils } = require("@budibase/backend-core");
|
|
26
23
|
const AWS = require("aws-sdk");
|
|
@@ -38,7 +35,7 @@ function prepareUpload({ s3Key, bucket, metadata, file }) {
|
|
|
38
35
|
return {
|
|
39
36
|
size: file.size,
|
|
40
37
|
name: file.name,
|
|
41
|
-
url:
|
|
38
|
+
url: objectStore.getAppFileUrl(s3Key),
|
|
42
39
|
extension: [...file.name.split(".")].pop(),
|
|
43
40
|
key: response.Key,
|
|
44
41
|
};
|
|
@@ -85,8 +82,8 @@ const uploadFile = function (ctx) {
|
|
|
85
82
|
const processedFileName = `${uuid.v4()}.${fileExtension}`;
|
|
86
83
|
return prepareUpload({
|
|
87
84
|
file,
|
|
88
|
-
s3Key: `${
|
|
89
|
-
bucket: ObjectStoreBuckets.APPS,
|
|
85
|
+
s3Key: `${context.getProdAppId()}/attachments/${processedFileName}`,
|
|
86
|
+
bucket: constants_1.ObjectStoreBuckets.APPS,
|
|
90
87
|
});
|
|
91
88
|
}));
|
|
92
89
|
ctx.body = yield Promise.all(uploads);
|
|
@@ -95,7 +92,7 @@ const uploadFile = function (ctx) {
|
|
|
95
92
|
exports.uploadFile = uploadFile;
|
|
96
93
|
const deleteObjects = function (ctx) {
|
|
97
94
|
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
-
ctx.body = yield objectStore.deleteFiles(ObjectStoreBuckets.APPS, ctx.request.body.keys);
|
|
95
|
+
ctx.body = yield objectStore.deleteFiles(constants_1.ObjectStoreBuckets.APPS, ctx.request.body.keys);
|
|
99
96
|
});
|
|
100
97
|
};
|
|
101
98
|
exports.deleteObjects = deleteObjects;
|
|
@@ -106,13 +103,13 @@ const serveApp = function (ctx) {
|
|
|
106
103
|
let appId = context.getAppId();
|
|
107
104
|
if (!env.isJest()) {
|
|
108
105
|
const App = require("./templates/BudibaseApp.svelte").default;
|
|
109
|
-
const plugins =
|
|
106
|
+
const plugins = objectStore.enrichPluginURLs(appInfo.usedPlugins);
|
|
110
107
|
const { head, html, css } = App.render({
|
|
111
108
|
metaImage: "https://res.cloudinary.com/daog6scxm/image/upload/v1666109324/meta-images/budibase-meta-image_uukc1m.png",
|
|
112
109
|
title: appInfo.name,
|
|
113
110
|
production: env.isProd(),
|
|
114
111
|
appId,
|
|
115
|
-
clientLibPath:
|
|
112
|
+
clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
116
113
|
usedPlugins: plugins,
|
|
117
114
|
});
|
|
118
115
|
const appHbs = loadHandlebarsFile(`${__dirname}/templates/app.hbs`);
|
|
@@ -138,7 +135,7 @@ const serveBuilderPreview = function (ctx) {
|
|
|
138
135
|
let appId = context.getAppId();
|
|
139
136
|
const previewHbs = loadHandlebarsFile(`${__dirname}/templates/preview.hbs`);
|
|
140
137
|
ctx.body = yield processString(previewHbs, {
|
|
141
|
-
clientLibPath:
|
|
138
|
+
clientLibPath: objectStore.clientLibraryUrl(appId, appInfo.version),
|
|
142
139
|
});
|
|
143
140
|
}
|
|
144
141
|
else {
|
|
@@ -145,7 +145,7 @@ function handleViewEvents(existingView, newView) {
|
|
|
145
145
|
function destroy(ctx) {
|
|
146
146
|
return __awaiter(this, void 0, void 0, function* () {
|
|
147
147
|
const db = backend_core_1.context.getAppDB();
|
|
148
|
-
const viewName =
|
|
148
|
+
const viewName = decodeURIComponent(ctx.params.viewName);
|
|
149
149
|
const view = yield (0, utils_1.deleteView)(viewName);
|
|
150
150
|
const table = yield db.get(view.meta.tableId);
|
|
151
151
|
delete table.views[viewName];
|
|
@@ -157,7 +157,7 @@ function destroy(ctx) {
|
|
|
157
157
|
exports.destroy = destroy;
|
|
158
158
|
function exportView(ctx) {
|
|
159
159
|
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
-
const viewName =
|
|
160
|
+
const viewName = decodeURIComponent(ctx.query.view);
|
|
161
161
|
const view = yield (0, utils_1.getView)(viewName);
|
|
162
162
|
const format = ctx.query.format;
|
|
163
163
|
if (!format || !Object.values(exporters.ExportFormats).includes(format)) {
|
|
@@ -27,6 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
const router_1 = __importDefault(require("@koa/router"));
|
|
29
29
|
const controller = __importStar(require("../controllers/application"));
|
|
30
|
+
const deploymentController = __importStar(require("../controllers/deploy"));
|
|
30
31
|
const authorized_1 = __importDefault(require("../../middleware/authorized"));
|
|
31
32
|
const backend_core_1 = require("@budibase/backend-core");
|
|
32
33
|
const validators_1 = require("./utils/validators");
|
|
@@ -40,5 +41,7 @@ router
|
|
|
40
41
|
.put("/api/applications/:appId", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), (0, validators_1.applicationValidator)({ isCreate: false }), controller.update)
|
|
41
42
|
.post("/api/applications/:appId/client/update", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.updateClient)
|
|
42
43
|
.post("/api/applications/:appId/client/revert", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.revertClient)
|
|
44
|
+
.post("/api/applications/:appId/publish", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), deploymentController.publishApp)
|
|
45
|
+
.post("/api/applications/:appId/unpublish", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.unpublish)
|
|
43
46
|
.delete("/api/applications/:appId", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.destroy);
|
|
44
47
|
module.exports = router;
|
|
@@ -32,6 +32,5 @@ const backend_core_1 = require("@budibase/backend-core");
|
|
|
32
32
|
const router = new router_1.default();
|
|
33
33
|
router
|
|
34
34
|
.get("/api/deployments", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.fetchDeployments)
|
|
35
|
-
.get("/api/deploy/:deploymentId", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.deploymentProgress)
|
|
36
|
-
.post("/api/deploy", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.deployApp);
|
|
35
|
+
.get("/api/deploy/:deploymentId", (0, authorized_1.default)(backend_core_1.permissions.BUILDER), controller.deploymentProgress);
|
|
37
36
|
module.exports = router;
|