mirror of
https://github.com/supabase/supabase.git
synced 2026-10-14 21:59:16 +03:00
* Migrate the CreateBucketModal to use RHF. * Minor fixes for the create bucket modal. * Use the bucket type from the API everywhere. * Improve the types on some functions. Add "skip" mode to FDWCreateMutation. * Expand the CreateBucketModal to explain what will happen when creating an iceberg bucket. * Add a page for iceberg buckets. * Add error states to the iceberg explorer. * Fix the names for the FDWs. * Add a dialog for setting up namespace. * Restructure the new files. * Add a download env button. * Add warning to install the wrappers extension when creating an iceberg bucket. * Add failover details when the FDW is not setup. * Fix a lint error. * Fix a type error. * Minor fixes. * Fix the server name. * Add an icon for iceberg buckets. * Fix the import foreign schema dialog. * Make the setup wrapper button functional. * Fix a bad useMemo dependency. * Small changes to the iceberg bucket page. * Minor fix for the edit wrapper sheet. * Rename the files from kebab-case to PascalCase. * Rename the files again to include Analytic instead of Iceberg. * Rename Iceberg type to Analytic. * Add a switch for creating namespace in the import foreign schema dialog. * Fix the CreateBucketModal. * Fix the delete modal feature. * Fix the S3 keys in the FDW. * Only create a namespace if the switch is true. * Regenerate and fix the types. * Fix the FDW create mutation to handle numbers in the FDW names. * Make the icon smaller. * Check whether the namespace exists, if it doesn't create it. * Hide action from the analytic bucket which don't work. * Invalidate namespaces when creating them. * Add small explanation for the creation of namespaces. * Minor fixes. * Tons of changes to make the namespace feature work. * Fix type errors. * Fix bad import. * Minor copy fixes. * Replace the multiple cards with a table of namespaces. * update copy icon * tiny copy update * Fix the empty state for foreign tables. * Hide the analytics bucket option for self-hosted. * Minor copy fixes. * Expand the CTA on no namespaces state. * More minor fixes. * More small fixes. --------- Co-authored-by: Alaister Young <a@alaisteryoung.com>
55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import { UseQueryOptions, useQuery } from '@tanstack/react-query'
|
|
|
|
import { constructHeaders, fetchHandler, handleError } from 'data/fetchers'
|
|
import type { ResponseError } from 'types'
|
|
import { storageKeys } from './keys'
|
|
|
|
type GetNamespacesVariables = {
|
|
catalogUri: string
|
|
warehouse: string
|
|
token: string
|
|
}
|
|
|
|
async function getNamespaces({ catalogUri, warehouse, token }: GetNamespacesVariables) {
|
|
const headers = await constructHeaders({
|
|
'Content-Type': 'application/json',
|
|
Authorization: `Bearer ${token}`,
|
|
})
|
|
|
|
const url = `${catalogUri}/v1/${warehouse}/namespaces`.replaceAll(/(?<!:)\/\//g, '/')
|
|
|
|
try {
|
|
const response = await fetchHandler(url, {
|
|
headers,
|
|
method: 'GET',
|
|
})
|
|
|
|
const result = await response.json()
|
|
if (result.error) {
|
|
if (result.error.message) {
|
|
throw new Error(result.error.message)
|
|
}
|
|
throw new Error('Failed to get iceberg namespaces')
|
|
}
|
|
const r = result as { namespaces: string[][] }
|
|
return r.namespaces.flat()
|
|
} catch (error) {
|
|
handleError(error)
|
|
}
|
|
}
|
|
|
|
type IcebergNamespacesData = Awaited<ReturnType<typeof getNamespaces>>
|
|
|
|
export type IcebergNamespacesError = ResponseError
|
|
|
|
export const useIcebergNamespacesQuery = <TData = IcebergNamespacesData>(
|
|
params: GetNamespacesVariables,
|
|
{ ...options }: UseQueryOptions<IcebergNamespacesData, IcebergNamespacesError, TData> = {}
|
|
) => {
|
|
return useQuery<IcebergNamespacesData, IcebergNamespacesError, TData>(
|
|
storageKeys.icebergNamespaces(params.catalogUri, params.warehouse),
|
|
() => getNamespaces(params),
|
|
{ ...options }
|
|
)
|
|
}
|