Remove useless reports, avoid DB-Races
This commit is contained in:
@@ -486,29 +486,4 @@ def _reporter_alerts(session: Session, settings: Settings, report: Report) -> li
|
||||
details={**_report_evidence(report), "policy_p": report.policy_p, "policy_sp": report.policy_sp, "policy_pct": report.policy_pct},
|
||||
)
|
||||
)
|
||||
missing_after = max(1, settings.alerts.thresholds.missing_reporter_days)
|
||||
cutoff = _report_time(report) - timedelta(days=missing_after)
|
||||
reporter_rows = session.execute(
|
||||
select(Report.org_name, func.max(func.coalesce(Report.date_end, Report.date_begin, Report.created_at)))
|
||||
.where(Report.domain == report.domain, Report.org_name.is_not(None))
|
||||
.group_by(Report.org_name)
|
||||
).all()
|
||||
for org_name, last_seen in reporter_rows:
|
||||
last_seen_at = _as_utc(last_seen)
|
||||
if not org_name or not last_seen_at or last_seen_at >= cutoff:
|
||||
continue
|
||||
missed_days = (_report_time(report) - last_seen_at).days
|
||||
alerts.append(
|
||||
create_or_update_alert(
|
||||
session,
|
||||
inbox_id=report.inbox_id,
|
||||
domain=report.domain,
|
||||
severity="warning",
|
||||
alert_type="missing_reporter",
|
||||
key=org_name,
|
||||
title=f"DMARC reporter missing for {report.domain}",
|
||||
summary=f"{org_name} has not sent a DMARC aggregate report for {missed_days} days.",
|
||||
details={**_report_evidence(report, link_report=False), "reporter": org_name, "last_seen_at": last_seen_at.isoformat()},
|
||||
)
|
||||
)
|
||||
return alerts
|
||||
|
||||
Reference in New Issue
Block a user