mirror of
https://github.com/supabase/supabase.git
synced 2026-09-06 09:59:03 +08:00
## What kind of change does this PR introduce? Feature. Stack 4 of 5 for [PIPE-1007](https://linear.app/supabase/issue/PIPE-1007/move-read-replicas-out-of-replication-into-infrastructure). Contributes to PIPE-1008. ## What is the current behavior? Database / Replication lists, creates, and diagrams read replicas alongside pipelines. ## What is the new behavior? Replication is pipelines-only. No replica rows, type, or diagram nodes. `?destinationType=Read+Replica` redirects to Infrastructure. A short callout points create-mode users at the new home. ## Additional context Please review, but do not merge until [#48921](https://github.com/supabase/supabase/pull/48921) is ready to follow immediately. The flag is already on, so this PR is the user-facing cutover off Replication. ## To test `infrastructure:read_replicas` is an enabled-feature, on by default. There is no Feature Preview or ConfigCat switch. You should already see the Infrastructure Read replicas section. If you do not, your profile lists `infrastructure:read_replicas` in `disabled_features`. Open [Database / Replication](https://studio-staging-git-danny-pipe-1007-04-cut-from-77ef95-supabase.vercel.app/dashboard/project/_/database/replication?destinationType=Read+Replica). You should land on Infrastructure with the add-replica sheet, not a replica destination type. The Replication page itself should be pipelines-only. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added guidance directing users to Infrastructure to create read replicas. * Added automatic redirection for legacy read-replica links. * **Updates** * Replication destinations now focus exclusively on external analytics and pipeline destinations. * Updated destination selection, empty states, descriptions, and diagrams to reflect the streamlined experience. * Removed read replicas from the replication destination list and related creation flow. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Jeremias Menichelli <jmenichelli@gmail.com>
27 lines
846 B
TypeScript
27 lines
846 B
TypeScript
import { AnalyticsBucket, BigQuery, ClickHouse, Database } from 'icons'
|
|
import { Snowflake } from 'lucide-react'
|
|
import type { ComponentType, SVGProps } from 'react'
|
|
|
|
import type { DestinationType } from './DestinationPanel/DestinationPanel.types'
|
|
|
|
type DestinationIconComponent = ComponentType<SVGProps<SVGSVGElement> & { size?: string | number }>
|
|
|
|
const destinationIconByType: Record<DestinationType, DestinationIconComponent> = {
|
|
BigQuery,
|
|
'Analytics Bucket': AnalyticsBucket,
|
|
DuckLake: Database,
|
|
Snowflake,
|
|
ClickHouse,
|
|
}
|
|
|
|
interface DestinationIconProps extends Omit<SVGProps<SVGSVGElement>, 'strokeWidth'> {
|
|
type: DestinationType
|
|
size?: string | number
|
|
}
|
|
|
|
export const DestinationIcon = ({ type, ...props }: DestinationIconProps) => {
|
|
const Icon = destinationIconByType[type]
|
|
|
|
return <Icon {...props} strokeWidth={1.5} />
|
|
}
|