From fe482c4337d5ad0cb0bd5b69249c8a04565c41b2 Mon Sep 17 00:00:00 2001 From: Jordi Enric Date: Mon, 6 Jul 2026 17:44:19 +0200 Subject: [PATCH] feat(studio): add Database Upgrades filter to Unified Logs Maps the new log type to the pg_upgrade_logs source, mirroring the legacy Logs Explorer's Postgres Version Upgrade page. --- .../interfaces/UnifiedLogs/UnifiedLogs.constants.tsx | 1 + .../components/interfaces/UnifiedLogs/UnifiedLogs.queries.ts | 2 ++ .../components/interfaces/UnifiedLogs/UnifiedLogs.utils.ts | 1 + .../interfaces/UnifiedLogs/components/LogTypeIcon.tsx | 3 ++- packages/common/telemetry-constants.ts | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.constants.tsx b/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.constants.tsx index 5e5493b7b23..b234abb945d 100644 --- a/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.constants.tsx +++ b/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.constants.tsx @@ -27,6 +27,7 @@ export const LOG_TYPES_LABELS = { supavisor: 'Supavisor', pgbouncer: 'PgBouncer', multigres: 'Multigres', + 'database upgrades': 'Database Upgrades', } type LogType = keyof typeof LOG_TYPES_LABELS diff --git a/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.queries.ts b/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.queries.ts index 5a5d6d7e5ab..1764843d84e 100644 --- a/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.queries.ts +++ b/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.queries.ts @@ -65,6 +65,7 @@ const LOG_TYPE_CONDITION: Record = { supavisor: safeSql`source = 'supavisor_logs'`, pgbouncer: safeSql`source = 'pgbouncer_logs'`, multigres: safeSql`source = 'multigres_logs'`, + 'database upgrades': safeSql`source = 'pg_upgrade_logs'`, } // Derived `log_type` column for SELECT / GROUP BY / countIf use. @@ -81,6 +82,7 @@ const LOG_TYPE_EXPR: SafeLogSqlFragment = safeSql`CASE WHEN source = 'supavisor_logs' THEN 'supavisor' WHEN source = 'pgbouncer_logs' THEN 'pgbouncer' WHEN source = 'multigres_logs' THEN 'multigres' + WHEN source = 'pg_upgrade_logs' THEN 'database upgrades' ELSE source END` diff --git a/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.utils.ts b/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.utils.ts index ad43604bf36..63844c94442 100644 --- a/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.utils.ts +++ b/apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.utils.ts @@ -122,6 +122,7 @@ export function formatServiceTypeForDisplay(serviceType: string): string { supavisor: 'Supavisor', pgbouncer: 'PgBouncer', multigres: 'Multigres', + 'database upgrades': 'Database Upgrades', } return specialCases[serviceType.toLowerCase()] || serviceType diff --git a/apps/studio/components/interfaces/UnifiedLogs/components/LogTypeIcon.tsx b/apps/studio/components/interfaces/UnifiedLogs/components/LogTypeIcon.tsx index 437607e219a..7a0b17ee577 100644 --- a/apps/studio/components/interfaces/UnifiedLogs/components/LogTypeIcon.tsx +++ b/apps/studio/components/interfaces/UnifiedLogs/components/LogTypeIcon.tsx @@ -1,5 +1,5 @@ import { Auth, EdgeFunctions, Realtime, Storage } from 'icons' -import { Box, Cable, Code2, Database, Network } from 'lucide-react' +import { ArrowUpCircle, Box, Cable, Code2, Database, Network } from 'lucide-react' import { Tooltip, TooltipContent, TooltipTrigger } from 'ui' import { type LOG_TYPES } from '../UnifiedLogs.constants' @@ -29,6 +29,7 @@ const ICON_MAP: Partial> = { supavisor: Cable, pgbouncer: Cable, multigres: Network, + 'database upgrades': ArrowUpCircle, } export const LogTypeIcon = ({ diff --git a/packages/common/telemetry-constants.ts b/packages/common/telemetry-constants.ts index 2a7b3a8f20b..aa91cc2d2e0 100644 --- a/packages/common/telemetry-constants.ts +++ b/packages/common/telemetry-constants.ts @@ -3370,6 +3370,7 @@ export interface UnifiedLogsRowClickedEvent { | 'supavisor' | 'pgbouncer' | 'multigres' + | 'database upgrades' } groups: TelemetryGroups }