diff --git a/webapp/packages/core-app/public/icons/preload/icons.svg b/webapp/packages/core-app/public/icons/preload/icons.svg
index 23efb21e38f..514a1c05272 100644
--- a/webapp/packages/core-app/public/icons/preload/icons.svg
+++ b/webapp/packages/core-app/public/icons/preload/icons.svg
@@ -581,4 +581,13 @@
+
+
+
diff --git a/webapp/packages/plugin-connection-administration/package.json b/webapp/packages/plugin-connection-administration/package.json
new file mode 100644
index 00000000000..eca24223d47
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/package.json
@@ -0,0 +1,44 @@
+{
+ "name": "@cloudbeaver/plugin-connection-administration",
+ "type": "module",
+ "sideEffects": [
+ "./lib/module.js",
+ "./lib/index.js",
+ "src/**/*.css",
+ "public/**/*"
+ ],
+ "version": "0.1.0",
+ "description": "",
+ "license": "Apache-2.0",
+ "exports": {
+ ".": "./lib/index.js",
+ "./module": "./lib/module.js"
+ },
+ "scripts": {
+ "build": "tsc -b",
+ "clean": "rimraf --glob lib",
+ "lint": "eslint ./src/ --ext .ts,.tsx",
+ "test": "dbeaver-test",
+ "validate-dependencies": "core-cli-validate-dependencies"
+ },
+ "dependencies": {
+ "@cloudbeaver/core-administration": "workspace:*",
+ "@cloudbeaver/core-blocks": "workspace:*",
+ "@cloudbeaver/core-di": "workspace:*",
+ "@cloudbeaver/core-localization": "workspace:*",
+ "@cloudbeaver/core-ui": "workspace:*",
+ "mobx-react-lite": "^4",
+ "react": "^19",
+ "react-dom": "^19",
+ "tslib": "^2"
+ },
+ "devDependencies": {
+ "@cloudbeaver/core-cli": "workspace:*",
+ "@cloudbeaver/tsconfig": "workspace:*",
+ "@dbeaver/cli": "workspace:*",
+ "@types/react": "^19",
+ "rimraf": "^6",
+ "typescript": "^5",
+ "typescript-plugin-css-modules": "^5"
+ }
+}
diff --git a/webapp/packages/plugin-connection-administration/public/icons/plugin_connections.svg b/webapp/packages/plugin-connection-administration/public/icons/plugin_connections.svg
new file mode 100644
index 00000000000..f7607fa8b8b
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/public/icons/plugin_connections.svg
@@ -0,0 +1,16 @@
+
diff --git a/webapp/packages/plugin-connection-administration/public/icons/plugin_connections_m.svg b/webapp/packages/plugin-connection-administration/public/icons/plugin_connections_m.svg
new file mode 100644
index 00000000000..f03beeceaaf
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/public/icons/plugin_connections_m.svg
@@ -0,0 +1,16 @@
+
diff --git a/webapp/packages/plugin-connection-administration/public/icons/plugin_connections_sm.svg b/webapp/packages/plugin-connection-administration/public/icons/plugin_connections_sm.svg
new file mode 100644
index 00000000000..a09f46045e2
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/public/icons/plugin_connections_sm.svg
@@ -0,0 +1,16 @@
+
diff --git a/webapp/packages/plugin-connection-administration/src/ADMINISTRATION_CONNECTIONS_ITEM.ts b/webapp/packages/plugin-connection-administration/src/ADMINISTRATION_CONNECTIONS_ITEM.ts
new file mode 100644
index 00000000000..d5e4186cfa7
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/ADMINISTRATION_CONNECTIONS_ITEM.ts
@@ -0,0 +1,9 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+
+export const ADMINISTRATION_CONNECTIONS_ITEM = 'connections';
diff --git a/webapp/packages/plugin-connection-administration/src/ConnectionsAdministration.tsx b/webapp/packages/plugin-connection-administration/src/ConnectionsAdministration.tsx
new file mode 100644
index 00000000000..65aaabe1aba
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/ConnectionsAdministration.tsx
@@ -0,0 +1,75 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+
+import { observer } from 'mobx-react-lite';
+
+import type { AdministrationItemContentComponent, AdministrationItemContentProps } from '@cloudbeaver/core-administration';
+import { s, SContext, type StyleRegistry, ToolsPanel, useS, useTranslate } from '@cloudbeaver/core-blocks';
+import { useService } from '@cloudbeaver/core-di';
+import { type ITabData, TabList, TabPanelList, TabPanelStyles, TabsState, TabStyles, TabTitleStyles } from '@cloudbeaver/core-ui';
+
+import style from './shared/ConnectionsAdministration.module.css';
+import tabStyle from './shared/ConnectionsAdministrationTab.module.css';
+import tabPanelStyle from './shared/ConnectionsAdministrationTabPanel.module.css';
+import TabTitleModuleStyles from './shared/ConnectionsAdministrationTabTitle.module.css';
+import { ConnectionsAdministrationNavService } from './ConnectionsAdministrationNavService.js';
+import { ConnectionsAdministrationTabService } from './ConnectionsAdministrationTabService.js';
+
+const tabPanelRegistry: StyleRegistry = [[TabPanelStyles, { mode: 'append', styles: [tabPanelStyle] }]];
+
+const mainTabsRegistry: StyleRegistry = [
+ [TabStyles, { mode: 'append', styles: [tabStyle] }],
+ [TabTitleStyles, { mode: 'append', styles: [TabTitleModuleStyles] }],
+];
+
+export const ConnectionsAdministration: AdministrationItemContentComponent = observer(function ConnectionsAdministration({
+ item,
+ configurationWizard,
+ sub,
+ param,
+}) {
+ const translate = useTranslate();
+ const connectionsAdministrationNavService = useService(ConnectionsAdministrationNavService);
+ const connectionsAdministrationTabService = useService(ConnectionsAdministrationTabService);
+ const styles = useS(style, tabStyle);
+
+ function openSub({ tabId }: ITabData) {
+ if (sub?.name === tabId) {
+ return;
+ }
+
+ connectionsAdministrationNavService.navToSub(tabId);
+ }
+
+ return (
+
+
+
+
+
+
+
+
+
+
+ );
+});
diff --git a/webapp/packages/plugin-connection-administration/src/ConnectionsAdministrationNavService.ts b/webapp/packages/plugin-connection-administration/src/ConnectionsAdministrationNavService.ts
new file mode 100644
index 00000000000..c09152593a4
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/ConnectionsAdministrationNavService.ts
@@ -0,0 +1,25 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+
+import { AdministrationScreenService } from '@cloudbeaver/core-administration';
+import { injectable } from '@cloudbeaver/core-di';
+
+import { ADMINISTRATION_CONNECTIONS_ITEM } from './ADMINISTRATION_CONNECTIONS_ITEM.js';
+
+@injectable(() => [AdministrationScreenService])
+export class ConnectionsAdministrationNavService {
+ constructor(private readonly administrationScreenService: AdministrationScreenService) {}
+
+ navToRoot(): void {
+ this.administrationScreenService.navigateToItem(ADMINISTRATION_CONNECTIONS_ITEM);
+ }
+
+ navToSub(sub: string, param?: string): void {
+ this.administrationScreenService.navigateToItemSub(ADMINISTRATION_CONNECTIONS_ITEM, sub, param);
+ }
+}
diff --git a/webapp/packages/plugin-connection-administration/src/ConnectionsAdministrationServiceBootstrap.ts b/webapp/packages/plugin-connection-administration/src/ConnectionsAdministrationServiceBootstrap.ts
new file mode 100644
index 00000000000..f03f2e7d04e
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/ConnectionsAdministrationServiceBootstrap.ts
@@ -0,0 +1,21 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+
+import { Bootstrap, injectable } from '@cloudbeaver/core-di';
+import { ConnectionsAdministrationTabService } from './ConnectionsAdministrationTabService.js';
+
+@injectable(() => [ConnectionsAdministrationTabService])
+export class ConnectionsAdministrationServiceBootstrap extends Bootstrap {
+ constructor(private readonly connectionsAdministrationTabService: ConnectionsAdministrationTabService) {
+ super();
+ }
+
+ override register(): void | Promise {
+ this.connectionsAdministrationTabService.createRootTab();
+ }
+}
diff --git a/webapp/packages/plugin-connection-administration/src/ConnectionsAdministrationTabService.ts b/webapp/packages/plugin-connection-administration/src/ConnectionsAdministrationTabService.ts
new file mode 100644
index 00000000000..29a002312b0
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/ConnectionsAdministrationTabService.ts
@@ -0,0 +1,62 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+
+import {
+ AdministrationItemService,
+ type AdministrationItemSubCanActivateEvent,
+ type AdministrationItemSubEvent,
+ type AdministrationItemContentProps,
+ type IAdministrationItem,
+} from '@cloudbeaver/core-administration';
+import { importLazyComponent } from '@cloudbeaver/core-blocks';
+import { injectable } from '@cloudbeaver/core-di';
+import { TabsContainer, type ITabInfoOptions } from '@cloudbeaver/core-ui';
+
+import { ADMINISTRATION_CONNECTIONS_ITEM } from './ADMINISTRATION_CONNECTIONS_ITEM.js';
+
+const ConnectionsAdministration = importLazyComponent(() => import('./ConnectionsAdministration.js').then(m => m.ConnectionsAdministration));
+
+const ConnectionsDrawerItem = importLazyComponent(() => import('./ConnectionsDrawerItem.js').then(m => m.ConnectionsDrawerItem));
+
+export interface IConnectionsTabOptions extends ITabInfoOptions {
+ onActivate?: AdministrationItemSubEvent;
+ onDeActivate?: AdministrationItemSubEvent;
+ canActivate?: AdministrationItemSubCanActivateEvent;
+ canDeActivate?: AdministrationItemSubCanActivateEvent;
+}
+
+@injectable(() => [AdministrationItemService])
+export class ConnectionsAdministrationTabService {
+ readonly tabsContainer: TabsContainer;
+
+ private item!: IAdministrationItem;
+
+ constructor(private readonly administrationItemService: AdministrationItemService) {
+ this.tabsContainer = new TabsContainer('Connections administration tabs');
+ }
+
+ addSubTab({ onActivate, onDeActivate, canActivate, canDeActivate, ...tabInfo }: IConnectionsTabOptions): void {
+ this.tabsContainer.add(tabInfo);
+
+ if (!this.item.sub.some(sub => sub.name === tabInfo.key)) {
+ this.item.sub.push({ name: tabInfo.key, onActivate, onDeActivate, canActivate, canDeActivate });
+ }
+
+ this.item.defaultSub ??= tabInfo.key;
+ }
+
+ createRootTab(): void {
+ this.item = this.administrationItemService.create({
+ name: ADMINISTRATION_CONNECTIONS_ITEM,
+ order: 7,
+ isHidden: () => this.item.sub.length === 0,
+ getContentComponent: () => ConnectionsAdministration,
+ getDrawerComponent: () => ConnectionsDrawerItem,
+ });
+ }
+}
diff --git a/webapp/packages/plugin-connection-administration/src/ConnectionsDrawerItem.tsx b/webapp/packages/plugin-connection-administration/src/ConnectionsDrawerItem.tsx
new file mode 100644
index 00000000000..a70c9b1108d
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/ConnectionsDrawerItem.tsx
@@ -0,0 +1,22 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+
+import type { AdministrationItemDrawerProps } from '@cloudbeaver/core-administration';
+import { Translate } from '@cloudbeaver/core-blocks';
+import { Tab, TabIcon, TabTitle } from '@cloudbeaver/core-ui';
+
+export const ConnectionsDrawerItem: React.FC = function ConnectionsDrawerItem({ item, onSelect, disabled }) {
+ return (
+ onSelect(item.name)}>
+
+
+
+
+
+ );
+};
diff --git a/webapp/packages/plugin-connection-administration/src/LocaleService.ts b/webapp/packages/plugin-connection-administration/src/LocaleService.ts
new file mode 100644
index 00000000000..fae7357b770
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/LocaleService.ts
@@ -0,0 +1,29 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+import { Bootstrap, injectable } from '@cloudbeaver/core-di';
+import { LocalizationService } from '@cloudbeaver/core-localization';
+
+@injectable(() => [LocalizationService])
+export class LocaleService extends Bootstrap {
+ constructor(private readonly localizationService: LocalizationService) {
+ super();
+ }
+
+ override register(): void {
+ this.localizationService.addProvider(this.provider.bind(this));
+ }
+
+ private async provider(locale: string) {
+ switch (locale) {
+ case 'ru':
+ return (await import('./locales/ru.js')).default;
+ default:
+ return (await import('./locales/en.js')).default;
+ }
+ }
+}
diff --git a/webapp/packages/plugin-connection-administration/src/index.ts b/webapp/packages/plugin-connection-administration/src/index.ts
new file mode 100644
index 00000000000..1ac8a05198d
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/index.ts
@@ -0,0 +1,13 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+
+import './module.js';
+
+export * from './ADMINISTRATION_CONNECTIONS_ITEM.js';
+export * from './ConnectionsAdministrationNavService.js';
+export * from './ConnectionsAdministrationTabService.js';
diff --git a/webapp/packages/plugin-connection-administration/src/locales/en.ts b/webapp/packages/plugin-connection-administration/src/locales/en.ts
new file mode 100644
index 00000000000..f9ec4ecc7ea
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/locales/en.ts
@@ -0,0 +1 @@
+export default [['plugin_connection_administration_label', 'Connections']];
diff --git a/webapp/packages/plugin-connection-administration/src/locales/ru.ts b/webapp/packages/plugin-connection-administration/src/locales/ru.ts
new file mode 100644
index 00000000000..93fb568760b
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/locales/ru.ts
@@ -0,0 +1 @@
+export default [['plugin_connection_administration_label', 'Соединения']];
diff --git a/webapp/packages/plugin-connection-administration/src/module.ts b/webapp/packages/plugin-connection-administration/src/module.ts
new file mode 100644
index 00000000000..27eb914a90c
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/module.ts
@@ -0,0 +1,25 @@
+/*
+ * CloudBeaver - Cloud Database Manager
+ * Copyright (C) 2020-2026 DBeaver Corp and others
+ *
+ * Licensed under the Apache License, Version 2.0.
+ * you may not use this file except in compliance with the License.
+ */
+import { Bootstrap, ModuleRegistry } from '@cloudbeaver/core-di';
+
+import { ConnectionsAdministrationTabService } from './ConnectionsAdministrationTabService.js';
+import { ConnectionsAdministrationNavService } from './ConnectionsAdministrationNavService.js';
+import { LocaleService } from './LocaleService.js';
+import { ConnectionsAdministrationServiceBootstrap } from './ConnectionsAdministrationServiceBootstrap.js';
+
+export default ModuleRegistry.add({
+ name: '@cloudbeaver/plugin-connection-administration',
+
+ configure: serviceCollection => {
+ serviceCollection
+ .addSingleton(Bootstrap, LocaleService)
+ .addSingleton(Bootstrap, ConnectionsAdministrationServiceBootstrap)
+ .addSingleton(ConnectionsAdministrationTabService)
+ .addSingleton(ConnectionsAdministrationNavService);
+ },
+});
diff --git a/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministration.module.css b/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministration.module.css
new file mode 100644
index 00000000000..eca294599e3
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministration.module.css
@@ -0,0 +1,6 @@
+.tabList {
+ position: relative;
+ flex-shrink: 0;
+ align-items: center;
+ padding: 0 24px;
+}
diff --git a/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministrationTab.module.css b/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministrationTab.module.css
new file mode 100644
index 00000000000..b75fcefafac
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministrationTab.module.css
@@ -0,0 +1,16 @@
+.administrationTabs {
+ & .tab {
+ height: 100%;
+ font-size: 14px;
+ font-weight: 700;
+ padding: 0 4px;
+ }
+
+ & .tabInner {
+ height: 100%;
+ }
+
+ & .tabOuter {
+ height: 100%;
+ }
+}
diff --git a/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministrationTabPanel.module.css b/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministrationTabPanel.module.css
new file mode 100644
index 00000000000..fc8fc508d05
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministrationTabPanel.module.css
@@ -0,0 +1,3 @@
+.tabPanel {
+ overflow: auto;
+}
diff --git a/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministrationTabTitle.module.css b/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministrationTabTitle.module.css
new file mode 100644
index 00000000000..fe72df1e427
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/src/shared/ConnectionsAdministrationTabTitle.module.css
@@ -0,0 +1,3 @@
+.tabTitle {
+ font-weight: 700;
+}
diff --git a/webapp/packages/plugin-connection-administration/tsconfig.json b/webapp/packages/plugin-connection-administration/tsconfig.json
new file mode 100644
index 00000000000..26d1429ff61
--- /dev/null
+++ b/webapp/packages/plugin-connection-administration/tsconfig.json
@@ -0,0 +1,45 @@
+{
+ "extends": "@cloudbeaver/tsconfig/tsconfig.json",
+ "compilerOptions": {
+ "rootDir": "src",
+ "outDir": "lib",
+ "tsBuildInfoFile": "lib/tsconfig.tsbuildinfo",
+ "composite": true
+ },
+ "references": [
+ {
+ "path": "../../common-typescript/@dbeaver/cli"
+ },
+ {
+ "path": "../core-administration"
+ },
+ {
+ "path": "../core-blocks"
+ },
+ {
+ "path": "../core-cli"
+ },
+ {
+ "path": "../core-di"
+ },
+ {
+ "path": "../core-di/tsconfig.json"
+ },
+ {
+ "path": "../core-localization"
+ },
+ {
+ "path": "../core-ui"
+ }
+ ],
+ "include": [
+ "__custom_mocks__/**/*",
+ "src/**/*",
+ "src/**/*.json",
+ "src/**/*.css"
+ ],
+ "exclude": [
+ "**/node_modules",
+ "lib/**/*"
+ ]
+}
diff --git a/webapp/packages/plugin-network-handlers/src/SSH/SSHForm.tsx b/webapp/packages/plugin-network-handlers/src/SSH/SSHForm.tsx
index 08a9b16929e..f6f7a0c2ef8 100644
--- a/webapp/packages/plugin-network-handlers/src/SSH/SSHForm.tsx
+++ b/webapp/packages/plugin-network-handlers/src/SSH/SSHForm.tsx
@@ -43,7 +43,8 @@ export interface ISSHFormProps {
disabled?: boolean;
readonly?: boolean;
sharedCredentials?: boolean;
- projectId: string;
+ /** Omit for handlers not bound to any particular project, e.g. global network profiles */
+ projectId?: string;
connectionId?: string;
}
@@ -86,7 +87,7 @@ export const SSHForm = observer(function SSHForm({
const connectTimeoutLabel = translate('plugin_network_handlers_ssh_tunnel_advanced_settings_connect_timeout');
const { credentialsSavingEnabled } = useAdministrationSettings();
const projectInfoResource = useService(ProjectInfoResource);
- const isSharedProject = projectInfoResource.isProjectShared(projectId);
+ const isSharedProject = projectInfoResource.isProjectShared(projectId ?? null);
const showSaveCredentials = credentialsSavingEnabled && !sharedCredentials;
const handleAuthTypeChange = useCallback(() => {
diff --git a/webapp/packages/plugin-set-common/package.json b/webapp/packages/plugin-set-common/package.json
index 90b8f90e6e6..5654e37cb14 100644
--- a/webapp/packages/plugin-set-common/package.json
+++ b/webapp/packages/plugin-set-common/package.json
@@ -63,6 +63,7 @@
"@cloudbeaver/plugin-authentication-administration": "workspace:*",
"@cloudbeaver/plugin-browser": "workspace:*",
"@cloudbeaver/plugin-codemirror6": "workspace:*",
+ "@cloudbeaver/plugin-connection-administration": "workspace:*",
"@cloudbeaver/plugin-connection-custom": "workspace:*",
"@cloudbeaver/plugin-connection-network-handlers": "workspace:*",
"@cloudbeaver/plugin-connection-preferences": "workspace:*",
diff --git a/webapp/packages/plugin-set-common/src/index.ts b/webapp/packages/plugin-set-common/src/index.ts
index 29b8092569e..7ab5529fa54 100644
--- a/webapp/packages/plugin-set-common/src/index.ts
+++ b/webapp/packages/plugin-set-common/src/index.ts
@@ -49,6 +49,7 @@ import pluginAppLogoAdministration from '@cloudbeaver/plugin-app-logo-administra
import pluginAuthentication from '@cloudbeaver/plugin-authentication/module';
import pluginAuthenticationAdministration from '@cloudbeaver/plugin-authentication-administration/module';
import pluginBrowser from '@cloudbeaver/plugin-browser/module';
+import pluginConnectionAdministration from '@cloudbeaver/plugin-connection-administration/module';
import pluginConnectionCustom from '@cloudbeaver/plugin-connection-custom/module';
import pluginConnectionSearch from '@cloudbeaver/plugin-connection-search/module';
import pluginConnections from '@cloudbeaver/plugin-connections/module';
@@ -166,6 +167,7 @@ export const commonSet = [
pluginAuthenticationAdministration,
pluginTheme,
pluginLocalization,
+ pluginConnectionAdministration,
pluginConnectionCustom,
pluginConnectionSearch,
pluginDataExport,
diff --git a/webapp/packages/plugin-set-common/tsconfig.json b/webapp/packages/plugin-set-common/tsconfig.json
index 8dc109d16dc..dcdb3ea3549 100644
--- a/webapp/packages/plugin-set-common/tsconfig.json
+++ b/webapp/packages/plugin-set-common/tsconfig.json
@@ -136,6 +136,9 @@
{
"path": "../plugin-codemirror6"
},
+ {
+ "path": "../plugin-connection-administration"
+ },
{
"path": "../plugin-connection-custom"
},
diff --git a/webapp/yarn.lock b/webapp/yarn.lock
index 616f190dd12..4265eebbf60 100644
--- a/webapp/yarn.lock
+++ b/webapp/yarn.lock
@@ -2657,6 +2657,29 @@ __metadata:
languageName: unknown
linkType: soft
+"@cloudbeaver/plugin-connection-administration@workspace:*, @cloudbeaver/plugin-connection-administration@workspace:packages/plugin-connection-administration":
+ version: 0.0.0-use.local
+ resolution: "@cloudbeaver/plugin-connection-administration@workspace:packages/plugin-connection-administration"
+ dependencies:
+ "@cloudbeaver/core-administration": "workspace:*"
+ "@cloudbeaver/core-blocks": "workspace:*"
+ "@cloudbeaver/core-cli": "workspace:*"
+ "@cloudbeaver/core-di": "workspace:*"
+ "@cloudbeaver/core-localization": "workspace:*"
+ "@cloudbeaver/core-ui": "workspace:*"
+ "@cloudbeaver/tsconfig": "workspace:*"
+ "@dbeaver/cli": "workspace:*"
+ "@types/react": "npm:^19"
+ mobx-react-lite: "npm:^4"
+ react: "npm:^19"
+ react-dom: "npm:^19"
+ rimraf: "npm:^6"
+ tslib: "npm:^2"
+ typescript: "npm:^5"
+ typescript-plugin-css-modules: "npm:^5"
+ languageName: unknown
+ linkType: soft
+
"@cloudbeaver/plugin-connection-custom@workspace:*, @cloudbeaver/plugin-connection-custom@workspace:packages/plugin-connection-custom":
version: 0.0.0-use.local
resolution: "@cloudbeaver/plugin-connection-custom@workspace:packages/plugin-connection-custom"
@@ -4113,6 +4136,7 @@ __metadata:
"@cloudbeaver/plugin-authentication-administration": "workspace:*"
"@cloudbeaver/plugin-browser": "workspace:*"
"@cloudbeaver/plugin-codemirror6": "workspace:*"
+ "@cloudbeaver/plugin-connection-administration": "workspace:*"
"@cloudbeaver/plugin-connection-custom": "workspace:*"
"@cloudbeaver/plugin-connection-network-handlers": "workspace:*"
"@cloudbeaver/plugin-connection-preferences": "workspace:*"