Skip to content

Commit ac00f02

Browse files
authored
[v15] fix connection tester error for Aurora databases (#49374)
* fix connection tester error for Aurora databases Make database name a required field in the connection tester. * fix cockroachdb engine name typo * update required db name helper
1 parent 6f333c9 commit ac00f02

File tree

3 files changed

+39
-7
lines changed

3 files changed

+39
-7
lines changed

web/packages/teleport/src/Discover/Database/TestConnection/TestConnection.tsx

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ import {
4141
StyledBox,
4242
useConnectionDiagnostic,
4343
} from '../../Shared';
44-
import { DatabaseEngine } from '../../SelectResource';
44+
import { DatabaseEngine, getDatabaseProtocol } from '../../SelectResource';
4545

4646
export function TestConnection() {
4747
const { resourceSpec, agentMeta } = useDiscover();
@@ -183,8 +183,7 @@ export function TestConnection() {
183183
isDisabled={
184184
attempt.status === 'processing' || nameOpts.length === 0
185185
}
186-
// Database name is required for Postgres.
187-
isClearable={dbEngine !== DatabaseEngine.Postgres}
186+
isClearable={!isDbNameRequired(dbEngine)}
188187
/>
189188
<CustomInputFieldForAsterisks
190189
selectedOption={selectedDbName}
@@ -240,3 +239,17 @@ function getInputValue(input: string, inputKind: 'name' | 'user') {
240239
}
241240
return input;
242241
}
242+
243+
function isDbNameRequired(engine: DatabaseEngine) {
244+
const protocol = getDatabaseProtocol(engine);
245+
switch (protocol) {
246+
case 'mongodb':
247+
case 'oracle':
248+
case 'postgres':
249+
case 'spanner':
250+
case 'sqlserver':
251+
return true;
252+
default:
253+
return false;
254+
}
255+
}

web/packages/teleport/src/Discover/SelectResource/databases.tsx

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ export const DATABASES_UNGUIDED: ResourceSpec[] = [
257257
{
258258
dbMeta: {
259259
location: DatabaseLocation.SelfHosted,
260-
engine: DatabaseEngine.CoackroachDb,
260+
engine: DatabaseEngine.CockroachDb,
261261
},
262262
name: 'CockroachDB',
263263
keywords: selfhostedKeywords + 'cockroachdb',
@@ -404,13 +404,32 @@ export function getDatabaseProtocol(engine: DatabaseEngine): DbProtocol {
404404
switch (engine) {
405405
case DatabaseEngine.Postgres:
406406
case DatabaseEngine.AuroraPostgres:
407+
case DatabaseEngine.Redshift:
407408
return 'postgres';
408409
case DatabaseEngine.MySql:
409410
case DatabaseEngine.AuroraMysql:
410411
return 'mysql';
412+
case DatabaseEngine.MongoDb:
413+
return 'mongodb';
414+
case DatabaseEngine.Redis:
415+
return 'redis';
416+
case DatabaseEngine.CockroachDb:
417+
return 'cockroachdb';
418+
case DatabaseEngine.SqlServer:
419+
return 'sqlserver';
420+
case DatabaseEngine.Snowflake:
421+
return 'snowflake';
422+
case DatabaseEngine.Cassandra:
423+
return 'cassandra';
424+
case DatabaseEngine.ElasticSearch:
425+
return 'elasticsearch';
426+
case DatabaseEngine.DynamoDb:
427+
return 'dynamodb';
428+
case DatabaseEngine.Doc:
429+
return '' as any;
430+
default:
431+
engine satisfies never;
411432
}
412-
413-
return '' as any;
414433
}
415434

416435
export function getDefaultDatabasePort(engine: DatabaseEngine): string {

web/packages/teleport/src/Discover/SelectResource/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export enum DatabaseEngine {
5050
AuroraMysql,
5151
MongoDb,
5252
Redis,
53-
CoackroachDb,
53+
CockroachDb,
5454
SqlServer,
5555
Snowflake,
5656
Cassandra,

0 commit comments

Comments
 (0)