observability-nav.ts92 lines · main
1// @ts-nocheck
2import { SHORTCUT_REFERENCE_GROUPS } from '../referenceGroups'
3import { RegistryDefinations } from '../types'
4
5/**
6 * Contextual chords for jumping between Observability sub-pages — `U + <letter>`.
7 *
8 * Active only while ObservabilityLayout is mounted (i.e. the user is somewhere
9 * under `/project/<ref>/observability/*`). Mirrors the database-nav pattern:
10 * the leading `U` is layout-scoped so it doesn't burn a global key. `U` matches
11 * the global `G U` that takes the user into Observability in the first place.
12 */
13export const OBSERVABILITY_NAV_SHORTCUT_IDS = {
14 NAV_OBSERVABILITY_OVERVIEW: 'nav.observability-overview',
15 NAV_OBSERVABILITY_QUERY_PERFORMANCE: 'nav.observability-query-performance',
16 NAV_OBSERVABILITY_API_GATEWAY: 'nav.observability-api-gateway',
17 NAV_OBSERVABILITY_DATABASE: 'nav.observability-database',
18 NAV_OBSERVABILITY_DATA_API: 'nav.observability-data-api',
19 NAV_OBSERVABILITY_AUTH: 'nav.observability-auth',
20 NAV_OBSERVABILITY_FUNCTIONS: 'nav.observability-functions',
21 NAV_OBSERVABILITY_STORAGE: 'nav.observability-storage',
22 NAV_OBSERVABILITY_REALTIME: 'nav.observability-realtime',
23}
24
25export type ObservabilityNavShortcutId =
26 (typeof OBSERVABILITY_NAV_SHORTCUT_IDS)[keyof typeof OBSERVABILITY_NAV_SHORTCUT_IDS]
27
28export const observabilityNavRegistry: RegistryDefinations<ObservabilityNavShortcutId> = {
29 [OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_OVERVIEW]: {
30 id: OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_OVERVIEW,
31 label: 'Go to Overview',
32 sequence: ['U', 'O'],
33 showInSettings: false,
34 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_OBSERVABILITY,
35 },
36 [OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_QUERY_PERFORMANCE]: {
37 id: OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_QUERY_PERFORMANCE,
38 label: 'Go to Query Performance',
39 sequence: ['U', 'Q'],
40 showInSettings: false,
41 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_OBSERVABILITY,
42 },
43 [OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_API_GATEWAY]: {
44 id: OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_API_GATEWAY,
45 label: 'Go to API Gateway',
46 sequence: ['U', 'G'],
47 showInSettings: false,
48 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_OBSERVABILITY,
49 },
50 [OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_DATABASE]: {
51 id: OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_DATABASE,
52 label: 'Go to Database',
53 sequence: ['U', 'D'],
54 showInSettings: false,
55 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_OBSERVABILITY,
56 },
57 [OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_DATA_API]: {
58 id: OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_DATA_API,
59 label: 'Go to Data API',
60 sequence: ['U', 'P'],
61 showInSettings: false,
62 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_OBSERVABILITY,
63 },
64 [OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_AUTH]: {
65 id: OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_AUTH,
66 label: 'Go to Auth',
67 sequence: ['U', 'A'],
68 showInSettings: false,
69 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_OBSERVABILITY,
70 },
71 [OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_FUNCTIONS]: {
72 id: OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_FUNCTIONS,
73 label: 'Go to Edge Functions',
74 sequence: ['U', 'F'],
75 showInSettings: false,
76 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_OBSERVABILITY,
77 },
78 [OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_STORAGE]: {
79 id: OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_STORAGE,
80 label: 'Go to Storage',
81 sequence: ['U', 'S'],
82 showInSettings: false,
83 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_OBSERVABILITY,
84 },
85 [OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_REALTIME]: {
86 id: OBSERVABILITY_NAV_SHORTCUT_IDS.NAV_OBSERVABILITY_REALTIME,
87 label: 'Go to Realtime',
88 sequence: ['U', 'L'],
89 showInSettings: false,
90 referenceGroup: SHORTCUT_REFERENCE_GROUPS.NAVIGATION_OBSERVABILITY,
91 },
92}