diff --git a/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx b/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx
index ce1c7ba890cf1..a4468a3764769 100644
--- a/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx
+++ b/web/packages/teleterm/src/ui/Documents/DocumentsRenderer.tsx
@@ -17,6 +17,7 @@
import React, { useMemo } from 'react';
import styled from 'styled-components';
+import { Text } from 'design';
/* eslint-disable @typescript-eslint/ban-ts-comment*/
// @ts-ignore
import { DocumentAccessRequests } from 'e-teleterm/ui/DocumentAccessRequests/DocumentAccessRequests';
@@ -34,7 +35,7 @@ import DocumentGateway from 'teleterm/ui/DocumentGateway';
import { DocumentTerminal } from 'teleterm/ui/DocumentTerminal';
import Document from 'teleterm/ui/Document';
-import { RootClusterUri } from 'teleterm/ui/uri';
+import { RootClusterUri, isDatabaseUri } from 'teleterm/ui/uri';
import { WorkspaceContextProvider } from './workspaceContext';
import { KeyboardShortcutsPanel } from './KeyboardShortcutsPanel';
@@ -96,8 +97,21 @@ function MemoizedDocument(props: { doc: types.Document; visible: boolean }) {
switch (doc.kind) {
case 'doc.cluster':
return ;
- case 'doc.gateway':
- return ;
+ case 'doc.gateway': {
+ if (isDatabaseUri(doc.targetUri)) {
+ return ;
+ }
+ return (
+
+
+ Cannot create a gateway for the target "{doc.targetUri}".
+
+ Only database targets are supported.
+
+
+ );
+ }
+
case 'doc.gateway_cli_client':
return ;
case 'doc.terminal_shell':
@@ -109,7 +123,9 @@ function MemoizedDocument(props: { doc: types.Document; visible: boolean }) {
default:
return (
- Document kind "{doc.kind}" is not supported
+
+ Document kind "{doc.kind}" is not supported.
+
);
}
diff --git a/web/packages/teleterm/src/ui/TopBar/Connections/ConnectionsFilterableList/ConnectionItem.tsx b/web/packages/teleterm/src/ui/TopBar/Connections/ConnectionsFilterableList/ConnectionItem.tsx
index bc044820f6c5e..41f18a1357ddc 100644
--- a/web/packages/teleterm/src/ui/TopBar/Connections/ConnectionsFilterableList/ConnectionItem.tsx
+++ b/web/packages/teleterm/src/ui/TopBar/Connections/ConnectionsFilterableList/ConnectionItem.tsx
@@ -20,7 +20,7 @@ import { Trash, Unlink } from 'design/Icon';
import { ExtendedTrackedConnection } from 'teleterm/ui/services/connectionTracker';
import { ListItem } from 'teleterm/ui/components/ListItem';
-import { assertUnreachable } from 'teleterm/ui/utils';
+import { isDatabaseUri } from 'teleterm/ui/uri';
import { useKeyboardArrowsNavigation } from 'teleterm/ui/components/KeyboardArrowsNavigation';
@@ -105,7 +105,7 @@ export function ConnectionItem(props: ConnectionItemProps) {
border-radius: 4px;
`}
>
- {getKindName(props.item.kind)}
+ {getKindName(props.item)}