Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions apps/studio/components/interfaces/Reports/Reports.constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ export const PRESET_CONFIG: Record<Presets, PresetConfig> = {
queries: {
totalRequests: {
queryType: 'logs',
sql: (filters) => safeLogSql`
safeSql: (filters) => safeLogSql`
-- reports-api-total-requests
select
cast(timestamp_trunc(t.timestamp, hour) as datetime) as timestamp,
Expand All @@ -167,7 +167,7 @@ export const PRESET_CONFIG: Record<Presets, PresetConfig> = {
},
topRoutes: {
queryType: 'logs',
sql: (filters) => safeLogSql`
safeSql: (filters) => safeLogSql`
-- reports-api-top-routes
select
request.path as path,
Expand All @@ -190,7 +190,7 @@ export const PRESET_CONFIG: Record<Presets, PresetConfig> = {
},
errorCounts: {
queryType: 'logs',
sql: (filters) => safeLogSql`
safeSql: (filters) => safeLogSql`
-- reports-api-error-counts
select
cast(timestamp_trunc(t.timestamp, hour) as datetime) as timestamp,
Expand All @@ -211,7 +211,7 @@ export const PRESET_CONFIG: Record<Presets, PresetConfig> = {
},
topErrorRoutes: {
queryType: 'logs',
sql: (filters) => safeLogSql`
safeSql: (filters) => safeLogSql`
-- reports-api-top-error-routes
select
request.path as path,
Expand All @@ -236,7 +236,7 @@ export const PRESET_CONFIG: Record<Presets, PresetConfig> = {
},
responseSpeed: {
queryType: 'logs',
sql: (filters) => safeLogSql`
safeSql: (filters) => safeLogSql`
-- reports-api-response-speed
select
cast(timestamp_trunc(t.timestamp, hour) as datetime) as timestamp,
Expand All @@ -256,7 +256,7 @@ export const PRESET_CONFIG: Record<Presets, PresetConfig> = {
},
topSlowRoutes: {
queryType: 'logs',
sql: (filters) => safeLogSql`
safeSql: (filters) => safeLogSql`
-- reports-api-top-slow-routes
select
request.path as path,
Expand All @@ -280,7 +280,7 @@ export const PRESET_CONFIG: Record<Presets, PresetConfig> = {
},
networkTraffic: {
queryType: 'logs',
sql: (filters) => safeLogSql`
safeSql: (filters) => safeLogSql`
-- reports-api-network-traffic
select
cast(timestamp_trunc(t.timestamp, hour) as datetime) as timestamp,
Expand Down Expand Up @@ -318,7 +318,7 @@ export const PRESET_CONFIG: Record<Presets, PresetConfig> = {
},
requestsByCountry: {
queryType: 'logs',
sql: (filters) => safeLogSql`
safeSql: (filters) => safeLogSql`
-- reports-api-requests-by-country
select
cf.country as country,
Expand Down Expand Up @@ -348,7 +348,7 @@ export const PRESET_CONFIG: Record<Presets, PresetConfig> = {
cacheHitRate: {
queryType: 'logs',
// storage report does not perform any filtering
sql: (filters) => safeLogSql`
safeSql: (filters) => safeLogSql`
-- reports-storage-cache-hit-rate
SELECT
timestamp_trunc(timestamp, hour) as timestamp,
Expand All @@ -368,7 +368,7 @@ order by timestamp desc
topCacheMisses: {
queryType: 'logs',
// storage report does not perform any filtering
sql: (filters) => safeLogSql`
safeSql: (filters) => safeLogSql`
-- reports-storage-top-cache-misses
SELECT
r.path as path,
Expand Down
2 changes: 1 addition & 1 deletion apps/studio/components/interfaces/Reports/Reports.types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export type BaseQueries<Keys extends string> = Record<Keys, ReportQuery>

export interface ReportQueryLogs {
queryType: 'logs'
sql: (
safeSql: (
filters: ReportFilterItem[],
where?: string,
orderBy?: string,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ export function getLogsSql(query: ReportQuery, filters: ReportFilterItem[]): Saf
if (query.queryType !== 'logs') {
throw new Error(`Expected logs query, got ${query.queryType}`)
}
return query.sql(filters)
return query.safeSql(filters)
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ function sourceTable(src: string): SafeLogSqlFragment {
export const SHARED_API_REPORT_SQL = {
totalRequests: {
queryType: 'logs',
sql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql`
--reports-api-total-requests
select
Expand All @@ -41,7 +41,7 @@ export const SHARED_API_REPORT_SQL = {
},
topRoutes: {
queryType: 'logs',
sql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql`
-- reports-api-top-routes
select
Expand All @@ -65,7 +65,7 @@ export const SHARED_API_REPORT_SQL = {
},
errorCounts: {
queryType: 'logs',
sql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql`
-- reports-api-error-counts
select
Expand All @@ -87,7 +87,7 @@ export const SHARED_API_REPORT_SQL = {
},
topErrorRoutes: {
queryType: 'logs',
sql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql`
-- reports-api-top-error-routes
select
Expand All @@ -113,7 +113,7 @@ export const SHARED_API_REPORT_SQL = {
},
responseSpeed: {
queryType: 'logs',
sql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql`
-- reports-api-response-speed
select
Expand All @@ -134,7 +134,7 @@ export const SHARED_API_REPORT_SQL = {
},
topSlowRoutes: {
queryType: 'logs',
sql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql`
-- reports-api-top-slow-routes
select
Expand All @@ -159,7 +159,7 @@ export const SHARED_API_REPORT_SQL = {
},
networkTraffic: {
queryType: 'logs',
sql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql: (filters: ReportFilterItem[], src = 'edge_logs'): SafeLogSqlFragment =>
safeSql`
-- reports-api-network-traffic
select
Expand Down Expand Up @@ -269,7 +269,7 @@ export const useSharedAPIReport = ({
const data = await executeAnalyticsSql({
projectRef: ref,
endpoint: '/platform/projects/{ref}/analytics/endpoints/logs.all',
sql: value.sql(allFilters, filterByMapSource[filterBy]),
sql: value.safeSql(allFilters, filterByMapSource[filterBy]),
iso_timestamp_start: start,
iso_timestamp_end: end,
method: 'get',
Expand Down Expand Up @@ -334,16 +334,25 @@ export const useSharedAPIReport = ({
const isLoadingData = Object.values(isLoading).some(Boolean)

const SQLMap: Record<SharedAPIReportKey, SafeLogSqlFragment> = {
totalRequests: SHARED_API_REPORT_SQL.totalRequests.sql(allFilters, filterByMapSource[filterBy]),
topRoutes: SHARED_API_REPORT_SQL.topRoutes.sql(allFilters, filterByMapSource[filterBy]),
errorCounts: SHARED_API_REPORT_SQL.errorCounts.sql(allFilters, filterByMapSource[filterBy]),
topErrorRoutes: SHARED_API_REPORT_SQL.topErrorRoutes.sql(
totalRequests: SHARED_API_REPORT_SQL.totalRequests.safeSql(
allFilters,
filterByMapSource[filterBy]
),
responseSpeed: SHARED_API_REPORT_SQL.responseSpeed.sql(allFilters, filterByMapSource[filterBy]),
topSlowRoutes: SHARED_API_REPORT_SQL.topSlowRoutes.sql(allFilters, filterByMapSource[filterBy]),
networkTraffic: SHARED_API_REPORT_SQL.networkTraffic.sql(
topRoutes: SHARED_API_REPORT_SQL.topRoutes.safeSql(allFilters, filterByMapSource[filterBy]),
errorCounts: SHARED_API_REPORT_SQL.errorCounts.safeSql(allFilters, filterByMapSource[filterBy]),
topErrorRoutes: SHARED_API_REPORT_SQL.topErrorRoutes.safeSql(
allFilters,
filterByMapSource[filterBy]
),
responseSpeed: SHARED_API_REPORT_SQL.responseSpeed.safeSql(
allFilters,
filterByMapSource[filterBy]
),
topSlowRoutes: SHARED_API_REPORT_SQL.topSlowRoutes.safeSql(
allFilters,
filterByMapSource[filterBy]
),
networkTraffic: SHARED_API_REPORT_SQL.networkTraffic.safeSql(
allFilters,
filterByMapSource[filterBy]
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ import { Cable, ChevronDown, Clock, Database } from 'lucide-react'
import { memo } from 'react'
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from 'ui'

import { ColumnSchema } from '../../../UnifiedLogs.schema'
import { getRowTimestampMs } from '../../../UnifiedLogs.utils'
import { postgresDetailsFields, postgresPrimaryFields } from '../../config/serviceFlowFields'
import { BlockFieldConfig } from '../../types'
import { DetailRow } from '../shared/DetailRow'
import { DetailSectionHeader } from '../shared/DetailSection'
import { ColumnSchema } from '../../UnifiedLogs.schema'
import { getRowTimestampMs } from '../../UnifiedLogs.utils'
import { postgresDetailsFields, postgresPrimaryFields } from '../config/serviceFlowFields'
import { BlockFieldConfig } from '../types'
import { DetailRow } from './shared/DetailRow'
import { DetailSectionHeader } from './shared/DetailSection'
import { DataTableFilterField } from '@/components/ui/DataTable/DataTable.types'

interface PostgresFlowDetailProps {
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ import { BlockFieldConfig, BlockFieldProps, ServiceFlowBlockProps } from '../../
import { DetailRow } from './DetailRow'
import { DetailSectionHeader } from './DetailSection'

export interface BlockSection {
interface BlockSection {
title: string
icon?: LucideIcon
fields: BlockFieldConfig[]
collapsible?: boolean
}

export interface FieldWithSeeMoreSection {
interface FieldWithSeeMoreSection {
type: 'fieldWithSeeMore'
primaryField: BlockFieldConfig
additionalFields: BlockFieldConfig[]
Expand Down
Loading
Loading