From 9a8aa280d4496d10ae140525e8368765fab0fd77 Mon Sep 17 00:00:00 2001 From: Oskar Damkjaer Date: Fri, 5 Apr 2024 15:24:59 +0200 Subject: [PATCH] filter out composite aliases --- .../modules/DBMSInfo/DatabaseSelector.tsx | 21 ++++++++++++++----- src/shared/modules/dbMeta/dbMetaDuck.ts | 17 ++++++++------- 2 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/browser/modules/DBMSInfo/DatabaseSelector.tsx b/src/browser/modules/DBMSInfo/DatabaseSelector.tsx index 9939c4d1a65..93459685337 100644 --- a/src/browser/modules/DBMSInfo/DatabaseSelector.tsx +++ b/src/browser/modules/DBMSInfo/DatabaseSelector.tsx @@ -66,11 +66,22 @@ export const DatabaseSelector = ({ const aliasList = uniqueDatabases.flatMap(db => db.aliases - ? db.aliases.map(alias => ({ - databaseName: db.name, - name: alias, - status: db.status - })) + ? db.aliases + .map(alias => ({ + databaseName: db.name, + name: alias, + status: db.status + })) + .filter( + // If the alias points to a composite database and the alias is listed as + // one of the constituents, we don't want to show it as it's not directly queryable + alias => + !uniqueDatabases.some( + db => + db.type === 'composite' && + db.constituents?.includes(alias.name) + ) + ) : [] ) diff --git a/src/shared/modules/dbMeta/dbMetaDuck.ts b/src/shared/modules/dbMeta/dbMetaDuck.ts index 395ee158db5..04a2afac638 100644 --- a/src/shared/modules/dbMeta/dbMetaDuck.ts +++ b/src/shared/modules/dbMeta/dbMetaDuck.ts @@ -17,19 +17,19 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +import { uniq } from 'lodash-es' +import { QueryResult } from 'neo4j-driver' +import { SemVer, coerce, gte } from 'semver' +import { isConfigValFalsy } from 'services/bolt/boltHelpers' +import { GlobalState } from 'shared/globalState' +import { APP_START } from 'shared/modules/app/appDuck' +import { FIRST_MULTI_DB_SUPPORT } from '../features/versionedFeatures' import { + extractServerInfo, extractTrialStatus, extractTrialStatusOld, versionHasEditorHistorySetting } from './utils' -import { isConfigValFalsy } from 'services/bolt/boltHelpers' -import { GlobalState } from 'shared/globalState' -import { APP_START } from 'shared/modules/app/appDuck' -import { extractServerInfo } from './utils' -import { coerce, SemVer, gte } from 'semver' -import { QueryResult } from 'neo4j-driver' -import { uniq } from 'lodash-es' -import { FIRST_MULTI_DB_SUPPORT } from '../features/versionedFeatures' export const UPDATE_META = 'meta/UPDATE_META' export const PARSE_META = 'meta/PARSE_META' @@ -226,6 +226,7 @@ export type Database = { home?: boolean // introduced in neo4j 4.3 aliases?: string[] // introduced in neo4j 4.4 type?: 'system' | 'composite' | 'standard' // introduced in neo4j 5 + constituents?: string[] // introduced in neo4j 5 status: string }