Add system alerts log with nav badge and Admin Alerts tab.
Deploy / lint (push) Successful in 8s
Deploy / test (push) Failing after 1m4s
Deploy / deploy (push) Has been skipped

Persist job and ingestion warnings/errors for 7 days, surface a dismissible top-nav badge, treat stale OHLCV as a warning (e.g. ticker renames), and show market bar age on the ticker freshness chip.
This commit is contained in:
2026-07-14 13:38:04 +02:00
parent ed82d0a665
commit f59c0c3484
16 changed files with 825 additions and 7 deletions
+44
View File
@@ -225,6 +225,50 @@ export function triggerJob(jobName: string, options?: { target_model?: BacktestT
.then((r) => r.data);
}
// System events (operational warnings / errors)
export interface SystemEvent {
id: number;
severity: 'warning' | 'error' | string;
source: string;
code: string;
message: string;
symbol: string | null;
created_at: string | null;
acknowledged_at: string | null;
}
export interface SystemEventSummary {
days: number;
total: number;
unacknowledged: number;
unacknowledged_errors: number;
unacknowledged_warnings: number;
}
export function listSystemEvents(params?: {
days?: number;
severity?: string;
unacknowledged_only?: boolean;
}) {
return apiClient
.get<SystemEvent[]>('admin/system-events', { params })
.then((r) => r.data);
}
export function getSystemEventSummary(days = 7) {
return apiClient
.get<SystemEventSummary>('admin/system-events/summary', { params: { days } })
.then((r) => r.data);
}
export function acknowledgeSystemEvents(days = 7) {
return apiClient
.post<{ acknowledged: number }>('admin/system-events/acknowledge', null, {
params: { days },
})
.then((r) => r.data);
}
// Data cleanup
export function cleanupData(olderThanDays: number) {
return apiClient