@budibase/server 1.2.37 → 1.2.39-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__/mongodb.ts +4 -0
- package/__mocks__/node-fetch.ts +8 -1
- package/builder/assets/index.a1c0a62f.js +977 -0
- package/builder/assets/{index.08dd0c5e.css → index.f1c7e247.css} +1 -1
- package/builder/index.html +2 -2
- package/coverage/clover.xml +385 -380
- package/coverage/coverage-final.json +21 -21
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
- package/coverage/lcov-report/api/controllers/backup.js.html +3 -3
- package/coverage/lcov-report/api/controllers/cloud.js.html +4 -4
- package/coverage/lcov-report/api/controllers/component.js.html +3 -3
- package/coverage/lcov-report/api/controllers/datasource.js.html +3 -3
- package/coverage/lcov-report/api/controllers/dev.js.html +4 -4
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- package/coverage/lcov-report/api/controllers/integration.js.html +3 -3
- 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/migrations.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query/index.html +1 -1
- package/coverage/lcov-report/api/controllers/query/validation.js.html +1 -1
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +25 -25
- package/coverage/lcov-report/api/controllers/row/internal.js.html +3 -3
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +209 -191
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +27 -18
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/bulkFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +2 -2
- 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/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +19 -19
- 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 +3 -3
- package/coverage/lcov-report/api/controllers/view/utils.js.html +5 -5
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/migrations.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +1 -1
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/utils/index.html +1 -1
- package/coverage/lcov-report/api/routes/utils/validators.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- 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/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/loop.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- 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/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +30 -30
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- 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 +3 -3
- package/coverage/lcov-report/db/newid.js.html +3 -3
- package/coverage/lcov-report/db/utils.js.html +99 -99
- 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 +19 -19
- 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/builder.js.html +3 -3
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/publicApi.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- 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 +16 -16
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +23 -23
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- 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 +3 -3
- package/coverage/lcov-report/utilities/rowProcessor/index.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- 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 +9 -9
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/index.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/rows.js.html +1 -1
- package/coverage/lcov-report/utilities/usageQuota/usageQuoteReset.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +7 -7
- package/coverage/lcov-report/utilities/workerRequests.js.html +1 -1
- package/coverage/lcov.info +598 -593
- package/dist/api/controllers/analytics.js +1 -1
- package/dist/api/controllers/application.js +8 -8
- package/dist/api/controllers/automation.js +2 -2
- package/dist/api/controllers/backup.js +2 -2
- package/dist/api/controllers/cloud.js +3 -3
- package/dist/api/controllers/component.js +2 -2
- package/dist/api/controllers/datasource.js +2 -2
- package/dist/api/controllers/deploy/index.js +6 -6
- package/dist/api/controllers/dev.js +3 -3
- package/dist/api/controllers/integration.js +2 -2
- package/dist/api/controllers/public/utils.js +1 -1
- package/dist/api/controllers/row/ExternalRequest.js +3 -3
- package/dist/api/controllers/row/internal.js +2 -2
- package/dist/api/controllers/row/internalSearch.js +5 -0
- package/dist/api/controllers/row/utils.js +3 -1
- package/dist/api/controllers/static/index.js +2 -2
- package/dist/api/controllers/table/external.js +1 -1
- package/dist/api/controllers/view/index.js +2 -2
- package/dist/api/controllers/view/utils.js +3 -3
- package/dist/automations/logging/index.js +3 -0
- package/dist/db/linkedRows/linkUtils.js +2 -2
- package/dist/db/utils.js +37 -37
- package/dist/db/views/staticViews.js +4 -4
- package/dist/definitions/automations.js +6 -6
- package/dist/definitions/datasource.js +6 -70
- package/dist/integrations/airtable.js +13 -13
- package/dist/integrations/arangodb.js +8 -8
- package/dist/integrations/base/query.js +27 -0
- package/dist/integrations/base/sql.js +33 -32
- package/dist/integrations/base/sqlTable.js +4 -4
- package/dist/integrations/base/utils.js +13 -27
- package/dist/integrations/couchdb.js +8 -8
- package/dist/integrations/dynamodb.js +21 -21
- package/dist/integrations/elasticsearch.js +12 -12
- package/dist/integrations/firebase.js +12 -12
- package/dist/integrations/googlesheets.js +14 -14
- package/dist/integrations/index.js +34 -34
- package/dist/integrations/microsoftSqlServer.js +19 -16
- package/dist/integrations/mongodb.js +44 -17
- package/dist/integrations/mysql.js +15 -15
- package/dist/integrations/oracle.js +13 -13
- package/dist/integrations/postgres.js +20 -17
- package/dist/integrations/redis.js +10 -10
- package/dist/integrations/rest.js +15 -14
- package/dist/integrations/s3.js +2 -2
- package/dist/integrations/snowflake.js +5 -5
- package/dist/integrations/utils.js +14 -14
- package/dist/middleware/builder.js +2 -2
- package/dist/migrations/functions/appUrls.js +2 -2
- package/dist/migrations/functions/backfill/app/queries.js +3 -1
- package/dist/migrations/functions/backfill/app.js +1 -1
- package/dist/migrations/functions/backfill/global/users.js +1 -1
- package/dist/package.json +7 -7
- package/dist/tests/utilities/TestConfiguration.js +2 -2
- package/dist/threads/automation.js +2 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utilities/routing/index.js +2 -2
- package/dist/utilities/security.js +8 -8
- package/package.json +8 -8
- package/src/api/controllers/analytics.ts +2 -2
- package/src/api/controllers/application.ts +9 -9
- package/src/api/controllers/automation.js +2 -2
- package/src/api/controllers/backup.js +2 -2
- package/src/api/controllers/cloud.js +3 -3
- package/src/api/controllers/component.js +2 -2
- package/src/api/controllers/datasource.js +2 -2
- package/src/api/controllers/deploy/index.ts +7 -7
- package/src/api/controllers/dev.js +3 -3
- package/src/api/controllers/integration.js +2 -2
- package/src/api/controllers/public/utils.ts +2 -2
- package/src/api/controllers/query/import/sources/openapi2.ts +1 -1
- package/src/api/controllers/query/import/sources/openapi3.ts +1 -1
- package/src/api/controllers/row/ExternalRequest.ts +5 -7
- package/src/api/controllers/row/internal.js +2 -2
- package/src/api/controllers/row/internalSearch.js +6 -0
- package/src/api/controllers/row/utils.js +4 -1
- package/src/api/controllers/static/index.ts +2 -2
- package/src/api/controllers/table/external.js +1 -1
- package/src/api/controllers/view/index.js +2 -2
- package/src/api/controllers/view/utils.js +4 -4
- package/src/api/routes/tests/internalSearch.spec.js +157 -0
- package/src/automations/logging/index.ts +3 -0
- package/src/db/linkedRows/linkUtils.js +2 -2
- package/src/db/utils.js +38 -38
- package/src/db/views/staticViews.js +4 -9
- package/src/definitions/automations.ts +2 -2
- package/src/definitions/common.ts +14 -65
- package/src/definitions/datasource.ts +5 -250
- package/src/integrations/airtable.ts +16 -16
- package/src/integrations/arangodb.ts +11 -11
- package/src/integrations/base/query.ts +16 -0
- package/src/integrations/base/sql.ts +21 -20
- package/src/integrations/base/sqlTable.ts +1 -6
- package/src/integrations/base/utils.ts +9 -19
- package/src/integrations/couchdb.ts +11 -11
- package/src/integrations/dynamodb.ts +24 -24
- package/src/integrations/elasticsearch.ts +15 -15
- package/src/integrations/firebase.ts +15 -15
- package/src/integrations/googlesheets.ts +19 -18
- package/src/integrations/index.ts +34 -34
- package/src/integrations/microsoftSqlServer.ts +22 -20
- package/src/integrations/mongodb.ts +47 -20
- package/src/integrations/mysql.ts +20 -19
- package/src/integrations/oracle.ts +16 -16
- package/src/integrations/postgres.ts +22 -21
- package/src/integrations/queries/sql.ts +1 -2
- package/src/integrations/redis.ts +10 -14
- package/src/integrations/rest.ts +22 -20
- package/src/integrations/s3.ts +2 -3
- package/src/integrations/snowflake.ts +5 -5
- package/src/integrations/tests/mongo.spec.js +218 -0
- package/src/integrations/tests/sql.spec.js +8 -8
- package/src/integrations/utils.ts +8 -9
- package/src/middleware/builder.js +2 -2
- package/src/migrations/functions/appUrls.ts +2 -2
- package/src/migrations/functions/backfill/app/queries.ts +3 -2
- package/src/migrations/functions/backfill/app.ts +1 -1
- package/src/migrations/functions/backfill/global/users.ts +1 -1
- package/src/migrations/functions/tests/appUrls.spec.js +3 -3
- package/src/migrations/tests/index.spec.ts +2 -2
- package/src/tests/utilities/TestConfiguration.js +2 -2
- package/src/threads/automation.ts +3 -3
- package/src/utilities/routing/index.js +2 -2
- package/src/utilities/security.js +8 -8
- package/builder/assets/index.3ce7fa08.js +0 -975
- package/dist/integrations/base/IntegrationBase.js +0 -2
- package/dist/integrations/base/datasourcePlus.js +0 -2
- package/src/integrations/base/IntegrationBase.ts +0 -6
- package/src/integrations/base/datasourcePlus.ts +0 -13
|
@@ -9,12 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
const { createRoutingView } = require("../../db/views/staticViews");
|
|
12
|
-
const {
|
|
12
|
+
const { ViewName, getQueryIndex, UNICODE_MAX } = require("../../db/utils");
|
|
13
13
|
const { getAppDB } = require("@budibase/backend-core/context");
|
|
14
14
|
exports.getRoutingInfo = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
15
15
|
const db = getAppDB();
|
|
16
16
|
try {
|
|
17
|
-
const allRouting = yield db.query(getQueryIndex(
|
|
17
|
+
const allRouting = yield db.query(getQueryIndex(ViewName.ROUTING), {
|
|
18
18
|
startKey: "",
|
|
19
19
|
endKey: UNICODE_MAX,
|
|
20
20
|
});
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const { PermissionLevels, PermissionTypes, getBuiltinPermissionByID, isPermissionLevelHigherThanRead, } = require("@budibase/backend-core/permissions");
|
|
3
3
|
const { lowerBuiltinRoleID, getBuiltinRoles, } = require("@budibase/backend-core/roles");
|
|
4
|
-
const {
|
|
4
|
+
const { DocumentType } = require("../db/utils");
|
|
5
5
|
const CURRENTLY_SUPPORTED_LEVELS = [
|
|
6
6
|
PermissionLevels.WRITE,
|
|
7
7
|
PermissionLevels.READ,
|
|
8
8
|
PermissionLevels.EXECUTE,
|
|
9
9
|
];
|
|
10
10
|
exports.getPermissionType = resourceId => {
|
|
11
|
-
const docType = Object.values(
|
|
11
|
+
const docType = Object.values(DocumentType).filter(docType => resourceId.startsWith(docType))[0];
|
|
12
12
|
switch (docType) {
|
|
13
|
-
case
|
|
14
|
-
case
|
|
13
|
+
case DocumentType.TABLE:
|
|
14
|
+
case DocumentType.ROW:
|
|
15
15
|
return PermissionTypes.TABLE;
|
|
16
|
-
case
|
|
16
|
+
case DocumentType.AUTOMATION:
|
|
17
17
|
return PermissionTypes.AUTOMATION;
|
|
18
|
-
case
|
|
18
|
+
case DocumentType.WEBHOOK:
|
|
19
19
|
return PermissionTypes.WEBHOOK;
|
|
20
|
-
case
|
|
21
|
-
case
|
|
20
|
+
case DocumentType.QUERY:
|
|
21
|
+
case DocumentType.DATASOURCE:
|
|
22
22
|
return PermissionTypes.QUERY;
|
|
23
23
|
default:
|
|
24
24
|
// views don't have an ID, will end up here
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.39-alpha.1",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
@@ -77,11 +77,11 @@
|
|
|
77
77
|
"license": "GPL-3.0",
|
|
78
78
|
"dependencies": {
|
|
79
79
|
"@apidevtools/swagger-parser": "10.0.3",
|
|
80
|
-
"@budibase/backend-core": "
|
|
81
|
-
"@budibase/client": "
|
|
82
|
-
"@budibase/pro": "1.2.
|
|
83
|
-
"@budibase/string-templates": "
|
|
84
|
-
"@budibase/types": "
|
|
80
|
+
"@budibase/backend-core": "1.2.39-alpha.1",
|
|
81
|
+
"@budibase/client": "1.2.39-alpha.1",
|
|
82
|
+
"@budibase/pro": "1.2.39-alpha.0",
|
|
83
|
+
"@budibase/string-templates": "1.2.39-alpha.1",
|
|
84
|
+
"@budibase/types": "1.2.39-alpha.1",
|
|
85
85
|
"@bull-board/api": "3.7.0",
|
|
86
86
|
"@bull-board/koa": "3.9.4",
|
|
87
87
|
"@elastic/elasticsearch": "7.10.0",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
"google-auth-library": "7.12.0",
|
|
107
107
|
"google-spreadsheet": "3.2.0",
|
|
108
108
|
"jimp": "0.16.1",
|
|
109
|
-
"joi": "17.
|
|
109
|
+
"joi": "17.6.0",
|
|
110
110
|
"js-yaml": "4.1.0",
|
|
111
111
|
"jsonschema": "1.4.0",
|
|
112
112
|
"knex": "0.95.15",
|
|
@@ -195,5 +195,5 @@
|
|
|
195
195
|
"optionalDependencies": {
|
|
196
196
|
"oracledb": "5.3.0"
|
|
197
197
|
},
|
|
198
|
-
"gitHead": "
|
|
198
|
+
"gitHead": "c113a7b63298fd8f19fd44932657ab4b80caf6a0"
|
|
199
199
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { events } from "@budibase/backend-core"
|
|
2
2
|
import { AnalyticsPingRequest, PingSource } from "@budibase/types"
|
|
3
|
-
import {
|
|
3
|
+
import { DocumentType, isDevAppID } from "../../db/utils"
|
|
4
4
|
import { context } from "@budibase/backend-core"
|
|
5
5
|
|
|
6
6
|
export const isEnabled = async (ctx: any) => {
|
|
@@ -15,7 +15,7 @@ export const ping = async (ctx: any) => {
|
|
|
15
15
|
switch (body.source) {
|
|
16
16
|
case PingSource.APP: {
|
|
17
17
|
const db = context.getAppDB({ skip_setup: true })
|
|
18
|
-
const appInfo = await db.get(
|
|
18
|
+
const appInfo = await db.get(DocumentType.APP_METADATA)
|
|
19
19
|
let appId = context.getAppId()
|
|
20
20
|
|
|
21
21
|
if (isDevAppID(appId)) {
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
getLayoutParams,
|
|
16
16
|
getScreenParams,
|
|
17
17
|
generateDevAppID,
|
|
18
|
-
|
|
18
|
+
DocumentType,
|
|
19
19
|
AppStatus,
|
|
20
20
|
} from "../../db/utils"
|
|
21
21
|
const {
|
|
@@ -206,7 +206,7 @@ export const fetchAppDefinition = async (ctx: any) => {
|
|
|
206
206
|
|
|
207
207
|
export const fetchAppPackage = async (ctx: any) => {
|
|
208
208
|
const db = context.getAppDB()
|
|
209
|
-
const application = await db.get(
|
|
209
|
+
const application = await db.get(DocumentType.APP_METADATA)
|
|
210
210
|
const layouts = await getLayouts()
|
|
211
211
|
let screens = await getScreens()
|
|
212
212
|
|
|
@@ -248,13 +248,13 @@ const performAppCreate = async (ctx: any) => {
|
|
|
248
248
|
let _rev
|
|
249
249
|
try {
|
|
250
250
|
// if template there will be an existing doc
|
|
251
|
-
const existing = await db.get(
|
|
251
|
+
const existing = await db.get(DocumentType.APP_METADATA)
|
|
252
252
|
_rev = existing._rev
|
|
253
253
|
} catch (err) {
|
|
254
254
|
// nothing to do
|
|
255
255
|
}
|
|
256
256
|
const newApplication: App = {
|
|
257
|
-
_id:
|
|
257
|
+
_id: DocumentType.APP_METADATA,
|
|
258
258
|
_rev,
|
|
259
259
|
appId: instance._id,
|
|
260
260
|
type: "app",
|
|
@@ -383,7 +383,7 @@ export const update = async (ctx: any) => {
|
|
|
383
383
|
export const updateClient = async (ctx: any) => {
|
|
384
384
|
// Get current app version
|
|
385
385
|
const db = context.getAppDB()
|
|
386
|
-
const application = await db.get(
|
|
386
|
+
const application = await db.get(DocumentType.APP_METADATA)
|
|
387
387
|
const currentVersion = application.version
|
|
388
388
|
|
|
389
389
|
// Update client library and manifest
|
|
@@ -407,7 +407,7 @@ export const updateClient = async (ctx: any) => {
|
|
|
407
407
|
export const revertClient = async (ctx: any) => {
|
|
408
408
|
// Check app can be reverted
|
|
409
409
|
const db = context.getAppDB()
|
|
410
|
-
const application = await db.get(
|
|
410
|
+
const application = await db.get(DocumentType.APP_METADATA)
|
|
411
411
|
if (!application.revertableVersion) {
|
|
412
412
|
ctx.throw(400, "There is no version to revert to")
|
|
413
413
|
}
|
|
@@ -439,7 +439,7 @@ const destroyApp = async (ctx: any) => {
|
|
|
439
439
|
}
|
|
440
440
|
|
|
441
441
|
const db = isUnpublish ? context.getProdAppDB() : context.getAppDB()
|
|
442
|
-
const app = await db.get(
|
|
442
|
+
const app = await db.get(DocumentType.APP_METADATA)
|
|
443
443
|
const result = await db.destroy()
|
|
444
444
|
|
|
445
445
|
if (isUnpublish) {
|
|
@@ -526,7 +526,7 @@ export const sync = async (ctx: any, next: any) => {
|
|
|
526
526
|
try {
|
|
527
527
|
await replication.replicate({
|
|
528
528
|
filter: function (doc: any) {
|
|
529
|
-
return doc._id !==
|
|
529
|
+
return doc._id !== DocumentType.APP_METADATA
|
|
530
530
|
},
|
|
531
531
|
})
|
|
532
532
|
} catch (err) {
|
|
@@ -550,7 +550,7 @@ export const sync = async (ctx: any, next: any) => {
|
|
|
550
550
|
const updateAppPackage = async (appPackage: any, appId: any) => {
|
|
551
551
|
return context.doInAppContext(appId, async () => {
|
|
552
552
|
const db = context.getAppDB()
|
|
553
|
-
const application = await db.get(
|
|
553
|
+
const application = await db.get(DocumentType.APP_METADATA)
|
|
554
554
|
|
|
555
555
|
const newAppPackage = { ...application, ...appPackage }
|
|
556
556
|
if (appPackage._rev !== application._rev) {
|
|
@@ -3,7 +3,7 @@ const triggers = require("../../automations/triggers")
|
|
|
3
3
|
const {
|
|
4
4
|
getAutomationParams,
|
|
5
5
|
generateAutomationID,
|
|
6
|
-
|
|
6
|
+
DocumentType,
|
|
7
7
|
} = require("../../db/utils")
|
|
8
8
|
const {
|
|
9
9
|
checkForWebhooks,
|
|
@@ -201,7 +201,7 @@ exports.clearLogError = async function (ctx) {
|
|
|
201
201
|
const { automationId, appId } = ctx.request.body
|
|
202
202
|
await doInAppContext(appId, async () => {
|
|
203
203
|
const db = getProdAppDB()
|
|
204
|
-
const metadata = await db.get(
|
|
204
|
+
const metadata = await db.get(DocumentType.APP_METADATA)
|
|
205
205
|
if (!automationId) {
|
|
206
206
|
delete metadata.automationErrors
|
|
207
207
|
} else if (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const { streamBackup } = require("../../utilities/fileSystem")
|
|
2
2
|
const { events, context } = require("@budibase/backend-core")
|
|
3
|
-
const {
|
|
3
|
+
const { DocumentType } = require("../../db/utils")
|
|
4
4
|
|
|
5
5
|
exports.exportAppDump = async function (ctx) {
|
|
6
6
|
let { appId, excludeRows } = ctx.query
|
|
@@ -12,7 +12,7 @@ exports.exportAppDump = async function (ctx) {
|
|
|
12
12
|
|
|
13
13
|
await context.doInAppContext(appId, async () => {
|
|
14
14
|
const appDb = context.getAppDB()
|
|
15
|
-
const app = await appDb.get(
|
|
15
|
+
const app = await appDb.get(DocumentType.APP_METADATA)
|
|
16
16
|
await events.app.exported(app)
|
|
17
17
|
})
|
|
18
18
|
}
|
|
@@ -11,7 +11,7 @@ const {
|
|
|
11
11
|
getGlobalDB,
|
|
12
12
|
} = require("@budibase/backend-core/tenancy")
|
|
13
13
|
const { create } = require("./application")
|
|
14
|
-
const { getDocParams,
|
|
14
|
+
const { getDocParams, DocumentType, isDevAppID } = require("../../db/utils")
|
|
15
15
|
|
|
16
16
|
async function createApp(appName, appImport) {
|
|
17
17
|
const ctx = {
|
|
@@ -31,7 +31,7 @@ exports.exportApps = async ctx => {
|
|
|
31
31
|
}
|
|
32
32
|
const apps = await getAllApps({ all: true })
|
|
33
33
|
const globalDBString = await exportDB(getGlobalDBName(), {
|
|
34
|
-
filter: doc => !doc._id.startsWith(
|
|
34
|
+
filter: doc => !doc._id.startsWith(DocumentType.USER),
|
|
35
35
|
})
|
|
36
36
|
let allDBs = {
|
|
37
37
|
global: globalDBString,
|
|
@@ -97,7 +97,7 @@ exports.importApps = async ctx => {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
// if there are any users make sure to remove them
|
|
100
|
-
let users = await getAllDocType(globalDb,
|
|
100
|
+
let users = await getAllDocType(globalDb, DocumentType.USER)
|
|
101
101
|
let userDeletionPromises = []
|
|
102
102
|
for (let user of users) {
|
|
103
103
|
userDeletionPromises.push(globalDb.remove(user._id, user._rev))
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const {
|
|
1
|
+
const { DocumentType } = require("../../db/utils")
|
|
2
2
|
const { getComponentLibraryManifest } = require("../../utilities/fileSystem")
|
|
3
3
|
const { getAppDB } = require("@budibase/backend-core/context")
|
|
4
4
|
|
|
5
5
|
exports.fetchAppComponentDefinitions = async function (ctx) {
|
|
6
6
|
const db = getAppDB()
|
|
7
|
-
const app = await db.get(
|
|
7
|
+
const app = await db.get(DocumentType.APP_METADATA)
|
|
8
8
|
|
|
9
9
|
let componentManifests = await Promise.all(
|
|
10
10
|
app.componentLibraries.map(async library => {
|
|
@@ -2,7 +2,7 @@ const {
|
|
|
2
2
|
generateDatasourceID,
|
|
3
3
|
getDatasourceParams,
|
|
4
4
|
getQueryParams,
|
|
5
|
-
|
|
5
|
+
DocumentType,
|
|
6
6
|
BudibaseInternalDB,
|
|
7
7
|
getTableParams,
|
|
8
8
|
} = require("../../db/utils")
|
|
@@ -132,7 +132,7 @@ exports.save = async function (ctx) {
|
|
|
132
132
|
|
|
133
133
|
const datasource = {
|
|
134
134
|
_id: generateDatasourceID({ plus }),
|
|
135
|
-
type: plus ?
|
|
135
|
+
type: plus ? DocumentType.DATASOURCE_PLUS : DocumentType.DATASOURCE,
|
|
136
136
|
...ctx.request.body.datasource,
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
getProdAppID,
|
|
5
5
|
getDevelopmentAppID,
|
|
6
6
|
} from "@budibase/backend-core/db"
|
|
7
|
-
import {
|
|
7
|
+
import { DocumentType, getAutomationParams } from "../../../db/utils"
|
|
8
8
|
import {
|
|
9
9
|
disableAllCrons,
|
|
10
10
|
enableCronTrigger,
|
|
@@ -52,9 +52,9 @@ async function storeDeploymentHistory(deployment: any) {
|
|
|
52
52
|
let deploymentDoc
|
|
53
53
|
try {
|
|
54
54
|
// theres only one deployment doc per app database
|
|
55
|
-
deploymentDoc = await db.get(
|
|
55
|
+
deploymentDoc = await db.get(DocumentType.DEPLOYMENTS)
|
|
56
56
|
} catch (err) {
|
|
57
|
-
deploymentDoc = { _id:
|
|
57
|
+
deploymentDoc = { _id: DocumentType.DEPLOYMENTS, history: {} }
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
const deploymentId = deploymentJSON._id
|
|
@@ -115,7 +115,7 @@ async function deployApp(deployment: any) {
|
|
|
115
115
|
await replication.replicate()
|
|
116
116
|
console.log("replication complete.. replacing app meta doc")
|
|
117
117
|
const db = getProdAppDB()
|
|
118
|
-
const appDoc = await db.get(
|
|
118
|
+
const appDoc = await db.get(DocumentType.APP_METADATA)
|
|
119
119
|
|
|
120
120
|
deployment.appUrl = appDoc.url
|
|
121
121
|
|
|
@@ -146,7 +146,7 @@ async function deployApp(deployment: any) {
|
|
|
146
146
|
export async function fetchDeployments(ctx: any) {
|
|
147
147
|
try {
|
|
148
148
|
const db = getAppDB()
|
|
149
|
-
const deploymentDoc = await db.get(
|
|
149
|
+
const deploymentDoc = await db.get(DocumentType.DEPLOYMENTS)
|
|
150
150
|
const { updated, deployments } = await checkAllDeployments(deploymentDoc)
|
|
151
151
|
if (updated) {
|
|
152
152
|
await db.put(deployments)
|
|
@@ -160,7 +160,7 @@ export async function fetchDeployments(ctx: any) {
|
|
|
160
160
|
export async function deploymentProgress(ctx: any) {
|
|
161
161
|
try {
|
|
162
162
|
const db = getAppDB()
|
|
163
|
-
const deploymentDoc = await db.get(
|
|
163
|
+
const deploymentDoc = await db.get(DocumentType.DEPLOYMENTS)
|
|
164
164
|
ctx.body = deploymentDoc[ctx.params.deploymentId]
|
|
165
165
|
} catch (err) {
|
|
166
166
|
ctx.throw(
|
|
@@ -173,7 +173,7 @@ export async function deploymentProgress(ctx: any) {
|
|
|
173
173
|
const isFirstDeploy = async () => {
|
|
174
174
|
try {
|
|
175
175
|
const db = getProdAppDB()
|
|
176
|
-
await db.get(
|
|
176
|
+
await db.get(DocumentType.APP_METADATA)
|
|
177
177
|
} catch (e: any) {
|
|
178
178
|
if (e.status === 404) {
|
|
179
179
|
return true
|
|
@@ -4,7 +4,7 @@ const { checkSlashesInUrl } = require("../../utilities")
|
|
|
4
4
|
const { request } = require("../../utilities/workerRequests")
|
|
5
5
|
const { clearLock } = require("../../utilities/redis")
|
|
6
6
|
const { Replication, getProdAppID } = require("@budibase/backend-core/db")
|
|
7
|
-
const {
|
|
7
|
+
const { DocumentType } = require("../../db/utils")
|
|
8
8
|
const { app: appCache } = require("@budibase/backend-core/cache")
|
|
9
9
|
const { getProdAppDB, getAppDB } = require("@budibase/backend-core/context")
|
|
10
10
|
const { events } = require("@budibase/backend-core")
|
|
@@ -87,7 +87,7 @@ exports.revert = async ctx => {
|
|
|
87
87
|
if (info.error) {
|
|
88
88
|
throw info.error
|
|
89
89
|
}
|
|
90
|
-
const deploymentDoc = await db.get(
|
|
90
|
+
const deploymentDoc = await db.get(DocumentType.DEPLOYMENTS)
|
|
91
91
|
if (
|
|
92
92
|
!deploymentDoc.history ||
|
|
93
93
|
Object.keys(deploymentDoc.history).length === 0
|
|
@@ -110,7 +110,7 @@ exports.revert = async ctx => {
|
|
|
110
110
|
|
|
111
111
|
// update appID in reverted app to be dev version again
|
|
112
112
|
const db = getAppDB()
|
|
113
|
-
const appDoc = await db.get(
|
|
113
|
+
const appDoc = await db.get(DocumentType.APP_METADATA)
|
|
114
114
|
appDoc.appId = appId
|
|
115
115
|
appDoc.instance._id = appId
|
|
116
116
|
await db.put(appDoc)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const { cloneDeep } = require("lodash")
|
|
2
2
|
const { definitions } = require("../../integrations")
|
|
3
|
-
const {
|
|
3
|
+
const { SourceName } = require("@budibase/types")
|
|
4
4
|
const googlesheets = require("../../integrations/googlesheets")
|
|
5
5
|
const { featureFlags } = require("@budibase/backend-core")
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ exports.fetch = async function (ctx) {
|
|
|
10
10
|
|
|
11
11
|
// for google sheets integration google verification
|
|
12
12
|
if (featureFlags.isEnabled(featureFlags.FeatureFlag.GOOGLE_SHEETS)) {
|
|
13
|
-
defs[
|
|
13
|
+
defs[SourceName.GOOGLE_SHEETS] = googlesheets.schema
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
ctx.body = defs
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const { getAppDB } = require("@budibase/backend-core/context")
|
|
2
2
|
import { isExternalTable } from "../../../integrations/utils"
|
|
3
|
-
import { APP_PREFIX,
|
|
3
|
+
import { APP_PREFIX, DocumentType } from "../../../db/utils"
|
|
4
4
|
|
|
5
5
|
export async function addRev(
|
|
6
6
|
body: { _id?: string; _rev?: string },
|
|
@@ -11,7 +11,7 @@ export async function addRev(
|
|
|
11
11
|
}
|
|
12
12
|
let id = body._id
|
|
13
13
|
if (body._id.startsWith(APP_PREFIX)) {
|
|
14
|
-
id =
|
|
14
|
+
id = DocumentType.APP_METADATA
|
|
15
15
|
}
|
|
16
16
|
const db = getAppDB()
|
|
17
17
|
const dbDoc = await db.get(id)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ImportInfo } from "./base"
|
|
2
|
-
import { Query, QueryParameter } from "
|
|
2
|
+
import { Query, QueryParameter } from "@budibase/types"
|
|
3
3
|
import { OpenAPIV2 } from "openapi-types"
|
|
4
4
|
import { OpenAPISource } from "./base/openapi"
|
|
5
5
|
import { URL } from "url"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ImportInfo } from "./base"
|
|
2
|
-
import { Query, QueryParameter } from "
|
|
2
|
+
import { Query, QueryParameter } from "@budibase/types"
|
|
3
3
|
import { OpenAPIV3 } from "openapi-types"
|
|
4
4
|
import { OpenAPISource } from "./base/openapi"
|
|
5
5
|
import { URL } from "url"
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
FilterType,
|
|
3
|
+
IncludeRelationship,
|
|
4
4
|
Operation,
|
|
5
5
|
PaginationJson,
|
|
6
6
|
RelationshipsJson,
|
|
7
7
|
SearchFilters,
|
|
8
8
|
SortJson,
|
|
9
|
-
} from "../../../definitions/datasource"
|
|
10
|
-
import {
|
|
11
9
|
Datasource,
|
|
12
10
|
FieldSchema,
|
|
13
11
|
Row,
|
|
14
12
|
Table,
|
|
15
|
-
} from "
|
|
13
|
+
} from "@budibase/types"
|
|
16
14
|
import {
|
|
17
15
|
breakRowIdField,
|
|
18
16
|
generateRowIdField,
|
|
@@ -128,7 +126,7 @@ module External {
|
|
|
128
126
|
if (
|
|
129
127
|
typeof filter !== "object" ||
|
|
130
128
|
Object.keys(filter).length === 0 ||
|
|
131
|
-
key ===
|
|
129
|
+
key === FilterType.ONE_OF
|
|
132
130
|
) {
|
|
133
131
|
continue
|
|
134
132
|
}
|
|
@@ -634,7 +632,7 @@ module External {
|
|
|
634
632
|
*/
|
|
635
633
|
buildFields(
|
|
636
634
|
table: Table,
|
|
637
|
-
includeRelations:
|
|
635
|
+
includeRelations: IncludeRelationship = IncludeRelationship.INCLUDE
|
|
638
636
|
) {
|
|
639
637
|
function extractRealFields(table: Table, existing: string[] = []) {
|
|
640
638
|
return Object.entries(table.schema)
|
|
@@ -3,7 +3,7 @@ const {
|
|
|
3
3
|
generateRowID,
|
|
4
4
|
getRowParams,
|
|
5
5
|
getTableIDFromRowID,
|
|
6
|
-
|
|
6
|
+
DocumentType,
|
|
7
7
|
InternalTables,
|
|
8
8
|
} = require("../../../db/utils")
|
|
9
9
|
const { dangerousGetDB } = require("@budibase/backend-core/db")
|
|
@@ -183,7 +183,7 @@ exports.fetchView = async ctx => {
|
|
|
183
183
|
const viewName = ctx.params.viewName
|
|
184
184
|
|
|
185
185
|
// if this is a table view being looked for just transfer to that
|
|
186
|
-
if (viewName.startsWith(
|
|
186
|
+
if (viewName.startsWith(DocumentType.TABLE)) {
|
|
187
187
|
ctx.params.tableId = viewName
|
|
188
188
|
return exports.fetch(ctx)
|
|
189
189
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const { SearchIndexes } = require("../../../db/utils")
|
|
2
|
+
const { removeKeyNumbering } = require("./utils")
|
|
2
3
|
const fetch = require("node-fetch")
|
|
3
4
|
const { getCouchInfo } = require("@budibase/backend-core/db")
|
|
4
5
|
const { getAppId } = require("@budibase/backend-core/context")
|
|
@@ -197,6 +198,8 @@ class QueryBuilder {
|
|
|
197
198
|
|
|
198
199
|
function build(structure, queryFn) {
|
|
199
200
|
for (let [key, value] of Object.entries(structure)) {
|
|
201
|
+
// check for new format - remove numbering if needed
|
|
202
|
+
key = removeKeyNumbering(key)
|
|
200
203
|
key = builder.preprocess(key.replace(/ /g, "_"), {
|
|
201
204
|
escape: true,
|
|
202
205
|
})
|
|
@@ -310,6 +313,9 @@ class QueryBuilder {
|
|
|
310
313
|
}
|
|
311
314
|
}
|
|
312
315
|
|
|
316
|
+
// exported for unit testing
|
|
317
|
+
exports.QueryBuilder = QueryBuilder
|
|
318
|
+
|
|
313
319
|
/**
|
|
314
320
|
* Executes a lucene search query.
|
|
315
321
|
* @param url The query URL
|
|
@@ -3,8 +3,9 @@ const { cloneDeep } = require("lodash/fp")
|
|
|
3
3
|
const { InternalTables } = require("../../../db/utils")
|
|
4
4
|
const userController = require("../user")
|
|
5
5
|
const { FieldTypes } = require("../../../constants")
|
|
6
|
-
const { makeExternalQuery } = require("../../../integrations/base/utils")
|
|
7
6
|
const { getAppDB } = require("@budibase/backend-core/context")
|
|
7
|
+
const { makeExternalQuery } = require("../../../integrations/base/query")
|
|
8
|
+
const { removeKeyNumbering } = require("../../../integrations/base/utils")
|
|
8
9
|
|
|
9
10
|
validateJs.extend(validateJs.validators.datetime, {
|
|
10
11
|
parse: function (value) {
|
|
@@ -16,6 +17,8 @@ validateJs.extend(validateJs.validators.datetime, {
|
|
|
16
17
|
},
|
|
17
18
|
})
|
|
18
19
|
|
|
20
|
+
exports.removeKeyNumbering = removeKeyNumbering
|
|
21
|
+
|
|
19
22
|
exports.getDatasourceAndQuery = async json => {
|
|
20
23
|
const datasourceId = json.endpoint.datasourceId
|
|
21
24
|
const db = getAppDB()
|
|
@@ -14,7 +14,7 @@ const env = require("../../../environment")
|
|
|
14
14
|
const { clientLibraryPath } = require("../../../utilities")
|
|
15
15
|
const { upload } = require("../../../utilities/fileSystem")
|
|
16
16
|
const { attachmentsRelativeURL } = require("../../../utilities")
|
|
17
|
-
const {
|
|
17
|
+
const { DocumentType } = require("../../../db/utils")
|
|
18
18
|
const { getAppDB, getAppId } = require("@budibase/backend-core/context")
|
|
19
19
|
const { setCookie, clearCookie } = require("@budibase/backend-core/utils")
|
|
20
20
|
const AWS = require("aws-sdk")
|
|
@@ -99,7 +99,7 @@ export const uploadFile = async function (ctx: any) {
|
|
|
99
99
|
|
|
100
100
|
export const serveApp = async function (ctx: any) {
|
|
101
101
|
const db = getAppDB({ skip_setup: true })
|
|
102
|
-
const appInfo = await db.get(
|
|
102
|
+
const appInfo = await db.get(DocumentType.APP_METADATA)
|
|
103
103
|
let appId = getAppId()
|
|
104
104
|
|
|
105
105
|
if (!env.isJest()) {
|
|
@@ -14,7 +14,7 @@ const {
|
|
|
14
14
|
FieldTypes,
|
|
15
15
|
RelationshipTypes,
|
|
16
16
|
} = require("../../../constants")
|
|
17
|
-
const { makeExternalQuery } = require("../../../integrations/base/
|
|
17
|
+
const { makeExternalQuery } = require("../../../integrations/base/query")
|
|
18
18
|
const { cloneDeep } = require("lodash/fp")
|
|
19
19
|
const csvParser = require("../../../utilities/csvParser")
|
|
20
20
|
const { handleRequest } = require("../row/external")
|
|
@@ -7,7 +7,7 @@ const { getTable } = require("../table/utils")
|
|
|
7
7
|
const { FieldTypes } = require("../../../constants")
|
|
8
8
|
const { getAppDB } = require("@budibase/backend-core/context")
|
|
9
9
|
const { events } = require("@budibase/backend-core")
|
|
10
|
-
const {
|
|
10
|
+
const { DocumentType } = require("../../../db/utils")
|
|
11
11
|
const { cloneDeep, isEqual } = require("lodash")
|
|
12
12
|
|
|
13
13
|
exports.fetch = async ctx => {
|
|
@@ -181,7 +181,7 @@ exports.exportView = async ctx => {
|
|
|
181
181
|
ctx.attachment(filename)
|
|
182
182
|
ctx.body = apiFileReturn(exporter(headers, rows))
|
|
183
183
|
|
|
184
|
-
if (viewName.startsWith(
|
|
184
|
+
if (viewName.startsWith(DocumentType.TABLE)) {
|
|
185
185
|
await events.table.exported(table, format)
|
|
186
186
|
} else {
|
|
187
187
|
await events.view.exported(table, format)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
const {
|
|
2
|
-
|
|
2
|
+
ViewName,
|
|
3
3
|
generateMemoryViewID,
|
|
4
4
|
getMemoryViewParams,
|
|
5
|
-
|
|
5
|
+
DocumentType,
|
|
6
6
|
SEPARATOR,
|
|
7
7
|
} = require("../../../db/utils")
|
|
8
8
|
const env = require("../../../environment")
|
|
@@ -16,7 +16,7 @@ exports.getView = async viewName => {
|
|
|
16
16
|
return designDoc.views[viewName]
|
|
17
17
|
} else {
|
|
18
18
|
// This is a table view, don't read the view from the DB
|
|
19
|
-
if (viewName.startsWith(
|
|
19
|
+
if (viewName.startsWith(DocumentType.TABLE + SEPARATOR)) {
|
|
20
20
|
return null
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -32,7 +32,7 @@ exports.getViews = async () => {
|
|
|
32
32
|
const designDoc = await db.get("_design/database")
|
|
33
33
|
for (let name of Object.keys(designDoc.views)) {
|
|
34
34
|
// Only return custom views, not built ins
|
|
35
|
-
if (Object.values(
|
|
35
|
+
if (Object.values(ViewName).indexOf(name) !== -1) {
|
|
36
36
|
continue
|
|
37
37
|
}
|
|
38
38
|
response.push({
|