Christian Krakau-Louis
9d0b12efea
feat: persist DMARC aggregate metadata
2026-05-23 14:17:09 +02:00
Christian Krakau-Louis
cd6fa25f5d
feat: add DMARC aggregate parser compatibility
2026-05-23 13:58:32 +02:00
Christian Krakau-Louis
e781b32a01
feat: add forensic sample analysis
2026-05-23 13:46:32 +02:00
Christian Krakau-Louis
8bce8a8595
feat: add forensic redaction controls
2026-05-23 13:21:03 +02:00
Christian Krakau-Louis
817270b1fb
fix: harden forensic report ingestion
2026-05-23 13:02:01 +02:00
Christian Krakau-Louis
1f954c9e08
feat: add forensic report parsing storage
2026-05-23 12:52:54 +02:00
Christian Krakau-Louis
65b154ae7f
feat: add mailbox test diagnostics
2026-05-23 12:14:49 +02:00
Christian Krakau-Louis
beae6e7469
feat: add operations health and domain setup polish
2026-05-23 11:37:10 +02:00
Christian Krakau-Louis
521dbc92d0
feat: add Cloudflare DNS integration
...
Closes #31
2026-05-23 01:17:59 +02:00
Christian Krakau-Louis
947428afb6
harden notification settings
2026-05-23 00:56:49 +02:00
Christian Krakau-Louis
302159aeb6
feat: import selected fork operational fixes
2026-05-22 23:48:00 +02:00
Christian Krakau-Louis
77fd0f9552
feat: add cached DNS checks
2026-05-22 23:30:12 +02:00
Christian Krakau-Louis
af66c93829
feat: add alert history
2026-05-22 23:18:32 +02:00
Christian Krakau-Louis
f4ff1f151d
feat: add scheduled summary notifications
2026-05-22 23:06:21 +02:00
Christian Krakau-Louis
05b687b525
feat: add notification alert rules
2026-05-22 22:55:49 +02:00
Christian Krakau-Louis
dd4b90c9de
feat: add apprise notification delivery
2026-05-22 22:44:08 +02:00
Christian Krakau-Louis
51f9f303ca
Merge pull request #113 from christianlouis/copilot/fix-imap-client-folder-issue
...
Honor configured IMAP source folder
2026-05-22 22:19:01 +02:00
copilot-swe-agent[bot]
f626675609
fix: honor configured IMAP source folder
2026-05-22 20:06:11 +00:00
Christian Krakau-Louis
eeff24fa5c
fix: redact secret diagnostics
2026-05-22 22:00:28 +02:00
Christian Krakau-Louis
14f9f6defd
feat: add source pass fail rollups
2026-05-22 20:41:34 +02:00
Christian Krakau-Louis
c1b81d3e06
feat: add mail import detail events
2026-05-22 20:11:56 +02:00
Christian Krakau-Louis
b9041012de
feat: persist imported DMARC reports
2026-05-22 19:38:03 +02:00
Christian Krakau-Louis
4fc69602b3
feat: add mail source import history
2026-05-22 19:29:49 +02:00
Christian Krakau-Louis
07b2ea400e
fix: harden DMARC mail import
2026-05-22 19:17:32 +02:00
copilot-swe-agent[bot]
596a9b882e
Fix DKIM selector extraction: show all working selectors and report-discovered selectors
...
- check_dkim now returns ALL matching selectors instead of stopping at first match
- DomainDNSResult.dkim_selectors is now a List[str] instead of a single Optional[str]
- DNSRecordResponse.dkimSelectors is now List[str]
- /selectors endpoint now also returns report_selectors (auto-discovered from DMARC reports)
- Frontend shows all live-check selectors and auto-discovered selectors as read-only
- Updated tests to match new data structures; added tests for multi-selector and report_selectors
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/87d8b8d9-23c3-4d3b-85a3-8e354e62c768
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 23:54:45 +00:00
copilot-swe-agent[bot]
30007d21d6
feat: add rDNS hostname, SPF fix hints and auth tooltips to domain sources view
...
- dns_resolver.py: add _ip_to_arpa_name() helper and lookup_ptr() to
BaseDNSProvider (no-op default), SystemDNSProvider (dnspython PTR),
and CloudflareDNSProvider (DoH PTR type=12)
- domains.py: extend SourceEntry with hostname + spf_fix_hint; update
get_domain_sources to run async PTR lookups and generate ip4:/ip6:
SPF mechanism hints for failing IPs
- domain_details.html: show rDNS hostname below IP in sources table;
add DaisyUI tooltip explaining each auth result; add "Fix SPF" popover
with copy-paste mechanism for IPs that fail SPF
- tests: 15 new tests covering _ip_to_arpa_name, SystemDNSProvider/
CloudflareDNSProvider PTR lookup, and sources endpoint hostname +
fix-hint fields
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/9eaa7749-047c-46bd-8bc0-2851ea02ffe4
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 22:44:18 +00:00
Christian Krakau-Louis
1815747fba
Merge pull request #69 from christianlouis/copilot/debug-not-found-error
...
Fix /reports/{report_id} returning 404 Not Found
2026-03-30 00:27:52 +02:00
Christian Krakau-Louis
8665e39ff4
Merge pull request #70 from christianlouis/copilot/fix-internal-server-error
...
Fix 500 on GET /api/v1/domains/{domain}/sources: wrong record keys in ReportStore
2026-03-30 00:26:51 +02:00
Christian Krakau-Louis
506346537c
Merge pull request #67 from christianlouis/copilot/add-gmail-api-mail-source
...
feat: add Gmail API & main.py helper tests; fix flake8 lint errors
2026-03-30 00:26:28 +02:00
copilot-swe-agent[bot]
af122881a5
Fix /reports/{report_id} returning 404 - add report detail page and API endpoint
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/4a412936-3bf7-4c02-b121-c0c342c34f1b
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 22:18:17 +00:00
copilot-swe-agent[bot]
cd1f82aa79
Fix 500 error in GET /domains/{domain}/sources: use spf_result/dkim_result not spf/dkim
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/59552cb2-df2b-43dd-a22c-bd699a458afb
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 22:17:05 +00:00
copilot-swe-agent[bot]
11daa15335
Fix domain reports and sources API 500 errors
...
- Use begin_timestamp/end_timestamp (Unix ints) instead of begin_date/end_date
(ISO strings) when building ReportEntry, fixing Pydantic int_parsing errors
- Extract policy string from dict (policy["p"]) when the stored value is a dict,
fixing Pydantic string_type validation error
- Rename _days -> days in ReportStore.get_domain_sources() so the endpoint's
`days=days` keyword call no longer raises TypeError
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/15ac3521-e81f-42fa-81a2-f6804a423e1d
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 20:03:43 +00:00
copilot-swe-agent[bot]
0c05ded74f
fix: resolve flake8 C901/F401 errors in main.py, gmail_client.py, test_mail_sources.py
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/38868887-87b6-4032-8713-e90e56ae3318
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 19:50:50 +00:00
copilot-swe-agent[bot]
551d604b8f
fix: address code review - clarify plaintext note, fix misleading template ternary
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/0c63851e-a69a-4a76-8dd8-25618e825b8c
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 19:37:10 +00:00
copilot-swe-agent[bot]
25b3567414
feat: implement Gmail API mail source with OAuth2, ingestion tracking, and UI
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/0c63851e-a69a-4a76-8dd8-25618e825b8c
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 19:34:03 +00:00
Christian Krakau-Louis
298ca938ec
Merge pull request #62 from christianlouis/copilot/check-dns-data-in-dashboard
...
fix: repair corrupted dns_resolver.py to pass black --check (py310 target)
2026-03-29 21:17:25 +02:00
copilot-swe-agent[bot]
087c2b375b
fix: remove stray fragments and duplicate _sanitize_for_log definitions in dns_resolver.py
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/8ad92992-343e-4e81-a830-cd83efcb2437
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 19:06:36 +00:00
Christian Krakau-Louis
a77a89f475
Potential fix for code scanning alert no. 120: Log Injection
...
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-03-29 21:00:04 +02:00
Christian Krakau-Louis
8d5b713bf1
Potential fix for code scanning alert no. 119: Log Injection
...
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-03-29 20:59:52 +02:00
Christian Krakau-Louis
23d5377a50
Potential fix for code scanning alert no. 118: Log Injection
...
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-03-29 20:59:39 +02:00
copilot-swe-agent[bot]
6294e4c935
Fix black formatting in report_store.py
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/f917b2ae-df6c-4852-b3e1-4c7ea8f68996
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 18:58:07 +00:00
copilot-swe-agent[bot]
a04006f75b
fix: address code review — narrow exception types, computed dkimLiveText getter
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/19d17518-732d-4644-889b-cc63256e19b1
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 18:56:08 +00:00
copilot-swe-agent[bot]
0d1a4fdac3
feat: real DNS lookups, manual DKIM selectors, Cloudflare-ready DNS provider architecture
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/19d17518-732d-4644-889b-cc63256e19b1
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 18:53:35 +00:00
copilot-swe-agent[bot]
53d543f49c
Add report deduplication and single-report deletion
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/37d68c2c-7cc8-45e4-bac3-e2e6f1611c6a
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 18:28:52 +00:00
copilot-swe-agent[bot]
0844981bc0
fix: handle XML namespaces in DMARCParser for web.de/gmx.net compatibility
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/56611674-6132-435f-ab36-728464bb9157
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 17:59:13 +00:00
copilot-swe-agent[bot]
84117abd13
fix: resolve CodeQL alerts, improve test coverage, fix StaticPool for HTTP tests
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/07b58025-2aeb-4e81-a168-7a6fccdc3569
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 17:08:39 +00:00
copilot-swe-agent[bot]
f2a015971d
Plan: resolve linter contradictions
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/1e4a1f06-55b9-4040-853e-6aaf9ee574c8
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 11:29:14 +00:00
copilot-swe-agent[bot]
50aa5bd5da
Fix pylint warnings: logging, globals, exceptions, imports, duplicates
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/576427d4-4f6a-46d2-b75f-6862ecbcf526
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 11:21:35 +00:00
copilot-swe-agent[bot]
821d9dc863
fix: apply black formatting to reports.py and dmarc_parser.py
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/b108ee4f-3479-43fa-a9e9-23a697718aa3
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 11:05:07 +00:00
copilot-swe-agent[bot]
271b29186a
Fix flake8 C901 complexity violations and F824 unused global in 5 files
...
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/e58d59de-a79d-48e1-a4fc-ffb61b868593
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-29 10:58:33 +00:00