diff --git a/packages/api/src/controllers/connections.js b/packages/api/src/controllers/connections.js index 3d91477f9..f90cba49a 100644 --- a/packages/api/src/controllers/connections.js +++ b/packages/api/src/controllers/connections.js @@ -368,6 +368,11 @@ module.exports = { get_meta: true, async get({ conid }, req) { + if (conid == '__model') { + return { + _id: '__model', + }; + } testConnectionPermission(conid, req); return this.getCore({ conid, mask: true }); }, diff --git a/packages/api/src/controllers/databaseConnections.js b/packages/api/src/controllers/databaseConnections.js index 238204682..9c470b030 100644 --- a/packages/api/src/controllers/databaseConnections.js +++ b/packages/api/src/controllers/databaseConnections.js @@ -350,6 +350,11 @@ module.exports = { syncModel_meta: true, async syncModel({ conid, database, isFullRefresh }, req) { + if (conid == '__model') { + socket.emitChanged('database-structure-changed', { conid, database }); + return { status: 'ok' }; + } + testConnectionPermission(conid, req); const conn = await this.ensureOpened(conid, database); conn.subprocess.send({ msgtype: 'syncModel', isFullRefresh }); diff --git a/packages/api/src/controllers/serverConnections.js b/packages/api/src/controllers/serverConnections.js index f7dabfe62..e47e15bec 100644 --- a/packages/api/src/controllers/serverConnections.js +++ b/packages/api/src/controllers/serverConnections.js @@ -134,6 +134,7 @@ module.exports = { listDatabases_meta: true, async listDatabases({ conid }, req) { if (!conid) return []; + if (conid == '__model') return []; testConnectionPermission(conid, req); const opened = await this.ensureOpened(conid); return opened.databases; @@ -172,7 +173,7 @@ module.exports = { } }) ); - socket.setStreamIdFilter(strmid, { conid: conidArray }); + socket.setStreamIdFilter(strmid, { conid: [...(conidArray ?? []), '__model'] }); return { status: 'ok' }; },