diff --git a/backend/src/media_library_viewer_api/models/backups.py b/backend/src/media_library_viewer_api/models/backups.py index 8b4cba7..6cb2f59 100644 --- a/backend/src/media_library_viewer_api/models/backups.py +++ b/backend/src/media_library_viewer_api/models/backups.py @@ -1,5 +1,6 @@ from datetime import datetime from typing import Any + from pydantic import BaseModel, Field, field_validator diff --git a/backend/src/media_library_viewer_api/services/backup_alert_engine.py b/backend/src/media_library_viewer_api/services/backup_alert_engine.py index 800e270..53b0c4f 100644 --- a/backend/src/media_library_viewer_api/services/backup_alert_engine.py +++ b/backend/src/media_library_viewer_api/services/backup_alert_engine.py @@ -24,7 +24,10 @@ def generate_alerts_for_run( # 2. Anomaly size alert bytes_transferred = run.get("bytes_transferred") if bytes_transferred is not None and previous_runs: - successful_runs = [r for r in previous_runs if r["status"] == "success" and r.get("bytes_transferred") is not None] + successful_runs = [ + r for r in previous_runs + if r["status"] == "success" and r.get("bytes_transferred") is not None + ] if len(successful_runs) >= 3: sizes = [r["bytes_transferred"] for r in successful_runs[-7:]] median_size = statistics.median(sizes) @@ -44,7 +47,10 @@ def generate_alerts_for_run( "run_id": run["id"], "alert_type": "anomaly_size", "severity": "warning", - "message": f"Backup job '{job_name}' size anomaly: {bytes_transferred} bytes (median: {median_size})", + "message": ( + f"Backup job '{job_name}' size anomaly: " + f"{bytes_transferred} bytes (median: {median_size})" + ), }) # 3. Anomaly duration alert @@ -60,7 +66,10 @@ def generate_alerts_for_run( "run_id": run["id"], "alert_type": "anomaly_duration", "severity": "warning", - "message": f"Backup job '{job_name}' duration anomaly: {duration_ms}ms (median: {median_duration}ms)", + "message": ( + f"Backup job '{job_name}' duration anomaly: " + f"{duration_ms}ms (median: {median_duration}ms)" + ), }) return alerts @@ -105,7 +114,10 @@ def check_missed_schedules( "run_id": None, "alert_type": "missed_schedule", "severity": "warning", - "message": f"Backup job '{job['name']}' missed schedule: last run at {last_run_time} (expected every {interval}s)", + "message": ( + f"Backup job '{job['name']}' missed schedule: " + f"last run at {last_run_time} (expected every {interval}s)" + ), }) return alerts diff --git a/frontend/src/api/backups.ts b/frontend/src/api/backups.ts index dcf24cb..1a7e229 100644 --- a/frontend/src/api/backups.ts +++ b/frontend/src/api/backups.ts @@ -1,4 +1,4 @@ -import { +import type { BackupAlert, BackupDashboardSummary, BackupJob, diff --git a/frontend/src/components/BackupAlertsTable.tsx b/frontend/src/components/BackupAlertsTable.tsx index f0c1e5b..f971ff3 100644 --- a/frontend/src/components/BackupAlertsTable.tsx +++ b/frontend/src/components/BackupAlertsTable.tsx @@ -1,5 +1,5 @@ import { Button, Chip, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow } from "@mui/material"; -import { BackupAlert } from "../types/backups"; +import type { BackupAlert } from "../types/backups"; interface Props { alerts: BackupAlert[]; diff --git a/frontend/src/components/BackupJobsTable.tsx b/frontend/src/components/BackupJobsTable.tsx index a2b00e2..fe5b3e8 100644 --- a/frontend/src/components/BackupJobsTable.tsx +++ b/frontend/src/components/BackupJobsTable.tsx @@ -8,7 +8,7 @@ import { TableHead, TableRow, } from "@mui/material"; -import { BackupJob, BackupRun } from "../types/backups"; +import type { BackupJob, BackupRun } from "../types/backups"; interface Props { jobs: BackupJob[]; diff --git a/frontend/src/components/BackupRunsTable.tsx b/frontend/src/components/BackupRunsTable.tsx index 3c9624d..34b4b18 100644 --- a/frontend/src/components/BackupRunsTable.tsx +++ b/frontend/src/components/BackupRunsTable.tsx @@ -13,7 +13,7 @@ import { TableRow, } from "@mui/material"; import { useState } from "react"; -import { BackupRun } from "../types/backups"; +import type { BackupRun } from "../types/backups"; interface Props { runs: BackupRun[];