- New Setting ORM model (key-value store with category, value_type, audit fields)
- Alembic migration to create the settings table
- Settings API endpoints: GET/PUT /api/v1/settings/{key}, GET /api/v1/settings (list+filter), POST /api/v1/settings/bulk
- Default seeding (17 sensible defaults across general/dmarc/dns/cloudflare/notifications categories)
- Secret redaction for cloudflare.api_token and notifications.smtp_password
- Updated settings.html: General, DMARC Policy Defaults, DNS Resolver, Cloudflare Integration, Email Notifications sections
- All forms wired to the API via Alpine.js with flash feedback
- 12 new tests for the settings model and endpoints
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/19dbc6cd-07cb-406e-b3b6-411f7721f737
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add "Delete" button to reports list table (reports.html): clicking
shows a confirmation dialog then calls the existing DELETE API.
On success, the row is removed from the table without a page reload.
Domain filter dropdown is pruned if the domain has no remaining reports.
- Add "Delete Report" button to report detail page (report_detail.html):
clicking shows a confirmation dialog then calls the DELETE API.
On success, redirects to /reports.
The backend DELETE endpoint and re-upload-after-delete (deduplication
exemption) were already in place and covered by existing tests.
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/d6c0078b-9338-49f0-87bd-32238fbde237
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- 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>
- Add `multiple` attribute to file input so users can select/drop
multiple DMARC report files at once
- Remove the manual "Upload Report" button; files start uploading
automatically as soon as they are dropped or selected
- Show a per-file queue with status icons: pending (clock), uploading
(spinner), success (checkmark), error (×) plus a result message
- Sequential upload via a while-loop that processes each pending entry
one at a time; newly-dropped files during an active upload are
picked up automatically on the next iteration
- "Clear all" button removes completed/failed files while keeping any
in-flight upload untouched; individual files can be removed too
- Summary alert after the full batch completes: all-success,
all-error, or mixed
- Use lastIndexOf for robust file-extension extraction
- Updated card description to reflect automatic multi-file upload
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/d6fb5b08-e55f-4f96-ac9b-3e4b69b3945c
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Created main documentation index and user guide with sections on getting started, dashboard overview, managing domains, and reports.
- Added detailed deployment guide for Docker and manual installation.
- Included user-friendly explanations of DMARC, its benefits, and how to manage domains and reports.
- Implemented visual assets for dashboard, domains, IMAP, and reports.
- Established requirements for documentation build using MkDocs and Material theme.
- Integrated navigation structure for easy access to all documentation sections.
- Implemented domain management page with a list of monitored domains and their DMARC, SPF, and DKIM statuses.
- Created reports page with filtering options for domain, report type, and date range, displaying DMARC reports.
- Developed settings page for IMAP configuration and DMARC policy management, including form validation and feedback.
- Added upload page for DMARC report files with drag-and-drop functionality and file type validation.
- Integrated Alpine.js for interactivity and dynamic data handling across all templates.