dbgate-api-premium 6.1.5 → 6.1.6
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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dbgate-api-premium",
|
|
3
3
|
"main": "src/index.js",
|
|
4
|
-
"version": "6.1.
|
|
4
|
+
"version": "6.1.6",
|
|
5
5
|
"homepage": "https://dbgate.org/",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"compare-versions": "^3.6.0",
|
|
30
30
|
"cors": "^2.8.5",
|
|
31
31
|
"cross-env": "^6.0.3",
|
|
32
|
-
"dbgate-datalib": "^6.1.
|
|
32
|
+
"dbgate-datalib": "^6.1.6",
|
|
33
33
|
"dbgate-query-splitter": "^4.11.3",
|
|
34
|
-
"dbgate-sqltree": "^6.1.
|
|
35
|
-
"dbgate-tools": "^6.1.
|
|
34
|
+
"dbgate-sqltree": "^6.1.6",
|
|
35
|
+
"dbgate-tools": "^6.1.6",
|
|
36
36
|
"debug": "^4.3.4",
|
|
37
37
|
"diff": "^5.0.0",
|
|
38
38
|
"diff2html": "^3.4.13",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@types/fs-extra": "^9.0.11",
|
|
83
83
|
"@types/lodash": "^4.14.149",
|
|
84
|
-
"dbgate-types": "^6.1.
|
|
84
|
+
"dbgate-types": "^6.1.6",
|
|
85
85
|
"env-cmd": "^10.1.0",
|
|
86
86
|
"jsdoc-to-markdown": "^9.0.5",
|
|
87
87
|
"node-loader": "^1.0.2",
|
|
@@ -3,14 +3,12 @@ const {
|
|
|
3
3
|
getPredefinedPermissions,
|
|
4
4
|
getLogger,
|
|
5
5
|
getConnectionLabel,
|
|
6
|
-
runQueryFmt,
|
|
7
6
|
} = require('dbgate-tools');
|
|
8
7
|
const {
|
|
9
8
|
storageSelectFmt,
|
|
10
9
|
storageReadUserRolePermissions,
|
|
11
10
|
storageReadUserPermissions,
|
|
12
11
|
storageReadRolePermissions,
|
|
13
|
-
storageSqlCommandFmt,
|
|
14
12
|
} = require('../controllers/storageDb');
|
|
15
13
|
const { getTokenSecret, getTokenLifetime } = require('./authCommon');
|
|
16
14
|
const { AuthProviderBase } = require('./authProvider');
|
|
@@ -145,13 +143,10 @@ class OauthProvider extends StorageProviderBase {
|
|
|
145
143
|
const loginRows = await storageSelectFmt('select * from ~users where ~login = %v', login);
|
|
146
144
|
const permissions = await loadPermissionsForUserId(loginRows[0]?.id ?? -1);
|
|
147
145
|
|
|
148
|
-
if (this.config.oauthOnlyDefinedLogins == 1
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
if (this.config.oauthSaveNotDefinedLogins == 1 && loginRows.length == 0) {
|
|
153
|
-
const email = payload[this.config.oauthEmailField || 'email'] ?? null;
|
|
154
|
-
await storageSqlCommandFmt('insert into ~users (~login, ~email) values (%v, %v)', login, email);
|
|
146
|
+
if (this.config.oauthOnlyDefinedLogins == 1) {
|
|
147
|
+
if (loginRows.length == 0) {
|
|
148
|
+
return { error: `Username ${login} not allowed to log in` };
|
|
149
|
+
}
|
|
155
150
|
}
|
|
156
151
|
|
|
157
152
|
let groups =
|
|
@@ -17,7 +17,7 @@ const { hasPermission } = require('../utility/hasPermission');
|
|
|
17
17
|
const { changeSetToSql, removeSchemaFromChangeSet } = require('dbgate-datalib');
|
|
18
18
|
const storageModel = require('../storageModel');
|
|
19
19
|
const { dumpSqlCommand } = require('dbgate-sqltree');
|
|
20
|
-
const { runCommandOnDriver, getLogger
|
|
20
|
+
const { runCommandOnDriver, getLogger } = require('dbgate-tools');
|
|
21
21
|
const socket = require('../utility/socket');
|
|
22
22
|
const { obtainRefreshedLicense } = require('../utility/authProxy');
|
|
23
23
|
const { datadir } = require('../utility/directories');
|
|
@@ -31,6 +31,11 @@ function mapConnection(connnection) {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
async function runQueryFmt(driver, conn, query, ...args) {
|
|
35
|
+
const dmp = driver.createDumper();
|
|
36
|
+
dmp.put(query, ...args);
|
|
37
|
+
await driver.query(conn, dmp.s);
|
|
38
|
+
}
|
|
34
39
|
|
|
35
40
|
let refreshLicenseStarted = false;
|
|
36
41
|
|
|
@@ -135,7 +140,7 @@ module.exports = {
|
|
|
135
140
|
displayName: 'Internal storage',
|
|
136
141
|
defaultDatabase: process.env.STORAGE_DATABASE,
|
|
137
142
|
singleDatabase: true,
|
|
138
|
-
...
|
|
143
|
+
...getDbConnectionParams(),
|
|
139
144
|
};
|
|
140
145
|
}
|
|
141
146
|
|
|
@@ -4,9 +4,8 @@ const dbgateApi = require('../shell');
|
|
|
4
4
|
const { getPredefinedPermissions, getLogger, extractErrorLogData } = require('dbgate-tools');
|
|
5
5
|
const _ = require('lodash');
|
|
6
6
|
const logger = getLogger('storageDb');
|
|
7
|
-
const { extractConnectionSslParams } = require('../utility/connectUtility');
|
|
8
7
|
|
|
9
|
-
|
|
8
|
+
function getDbConnectionParams() {
|
|
10
9
|
const server = process.env.STORAGE_SERVER;
|
|
11
10
|
const port = process.env.STORAGE_PORT;
|
|
12
11
|
const user = process.env.STORAGE_USER;
|
|
@@ -14,18 +13,6 @@ async function getDbConnectionParams() {
|
|
|
14
13
|
const database = process.env.STORAGE_DATABASE;
|
|
15
14
|
const engine = process.env.STORAGE_ENGINE;
|
|
16
15
|
const serviceName = process.env.STORAGE_SERVICE_NAME;
|
|
17
|
-
const socketPath = process.env.STORAGE_SOCKET_PATH;
|
|
18
|
-
const databaseUrl = process.env.STORAGE_DATABASE_URL;
|
|
19
|
-
const useDatabaseUrl = !!process.env.STORAGE_DATABASE_URL;
|
|
20
|
-
const authType = process.env.STORAGE_AUTH_TYPE;
|
|
21
|
-
|
|
22
|
-
const useSsl = process.env.STORAGE_USE_SSL;
|
|
23
|
-
const sslCaFile = process.env.STORAGE_SSL_CA_FILE;
|
|
24
|
-
const sslCertFile = process.env.STORAGE_SSL_CERT_FILE;
|
|
25
|
-
const sslCertFilePassword = process.env.STORAGE_SSL_CERT_FILE_PASSWORD;
|
|
26
|
-
const sslKeyFile = process.env.STORAGE_SSL_KEY_FILE;
|
|
27
|
-
const sslRejectUnauthorized = process.env.STORAGE_SSL_REJECT_UNAUTHORIZED;
|
|
28
|
-
const trustServerCertificate = process.env.STORAGE_SSL_TRUST_CERTIFICATE;
|
|
29
16
|
|
|
30
17
|
if (!server || !user || !password || !database || !engine) {
|
|
31
18
|
if (database) {
|
|
@@ -48,30 +35,7 @@ async function getDbConnectionParams() {
|
|
|
48
35
|
return null;
|
|
49
36
|
}
|
|
50
37
|
|
|
51
|
-
|
|
52
|
-
server,
|
|
53
|
-
port,
|
|
54
|
-
user,
|
|
55
|
-
password,
|
|
56
|
-
database,
|
|
57
|
-
engine,
|
|
58
|
-
serviceName,
|
|
59
|
-
socketPath,
|
|
60
|
-
databaseUrl,
|
|
61
|
-
useDatabaseUrl,
|
|
62
|
-
authType,
|
|
63
|
-
useSsl,
|
|
64
|
-
sslCaFile,
|
|
65
|
-
sslCertFile,
|
|
66
|
-
sslCertFilePassword,
|
|
67
|
-
sslKeyFile,
|
|
68
|
-
sslRejectUnauthorized,
|
|
69
|
-
trustServerCertificate,
|
|
70
|
-
};
|
|
71
|
-
return {
|
|
72
|
-
...res,
|
|
73
|
-
ssl: await extractConnectionSslParams(res),
|
|
74
|
-
};
|
|
38
|
+
return { server, port, user, password, database, engine, serviceName };
|
|
75
39
|
}
|
|
76
40
|
|
|
77
41
|
let storageConnection = null;
|
|
@@ -83,7 +47,7 @@ async function getStorageConnectionCore() {
|
|
|
83
47
|
return [storageConnection, storageDriver];
|
|
84
48
|
}
|
|
85
49
|
|
|
86
|
-
const dbConnectionParams =
|
|
50
|
+
const dbConnectionParams = getDbConnectionParams();
|
|
87
51
|
|
|
88
52
|
if (!dbConnectionParams) {
|
|
89
53
|
return [null, null];
|
|
@@ -161,10 +125,6 @@ async function storageSelectFmt(sql, ...params) {
|
|
|
161
125
|
return resp.rows;
|
|
162
126
|
}
|
|
163
127
|
|
|
164
|
-
async function storageSqlCommandFmt(sql, ...params) {
|
|
165
|
-
await storageSelectFmt(sql, ...params);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
128
|
async function storageReadUserRolePermissions(userId) {
|
|
169
129
|
const resp = await storageSelectFmt(
|
|
170
130
|
`
|
|
@@ -253,5 +213,4 @@ module.exports = {
|
|
|
253
213
|
storageReadConfig,
|
|
254
214
|
storageWriteConfig,
|
|
255
215
|
getStorageConnectionError,
|
|
256
|
-
storageSqlCommandFmt,
|
|
257
216
|
};
|
package/src/currentVersion.js
CHANGED
|
@@ -9,7 +9,6 @@ const { setAuthProxyLicense } = require('./authProxy');
|
|
|
9
9
|
const axios = require('axios');
|
|
10
10
|
const crypto = require('crypto');
|
|
11
11
|
const platformInfo = require('./platformInfo');
|
|
12
|
-
const processArgs = require('./processArgs');
|
|
13
12
|
|
|
14
13
|
const logger = getLogger('checkLicense');
|
|
15
14
|
|
|
@@ -108,13 +107,6 @@ async function getAwsMetadata() {
|
|
|
108
107
|
}
|
|
109
108
|
|
|
110
109
|
function checkLicenseKey(licenseKey) {
|
|
111
|
-
if (processArgs.runE2eTests) {
|
|
112
|
-
return {
|
|
113
|
-
status: 'ok',
|
|
114
|
-
type: 'premium',
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
|
|
118
110
|
try {
|
|
119
111
|
const decoded = jwt.verify(licenseKey, publicKey, {
|
|
120
112
|
algorithms: ['RS256'],
|
|
@@ -184,13 +176,6 @@ function getAwsToken() {
|
|
|
184
176
|
}
|
|
185
177
|
|
|
186
178
|
async function checkLicense() {
|
|
187
|
-
if (processArgs.runE2eTests) {
|
|
188
|
-
return {
|
|
189
|
-
status: 'ok',
|
|
190
|
-
type: 'premium',
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
|
|
194
179
|
if (process.env.DBGATE_LICENSE) {
|
|
195
180
|
return checkLicenseKey(process.env.DBGATE_LICENSE);
|
|
196
181
|
}
|