Commit Graph

36 Commits

Author SHA1 Message Date
copilot-swe-agent[bot] 6329d3aa35 Use timezone-aware UTC datetimes for timestamp conversions
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/ea784ce3-2c1c-45f8-ad6d-46e92cf15ed7

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 15:45:26 +00:00
copilot-swe-agent[bot] e51fbe755e Replace mock dashboard data with real database queries and report-derived timelines
- Replace mock statistics in stats_summarizer.py with real SQLAlchemy queries
  against DMARCReport, ReportRecord, and Domain models
- Replace random compliance timeline in domains.py with real data from ReportStore
- Remove unused `import random` from domains.py
- Add comprehensive tests for StatsSummarizer (global/domain/caching)
- Add tests for compliance timeline (deterministic, multi-report aggregation)
- Mark Dashboard Visualizations as complete in TODO.md

Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/ea784ce3-2c1c-45f8-ad6d-46e92cf15ed7

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 15:43:33 +00:00
semantic-release e09f39954f chore(release): v1.0.4 2026-03-29 15:27:30 +00:00
copilot-swe-agent[bot] 8e6ab244ad fix: remove unused pytest import from test_config.py
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/63e79da9-2002-429a-b696-7147dc579668

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 15:15:46 +00:00
copilot-swe-agent[bot] de4d1b2b34 style: apply black formatting to test_config.py
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/a0201223-b428-496d-90c7-cd268fee7774

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 13:52:28 +00:00
semantic-release e057a9c013 chore(release): v1.0.3 2026-03-29 13:01:35 +00:00
copilot-swe-agent[bot] 9f99b6c6d7 fix: handle empty BACKEND_CORS_ORIGINS env var to prevent JSONDecodeError
In pydantic_settings v2, List[str] fields are JSON-parsed by the env
source before pydantic validators run. When BACKEND_CORS_ORIGINS=""
(empty string) in Kubernetes, json.loads("") raised JSONDecodeError,
crashing alembic migrations.

Fixes:
- Add env_ignore_empty=True to class Config so pydantic_settings skips
  empty-string env vars and falls back to the field default
- Update assemble_cors_origins validator to explicitly handle empty and
  whitespace-only strings (returns []), JSON array strings (parsed via
  json.loads), and filters empty tokens from comma-separated values
