feat: UI Problems list filters, detail card and event timeline (d2-1)

- Filters status/severity/hostname; /problems/:id with Ack/Resolve and timeline

- Dashboard drill-down to open problems

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-28 09:55:28 +10:00
parent 64b5ef297a
commit 249894d8e1
7 changed files with 206 additions and 9 deletions
+18
View File
@@ -111,6 +111,24 @@ export interface ProblemListResponse {
page_size: number;
}
export interface ProblemEventItem {
id: number;
event_id: string;
occurred_at: string;
type: string;
severity: string;
title: string;
summary: string;
}
export interface ProblemDetail extends ProblemSummary {
events: ProblemEventItem[];
}
export function fetchProblem(id: number): Promise<ProblemDetail> {
return apiFetch<ProblemDetail>(`/api/v1/problems/${id}`);
}
export async function ackProblem(problemId: number): Promise<{ id: number; status: string }> {
return apiFetch(`/api/v1/problems/${problemId}/ack`, { method: "POST" });
}