Skip to content

Commit 39fe55e

Browse files
feat: add storage logs to unified logs (supabase#36556)
* Update UnifiedLogs.queries.ts * Update Unified Logs QueryOptions to use POST to logs.all --------- Co-authored-by: Joshen Lim <[email protected]>
1 parent 66c3cd1 commit 39fe55e

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

apps/studio/components/interfaces/UnifiedLogs/UnifiedLogs.queries.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ const getEdgeLogsQuery = () => {
257257
258258
-- ONLY include logs where the path does not include /rest/
259259
WHERE edge_logs_request.path NOT LIKE '%/rest/%'
260+
AND edge_logs_request.path NOT LIKE '%/storage/%'
260261
261262
`
262263
}
@@ -445,6 +446,41 @@ const getSupavisorLogsQuery = () => {
445446
`
446447
}
447448

449+
// WHERE pathname includes `/storage/`
450+
const getSupabaseStorageLogsQuery = () => {
451+
return `
452+
select
453+
id,
454+
el.timestamp as timestamp,
455+
'storage' as log_type,
456+
CAST(edge_logs_response.status_code AS STRING) as status,
457+
CASE
458+
WHEN edge_logs_response.status_code BETWEEN 200 AND 299 THEN 'success'
459+
WHEN edge_logs_response.status_code BETWEEN 400 AND 499 THEN 'warning'
460+
WHEN edge_logs_response.status_code >= 500 THEN 'error'
461+
ELSE 'success'
462+
END as level,
463+
edge_logs_request.path as path,
464+
edge_logs_request.host as host,
465+
null as event_message,
466+
edge_logs_request.method as method,
467+
authorization_payload.role as api_role,
468+
COALESCE(sb.auth_user, null) as auth_user,
469+
null as log_count,
470+
null as logs
471+
from edge_logs as el
472+
cross join unnest(metadata) as edge_logs_metadata
473+
cross join unnest(edge_logs_metadata.request) as edge_logs_request
474+
cross join unnest(edge_logs_metadata.response) as edge_logs_response
475+
left join unnest(edge_logs_request.sb) as sb
476+
left join unnest(sb.jwt) as jwt
477+
left join unnest(jwt.authorization) as auth
478+
left join unnest(auth.payload) as authorization_payload
479+
-- ONLY include logs where the path includes /storage/
480+
WHERE edge_logs_request.path LIKE '%/storage/%'
481+
`
482+
}
483+
448484
/**
449485
* Combine all log sources to create the unified logs CTE
450486
*/
@@ -462,6 +498,8 @@ WITH unified_logs AS (
462498
${getAuthLogsQuery()}
463499
union all
464500
${getSupavisorLogsQuery()}
501+
union all
502+
${getSupabaseStorageLogsQuery()}
465503
)
466504
`
467505
}

0 commit comments

Comments
 (0)