Files
supabase/apps/studio/data/config/postgres-config-query.ts
Joshen Lim 0044bb8e4f Add log configuration in database settings (#47212)
## Context

Adds a log configuration section under database settings, which exposes
2 toggles:
- Log connections
- Log disconnections

<img width="757" height="336" alt="image"
src="https://github.com/user-attachments/assets/e2615baf-f01b-43e2-b2a5-b106aacc59d9"
/>

UI changes are flagged for internal on prod

## To test
- [ ] Can toggle + save either options
- [ ] Configuration should load correctly with a refresh
- [ ] Should only be for hosted

Related docs PR: https://github.com/supabase/supabase/pull/47199

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added connection logging configuration for database projects, allowing
users to toggle logging of database connections and disconnections.
* The new settings UI is available on supported platforms and only when
the feature flag is enabled.
* Included backend-backed retrieval and updates for the PostgreSQL
configuration, with save/cancel behavior, form defaults, and
permission-aware controls.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-23 19:50:43 +08:00

39 lines
1.2 KiB
TypeScript

import { queryOptions } from '@tanstack/react-query'
import { configKeys } from './keys'
import { get, handleError } from '@/data/fetchers'
import type { ResponseError } from '@/types'
export type PostgresConfigurationVariables = {
projectRef?: string
}
export async function getPostgresConfiguration(
{ projectRef }: PostgresConfigurationVariables,
signal?: AbortSignal
) {
if (!projectRef) throw new Error('Project ref is required')
const { data, error } = await get('/v1/projects/{ref}/config/database/postgres', {
params: { path: { ref: projectRef } },
signal,
})
if (error) handleError(error)
return data
}
export type PostgresConfigurationData = Awaited<ReturnType<typeof getPostgresConfiguration>>
export type PostgresConfigurationError = ResponseError
export const postgresConfigurationQueryOptions = (
{ projectRef }: PostgresConfigurationVariables,
{ enabled = true }: { enabled?: boolean } = { enabled: true }
) => {
return queryOptions({
queryKey: configKeys.postgresConfig(projectRef),
queryFn: ({ signal }) => getPostgresConfiguration({ projectRef }, signal),
enabled: enabled && typeof projectRef !== 'undefined',
})
}