@budibase/server 1.2.26-alpha.0 → 1.2.26
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 +1 -8
- package/builder/assets/{index.f1c7e247.css → index.08dd0c5e.css} +1 -1
- package/builder/assets/index.a014d6b5.js +975 -0
- package/builder/index.html +2 -2
- package/coverage/clover.xml +380 -385
- package/coverage/coverage-final.json +9 -9
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +1 -1
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +1 -1
- 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/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 +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +191 -209
- package/coverage/lcov-report/api/controllers/row/staticFormula.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +18 -27
- 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 +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 +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 +1 -1
- package/coverage/lcov-report/db/newid.js.html +3 -3
- package/coverage/lcov-report/db/utils.js.html +61 -61
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +593 -598
- package/dist/api/controllers/row/internalSearch.js +0 -5
- package/dist/api/controllers/row/utils.js +1 -3
- package/dist/api/controllers/static/index.js +19 -11
- package/dist/api/controllers/table/external.js +1 -1
- package/dist/automations/logging/index.js +0 -3
- package/dist/integrations/base/sql.js +4 -5
- package/dist/integrations/base/utils.js +27 -13
- package/dist/integrations/microsoftSqlServer.js +2 -5
- package/dist/integrations/mysql.js +2 -2
- package/dist/integrations/postgres.js +2 -5
- package/dist/package.json +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/api/controllers/row/internalSearch.js +0 -6
- package/src/api/controllers/row/utils.js +1 -4
- package/src/api/controllers/static/{index.js → index.ts} +10 -10
- package/src/api/controllers/table/external.js +1 -1
- package/src/automations/logging/index.ts +0 -3
- package/src/integrations/base/sql.ts +4 -5
- package/src/integrations/base/utils.ts +19 -9
- package/src/integrations/microsoftSqlServer.ts +2 -3
- package/src/integrations/mysql.ts +1 -1
- package/src/integrations/postgres.ts +1 -2
- package/src/integrations/queries/sql.ts +1 -0
- package/src/integrations/tests/sql.spec.js +1 -1
- package/builder/assets/index.d4c0ea11.js +0 -977
- package/dist/integrations/base/query.js +0 -27
- package/src/api/routes/tests/internalSearch.spec.js +0 -157
- package/src/integrations/base/query.ts +0 -17
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.26
|
|
4
|
+
"version": "1.2.26",
|
|
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": "1.2.26
|
|
81
|
-
"@budibase/client": "1.2.26
|
|
80
|
+
"@budibase/backend-core": "^1.2.26",
|
|
81
|
+
"@budibase/client": "^1.2.26",
|
|
82
82
|
"@budibase/pro": "1.2.25",
|
|
83
|
-
"@budibase/string-templates": "1.2.26
|
|
84
|
-
"@budibase/types": "1.2.26
|
|
83
|
+
"@budibase/string-templates": "^1.2.26",
|
|
84
|
+
"@budibase/types": "^1.2.26",
|
|
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.2.1",
|
|
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": "105766335352df8786768b9cba017309caccc5b7"
|
|
199
199
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
const { SearchIndexes } = require("../../../db/utils")
|
|
2
|
-
const { removeKeyNumbering } = require("./utils")
|
|
3
2
|
const fetch = require("node-fetch")
|
|
4
3
|
const { getCouchInfo } = require("@budibase/backend-core/db")
|
|
5
4
|
const { getAppId } = require("@budibase/backend-core/context")
|
|
@@ -198,8 +197,6 @@ class QueryBuilder {
|
|
|
198
197
|
|
|
199
198
|
function build(structure, queryFn) {
|
|
200
199
|
for (let [key, value] of Object.entries(structure)) {
|
|
201
|
-
// check for new format - remove numbering if needed
|
|
202
|
-
key = removeKeyNumbering(key)
|
|
203
200
|
key = builder.preprocess(key.replace(/ /g, "_"), {
|
|
204
201
|
escape: true,
|
|
205
202
|
})
|
|
@@ -313,9 +310,6 @@ class QueryBuilder {
|
|
|
313
310
|
}
|
|
314
311
|
}
|
|
315
312
|
|
|
316
|
-
// exported for unit testing
|
|
317
|
-
exports.QueryBuilder = QueryBuilder
|
|
318
|
-
|
|
319
313
|
/**
|
|
320
314
|
* Executes a lucene search query.
|
|
321
315
|
* @param url The query URL
|
|
@@ -3,9 +3,8 @@ 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")
|
|
6
7
|
const { getAppDB } = require("@budibase/backend-core/context")
|
|
7
|
-
const { makeExternalQuery } = require("../../../integrations/base/query")
|
|
8
|
-
const { removeKeyNumbering } = require("../../../integrations/base/utils")
|
|
9
8
|
|
|
10
9
|
validateJs.extend(validateJs.validators.datetime, {
|
|
11
10
|
parse: function (value) {
|
|
@@ -17,8 +16,6 @@ validateJs.extend(validateJs.validators.datetime, {
|
|
|
17
16
|
},
|
|
18
17
|
})
|
|
19
18
|
|
|
20
|
-
exports.removeKeyNumbering = removeKeyNumbering
|
|
21
|
-
|
|
22
19
|
exports.getDatasourceAndQuery = async json => {
|
|
23
20
|
const datasourceId = json.endpoint.datasourceId
|
|
24
21
|
const db = getAppDB()
|
|
@@ -18,14 +18,14 @@ const { DocumentTypes, isDevAppID } = 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")
|
|
21
|
-
|
|
21
|
+
import { events } from "@budibase/backend-core"
|
|
22
22
|
|
|
23
23
|
const fs = require("fs")
|
|
24
24
|
const {
|
|
25
25
|
downloadTarballDirect,
|
|
26
26
|
} = require("../../../utilities/fileSystem/utilities")
|
|
27
27
|
|
|
28
|
-
async function prepareUpload({ s3Key, bucket, metadata, file }) {
|
|
28
|
+
async function prepareUpload({ s3Key, bucket, metadata, file }: any) {
|
|
29
29
|
const response = await upload({
|
|
30
30
|
bucket,
|
|
31
31
|
metadata,
|
|
@@ -44,7 +44,7 @@ async function prepareUpload({ s3Key, bucket, metadata, file }) {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
export const toggleBetaUiFeature = async function (ctx: any) {
|
|
48
48
|
const cookieName = `beta:${ctx.params.feature}`
|
|
49
49
|
|
|
50
50
|
if (ctx.cookies.get(cookieName)) {
|
|
@@ -72,21 +72,21 @@ exports.toggleBetaUiFeature = async function (ctx) {
|
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
export const serveBuilder = async function (ctx: any) {
|
|
76
76
|
const builderPath = resolve(TOP_LEVEL_PATH, "builder")
|
|
77
77
|
await send(ctx, ctx.file, { root: builderPath })
|
|
78
|
-
if (
|
|
78
|
+
if (ctx.file === "index.html") {
|
|
79
79
|
await events.serve.servedBuilder()
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
export const uploadFile = async function (ctx: any) {
|
|
84
84
|
let files =
|
|
85
85
|
ctx.request.files.file.length > 1
|
|
86
86
|
? Array.from(ctx.request.files.file)
|
|
87
87
|
: [ctx.request.files.file]
|
|
88
88
|
|
|
89
|
-
const uploads = files.map(async file => {
|
|
89
|
+
const uploads = files.map(async (file: any) => {
|
|
90
90
|
const fileExtension = [...file.name.split(".")].pop()
|
|
91
91
|
// filenames converted to UUIDs so they are unique
|
|
92
92
|
const processedFileName = `${uuid.v4()}.${fileExtension}`
|
|
@@ -101,7 +101,7 @@ exports.uploadFile = async function (ctx) {
|
|
|
101
101
|
ctx.body = await Promise.all(uploads)
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
export const serveApp = async function (ctx: any) {
|
|
105
105
|
const db = getAppDB({ skip_setup: true })
|
|
106
106
|
const appInfo = await db.get(DocumentTypes.APP_METADATA)
|
|
107
107
|
let appId = getAppId()
|
|
@@ -134,13 +134,13 @@ exports.serveApp = async function (ctx) {
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
|
|
137
|
+
export const serveClientLibrary = async function (ctx: any) {
|
|
138
138
|
return send(ctx, "budibase-client.js", {
|
|
139
139
|
root: join(NODE_MODULES_PATH, "@budibase", "client", "dist"),
|
|
140
140
|
})
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
|
|
143
|
+
export const getSignedUploadURL = async function (ctx: any) {
|
|
144
144
|
const database = getAppDB()
|
|
145
145
|
|
|
146
146
|
// Ensure datasource is valid
|
|
@@ -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/utils")
|
|
18
18
|
const { cloneDeep } = require("lodash/fp")
|
|
19
19
|
const csvParser = require("../../../utilities/csvParser")
|
|
20
20
|
const { handleRequest } = require("../row/external")
|
|
@@ -23,9 +23,6 @@ export async function checkAppMetadata(apps: App[]) {
|
|
|
23
23
|
for (let [key, errors] of Object.entries(metadata.automationErrors)) {
|
|
24
24
|
const updated = []
|
|
25
25
|
for (let error of errors) {
|
|
26
|
-
if (!error) {
|
|
27
|
-
continue
|
|
28
|
-
}
|
|
29
26
|
const startDate = error.split(dbUtils.SEPARATOR)[2]
|
|
30
27
|
if (startDate > maxStartDate) {
|
|
31
28
|
updated.push(error)
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
import { isIsoDateString, SqlClients } from "../utils"
|
|
11
11
|
import SqlTableQueryBuilder from "./sqlTable"
|
|
12
12
|
import environment from "../../environment"
|
|
13
|
-
import { removeKeyNumbering } from "./utils"
|
|
14
13
|
|
|
15
14
|
const envLimit = environment.SQL_MAX_ROWS
|
|
16
15
|
? parseInt(environment.SQL_MAX_ROWS)
|
|
@@ -134,13 +133,12 @@ class InternalBuilder {
|
|
|
134
133
|
fn: (key: string, value: any) => void
|
|
135
134
|
) {
|
|
136
135
|
for (let [key, value] of Object.entries(structure)) {
|
|
137
|
-
const
|
|
138
|
-
const isRelationshipField = updatedKey.includes(".")
|
|
136
|
+
const isRelationshipField = key.includes(".")
|
|
139
137
|
if (!opts.relationship && !isRelationshipField) {
|
|
140
|
-
fn(`${opts.tableName}.${
|
|
138
|
+
fn(`${opts.tableName}.${key}`, value)
|
|
141
139
|
}
|
|
142
140
|
if (opts.relationship && isRelationshipField) {
|
|
143
|
-
fn(
|
|
141
|
+
fn(key, value)
|
|
144
142
|
}
|
|
145
143
|
}
|
|
146
144
|
}
|
|
@@ -584,3 +582,4 @@ class SqlQueryBuilder extends SqlTableQueryBuilder {
|
|
|
584
582
|
}
|
|
585
583
|
|
|
586
584
|
export default SqlQueryBuilder
|
|
585
|
+
module.exports = SqlQueryBuilder
|
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
import { QueryJson } from "../../definitions/datasource"
|
|
2
|
+
import { Datasource } from "../../definitions/common"
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
module DatasourceUtils {
|
|
5
|
+
const { integrations } = require("../index")
|
|
6
|
+
|
|
7
|
+
export async function makeExternalQuery(
|
|
8
|
+
datasource: Datasource,
|
|
9
|
+
json: QueryJson
|
|
10
|
+
) {
|
|
11
|
+
const Integration = integrations[datasource.source]
|
|
12
|
+
// query is the opinionated function
|
|
13
|
+
if (Integration.prototype.query) {
|
|
14
|
+
const integration = new Integration(datasource.config)
|
|
15
|
+
return integration.query(json)
|
|
16
|
+
} else {
|
|
17
|
+
throw "Datasource does not support query."
|
|
18
|
+
}
|
|
11
19
|
}
|
|
20
|
+
|
|
21
|
+
module.exports.makeExternalQuery = makeExternalQuery
|
|
12
22
|
}
|
|
@@ -15,10 +15,10 @@ import {
|
|
|
15
15
|
} from "./utils"
|
|
16
16
|
import { DatasourcePlus } from "./base/datasourcePlus"
|
|
17
17
|
import { Table, TableSchema } from "../definitions/common"
|
|
18
|
-
import Sql from "./base/sql"
|
|
19
18
|
|
|
20
19
|
module MSSQLModule {
|
|
21
20
|
const sqlServer = require("mssql")
|
|
21
|
+
const Sql = require("./base/sql")
|
|
22
22
|
const DEFAULT_SCHEMA = "dbo"
|
|
23
23
|
|
|
24
24
|
interface MSSQLConfig {
|
|
@@ -96,8 +96,7 @@ module MSSQLModule {
|
|
|
96
96
|
class SqlServerIntegration extends Sql implements DatasourcePlus {
|
|
97
97
|
private readonly config: MSSQLConfig
|
|
98
98
|
private index: number = 0
|
|
99
|
-
|
|
100
|
-
private client: any
|
|
99
|
+
static pool: any
|
|
101
100
|
public tables: Record<string, Table> = {}
|
|
102
101
|
public schemaErrors: Record<string, string> = {}
|
|
103
102
|
|
|
@@ -16,10 +16,10 @@ import {
|
|
|
16
16
|
import { DatasourcePlus } from "./base/datasourcePlus"
|
|
17
17
|
import dayjs from "dayjs"
|
|
18
18
|
const { NUMBER_REGEX } = require("../utilities")
|
|
19
|
-
import Sql from "./base/sql"
|
|
20
19
|
|
|
21
20
|
module MySQLModule {
|
|
22
21
|
const mysql = require("mysql2/promise")
|
|
22
|
+
const Sql = require("./base/sql")
|
|
23
23
|
|
|
24
24
|
interface MySQLConfig {
|
|
25
25
|
host: string
|
|
@@ -14,10 +14,10 @@ import {
|
|
|
14
14
|
SqlClients,
|
|
15
15
|
} from "./utils"
|
|
16
16
|
import { DatasourcePlus } from "./base/datasourcePlus"
|
|
17
|
-
import Sql from "./base/sql"
|
|
18
17
|
|
|
19
18
|
module PostgresModule {
|
|
20
19
|
const { Client, types } = require("pg")
|
|
20
|
+
const Sql = require("./base/sql")
|
|
21
21
|
const { escapeDangerousCharacters } = require("../utilities")
|
|
22
22
|
|
|
23
23
|
// Return "date" and "timestamp" types as plain strings.
|
|
@@ -117,7 +117,6 @@ module PostgresModule {
|
|
|
117
117
|
private readonly client: any
|
|
118
118
|
private readonly config: PostgresConfig
|
|
119
119
|
private index: number = 1
|
|
120
|
-
private open: boolean
|
|
121
120
|
public tables: Record<string, Table> = {}
|
|
122
121
|
public schemaErrors: Record<string, string> = {}
|
|
123
122
|
|