dbc332d1b6
6 decisions: queryKey appends serviceId??''; API client reuses get(path,params); service_id: str|None=None on backup endpoints; store filter via subquery for runs/alerts (schema asymmetry — only backup_jobs has service_id column); fetchBackupDashboard excluded (widget path, PI-117 risk). Single slice ~257 lines. 3 source findings: Alertmanager/Prom endpoints confirmed already take service_id; backup runs/alerts attributed via FK chain (subquery needed).