constructConnStringSyntax() — supabase Function Reference
Architecture documentation for the constructConnStringSyntax() function in DatabaseSettings.utils.ts from the supabase codebase.
Entity Profile
Relationship Graph
Source Code
apps/studio/components/interfaces/Connect/DatabaseSettings.utils.ts lines 145–388
export const constructConnStringSyntax = (
connString: string,
{
selectedTab,
usePoolerConnection,
ref,
cloudProvider,
region,
tld,
portNumber,
}: {
selectedTab: 'uri' | 'psql' | 'golang' | 'jdbc' | 'dotnet' | 'nodejs' | 'php' | 'python'
usePoolerConnection: boolean
ref: string
cloudProvider: string
region: string
tld: string
portNumber: string
}
) => {
const isMd5 = connString.includes('options=reference')
const poolerHostDetails = [
{ value: cloudProvider.toLocaleLowerCase(), tooltip: 'Cloud provider' },
{ value: '-0-', tooltip: undefined },
{ value: region, tooltip: "Project's region" },
{ value: `.pooler.supabase.${tld}`, tooltip: undefined },
]
const dbHostDetails = [
{ value: 'db.', tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
{ value: `.supabase.${tld}`, tooltip: undefined },
]
if (selectedTab === 'uri' || selectedTab === 'nodejs') {
if (isMd5) {
return [
{ value: 'postgresql://', tooltip: undefined },
{ value: '[user]', tooltip: DB_USER_DESC },
{ value: ':', tooltip: undefined },
{ value: '[password]', tooltip: DB_PASS_DESC },
{ value: '@', tooltip: undefined },
...(usePoolerConnection ? poolerHostDetails : dbHostDetails),
{ value: ':', tooltip: undefined },
{ value: portNumber, tooltip: PORT_NUMBER_DESC },
{ value: '/', tooltip: undefined },
{ value: '[db-name]', tooltip: DB_NAME_DESC },
...(usePoolerConnection
? [
{ value: `?options=reference%3D`, tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
]
: []),
]
} else {
return [
{ value: 'postgresql://', tooltip: undefined },
{ value: '[user]', tooltip: DB_USER_DESC },
...(usePoolerConnection
? [
{ value: '.', tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
]
: []),
{ value: ':', tooltip: undefined },
{ value: '[password]', tooltip: DB_PASS_DESC },
{ value: '@', tooltip: undefined },
...(usePoolerConnection ? poolerHostDetails : dbHostDetails),
{ value: ':', tooltip: undefined },
{ value: portNumber, tooltip: PORT_NUMBER_DESC },
{ value: '/', tooltip: undefined },
{ value: '[db-name]', tooltip: DB_NAME_DESC },
]
}
}
if (selectedTab === 'psql') {
if (isMd5) {
return [
{ value: 'psql "postgresql://', tooltip: undefined },
{ value: '[user]', tooltip: DB_USER_DESC },
{ value: ':', tooltip: undefined },
{ value: '[password]', tooltip: DB_PASS_DESC },
{ value: '@', tooltip: undefined },
...(usePoolerConnection ? poolerHostDetails : dbHostDetails),
{ value: ':', tooltip: undefined },
{ value: portNumber, tooltip: PORT_NUMBER_DESC },
{ value: '/', tooltip: undefined },
{ value: '[db-name]', tooltip: DB_NAME_DESC },
...(usePoolerConnection
? [
{ value: '?options=reference%3D', tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
]
: []),
]
} else {
return [
{ value: 'psql -h ', tooltip: undefined },
...(usePoolerConnection ? poolerHostDetails : dbHostDetails),
{ value: ' -p ', tooltip: undefined },
{ value: portNumber, tooltip: PORT_NUMBER_DESC },
{ value: ' -d ', tooltip: undefined },
{ value: '[db-name]', tooltip: DB_NAME_DESC },
{ value: ' -U ', tooltip: undefined },
{ value: '[user]', tooltip: DB_USER_DESC },
...(usePoolerConnection
? [
{ value: '.', tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
]
: []),
]
}
}
if (selectedTab === 'golang' || selectedTab === 'php' || selectedTab === 'python') {
if (isMd5) {
return [
{ value: 'user=', tooltip: undefined },
{ value: '[user]', tooltip: DB_USER_DESC },
{ value: ' password=', tooltip: undefined },
{ value: '[password]', tooltip: DB_PASS_DESC },
{ value: ' host=', tooltip: undefined },
...(usePoolerConnection ? poolerHostDetails : dbHostDetails),
{ value: ' port=', tooltip: undefined },
{ value: portNumber, tooltip: PORT_NUMBER_DESC },
{ value: ' dbname=', tooltip: undefined },
{ value: '[db-name]', tooltip: DB_NAME_DESC },
...(usePoolerConnection
? [
{ value: ' options=reference=', tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
]
: []),
]
} else {
return [
{ value: 'user=', tooltip: undefined },
{ value: '[user]', tooltip: DB_USER_DESC },
...(usePoolerConnection
? [
{ value: '.', tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
]
: []),
{ value: ' password=', tooltip: undefined },
{ value: '[password]', tooltip: DB_PASS_DESC },
{ value: ' host=', tooltip: undefined },
...(usePoolerConnection ? poolerHostDetails : dbHostDetails),
{ value: ' port=', tooltip: undefined },
{ value: portNumber, tooltip: PORT_NUMBER_DESC },
{ value: ' dbname=', tooltip: undefined },
{ value: '[db-name]', tooltip: DB_NAME_DESC },
]
}
}
if (selectedTab === 'jdbc') {
if (isMd5) {
return [
{ value: 'jdbc:postgresql://', tooltip: undefined },
...(usePoolerConnection ? poolerHostDetails : dbHostDetails),
{ value: ':', tooltip: undefined },
{ value: portNumber, tooltip: PORT_NUMBER_DESC },
{ value: '/', tooltip: undefined },
{ value: '[db-name]', tooltip: DB_NAME_DESC },
{ value: '?user=', tooltip: undefined },
{ value: '[user]', tooltip: DB_USER_DESC },
{ value: '&password=', tooltip: undefined },
{ value: '[password]', tooltip: DB_PASS_DESC },
...(usePoolerConnection
? [
{ value: '&options=reference%3D', tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
]
: []),
]
} else {
return [
{ value: 'jdbc:postgresql://', tooltip: undefined },
...(usePoolerConnection ? poolerHostDetails : dbHostDetails),
{ value: `:`, tooltip: undefined },
{ value: portNumber, tooltip: PORT_NUMBER_DESC },
{ value: '/', tooltip: undefined },
{ value: '[db-name]', tooltip: DB_NAME_DESC },
{ value: '?user=', tooltip: undefined },
{ value: '[user]', tooltip: DB_USER_DESC },
...(usePoolerConnection
? [
{ value: '.', tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
]
: []),
{ value: '&password=', tooltip: undefined },
{ value: '[password]', tooltip: DB_PASS_DESC },
]
}
}
if (selectedTab === 'dotnet') {
if (isMd5) {
return [
{ value: 'User Id=', tooltip: undefined },
{ value: '[user]', tooltip: DB_USER_DESC },
{ value: ';Password=', tooltip: undefined },
{ value: '[password]', tooltip: DB_PASS_DESC },
{ value: ';Server=', tooltip: undefined },
...(usePoolerConnection ? poolerHostDetails : dbHostDetails),
{ value: ';Port=', tooltip: undefined },
{ value: portNumber, tooltip: PORT_NUMBER_DESC },
{ value: ';Database=', tooltip: undefined },
{ value: '[db-name]', tooltip: DB_NAME_DESC },
...(usePoolerConnection
? [
{ value: ";Options='reference=", tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
{ value: "'", tooltip: undefined },
]
: []),
]
} else {
return [
{ value: 'User Id=', tooltip: undefined },
{ value: '[user]', tooltip: DB_USER_DESC },
...(usePoolerConnection
? [
{ value: '.', tooltip: undefined },
{ value: ref, tooltip: PROJECT_REF_DESC },
]
: []),
{ value: ';Password=', tooltip: undefined },
{ value: '[password]', tooltip: DB_PASS_DESC },
{ value: ';Server=', tooltip: undefined },
...(usePoolerConnection ? poolerHostDetails : dbHostDetails),
{ value: ';Port=', tooltip: undefined },
{ value: portNumber, tooltip: PORT_NUMBER_DESC },
{ value: ';Database=', tooltip: undefined },
{ value: '[db-name]', tooltip: DB_NAME_DESC },
]
}
}
return []
}
Domain
Subdomains
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free