dbgate-api-premium 6.7.2-alpha.1 → 6.7.3
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.7.
|
|
4
|
+
"version": "6.7.3",
|
|
5
5
|
"homepage": "https://dbgate.org/",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"compare-versions": "^3.6.0",
|
|
31
31
|
"cors": "^2.8.5",
|
|
32
32
|
"cross-env": "^6.0.3",
|
|
33
|
-
"dbgate-datalib": "^6.7.
|
|
33
|
+
"dbgate-datalib": "^6.7.3",
|
|
34
34
|
"dbgate-query-splitter": "^4.11.9",
|
|
35
|
-
"dbgate-sqltree": "^6.7.
|
|
36
|
-
"dbgate-tools": "^6.7.
|
|
35
|
+
"dbgate-sqltree": "^6.7.3",
|
|
36
|
+
"dbgate-tools": "^6.7.3",
|
|
37
37
|
"debug": "^4.3.4",
|
|
38
38
|
"diff": "^5.0.0",
|
|
39
39
|
"diff2html": "^3.4.13",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"devDependencies": {
|
|
87
87
|
"@types/fs-extra": "^9.0.11",
|
|
88
88
|
"@types/lodash": "^4.14.149",
|
|
89
|
-
"dbgate-types": "^6.7.
|
|
89
|
+
"dbgate-types": "^6.7.3",
|
|
90
90
|
"env-cmd": "^10.1.0",
|
|
91
91
|
"jsdoc-to-markdown": "^9.0.5",
|
|
92
92
|
"node-loader": "^1.0.2",
|
|
@@ -289,16 +289,11 @@ module.exports = {
|
|
|
289
289
|
const res = await lock.acquire('settings', async () => {
|
|
290
290
|
const currentValue = await this.loadSettings();
|
|
291
291
|
try {
|
|
292
|
-
let updated =
|
|
292
|
+
let updated = {
|
|
293
|
+
...currentValue,
|
|
294
|
+
...values,
|
|
295
|
+
};
|
|
293
296
|
if (process.env.STORAGE_DATABASE) {
|
|
294
|
-
updated = {
|
|
295
|
-
...currentValue,
|
|
296
|
-
..._.mapValues(values, v => {
|
|
297
|
-
if (v === true) return 'true';
|
|
298
|
-
if (v === false) return 'false';
|
|
299
|
-
return v;
|
|
300
|
-
}),
|
|
301
|
-
};
|
|
302
297
|
await storage.writeConfig({
|
|
303
298
|
group: 'settings',
|
|
304
299
|
config: updated,
|
|
@@ -252,12 +252,51 @@ async function loadSuperadminPermissions() {
|
|
|
252
252
|
return [...getPredefinedPermissions('superadmin'), ...rolePermissions];
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
+
function deserializeFromStorage(value, valueType) {
|
|
256
|
+
switch (valueType) {
|
|
257
|
+
case 'null': {
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
case 'json': {
|
|
261
|
+
try {
|
|
262
|
+
return JSON.parse(value);
|
|
263
|
+
} catch (err) {
|
|
264
|
+
return value;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
case 'number': {
|
|
268
|
+
return Number(value);
|
|
269
|
+
}
|
|
270
|
+
case 'boolean': {
|
|
271
|
+
return value == '1' || value == 'true';
|
|
272
|
+
}
|
|
273
|
+
default:
|
|
274
|
+
return value;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
function serializeToStorage(value) {
|
|
279
|
+
if (value === null || value === undefined) {
|
|
280
|
+
return [null, 'null'];
|
|
281
|
+
}
|
|
282
|
+
if (typeof value === 'object') {
|
|
283
|
+
return [JSON.stringify(value), 'json'];
|
|
284
|
+
}
|
|
285
|
+
if (typeof value === 'number') {
|
|
286
|
+
return [value.toString(), 'number'];
|
|
287
|
+
}
|
|
288
|
+
if (typeof value === 'boolean') {
|
|
289
|
+
return [value ? 'true' : 'false', 'boolean'];
|
|
290
|
+
}
|
|
291
|
+
return [value.toString(), 'string'];
|
|
292
|
+
}
|
|
293
|
+
|
|
255
294
|
async function storageReadConfig(group) {
|
|
256
295
|
const resp = await storageSelectFmt('select * from ~config where ~group = %v', group);
|
|
257
296
|
if (!resp) {
|
|
258
297
|
return null;
|
|
259
298
|
}
|
|
260
|
-
return _.fromPairs(resp.map(x => [x.key, x.value]));
|
|
299
|
+
return _.fromPairs(resp.map(x => [x.key, deserializeFromStorage(x.value, x.valueType)]));
|
|
261
300
|
}
|
|
262
301
|
|
|
263
302
|
async function storageWriteConfig(group, config) {
|
|
@@ -272,7 +311,14 @@ async function storageWriteConfig(group, config) {
|
|
|
272
311
|
|
|
273
312
|
for (const key in config) {
|
|
274
313
|
const dmp = driver.createDumper();
|
|
275
|
-
|
|
314
|
+
const [value, valueType] = serializeToStorage(config[key]);
|
|
315
|
+
dmp.put(
|
|
316
|
+
'insert into ~config (~group, ~key, ~value, ~valueType) values (%v, %v, %v, %v)',
|
|
317
|
+
group,
|
|
318
|
+
key,
|
|
319
|
+
value,
|
|
320
|
+
valueType
|
|
321
|
+
);
|
|
276
322
|
await driver.query(conn, dmp.s);
|
|
277
323
|
}
|
|
278
324
|
}
|
package/src/currentVersion.js
CHANGED
package/src/storageModel.js
CHANGED
|
@@ -360,6 +360,12 @@ module.exports = {
|
|
|
360
360
|
"columnName": "value",
|
|
361
361
|
"dataType": "varchar(1000)",
|
|
362
362
|
"notNull": false
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"pureName": "config",
|
|
366
|
+
"columnName": "valueType",
|
|
367
|
+
"dataType": "varchar(50)",
|
|
368
|
+
"notNull": false
|
|
363
369
|
}
|
|
364
370
|
],
|
|
365
371
|
"foreignKeys": [],
|
package/src/utility/auditlog.js
CHANGED
|
@@ -126,7 +126,7 @@ async function sendToAuditLog(
|
|
|
126
126
|
}
|
|
127
127
|
const config = require('../controllers/config');
|
|
128
128
|
const settings = await config.getCachedSettings();
|
|
129
|
-
if (settings?.['storage.useAuditLog']
|
|
129
|
+
if (!settings?.['storage.useAuditLog'] || settings?.['storage.useAuditLog'] == 'false') {
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
132
|
|