Christian Krakau-Louis
5eea21c6f2
feat: add MSP workspace operator views
2026-05-23 20:10:30 +02:00
Christian Krakau-Louis
d4f3e1155f
feat: add workspace onboarding templates
2026-05-23 19:56:19 +02:00
Christian Krakau-Louis
d180f984a6
feat: add workspace RBAC audit foundations
2026-05-23 19:38:27 +02:00
Christian Krakau-Louis
b503d9c9fe
feat: add workspace tenant foundations
2026-05-23 19:05:55 +02:00
Christian Krakau-Louis
453a9b7e2a
feat: add ticketing chatops templates
2026-05-23 18:46:18 +02:00
Christian Krakau-Louis
c1b53cf81f
feat: add SIEM integration templates
2026-05-23 18:26:50 +02:00
Christian Krakau-Louis
d61a05bad0
feat: add outbound webhook event framework
2026-05-23 18:11:44 +02:00
Christian Krakau-Louis
e2b95f183d
fix: harden public api token storage
2026-05-23 17:47:13 +02:00
Christian Krakau-Louis
ee663afffb
feat: add scoped read-only public API
2026-05-23 17:39:34 +02:00
Christian Krakau-Louis
6681aa4da0
feat: add BIMI posture readiness checks
2026-05-23 17:05:05 +02:00
Christian Krakau-Louis
00ea392bee
feat: add TLS reporting posture summaries
2026-05-23 16:49:01 +02:00
Christian Krakau-Louis
57e164d282
feat: add mta-sts posture checks
2026-05-23 16:30:05 +02:00
Christian Krakau-Louis
c029574717
feat: define mail connector framework
2026-05-23 15:57:34 +02:00
Christian Krakau-Louis
8556ea30bf
feat: add m365 safe backfill windows
2026-05-23 15:42:52 +02:00
Christian Krakau-Louis
10b0467424
feat: add m365 shared mailbox folder selection
2026-05-23 15:25:52 +02:00
Christian Krakau-Louis
5caefb06db
feat: add Microsoft 365 Graph mail source
2026-05-23 15:06:28 +02:00
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