import { useParams, useTelemetryProps } from 'common' import { useRouter } from 'next/router' import { Input, Tabs } from 'ui' import Panel from 'components/ui/Panel' import ShimmeringLoader from 'components/ui/ShimmeringLoader' import { useProjectSettingsQuery } from 'data/config/project-settings-query' import { pluckObjectFields } from 'lib/helpers' import Telemetry from 'lib/telemetry' import ResetDbPassword from './ResetDbPassword' const DatabaseSettings = () => { const router = useRouter() const { ref: projectRef } = useParams() const telemetryProps = useTelemetryProps() const { data, isLoading, isError } = useProjectSettingsQuery({ projectRef }) if (isError) { return (

Error loading database settings

) } if (isLoading) { return (

Database Settings

Connection info } className="!m-0" > {Array.from({ length: 5 }).map((_, i) => (
))}
Connection string } className="!m-0" >
) } const { project } = data const DB_FIELDS = ['db_host', 'db_name', 'db_port', 'db_user', 'inserted_at'] const connectionInfo = pluckObjectFields(project, DB_FIELDS) const handleCopy = (labelValue?: string) => Telemetry.sendEvent( { category: 'settings', action: 'copy_connection_string', label: labelValue ? labelValue : '', }, telemetryProps, router ) const uriConnString = `postgresql://${connectionInfo.db_user}:[YOUR-PASSWORD]@` + `${connectionInfo.db_host}:${connectionInfo.db_port.toString()}` + `/${connectionInfo.db_name}` const golangConnString = `user=${connectionInfo.db_user} password=[YOUR-PASSWORD] ` + `host=${connectionInfo.db_host} port=${connectionInfo.db_port.toString()}` + ` dbname=${connectionInfo.db_name}` const psqlConnString = `psql -h ${connectionInfo.db_host} -p ` + `${connectionInfo.db_port.toString()} -d ${connectionInfo.db_name} ` + `-U ${connectionInfo.db_user}` return (

Database Settings

Connection info } className="!m-0" > { handleCopy('Host') }} />
Connection string } className="!m-0" > { handleCopy('PSQL') }} /> { handleCopy('URI') }} /> { handleCopy('Golang') }} /> { handleCopy('JDBC') }} /> { handleCopy('.NET') }} /> { handleCopy('Nodejs') }} /> { handleCopy('PHP') }} /> { handleCopy('Python') }} />
) } export default DatabaseSettings