diff --git a/package.json b/package.json index 9c14b04e4..be475f7a1 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,8 @@ "start:api:singledb": "yarn workspace dbgate-api start:singledb | pino-pretty", "start:api:auth": "yarn workspace dbgate-api start:auth | pino-pretty", "start:api:dblogin": "yarn workspace dbgate-api start:dblogin | pino-pretty", + "start:api:storage": "yarn workspace dbgate-api start:storage | pino-pretty", + "sync:pro": "cd sync && yarn start", "start:web": "yarn workspace dbgate-web dev", "start:sqltree": "yarn workspace dbgate-sqltree start", "start:tools": "yarn workspace dbgate-tools start", diff --git a/packages/api/package.json b/packages/api/package.json index 2ee30f825..172bb983b 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -66,6 +66,7 @@ "start:auth": "env-cmd -f env/auth/.env node src/index.js --listen-api", "start:dblogin": "env-cmd -f env/dblogin/.env node src/index.js --listen-api", "start:filedb": "env-cmd node src/index.js /home/jena/test/chinook/Chinook.db --listen-api", + "start:storage": "env-cmd -f env/storage/.env node src/index.js --listen-api", "start:singleconn": "env-cmd node src/index.js --server localhost --user root --port 3307 --engine mysql@dbgate-plugin-mysql --password test --listen-api", "ts": "tsc", "build": "webpack" diff --git a/packages/api/src/controllers/connections.js b/packages/api/src/controllers/connections.js index 41035023a..f0c82097e 100644 --- a/packages/api/src/controllers/connections.js +++ b/packages/api/src/controllers/connections.js @@ -16,7 +16,6 @@ const { safeJsonParse, getLogger } = require('dbgate-tools'); const platformInfo = require('../utility/platformInfo'); const { connectionHasPermission, testConnectionPermission } = require('../utility/hasPermission'); const pipeForkLogs = require('../utility/pipeForkLogs'); -const storage = require('./storage'); const logger = getLogger('connections'); @@ -200,6 +199,8 @@ module.exports = { list_meta: true, async list(_params, req) { + const storage = require('./storage'); + const storageConnectionst = await storage.connections(); if (storageConnectionst) { return storageConnectionst; diff --git a/packages/api/src/main.js b/packages/api/src/main.js index 1164ada6d..6bed33e2f 100644 --- a/packages/api/src/main.js +++ b/packages/api/src/main.js @@ -18,6 +18,7 @@ const sessions = require('./controllers/sessions'); const runners = require('./controllers/runners'); const jsldata = require('./controllers/jsldata'); const config = require('./controllers/config'); +const storage = require('./controllers/storage'); const archive = require('./controllers/archive'); const apps = require('./controllers/apps'); const auth = require('./controllers/auth'); @@ -162,6 +163,7 @@ function useAllControllers(app, electron) { useController(app, electron, '/runners', runners); useController(app, electron, '/jsldata', jsldata); useController(app, electron, '/config', config); + useController(app, electron, '/storage', storage); useController(app, electron, '/archive', archive); useController(app, electron, '/uploads', uploads); useController(app, electron, '/plugins', plugins); diff --git a/packages/tools/src/yamlModelConv.ts b/packages/tools/src/yamlModelConv.ts index bf0c57982..a8a986559 100644 --- a/packages/tools/src/yamlModelConv.ts +++ b/packages/tools/src/yamlModelConv.ts @@ -134,11 +134,15 @@ export function tableInfoFromYaml(table: TableInfoYaml, allTables: TableInfoYaml return res; } -export function databaseInfoFromYamlModel(files: DatabaseModelFile[]): DatabaseInfo { +export function databaseInfoFromYamlModel(filesOrDbInfo: DatabaseModelFile[] | DatabaseInfo): DatabaseInfo { + if (!Array.isArray(filesOrDbInfo)) { + return filesOrDbInfo; + } + const model = DatabaseAnalyser.createEmptyStructure(); const tablesYaml = []; - for (const file of files) { + for (const file of filesOrDbInfo) { if (file.name.endsWith('.table.yaml') || file.name.endsWith('.sql')) { if (file.name.endsWith('.table.yaml')) { tablesYaml.push(file.json);