mirror of
https://github.com/supabase/supabase.git
synced 2026-10-10 11:55:05 +03:00
## What kind of change does this PR introduce? Feature and docs update. ## What is the current behavior? The Dashboard lists Pipelines destinations under Database > Replication. Read replicas have moved to Infrastructure, but the temporary notices remain on the destinations page and new destination sheet. Closes PIPE-1021. ## What is the new behavior? The canonical Dashboard routes are Database > Pipelines, while legacy Replication list and detail URLs permanently redirect to the equivalent Pipelines routes. Navigation, command palette, shortcuts, pipeline links, docs, and current marketing copy use Pipelines. Read-replica notices and their obsolete dismissal state are removed. | Before | After | | --- | --- | | <img width="1024" height="759" alt="Replication Database Agua Basket Supabase" src="https://github.com/user-attachments/assets/53f9f565-1ed1-43e9-a7d9-b66b2a47e948" /> | <img width="1024" height="759" alt="2540" src="https://github.com/user-attachments/assets/14ab2d61-d01c-483f-9d4f-0ac286dae159" /> | The Management API, pipeline behaviour, replication logs, and Postgres replication terminology remain unchanged. ## To test - Open `/project/<ref>/database/pipelines` and confirm the Database navigation, page header, and pipeline breadcrumb say Pipelines. - Open `/project/<ref>/database/replication?source=bookmark#destinations` and a legacy pipeline detail URL. Confirm each redirects to the matching Pipelines URL while preserving parameters and fragments. - From the Pipelines page, open Add destination. Confirm no read-replica migration notice appears. - Open the Pipelines guide and confirm its Dashboard steps lead to Database > Pipelines. ## Before merge - [ ] Get changelog entry reviewed https://github.com/supabase/changelog/pull/262 and prepare to merge simultaneously <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added dedicated **Database > Pipelines** pages for pipeline lists and details. - Added permanent redirects from legacy Replication URLs to their corresponding Pipelines pages. - Read replica management links now open **Settings > Infrastructure**. - **Documentation** - Updated Pipelines setup, monitoring, troubleshooting, and usage guidance to reference the current dashboard locations. - Updated Realtime guidance to use **Database > Publications**. - **Updates** - Renamed dashboard navigation, breadcrumbs, commands, and keyboard shortcuts from **Replication** to **Pipelines**. - Removed the “Read replicas have moved” notification. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
141 lines
5.5 KiB
TypeScript
141 lines
5.5 KiB
TypeScript
import { SHORTCUT_REFERENCE_GROUPS } from '../referenceGroups'
|
|
import { RegistryDefinations } from '../types'
|
|
|
|
/**
|
|
* Contextual chords for jumping between Database sub-pages — `D + <letter>`.
|
|
*
|
|
* Active only while DatabaseLayout is mounted (i.e. the user is somewhere
|
|
* under `/project/<ref>/database/*`). The chord intentionally lives on the
|
|
* page rather than globally so the leading `D` doesn't burn a global key for
|
|
* a destination most users only care about while already in the section.
|
|
*
|
|
*/
|
|
export const DATABASE_NAV_SHORTCUT_IDS = {
|
|
NAV_DATABASE_TABLES: 'nav.database-tables',
|
|
NAV_DATABASE_FUNCTIONS: 'nav.database-functions',
|
|
NAV_DATABASE_TRIGGERS: 'nav.database-triggers',
|
|
NAV_DATABASE_INDEXES: 'nav.database-indexes',
|
|
NAV_DATABASE_EXTENSIONS: 'nav.database-extensions',
|
|
NAV_DATABASE_SCHEMA_VISUALIZER: 'nav.database-schema-visualizer',
|
|
NAV_DATABASE_ROLES: 'nav.database-roles',
|
|
NAV_DATABASE_BACKUPS: 'nav.database-backups',
|
|
NAV_DATABASE_MIGRATIONS: 'nav.database-migrations',
|
|
NAV_DATABASE_TYPES: 'nav.database-types',
|
|
NAV_DATABASE_PUBLICATIONS: 'nav.database-publications',
|
|
NAV_DATABASE_COLUMN_PRIVILEGES: 'nav.database-column-privileges',
|
|
NAV_DATABASE_SETTINGS: 'nav.database-settings',
|
|
NAV_DATABASE_REPLICATION: 'nav.database-replication',
|
|
NAV_DATABASE_POLICIES: 'nav.database-policies',
|
|
}
|
|
|
|
export type DatabaseNavShortcutId =
|
|
(typeof DATABASE_NAV_SHORTCUT_IDS)[keyof typeof DATABASE_NAV_SHORTCUT_IDS]
|
|
|
|
export const databaseNavRegistry: RegistryDefinations<DatabaseNavShortcutId> = {
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_TABLES]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_TABLES,
|
|
label: 'Go to Tables',
|
|
sequence: ['D', 'T'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_FUNCTIONS]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_FUNCTIONS,
|
|
label: 'Go to Functions',
|
|
sequence: ['D', 'F'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_TRIGGERS]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_TRIGGERS,
|
|
label: 'Go to Triggers',
|
|
sequence: ['D', 'R'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_INDEXES]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_INDEXES,
|
|
label: 'Go to Indexes',
|
|
sequence: ['D', 'I'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_EXTENSIONS]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_EXTENSIONS,
|
|
label: 'Go to Extensions',
|
|
sequence: ['D', 'X'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_SCHEMA_VISUALIZER]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_SCHEMA_VISUALIZER,
|
|
label: 'Go to Schema Visualizer',
|
|
sequence: ['D', 'V'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_ROLES]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_ROLES,
|
|
label: 'Go to Roles',
|
|
sequence: ['D', 'O'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_BACKUPS]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_BACKUPS,
|
|
label: 'Go to Backups',
|
|
sequence: ['D', 'B'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_MIGRATIONS]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_MIGRATIONS,
|
|
label: 'Go to Migrations',
|
|
sequence: ['D', 'M'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_TYPES]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_TYPES,
|
|
label: 'Go to Enumerated Types',
|
|
sequence: ['D', 'E'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_PUBLICATIONS]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_PUBLICATIONS,
|
|
label: 'Go to Publications',
|
|
sequence: ['D', 'U'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_COLUMN_PRIVILEGES]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_COLUMN_PRIVILEGES,
|
|
label: 'Go to Column Privileges',
|
|
sequence: ['D', 'C'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_SETTINGS]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_SETTINGS,
|
|
label: 'Go to Database Settings',
|
|
sequence: ['D', ','],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_REPLICATION]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_REPLICATION,
|
|
label: 'Go to Pipelines',
|
|
sequence: ['D', 'L'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
[DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_POLICIES]: {
|
|
id: DATABASE_NAV_SHORTCUT_IDS.NAV_DATABASE_POLICIES,
|
|
label: 'Go to Policies',
|
|
sequence: ['D', 'A'],
|
|
showInSettings: false,
|
|
referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_DATABASE,
|
|
},
|
|
}
|