- Add backend/app/tests/test_config.py covering all CORS origins
  parsing scenarios including the empty-string regression case

Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/53bb1064-2a32-4691-8397-9d4663bc18a8

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 12:08:59 +00:00
semantic-release ea317bac32 chore(release): v1.0.2 2026-03-29 11:45:17 +00:00
Christian Krakau-Louis e471404538 Merge pull request #27 from christianlouis/copilot/fix-script-location-error
fix: initialize Alembic migrations to resolve container startup failure
2026-03-29 13:44:27 +02:00
copilot-swe-agent[bot] 2192944acf fix: add Alembic migration setup to resolve missing script_location error
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/bfb1bb7e-b0da-45b8-b034-b2331488905e

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 11:37:18 +00:00
copilot-swe-agent[bot] 01d0331136 Resolve linter contradictions: consolidate config, fix isort first-party, pylint 10/10
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:31:15 +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
semantic-release 9b21f5df80 chore(release): v1.0.1 2026-03-29 11:07:04 +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
copilot-swe-agent[bot] 7752479444 plan: add flake8 complexity + unused global fixes to checklist
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:54:05 +00:00
copilot-swe-agent[bot] ccb447f29b Merge origin/main: move AGENTS.md → docs/development/agents.md, add CHANGELOG, VERSION, release workflow
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:48:48 +00:00
copilot-swe-agent[bot] 86e7598f03 Address code review: fix E501 consistency in AGENTS.md, fix exception handling in test_security.py
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/9d256101-34b6-4861-a8cf-7f86f32b54d5

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 10:24:47 +00:00
copilot-swe-agent[bot] bab702a010 Add Docker build & GHCR publish stage, fix CI workflows, update AGENTS.md and testing docs
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/9d256101-34b6-4861-a8cf-7f86f32b54d5

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 10:23:49 +00:00
copilot-swe-agent[bot] 5fa315c8e3 Redesign test framework: fix conftest, rewrite all tests, fix model index conflicts, fix black formatting
Agent-Logs-Url: https://github.com/christianlouis/dmarq/sessions/9d256101-34b6-4861-a8cf-7f86f32b54d5

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-29 10:19:43 +00:00
Christian Krakau-Louis 4d54633923 Merge pull request #19 from christianlouis/fix-imap-credentials-logging-vulnerability-5693644702815765698
🔒 [security] Move IMAP credentials to request body
2026-03-29 12:07:52 +02:00
google-labs-jules[bot] 1831c1a079 🔒 security: move IMAP credentials to request body and fix CI/pylint issues
- Moved IMAP credentials from query parameters to the request body for the test-connection endpoint.
- Created missing `__init__.py` files across `backend/app/` to fix CI `ModuleNotFoundError`.
- Reformatted `setup.py` and `user.py` using `black` to pass lint checks.
- Addressed Pylint warnings in `imap.py` (unused arguments, lazy logging, exception chaining).

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-23 18:57:40 +00:00
google-labs-jules[bot] 34c910e131 🔒 security: move IMAP credentials to request body
Moved IMAP credentials from query parameters to the request body
for the test-connection endpoint to prevent cleartext logging.
Implemented a Pydantic model (IMAPTestRequest) for request body validation.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-23 16:18:16 +00:00
copilot-swe-agent[bot] fdc79eea49 Update CSP directives and add detailed security TODOs
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-09 14:01:37 +00:00
copilot-swe-agent[bot] 0126dc1cf4 Fix XSS vulnerabilities in JavaScript files
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-09 13:59:25 +00:00
copilot-swe-agent[bot] 0e7a01bc5d Address code review feedback
- Fix background_task scope issue (use global consistently)
- Improve IMAP exception handling comment with specific examples
- Move random import to module level with TODO comment
- Add nosec B311 comment for mock data random usage

All code review issues resolved.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-09 12:16:50 +00:00
copilot-swe-agent[bot] 6ae017b142 Fix code formatting and linting issues
- Auto-format all Python files with black and isort
- Remove unused imports with autoflake
- Fix flake8 issues (missing newlines, blank lines, etc.)
- Fix nonlocal/global scope issues in main.py
- Fix security.py import order (E402)
- Remove f-string without placeholders
- Add nosec comment for intentional exception handling
- Fix test imports to match refactored DMARCParser API

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-09 12:08:51 +00:00
copilot-swe-agent[bot] 494ef135d5 Final code review fixes: move import, remove empty tests, add production warning
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-09 11:53:43 +00:00
copilot-swe-agent[bot] 8550799bf8 Address code review feedback: improve XSS prevention, structured errors, API key logging, CSP warnings
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-09 11:51:58 +00:00
copilot-swe-agent[bot] 2e22941927 Update SECURITY.md with completed remediation status and fix bandit warning
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-09 11:48:19 +00:00
copilot-swe-agent[bot] d38934625d Add comprehensive security tests for authentication, validation, and file upload
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-09 11:46:32 +00:00
copilot-swe-agent[bot] 03f4eaf724 Implement critical security fixes: secret management, XML parsing, auth, input validation, security headers
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-02-09 11:43:22 +00:00
Christian Krakau-Louis 5e8b1f033f Add comprehensive documentation for DMARQ, including user guides, deployment instructions, and feature descriptions
- 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.
2025-04-21 01:49:34 +02:00
Christian Krakau-Louis 69f8438a36 Add domain management, reports, settings, and upload templates
- 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.
2025-04-20 18:38:29 +02:00
Christian Krakau-Louis f910cb0ba4 Add initial MVP documentation for DMARQ platform, detailing backend architecture, frontend implementation, and deployment structure 2025-04-17 15:20:42 +02:00