@budibase/server 1.0.32 → 1.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__mocks__/node-fetch.ts +21 -0
- package/builder/assets/bb-spaceship.8f6e81e1.svg +227 -0
- package/builder/assets/index.3079d0f9.js +1348 -0
- package/builder/assets/{index.4fb3f887.css → index.39e01193.css} +1 -1
- package/builder/assets/{vendor.470042a4.js → vendor.f9faf6ab.js} +88 -88
- package/builder/index.html +3 -3
- package/coverage/clover.xml +1591 -1345
- package/coverage/coverage-final.json +75 -74
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +3 -3
- package/coverage/lcov-report/api/controllers/application.js.html +73 -64
- package/coverage/lcov-report/api/controllers/auth.js.html +2 -2
- package/coverage/lcov-report/api/controllers/automation.js.html +22 -10
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +13 -4
- package/coverage/lcov-report/api/controllers/component.js.html +4 -4
- package/coverage/lcov-report/api/controllers/datasource.js.html +170 -68
- package/coverage/lcov-report/api/controllers/dev.js.html +3 -3
- package/coverage/lcov-report/api/controllers/hosting.js.html +3 -3
- package/coverage/lcov-report/api/controllers/index.html +39 -54
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
- package/coverage/lcov-report/api/controllers/query/index.html +126 -0
- package/coverage/lcov-report/api/controllers/{query.js.html → query/index.js.html} +228 -114
- package/coverage/lcov-report/api/controllers/query/validation.js.html +206 -0
- package/coverage/lcov-report/api/controllers/role.js.html +2 -2
- package/coverage/lcov-report/api/controllers/routing.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +22 -22
- package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +38 -11
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +8 -5
- package/coverage/lcov-report/api/controllers/row/utils.js.html +29 -20
- package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.html +1 -1
- package/coverage/lcov-report/api/controllers/table/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +120 -12
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +19 -7
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +6 -6
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +2 -2
- package/coverage/lcov-report/api/routes/application.js.html +2 -2
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +2 -2
- package/coverage/lcov-report/api/routes/backup.js.html +2 -2
- package/coverage/lcov-report/api/routes/cloud.js.html +2 -2
- package/coverage/lcov-report/api/routes/component.js.html +2 -2
- package/coverage/lcov-report/api/routes/datasource.js.html +2 -2
- package/coverage/lcov-report/api/routes/deploy.js.html +2 -2
- package/coverage/lcov-report/api/routes/dev.js.html +2 -2
- package/coverage/lcov-report/api/routes/hosting.js.html +2 -2
- package/coverage/lcov-report/api/routes/index.html +9 -9
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +2 -2
- package/coverage/lcov-report/api/routes/layout.js.html +2 -2
- package/coverage/lcov-report/api/routes/metadata.js.html +2 -2
- package/coverage/lcov-report/api/routes/permission.js.html +12 -3
- package/coverage/lcov-report/api/routes/query.js.html +20 -86
- package/coverage/lcov-report/api/routes/role.js.html +2 -2
- package/coverage/lcov-report/api/routes/routing.js.html +2 -2
- package/coverage/lcov-report/api/routes/row.js.html +2 -2
- package/coverage/lcov-report/api/routes/screen.js.html +2 -2
- package/coverage/lcov-report/api/routes/script.js.html +2 -2
- package/coverage/lcov-report/api/routes/static.js.html +2 -2
- package/coverage/lcov-report/api/routes/table.js.html +2 -2
- package/coverage/lcov-report/api/routes/templates.js.html +2 -2
- package/coverage/lcov-report/api/routes/user.js.html +33 -3
- package/coverage/lcov-report/api/routes/view.js.html +2 -2
- package/coverage/lcov-report/api/routes/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/actions.js.html +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +2 -2
- package/coverage/lcov-report/automations/index.html +20 -20
- package/coverage/lcov-report/automations/index.js.html +1 -1
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +32 -8
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +11 -11
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +5 -8
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/automations/utils.js.html +49 -16
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +25 -25
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +2 -2
- package/coverage/lcov-report/db/client.js.html +19 -19
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +15 -15
- package/coverage/lcov-report/db/index.js.html +3 -3
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- package/coverage/lcov-report/db/newid.js.html +4 -4
- package/coverage/lcov-report/db/utils.js.html +108 -81
- package/coverage/lcov-report/events/AutomationEmitter.js.html +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +99 -84
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +12 -12
- package/coverage/lcov-report/middleware/builder.js.html +10 -10
- package/coverage/lcov-report/middleware/currentapp.js.html +48 -36
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +11 -11
- package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +2 -2
- package/coverage/lcov-report/middleware/utils.js.html +2 -2
- package/coverage/lcov-report/threads/automation.js.html +3 -3
- package/coverage/lcov-report/threads/index.html +32 -32
- package/coverage/lcov-report/threads/index.js.html +12 -12
- package/coverage/lcov-report/threads/query.js.html +560 -65
- package/coverage/lcov-report/threads/utils.js.html +210 -15
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +2 -2
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +1 -1
- package/coverage/lcov-report/utilities/global.js.html +28 -19
- package/coverage/lcov-report/utilities/index.html +19 -19
- package/coverage/lcov-report/utilities/index.js.html +70 -37
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +2 -2
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +19 -19
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +247 -10
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +14 -5
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +22 -22
- package/coverage/lcov.info +2740 -2315
- package/dist/api/controllers/apikeys.js +2 -2
- package/dist/api/controllers/application.js +4 -4
- package/dist/api/controllers/auth.js +1 -1
- package/dist/api/controllers/automation.js +7 -5
- package/dist/api/controllers/cloud.js +2 -2
- package/dist/api/controllers/datasource.js +29 -0
- package/dist/api/controllers/deploy/index.js +2 -2
- package/dist/api/controllers/dev.js +2 -2
- package/dist/api/controllers/hosting.js +2 -2
- package/dist/api/controllers/permission.js +2 -2
- package/dist/api/controllers/query/import/index.js +79 -0
- package/dist/api/controllers/query/import/sources/base/index.js +64 -0
- package/dist/api/controllers/query/import/sources/base/openapi.js +42 -0
- package/dist/api/controllers/query/import/sources/curl.js +96 -0
- package/dist/api/controllers/query/import/sources/openapi2.js +142 -0
- package/dist/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +253 -0
- package/dist/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +1054 -0
- package/dist/api/controllers/{query.js → query/index.js} +87 -52
- package/dist/api/controllers/query/validation.js +38 -0
- package/dist/api/controllers/role.js +1 -1
- package/dist/api/controllers/routing.js +1 -1
- package/dist/api/controllers/row/internal.js +14 -6
- package/dist/api/controllers/row/internalSearch.js +3 -2
- package/dist/api/controllers/row/utils.js +13 -6
- package/dist/api/controllers/screen.js +1 -1
- package/dist/api/controllers/user.js +40 -4
- package/dist/api/controllers/webhook.js +5 -1
- package/dist/api/index.js +1 -1
- package/dist/api/routes/apikeys.js +1 -1
- package/dist/api/routes/application.js +1 -1
- package/dist/api/routes/automation.js +1 -1
- package/dist/api/routes/backup.js +1 -1
- package/dist/api/routes/cloud.js +1 -1
- package/dist/api/routes/component.js +1 -1
- package/dist/api/routes/datasource.js +1 -1
- package/dist/api/routes/deploy.js +1 -1
- package/dist/api/routes/dev.js +1 -1
- package/dist/api/routes/hosting.js +1 -1
- package/dist/api/routes/integration.js +1 -1
- package/dist/api/routes/layout.js +1 -1
- package/dist/api/routes/metadata.js +1 -1
- package/dist/api/routes/permission.js +1 -1
- package/dist/api/routes/query.js +6 -34
- package/dist/api/routes/role.js +1 -1
- package/dist/api/routes/routing.js +1 -1
- package/dist/api/routes/row.js +1 -1
- package/dist/api/routes/screen.js +1 -1
- package/dist/api/routes/script.js +1 -1
- package/dist/api/routes/static.js +1 -1
- package/dist/api/routes/table.js +1 -1
- package/dist/api/routes/templates.js +1 -1
- package/dist/api/routes/tests/utilities/TestFunctions.js +1 -1
- package/dist/api/routes/user.js +4 -2
- package/dist/api/routes/view.js +1 -1
- package/dist/api/routes/webhook.js +1 -1
- package/dist/app.js +1 -1
- package/dist/automations/bullboard.js +1 -1
- package/dist/automations/steps/executeQuery.js +9 -2
- package/dist/automations/steps/outgoingWebhook.js +2 -3
- package/dist/automations/utils.js +11 -1
- package/dist/constants/index.js +3 -3
- package/dist/constants/screens.js +1 -1
- package/dist/db/client.js +1 -1
- package/dist/db/utils.js +9 -1
- package/dist/definitions/datasource.js +6 -1
- package/dist/environment.js +1 -0
- package/dist/integrations/base/sqlTable.js +1 -1
- package/dist/integrations/dynamodb.js +19 -0
- package/dist/integrations/rest.js +259 -120
- package/dist/integrations/s3.js +17 -8
- package/dist/integrations/utils.js +40 -37
- package/dist/middleware/authorized.js +2 -2
- package/dist/middleware/builder.js +2 -2
- package/dist/middleware/currentapp.js +6 -6
- package/dist/middleware/usageQuota.js +1 -1
- package/dist/package.json +11 -4
- package/dist/tests/utilities/TestConfiguration.js +55 -8
- package/dist/tests/utilities/structures.js +2 -2
- package/dist/threads/automation.js +2 -2
- package/dist/threads/query.js +195 -38
- package/dist/threads/utils.js +62 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/budibaseDir.js +1 -1
- package/dist/utilities/fileSystem/utilities.js +2 -1
- package/dist/utilities/global.js +5 -5
- package/dist/utilities/index.js +11 -1
- package/dist/utilities/redis.js +1 -1
- package/dist/utilities/rowProcessor/index.js +76 -0
- package/dist/utilities/security.js +2 -2
- package/dist/utilities/usageQuota.js +2 -2
- package/dist/utilities/workerRequests.js +3 -3
- package/package.json +12 -5
- package/scripts/replicateApp.js +1 -1
- package/src/api/controllers/apikeys.js +2 -2
- package/src/api/controllers/application.js +7 -4
- package/src/api/controllers/auth.js +1 -1
- package/src/api/controllers/automation.js +8 -4
- package/src/api/controllers/cloud.js +5 -2
- package/src/api/controllers/datasource.js +34 -0
- package/src/api/controllers/deploy/index.js +2 -2
- package/src/api/controllers/dev.js +2 -2
- package/src/api/controllers/hosting.js +2 -2
- package/src/api/controllers/permission.js +2 -2
- package/src/api/controllers/query/import/index.ts +85 -0
- package/src/api/controllers/query/import/sources/base/index.ts +87 -0
- package/src/api/controllers/query/import/sources/base/openapi.ts +24 -0
- package/src/api/controllers/query/import/sources/curl.ts +102 -0
- package/src/api/controllers/query/import/sources/openapi2.ts +163 -0
- package/src/api/controllers/query/import/sources/tests/curl/curl.spec.js +103 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/delete.txt +1 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/empty-body.txt +2 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/get.txt +1 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/headers.txt +3 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/patch.txt +2 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/path.txt +1 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/post.txt +2 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/put.txt +2 -0
- package/src/api/controllers/query/import/sources/tests/curl/data/query.txt +1 -0
- package/src/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.json +253 -0
- package/src/api/controllers/query/import/sources/tests/openapi2/data/crud/crud.yaml +160 -0
- package/src/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.json +1054 -0
- package/src/api/controllers/query/import/sources/tests/openapi2/data/petstore/petstore.yaml +711 -0
- package/src/api/controllers/query/import/sources/tests/openapi2/openapi2.spec.js +238 -0
- package/src/api/controllers/query/import/tests/index.spec.js +109 -0
- package/src/api/controllers/query/index.js +196 -0
- package/src/api/controllers/query/validation.js +42 -0
- package/src/api/controllers/role.js +1 -1
- package/src/api/controllers/routing.js +1 -1
- package/src/api/controllers/row/internal.js +14 -5
- package/src/api/controllers/row/internalSearch.js +3 -2
- package/src/api/controllers/row/utils.js +11 -8
- package/src/api/controllers/screen.js +1 -1
- package/src/api/controllers/user.js +39 -3
- package/src/api/controllers/webhook.js +5 -1
- package/src/api/index.js +1 -1
- package/src/api/routes/apikeys.js +1 -1
- package/src/api/routes/application.js +1 -1
- package/src/api/routes/automation.js +1 -1
- package/src/api/routes/backup.js +1 -1
- package/src/api/routes/cloud.js +1 -1
- package/src/api/routes/component.js +1 -1
- package/src/api/routes/datasource.js +1 -1
- package/src/api/routes/deploy.js +1 -1
- package/src/api/routes/dev.js +1 -1
- package/src/api/routes/hosting.js +1 -1
- package/src/api/routes/integration.js +1 -1
- package/src/api/routes/layout.js +1 -1
- package/src/api/routes/metadata.js +1 -1
- package/src/api/routes/permission.js +4 -1
- package/src/api/routes/query.js +14 -36
- package/src/api/routes/role.js +1 -1
- package/src/api/routes/routing.js +1 -1
- package/src/api/routes/row.js +1 -1
- package/src/api/routes/screen.js +1 -1
- package/src/api/routes/script.js +1 -1
- package/src/api/routes/static.js +1 -1
- package/src/api/routes/table.js +1 -1
- package/src/api/routes/templates.js +1 -1
- package/src/api/routes/tests/datasource.spec.js +45 -0
- package/src/api/routes/tests/permissions.spec.js +1 -1
- package/src/api/routes/tests/query.spec.js +70 -1
- package/src/api/routes/tests/role.spec.js +2 -2
- package/src/api/routes/tests/routing.spec.js +1 -1
- package/src/api/routes/tests/user.spec.js +1 -1
- package/src/api/routes/tests/utilities/TestFunctions.js +1 -1
- package/src/api/routes/user.js +11 -1
- package/src/api/routes/view.js +1 -1
- package/src/api/routes/webhook.js +1 -1
- package/src/app.ts +1 -1
- package/src/automations/bullboard.js +1 -1
- package/src/automations/steps/executeQuery.js +10 -2
- package/src/automations/steps/outgoingWebhook.js +2 -3
- package/src/automations/utils.js +12 -1
- package/src/constants/index.js +3 -3
- package/src/constants/screens.js +1 -1
- package/src/db/client.js +1 -1
- package/src/db/utils.js +10 -1
- package/src/definitions/common.ts +2 -16
- package/src/definitions/datasource.ts +98 -1
- package/src/environment.js +1 -0
- package/src/integrations/base/IntegrationBase.ts +4 -4
- package/src/integrations/base/sqlTable.ts +1 -1
- package/src/integrations/dynamodb.ts +18 -0
- package/src/integrations/oracle.ts +1 -1
- package/src/integrations/rest.ts +311 -138
- package/src/integrations/s3.ts +18 -7
- package/src/integrations/tests/rest.spec.js +432 -21
- package/src/integrations/utils.ts +8 -7
- package/src/middleware/authorized.js +2 -2
- package/src/middleware/builder.js +2 -2
- package/src/middleware/currentapp.js +11 -7
- package/src/middleware/tests/authorized.spec.js +2 -2
- package/src/middleware/tests/currentapp.spec.js +35 -41
- package/src/middleware/tests/usageQuota.spec.js +1 -1
- package/src/middleware/usageQuota.js +1 -1
- package/src/tests/utilities/TestConfiguration.js +65 -8
- package/src/tests/utilities/structures.js +2 -2
- package/src/threads/automation.js +2 -2
- package/src/threads/query.js +204 -39
- package/src/threads/utils.js +66 -1
- package/src/utilities/budibaseDir.js +1 -1
- package/src/utilities/fileSystem/utilities.js +3 -1
- package/src/utilities/global.js +8 -5
- package/src/utilities/index.js +12 -1
- package/src/utilities/redis.js +1 -1
- package/src/utilities/rowProcessor/index.js +79 -0
- package/src/utilities/security.js +5 -2
- package/src/utilities/usageQuota.js +2 -2
- package/src/utilities/workerRequests.js +3 -3
- package/builder/assets/index.891d496c.js +0 -1316
- package/src/api/controllers/query.js +0 -158
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for api/controllers/query/validation.js</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../../../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../../../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../../../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../../../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../../../index.html">All files</a> / <a href="index.html">api/controllers/query</a> validation.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">100% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>8/8</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">100% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>0/0</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">100% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>3/3</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">100% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>8/8</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
</div>
|
|
58
|
+
<div class='status-line high'></div>
|
|
59
|
+
<pre><table class="coverage">
|
|
60
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
62
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
63
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
64
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
65
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
66
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
67
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
68
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
69
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
70
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
71
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
72
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
73
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
74
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
75
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
76
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
77
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
78
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
79
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
80
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
81
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
82
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
83
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
84
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
85
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
86
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
87
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
88
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
89
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
90
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
91
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
92
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
93
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
94
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
95
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
96
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
97
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
98
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
99
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
100
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
101
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
102
|
+
<a name='L43'></a><a href='#L43'>43</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">35x</span>
|
|
103
|
+
<span class="cline-any cline-yes">35x</span>
|
|
104
|
+
<span class="cline-any cline-neutral"> </span>
|
|
105
|
+
<span class="cline-any cline-yes">35x</span>
|
|
106
|
+
<span class="cline-any cline-yes">28x</span>
|
|
107
|
+
<span class="cline-any cline-neutral"> </span>
|
|
108
|
+
<span class="cline-any cline-neutral"> </span>
|
|
109
|
+
<span class="cline-any cline-neutral"> </span>
|
|
110
|
+
<span class="cline-any cline-neutral"> </span>
|
|
111
|
+
<span class="cline-any cline-neutral"> </span>
|
|
112
|
+
<span class="cline-any cline-neutral"> </span>
|
|
113
|
+
<span class="cline-any cline-neutral"> </span>
|
|
114
|
+
<span class="cline-any cline-neutral"> </span>
|
|
115
|
+
<span class="cline-any cline-neutral"> </span>
|
|
116
|
+
<span class="cline-any cline-neutral"> </span>
|
|
117
|
+
<span class="cline-any cline-neutral"> </span>
|
|
118
|
+
<span class="cline-any cline-neutral"> </span>
|
|
119
|
+
<span class="cline-any cline-neutral"> </span>
|
|
120
|
+
<span class="cline-any cline-neutral"> </span>
|
|
121
|
+
<span class="cline-any cline-neutral"> </span>
|
|
122
|
+
<span class="cline-any cline-neutral"> </span>
|
|
123
|
+
<span class="cline-any cline-neutral"> </span>
|
|
124
|
+
<span class="cline-any cline-neutral"> </span>
|
|
125
|
+
<span class="cline-any cline-neutral"> </span>
|
|
126
|
+
<span class="cline-any cline-neutral"> </span>
|
|
127
|
+
<span class="cline-any cline-yes">35x</span>
|
|
128
|
+
<span class="cline-any cline-neutral"> </span>
|
|
129
|
+
<span class="cline-any cline-yes">23x</span>
|
|
130
|
+
<span class="cline-any cline-neutral"> </span>
|
|
131
|
+
<span class="cline-any cline-neutral"> </span>
|
|
132
|
+
<span class="cline-any cline-yes">35x</span>
|
|
133
|
+
<span class="cline-any cline-neutral"> </span>
|
|
134
|
+
<span class="cline-any cline-yes">23x</span>
|
|
135
|
+
<span class="cline-any cline-neutral"> </span>
|
|
136
|
+
<span class="cline-any cline-neutral"> </span>
|
|
137
|
+
<span class="cline-any cline-neutral"> </span>
|
|
138
|
+
<span class="cline-any cline-neutral"> </span>
|
|
139
|
+
<span class="cline-any cline-neutral"> </span>
|
|
140
|
+
<span class="cline-any cline-neutral"> </span>
|
|
141
|
+
<span class="cline-any cline-neutral"> </span>
|
|
142
|
+
<span class="cline-any cline-neutral"> </span>
|
|
143
|
+
<span class="cline-any cline-neutral"> </span>
|
|
144
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const joiValidator = require("../../../middleware/joi-validator")
|
|
145
|
+
const Joi = require("joi")
|
|
146
|
+
|
|
147
|
+
exports.queryValidation = () => {
|
|
148
|
+
return Joi.object({
|
|
149
|
+
_id: Joi.string(),
|
|
150
|
+
_rev: Joi.string(),
|
|
151
|
+
name: Joi.string().required(),
|
|
152
|
+
fields: Joi.object().required(),
|
|
153
|
+
datasourceId: Joi.string().required(),
|
|
154
|
+
readable: Joi.boolean(),
|
|
155
|
+
parameters: Joi.array().items(
|
|
156
|
+
Joi.object({
|
|
157
|
+
name: Joi.string(),
|
|
158
|
+
default: Joi.string().allow(""),
|
|
159
|
+
})
|
|
160
|
+
),
|
|
161
|
+
queryVerb: Joi.string().allow().required(),
|
|
162
|
+
extra: Joi.object().optional(),
|
|
163
|
+
schema: Joi.object({}).required().unknown(true),
|
|
164
|
+
transformer: Joi.string().optional(),
|
|
165
|
+
flags: Joi.object().optional(),
|
|
166
|
+
})
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
exports.generateQueryValidation = () => {
|
|
170
|
+
// prettier-ignore
|
|
171
|
+
return joiValidator.body(exports.queryValidation())
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
exports.generateQueryPreviewValidation = () => {
|
|
175
|
+
// prettier-ignore
|
|
176
|
+
return joiValidator.body(Joi.object({
|
|
177
|
+
fields: Joi.object().required(),
|
|
178
|
+
queryVerb: Joi.string().allow().required(),
|
|
179
|
+
extra: Joi.object().optional(),
|
|
180
|
+
datasourceId: Joi.string().required(),
|
|
181
|
+
transformer: Joi.string().optional(),
|
|
182
|
+
parameters: Joi.object({}).required().unknown(true),
|
|
183
|
+
queryId: Joi.string().optional(),
|
|
184
|
+
}))
|
|
185
|
+
}
|
|
186
|
+
</pre></td></tr></table></pre>
|
|
187
|
+
|
|
188
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
189
|
+
</div><!-- /wrapper -->
|
|
190
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
191
|
+
Code coverage generated by
|
|
192
|
+
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
193
|
+
at Thu Jan 13 2022 15:16:54 GMT+0000 (Coordinated Universal Time)
|
|
194
|
+
</div>
|
|
195
|
+
</div>
|
|
196
|
+
<script src="../../../prettify.js"></script>
|
|
197
|
+
<script>
|
|
198
|
+
window.onload = function () {
|
|
199
|
+
prettyPrint();
|
|
200
|
+
};
|
|
201
|
+
</script>
|
|
202
|
+
<script src="../../../sorter.js"></script>
|
|
203
|
+
<script src="../../../block-navigation.js"></script>
|
|
204
|
+
</body>
|
|
205
|
+
</html>
|
|
206
|
+
|
|
@@ -259,7 +259,7 @@ const {
|
|
|
259
259
|
getRole,
|
|
260
260
|
isBuiltin,
|
|
261
261
|
getAllRoles,
|
|
262
|
-
} = require("@budibase/
|
|
262
|
+
} = require("@budibase/backend-core/roles")
|
|
263
263
|
const {
|
|
264
264
|
generateRoleID,
|
|
265
265
|
getUserMetadataParams,
|
|
@@ -358,7 +358,7 @@ exports.destroy = async function (ctx) {
|
|
|
358
358
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
359
359
|
Code coverage generated by
|
|
360
360
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
361
|
-
at
|
|
361
|
+
at Thu Jan 13 2022 15:16:54 GMT+0000 (Coordinated Universal Time)
|
|
362
362
|
</div>
|
|
363
363
|
</div>
|
|
364
364
|
<script src="../../prettify.js"></script>
|
|
@@ -247,7 +247,7 @@
|
|
|
247
247
|
const {
|
|
248
248
|
getUserRoleHierarchy,
|
|
249
249
|
BUILTIN_ROLE_IDS,
|
|
250
|
-
} = require("@budibase/
|
|
250
|
+
} = require("@budibase/backend-core/roles")
|
|
251
251
|
|
|
252
252
|
const URL_SEPARATOR = "/"
|
|
253
253
|
|
|
@@ -343,7 +343,7 @@ exports.clientFetch = async ctx => {
|
|
|
343
343
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
344
344
|
Code coverage generated by
|
|
345
345
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
346
|
-
at
|
|
346
|
+
at Thu Jan 13 2022 15:16:54 GMT+0000 (Coordinated Universal Time)
|
|
347
347
|
</div>
|
|
348
348
|
</div>
|
|
349
349
|
<script src="../../prettify.js"></script>
|
|
@@ -757,7 +757,7 @@ exports.fetchEnrichedRow = <span class="fstat-no" title="function not covered" >
|
|
|
757
757
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
758
758
|
Code coverage generated by
|
|
759
759
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
760
|
-
at
|
|
760
|
+
at Thu Jan 13 2022 15:16:54 GMT+0000 (Coordinated Universal Time)
|
|
761
761
|
</div>
|
|
762
762
|
</div>
|
|
763
763
|
<script src="../../../prettify.js"></script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">52.
|
|
26
|
+
<span class="strong">52.89% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>320/605</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">33.
|
|
33
|
+
<span class="strong">33.59% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>85/253</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">52.
|
|
47
|
+
<span class="strong">52.95% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>314/593</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -104,17 +104,17 @@
|
|
|
104
104
|
|
|
105
105
|
<tr>
|
|
106
106
|
<td class="file high" data-value="internal.js"><a href="internal.js.html">internal.js</a></td>
|
|
107
|
-
<td data-value="
|
|
108
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
107
|
+
<td data-value="83.18" class="pic high">
|
|
108
|
+
<div class="chart"><div class="cover-fill" style="width: 83%"></div><div class="cover-empty" style="width: 17%"></div></div>
|
|
109
109
|
</td>
|
|
110
|
-
<td data-value="
|
|
111
|
-
<td data-value="
|
|
110
|
+
<td data-value="83.18" class="pct high">83.18%</td>
|
|
111
|
+
<td data-value="220" class="abs high">183/220</td>
|
|
112
112
|
<td data-value="60.93" class="pct medium">60.93%</td>
|
|
113
113
|
<td data-value="64" class="abs medium">39/64</td>
|
|
114
114
|
<td data-value="92" class="pct high">92%</td>
|
|
115
115
|
<td data-value="25" class="abs high">23/25</td>
|
|
116
|
-
<td data-value="
|
|
117
|
-
<td data-value="
|
|
116
|
+
<td data-value="83.17" class="pct high">83.17%</td>
|
|
117
|
+
<td data-value="214" class="abs high">178/214</td>
|
|
118
118
|
</tr>
|
|
119
119
|
|
|
120
120
|
<tr>
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
<td data-value="4.66" class="pct low">4.66%</td>
|
|
126
126
|
<td data-value="150" class="abs low">7/150</td>
|
|
127
127
|
<td data-value="0" class="pct low">0%</td>
|
|
128
|
-
<td data-value="
|
|
128
|
+
<td data-value="87" class="abs low">0/87</td>
|
|
129
129
|
<td data-value="0" class="pct low">0%</td>
|
|
130
130
|
<td data-value="33" class="abs low">0/33</td>
|
|
131
131
|
<td data-value="4.76" class="pct low">4.76%</td>
|
|
@@ -134,17 +134,17 @@
|
|
|
134
134
|
|
|
135
135
|
<tr>
|
|
136
136
|
<td class="file medium" data-value="utils.js"><a href="utils.js.html">utils.js</a></td>
|
|
137
|
-
<td data-value="
|
|
138
|
-
<div class="chart"><div class="cover-fill" style="width:
|
|
137
|
+
<td data-value="73.46" class="pic medium">
|
|
138
|
+
<div class="chart"><div class="cover-fill" style="width: 73%"></div><div class="cover-empty" style="width: 27%"></div></div>
|
|
139
139
|
</td>
|
|
140
|
-
<td data-value="
|
|
141
|
-
<td data-value="
|
|
142
|
-
<td data-value="
|
|
143
|
-
<td data-value="
|
|
140
|
+
<td data-value="73.46" class="pct medium">73.46%</td>
|
|
141
|
+
<td data-value="49" class="abs medium">36/49</td>
|
|
142
|
+
<td data-value="53.84" class="pct medium">53.84%</td>
|
|
143
|
+
<td data-value="26" class="abs medium">14/26</td>
|
|
144
144
|
<td data-value="66.66" class="pct medium">66.66%</td>
|
|
145
145
|
<td data-value="6" class="abs medium">4/6</td>
|
|
146
|
-
<td data-value="
|
|
147
|
-
<td data-value="
|
|
146
|
+
<td data-value="72.91" class="pct medium">72.91%</td>
|
|
147
|
+
<td data-value="48" class="abs medium">35/48</td>
|
|
148
148
|
</tr>
|
|
149
149
|
|
|
150
150
|
</tbody>
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
156
156
|
Code coverage generated by
|
|
157
157
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
158
|
-
at
|
|
158
|
+
at Thu Jan 13 2022 15:16:54 GMT+0000 (Coordinated Universal Time)
|
|
159
159
|
</div>
|
|
160
160
|
</div>
|
|
161
161
|
<script src="../../../prettify.js"></script>
|
|
@@ -481,7 +481,7 @@ exports.fetchEnrichedRow = async function (ctx) {
|
|
|
481
481
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
482
482
|
Code coverage generated by
|
|
483
483
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
484
|
-
at
|
|
484
|
+
at Thu Jan 13 2022 15:16:54 GMT+0000 (Coordinated Universal Time)
|
|
485
485
|
</div>
|
|
486
486
|
</div>
|
|
487
487
|
<script src="../../../prettify.js"></script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">83.18% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>183/220</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">83.17% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>178/214</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -504,7 +504,16 @@
|
|
|
504
504
|
<a name='L445'></a><a href='#L445'>445</a>
|
|
505
505
|
<a name='L446'></a><a href='#L446'>446</a>
|
|
506
506
|
<a name='L447'></a><a href='#L447'>447</a>
|
|
507
|
-
<a name='L448'></a><a href='#L448'>448</a
|
|
507
|
+
<a name='L448'></a><a href='#L448'>448</a>
|
|
508
|
+
<a name='L449'></a><a href='#L449'>449</a>
|
|
509
|
+
<a name='L450'></a><a href='#L450'>450</a>
|
|
510
|
+
<a name='L451'></a><a href='#L451'>451</a>
|
|
511
|
+
<a name='L452'></a><a href='#L452'>452</a>
|
|
512
|
+
<a name='L453'></a><a href='#L453'>453</a>
|
|
513
|
+
<a name='L454'></a><a href='#L454'>454</a>
|
|
514
|
+
<a name='L455'></a><a href='#L455'>455</a>
|
|
515
|
+
<a name='L456'></a><a href='#L456'>456</a>
|
|
516
|
+
<a name='L457'></a><a href='#L457'>457</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
508
517
|
<span class="cline-any cline-yes">34x</span>
|
|
509
518
|
<span class="cline-any cline-neutral"> </span>
|
|
510
519
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -517,6 +526,7 @@
|
|
|
517
526
|
<span class="cline-any cline-neutral"> </span>
|
|
518
527
|
<span class="cline-any cline-neutral"> </span>
|
|
519
528
|
<span class="cline-any cline-neutral"> </span>
|
|
529
|
+
<span class="cline-any cline-neutral"> </span>
|
|
520
530
|
<span class="cline-any cline-yes">34x</span>
|
|
521
531
|
<span class="cline-any cline-yes">34x</span>
|
|
522
532
|
<span class="cline-any cline-yes">34x</span>
|
|
@@ -531,6 +541,7 @@
|
|
|
531
541
|
<span class="cline-any cline-neutral"> </span>
|
|
532
542
|
<span class="cline-any cline-neutral"> </span>
|
|
533
543
|
<span class="cline-any cline-yes">34x</span>
|
|
544
|
+
<span class="cline-any cline-yes">34x</span>
|
|
534
545
|
<span class="cline-any cline-neutral"> </span>
|
|
535
546
|
<span class="cline-any cline-yes">34x</span>
|
|
536
547
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -632,6 +643,7 @@
|
|
|
632
643
|
<span class="cline-any cline-yes">5x</span>
|
|
633
644
|
<span class="cline-any cline-neutral"> </span>
|
|
634
645
|
<span class="cline-any cline-yes">5x</span>
|
|
646
|
+
<span class="cline-any cline-yes">5x</span>
|
|
635
647
|
<span class="cline-any cline-yes">21x</span>
|
|
636
648
|
<span class="cline-any cline-yes">6x</span>
|
|
637
649
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -658,6 +670,8 @@
|
|
|
658
670
|
<span class="cline-any cline-neutral"> </span>
|
|
659
671
|
<span class="cline-any cline-yes">4x</span>
|
|
660
672
|
<span class="cline-any cline-neutral"> </span>
|
|
673
|
+
<span class="cline-any cline-yes">4x</span>
|
|
674
|
+
<span class="cline-any cline-neutral"> </span>
|
|
661
675
|
<span class="cline-any cline-no"> </span>
|
|
662
676
|
<span class="cline-any cline-no"> </span>
|
|
663
677
|
<span class="cline-any cline-no"> </span>
|
|
@@ -802,6 +816,8 @@
|
|
|
802
816
|
<span class="cline-any cline-neutral"> </span>
|
|
803
817
|
<span class="cline-any cline-neutral"> </span>
|
|
804
818
|
<span class="cline-any cline-neutral"> </span>
|
|
819
|
+
<span class="cline-any cline-yes">2x</span>
|
|
820
|
+
<span class="cline-any cline-neutral"> </span>
|
|
805
821
|
<span class="cline-any cline-neutral"> </span>
|
|
806
822
|
<span class="cline-any cline-yes">2x</span>
|
|
807
823
|
<span class="cline-any cline-no"> </span>
|
|
@@ -847,6 +863,8 @@
|
|
|
847
863
|
<span class="cline-any cline-neutral"> </span>
|
|
848
864
|
<span class="cline-any cline-yes">3x</span>
|
|
849
865
|
<span class="cline-any cline-neutral"> </span>
|
|
866
|
+
<span class="cline-any cline-neutral"> </span>
|
|
867
|
+
<span class="cline-any cline-yes">2x</span>
|
|
850
868
|
<span class="cline-any cline-yes">2x</span>
|
|
851
869
|
<span class="cline-any cline-yes">2x</span>
|
|
852
870
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -964,6 +982,7 @@ const {
|
|
|
964
982
|
inputProcessing,
|
|
965
983
|
outputProcessing,
|
|
966
984
|
processAutoColumn,
|
|
985
|
+
cleanupAttachments,
|
|
967
986
|
} = require("../../../utilities/rowProcessor")
|
|
968
987
|
const { FieldTypes } = require("../../../constants")
|
|
969
988
|
const { isEqual } = require("lodash")
|
|
@@ -978,6 +997,7 @@ const {
|
|
|
978
997
|
getFromDesignDoc,
|
|
979
998
|
getFromMemoryDoc,
|
|
980
999
|
} = require("../view/utils")
|
|
1000
|
+
const { cloneDeep } = require("lodash/fp")
|
|
981
1001
|
|
|
982
1002
|
const CALCULATION_TYPES = {
|
|
983
1003
|
SUM: "sum",
|
|
@@ -1062,14 +1082,14 @@ exports.patch = async ctx => {
|
|
|
1062
1082
|
const inputs = ctx.request.body
|
|
1063
1083
|
const tableId = inputs.tableId
|
|
1064
1084
|
const isUserTable = tableId === InternalTables.USER_METADATA
|
|
1065
|
-
let
|
|
1085
|
+
let oldRow
|
|
1066
1086
|
try {
|
|
1067
|
-
|
|
1087
|
+
oldRow = await db.get(inputs._id)
|
|
1068
1088
|
} catch (err) {
|
|
1069
1089
|
<span class="cstat-no" title="statement not covered" > if (isUserTable) {</span>
|
|
1070
1090
|
// don't include the rev, it'll be the global rev
|
|
1071
1091
|
// this time
|
|
1072
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1092
|
+
<span class="cstat-no" title="statement not covered" > oldRow = {</span>
|
|
1073
1093
|
_id: inputs._id,
|
|
1074
1094
|
}
|
|
1075
1095
|
} else {
|
|
@@ -1078,13 +1098,14 @@ exports.patch = async ctx => {
|
|
|
1078
1098
|
}
|
|
1079
1099
|
let dbTable = await db.get(tableId)
|
|
1080
1100
|
// need to build up full patch fields before coerce
|
|
1101
|
+
let combinedRow = cloneDeep(oldRow)
|
|
1081
1102
|
for (let key of Object.keys(inputs)) {
|
|
1082
1103
|
if (!dbTable.schema[key]) continue
|
|
1083
|
-
|
|
1104
|
+
combinedRow[key] = inputs[key]
|
|
1084
1105
|
}
|
|
1085
1106
|
|
|
1086
1107
|
// this returns the table and row incase they have been updated
|
|
1087
|
-
let { table, row } = inputProcessing(ctx.user, dbTable,
|
|
1108
|
+
let { table, row } = inputProcessing(ctx.user, dbTable, combinedRow)
|
|
1088
1109
|
const validateResult = await validate({
|
|
1089
1110
|
row,
|
|
1090
1111
|
table,
|
|
@@ -1102,6 +1123,8 @@ exports.patch = async ctx => {
|
|
|
1102
1123
|
tableId: row.tableId,
|
|
1103
1124
|
table,
|
|
1104
1125
|
})
|
|
1126
|
+
// check if any attachments removed
|
|
1127
|
+
await cleanupAttachments(appId, table, { oldRow, row })
|
|
1105
1128
|
|
|
1106
1129
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (isUserTable) {
|
|
1107
1130
|
// the row has been updated, need to put it into the ctx
|
|
@@ -1248,6 +1271,8 @@ exports.destroy = async function (ctx) {
|
|
|
1248
1271
|
row,
|
|
1249
1272
|
tableId: row.tableId,
|
|
1250
1273
|
})
|
|
1274
|
+
// remove any attachments that were on the row from object storage
|
|
1275
|
+
await cleanupAttachments(appId, table, { row })
|
|
1251
1276
|
|
|
1252
1277
|
let response
|
|
1253
1278
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (ctx.params.tableId === InternalTables.USER_METADATA) {
|
|
@@ -1294,6 +1319,8 @@ exports.bulkDestroy = async ctx => {
|
|
|
1294
1319
|
} else {
|
|
1295
1320
|
await db.bulkDocs(rows.map(row => ({ ...row, _deleted: true })))
|
|
1296
1321
|
}
|
|
1322
|
+
// remove any attachments that were on the rows from object storage
|
|
1323
|
+
await cleanupAttachments(appId, table, { rows })
|
|
1297
1324
|
await Promise.all(updates)
|
|
1298
1325
|
return { response: { ok: true }, rows }
|
|
1299
1326
|
}
|
|
@@ -1405,7 +1432,7 @@ exports.fetchEnrichedRow = async ctx => {
|
|
|
1405
1432
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1406
1433
|
Code coverage generated by
|
|
1407
1434
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1408
|
-
at
|
|
1435
|
+
at Thu Jan 13 2022 15:16:54 GMT+0000 (Coordinated Universal Time)
|
|
1409
1436
|
</div>
|
|
1410
1437
|
</div>
|
|
1411
1438
|
<script src="../../../prettify.js"></script>
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/87</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -445,7 +445,8 @@
|
|
|
445
445
|
<a name='L386'></a><a href='#L386'>386</a>
|
|
446
446
|
<a name='L387'></a><a href='#L387'>387</a>
|
|
447
447
|
<a name='L388'></a><a href='#L388'>388</a>
|
|
448
|
-
<a name='L389'></a><a href='#L389'>389</a
|
|
448
|
+
<a name='L389'></a><a href='#L389'>389</a>
|
|
449
|
+
<a name='L390'></a><a href='#L390'>390</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">33x</span>
|
|
449
450
|
<span class="cline-any cline-yes">33x</span>
|
|
450
451
|
<span class="cline-any cline-yes">33x</span>
|
|
451
452
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -638,6 +639,7 @@
|
|
|
638
639
|
<span class="cline-any cline-neutral"> </span>
|
|
639
640
|
<span class="cline-any cline-no"> </span>
|
|
640
641
|
<span class="cline-any cline-no"> </span>
|
|
642
|
+
<span class="cline-any cline-neutral"> </span>
|
|
641
643
|
<span class="cline-any cline-no"> </span>
|
|
642
644
|
<span class="cline-any cline-no"> </span>
|
|
643
645
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -835,7 +837,7 @@
|
|
|
835
837
|
<span class="cline-any cline-neutral"> </span>
|
|
836
838
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const { SearchIndexes } = require("../../../db/utils")
|
|
837
839
|
const fetch = require("node-fetch")
|
|
838
|
-
const { getCouchUrl } = require("@budibase/
|
|
840
|
+
const { getCouchUrl } = require("@budibase/backend-core/db")
|
|
839
841
|
|
|
840
842
|
/**
|
|
841
843
|
* Class to build lucene query URLs.
|
|
@@ -1026,7 +1028,8 @@ class QueryBuilder {
|
|
|
1026
1028
|
}
|
|
1027
1029
|
<span class="cstat-no" title="statement not covered" > if (this.query.equal) {</span>
|
|
1028
1030
|
<span class="cstat-no" title="statement not covered" > build(this.query.equal, <span class="fstat-no" title="function not covered" >(k</span>ey, value) => {</span>
|
|
1029
|
-
|
|
1031
|
+
// 0 evaluates to false, which means we would return all rows if we don't check it
|
|
1032
|
+
<span class="cstat-no" title="statement not covered" > if (!value && value !== 0) {</span>
|
|
1030
1033
|
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1031
1034
|
}
|
|
1032
1035
|
<span class="cstat-no" title="statement not covered" > return `${key}:${builder.preprocess(value, allPreProcessingOpts)}`</span>
|
|
@@ -1228,7 +1231,7 @@ exports.fullSearch = <span class="fstat-no" title="function not covered" >as</sp
|
|
|
1228
1231
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1229
1232
|
Code coverage generated by
|
|
1230
1233
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1231
|
-
at
|
|
1234
|
+
at Thu Jan 13 2022 15:16:54 GMT+0000 (Coordinated Universal Time)
|
|
1232
1235
|
</div>
|
|
1233
1236
|
</div>
|
|
1234
1237
|
<script src="../../../prettify.js"></script>
|