Merge pull request #21 from christianlouis/copilot/clean-up-documentation-and-files
Clean up repo root, add TODO with implementation gap analysis, add semantic release
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
name: Release
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: Semantic Release
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
id-token: write
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
|
||||
- name: Semantic Release
|
||||
uses: python-semantic-release/python-semantic-release@v10
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
changelog: true
|
||||
commit: true
|
||||
tag: true
|
||||
push: true
|
||||
vcs_release: true
|
||||
@@ -0,0 +1,51 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to DMARQ will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Changed
|
||||
- Reorganized repository: moved development docs (`AGENTS.md`, `ROADMAP.md`, `ISSUE_GENERATION_SUMMARY.md`, `generated_issues/`) into `docs/`
|
||||
- Added root-level `CHANGELOG.md` and `TODO.md`
|
||||
- Cleaned up root directory for clarity
|
||||
|
||||
## [0.3.0] - 2026-02-09
|
||||
|
||||
### Added
|
||||
- Database persistence with SQLAlchemy ORM (SQLite and PostgreSQL support)
|
||||
- Database migrations with Alembic
|
||||
- Persistent storage replacing in-memory data store
|
||||
|
||||
### Security
|
||||
- Fixed missing authentication on admin endpoints (CRITICAL)
|
||||
- Replaced default SECRET_KEY with secure auto-generation (CRITICAL)
|
||||
- Replaced ElementTree with defusedxml to prevent XXE attacks (HIGH)
|
||||
- Fixed IMAP credentials exposure in URL query parameters (HIGH)
|
||||
- Added multi-layer file upload validation (HIGH)
|
||||
- Added security headers middleware (CSP, X-Frame-Options, HSTS, etc.) (MEDIUM)
|
||||
- Restricted CORS configuration (MEDIUM)
|
||||
- Sanitized error responses to prevent information disclosure (MEDIUM)
|
||||
- Added comprehensive security test suite
|
||||
|
||||
## [0.2.0] - 2026-01-15
|
||||
|
||||
### Added
|
||||
- IMAP integration for automatic DMARC report fetching
|
||||
- Background task scheduler for periodic mailbox polling
|
||||
- IMAP configuration UI with connection testing
|
||||
- Manual sync trigger and status indicators
|
||||
|
||||
## [0.1.0] - 2025-12-01
|
||||
|
||||
### Added
|
||||
- Initial release of DMARQ
|
||||
- DMARC XML report parsing (supports XML, ZIP, and GZIP formats)
|
||||
- In-memory storage of report data for up to 5 domains
|
||||
- Simple dashboard UI showing DMARC compliance statistics
|
||||
- Report upload via web interface
|
||||
- Domain overview with compliance rates and email statistics
|
||||
- Docker Compose deployment support
|
||||
- FastAPI backend with Jinja2 templates and Tailwind CSS
|
||||
@@ -111,10 +111,13 @@ Then visit [http://localhost:8080](http://localhost:8080)
|
||||
## 🧪 Development Roadmap
|
||||
|
||||
- ✅ **Milestone 1**: Basic DMARC Monitoring (up to 5 domains)
|
||||
- 🔄 **Milestone 2**: Enhanced Visualization & Analysis
|
||||
- 🔜 **Milestone 3**: Database Persistence & User Management
|
||||
- 🔜 **Milestone 4**: Email Integration & Automated Processing
|
||||
- 🔜 **Milestone 5**: DNS Health & Configuration Suggestions
|
||||
- ✅ **Milestone 2**: IMAP Integration
|
||||
- ✅ **Milestone 3**: Database Persistence
|
||||
- 🔜 **Milestone 4**: Enhanced Dashboard & Visualization
|
||||
- 🔜 **Milestone 5**: User Authentication & Multi-User Support
|
||||
|
||||
See the full [Roadmap](docs/development/roadmap.md) and [TODO](TODO.md) for details
|
||||
on what is planned vs. what is currently implemented.
|
||||
|
||||
---
|
||||
|
||||
@@ -126,7 +129,11 @@ MIT License — you are free to use, modify, and host DMARQ for any purpose.
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
Pull requests are welcome! Please open an issue to discuss major features or design ideas before submitting code. Full contributing guide coming soon.
|
||||
Pull requests are welcome! Please open an issue to discuss major features or design ideas before submitting code. See [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
|
||||
|
||||
This project uses [Conventional Commits](https://www.conventionalcommits.org/) and
|
||||
[python-semantic-release](https://python-semantic-release.readthedocs.io/) for
|
||||
automated versioning and changelog generation.
|
||||
|
||||
---
|
||||
|
||||
|
||||
-418
@@ -1,418 +0,0 @@
|
||||
# DMARQ Security-Enhanced Roadmap
|
||||
|
||||
## Document Purpose
|
||||
|
||||
This roadmap outlines the development plan for DMARQ with an enhanced focus on security, code quality, and preparation for agentic coding (AI-assisted development). This document supersedes previous roadmap versions with security milestones integrated throughout.
|
||||
|
||||
**Last Updated**: 2026-02-06
|
||||
**Status**: Active Development
|
||||
|
||||
---
|
||||
|
||||
## Current Status (Milestone 1 - COMPLETE ✅)
|
||||
|
||||
### Achievements
|
||||
- ✅ Basic DMARC report parsing (XML, ZIP, GZIP)
|
||||
- ✅ In-memory storage for up to 5 domains
|
||||
- ✅ Simple dashboard UI
|
||||
- ✅ Report upload functionality
|
||||
- ✅ Domain overview with compliance stats
|
||||
|
||||
### Security Status
|
||||
⚠️ **Multiple critical security issues identified** - See [SECURITY.md](../SECURITY.md) for details
|
||||
|
||||
---
|
||||
|
||||
## Security Remediation Sprint (PRIORITY - In Progress)
|
||||
|
||||
**Timeline**: Immediate (Next 2-4 weeks)
|
||||
**Status**: 🔄 In Progress
|
||||
|
||||
### Critical Fixes Required
|
||||
|
||||
#### 1. Authentication & Authorization (CRITICAL)
|
||||
- [ ] Add authentication middleware to all admin endpoints
|
||||
- [ ] Implement proper user authentication system
|
||||
- [ ] Add authorization checks on sensitive operations
|
||||
- [ ] Add rate limiting to prevent abuse
|
||||
- **Files to Fix**:
|
||||
- `backend/app/main.py` (lines 195-196, 224-225)
|
||||
- `backend/app/api/api_v1/endpoints/imap.py`
|
||||
- `backend/app/api/api_v1/endpoints/domains.py`
|
||||
|
||||
#### 2. Secret Management (CRITICAL)
|
||||
- [ ] Remove default SECRET_KEY value
|
||||
- [ ] Add SECRET_KEY validation on startup
|
||||
- [ ] Document secret generation in deployment guide
|
||||
- [ ] Add warning if default secret is detected
|
||||
- **Files to Fix**:
|
||||
- `backend/app/core/config.py` (line 24)
|
||||
- Documentation updates
|
||||
|
||||
#### 3. XML Parsing Security (HIGH)
|
||||
- [ ] Replace ElementTree with defusedxml
|
||||
- [ ] Add file size limits for uploads
|
||||
- [ ] Implement zip bomb protection
|
||||
- [ ] Add malware scanning hooks (optional)
|
||||
- **Files to Fix**:
|
||||
- `backend/app/services/dmarc_parser.py`
|
||||
|
||||
#### 4. Input Validation (HIGH)
|
||||
- [ ] Add domain name validation regex
|
||||
- [ ] Implement file type validation (MIME + extension)
|
||||
- [ ] Add parameter validation on all endpoints
|
||||
- [ ] Sanitize error messages
|
||||
- **Files to Fix**:
|
||||
- `backend/app/api/api_v1/endpoints/domains.py`
|
||||
- `backend/app/api/api_v1/endpoints/reports.py`
|
||||
- `backend/app/utils/domain_validator.py`
|
||||
|
||||
#### 5. Security Headers (MEDIUM)
|
||||
- [ ] Add security headers middleware
|
||||
- [ ] Implement CSP (Content Security Policy)
|
||||
- [ ] Add X-Frame-Options, X-Content-Type-Options
|
||||
- [ ] Configure HSTS for production
|
||||
- **Files to Create/Modify**:
|
||||
- `backend/app/middleware/security.py` (new)
|
||||
- `backend/app/main.py`
|
||||
|
||||
#### 6. CORS Configuration (MEDIUM)
|
||||
- [ ] Restrict CORS methods and headers
|
||||
- [ ] Remove wildcard configurations
|
||||
- [ ] Document CORS setup for deployments
|
||||
- **Files to Fix**:
|
||||
- `backend/app/main.py` (lines 75-82)
|
||||
|
||||
#### 7. Error Handling (MEDIUM)
|
||||
- [ ] Implement centralized error handling
|
||||
- [ ] Remove sensitive data from error responses
|
||||
- [ ] Add error logging with request context
|
||||
- [ ] Create user-friendly error messages
|
||||
- **Files to Fix**:
|
||||
- Multiple endpoints across API layer
|
||||
|
||||
### Testing & Validation
|
||||
- [ ] Add security-focused unit tests
|
||||
- [ ] Implement integration tests for auth flow
|
||||
- [ ] Add penetration testing checklist
|
||||
- [ ] Document security testing procedures
|
||||
|
||||
### Documentation
|
||||
- [x] Create SECURITY.md
|
||||
- [ ] Update deployment guides with security best practices
|
||||
- [ ] Create security checklist for contributors
|
||||
- [ ] Add security section to API documentation
|
||||
|
||||
---
|
||||
|
||||
## Milestone 2: IMAP Integration (COMPLETE ✅ - Security Review Needed)
|
||||
|
||||
### Current Features
|
||||
- ✅ IMAP connection and mailbox scanning
|
||||
- ✅ Automated report fetching
|
||||
- ✅ Background task scheduler
|
||||
- ✅ Configuration UI
|
||||
|
||||
### Security Enhancements Needed
|
||||
- [ ] **URGENT**: Remove credentials from URL parameters
|
||||
- [ ] Encrypt IMAP credentials at rest
|
||||
- [ ] Add connection timeout and retry logic
|
||||
- [ ] Implement secure credential storage (vault integration)
|
||||
- [ ] Add audit logging for IMAP operations
|
||||
|
||||
---
|
||||
|
||||
## Milestone 3: Database Integration & Persistence (COMPLETE ✅)
|
||||
|
||||
### Current Features
|
||||
- ✅ SQLAlchemy ORM setup
|
||||
- ✅ SQLite/PostgreSQL support
|
||||
- ✅ Database migrations with Alembic
|
||||
- ✅ Persistent storage
|
||||
|
||||
### Security Enhancements Needed
|
||||
- [ ] Add database encryption at rest
|
||||
- [ ] Implement query audit logging
|
||||
- [ ] Add prepared statement validation
|
||||
- [ ] Review and secure database credentials
|
||||
- [ ] Add database backup encryption
|
||||
|
||||
---
|
||||
|
||||
## Milestone 4: Enhanced Dashboard & Visualization (Next - 4-6 weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] Historical trend charts (Chart.js integration)
|
||||
- [ ] Compliance rate visualizations
|
||||
- [ ] Volume and sender analytics
|
||||
- [ ] Time-series data displays
|
||||
- [ ] Domain comparison views
|
||||
|
||||
### Security Considerations
|
||||
- [ ] XSS prevention in chart data
|
||||
- [ ] CSP compatibility with Chart.js
|
||||
- [ ] Rate limiting on analytics endpoints
|
||||
- [ ] Data access controls for multi-user scenarios
|
||||
|
||||
### Implementation
|
||||
- **Priority**: Medium
|
||||
- **Dependencies**: Security Sprint completion
|
||||
- **Estimated Effort**: 2-3 weeks
|
||||
|
||||
---
|
||||
|
||||
## Milestone 5: User Authentication & Multi-User Support (8-10 weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] FastAPI Users integration
|
||||
- [ ] User registration and management
|
||||
- [ ] JWT-based authentication
|
||||
- [ ] Role-based access control (RBAC)
|
||||
- [ ] Password reset functionality
|
||||
- [ ] Email verification (optional)
|
||||
|
||||
### Security Features
|
||||
- [ ] Strong password policy enforcement
|
||||
- [ ] Multi-factor authentication (MFA)
|
||||
- [ ] Session management
|
||||
- [ ] Account lockout on failed attempts
|
||||
- [ ] Security event logging
|
||||
- [ ] GDPR compliance features
|
||||
|
||||
### Implementation Priority
|
||||
- **Priority**: High
|
||||
- **Security Impact**: Critical
|
||||
- **Dependencies**: Security Sprint, Milestone 4
|
||||
|
||||
---
|
||||
|
||||
## Milestone 6: Alerting & Notifications (10-12 weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] Apprise integration
|
||||
- [ ] Customizable alert rules
|
||||
- [ ] Multi-channel notifications (Email, Slack, etc.)
|
||||
- [ ] Alert history and management
|
||||
- [ ] Notification preferences per user
|
||||
|
||||
### Security Features
|
||||
- [ ] Secure webhook handling
|
||||
- [ ] Alert rate limiting
|
||||
- [ ] PII filtering in notifications
|
||||
- [ ] Encrypted notification credentials
|
||||
- [ ] Audit trail for alert configuration
|
||||
|
||||
---
|
||||
|
||||
## Milestone 7: Advanced Rule Engine (14-16 weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] Custom alert conditions
|
||||
- [ ] Threshold-based triggers
|
||||
- [ ] New sender detection
|
||||
- [ ] Anomaly detection
|
||||
- [ ] Scheduled report summaries
|
||||
|
||||
### Security Features
|
||||
- [ ] Rule validation and sandboxing
|
||||
- [ ] Resource limits on rule execution
|
||||
- [ ] Audit logging for rule changes
|
||||
- [ ] Protection against rule abuse
|
||||
|
||||
---
|
||||
|
||||
## Milestone 8: DNS Health & Cloudflare Integration (16-18 weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] DNS record health checks
|
||||
- [ ] SPF/DKIM/DMARC validation
|
||||
- [ ] Cloudflare API integration
|
||||
- [ ] Configuration recommendations
|
||||
- [ ] DNS change tracking
|
||||
|
||||
### Security Features
|
||||
- [ ] Secure API credential storage
|
||||
- [ ] DNS query rate limiting
|
||||
- [ ] DNSSEC validation
|
||||
- [ ] Audit logging for DNS operations
|
||||
- [ ] Read-only DNS access (no auto-changes initially)
|
||||
|
||||
---
|
||||
|
||||
## Milestone 9: Forensic Reports (RUF) Support (20-22 weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] Forensic report parsing
|
||||
- [ ] Failure sample analysis
|
||||
- [ ] PII redaction options
|
||||
- [ ] Detailed authentication failure views
|
||||
- [ ] Sample download/export
|
||||
|
||||
### Security Features
|
||||
- [ ] PII detection and redaction
|
||||
- [ ] Access controls for sensitive data
|
||||
- [ ] Audit logging for forensic data access
|
||||
- [ ] Compliance with privacy regulations
|
||||
- [ ] Secure export with encryption
|
||||
|
||||
---
|
||||
|
||||
## Milestone 10: Advanced Analytics & Reporting (24-26 weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] Historical trend analysis
|
||||
- [ ] Comparative reporting
|
||||
- [ ] Export capabilities (PDF, CSV)
|
||||
- [ ] Scheduled reports
|
||||
- [ ] Custom dashboards
|
||||
|
||||
### Security Features
|
||||
- [ ] Export sanitization
|
||||
- [ ] Watermarking for exported reports
|
||||
- [ ] Access logging for exports
|
||||
- [ ] Encrypted export files
|
||||
|
||||
---
|
||||
|
||||
## Milestone 11: Enterprise Features (28-30+ weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] Multi-tenant architecture
|
||||
- [ ] API rate limiting
|
||||
- [ ] Advanced RBAC
|
||||
- [ ] SSO integration (SAML, OAuth)
|
||||
- [ ] Compliance reporting (SOC 2, GDPR)
|
||||
- [ ] High availability setup
|
||||
- [ ] Backup and disaster recovery
|
||||
|
||||
### Security Features
|
||||
- [ ] Tenant isolation
|
||||
- [ ] Advanced audit logging
|
||||
- [ ] Security event monitoring
|
||||
- [ ] Compliance automation
|
||||
- [ ] Regular security assessments
|
||||
|
||||
---
|
||||
|
||||
## Continuous Improvements (Ongoing)
|
||||
|
||||
### Code Quality
|
||||
- [ ] Maintain >80% test coverage
|
||||
- [ ] Regular dependency updates
|
||||
- [ ] Code review for all changes
|
||||
- [ ] Performance optimization
|
||||
- [ ] Technical debt reduction
|
||||
|
||||
### Security
|
||||
- [ ] Monthly security audits
|
||||
- [ ] Automated vulnerability scanning (GitHub Actions)
|
||||
- [ ] Dependency security monitoring
|
||||
- [ ] Regular penetration testing
|
||||
- [ ] Security training for contributors
|
||||
|
||||
### Documentation
|
||||
- [ ] Keep documentation current
|
||||
- [ ] API documentation completeness
|
||||
- [ ] Security best practices guide
|
||||
- [ ] Deployment playbooks
|
||||
- [ ] Troubleshooting guides
|
||||
|
||||
### Community
|
||||
- [ ] Issue triage and response
|
||||
- [ ] PR review and merging
|
||||
- [ ] Community engagement
|
||||
- [ ] Feature request evaluation
|
||||
- [ ] Bug fix prioritization
|
||||
|
||||
---
|
||||
|
||||
## Security Milestones Integration
|
||||
|
||||
Each development milestone now includes security considerations:
|
||||
|
||||
| Milestone | Security Priority | Key Security Features |
|
||||
|-----------|------------------|----------------------|
|
||||
| Security Sprint | 🔴 Critical | Fix all critical vulnerabilities |
|
||||
| Milestone 4 | 🟡 Medium | XSS prevention, CSP |
|
||||
| Milestone 5 | 🔴 Critical | Authentication, RBAC, MFA |
|
||||
| Milestone 6 | 🟠 High | Secure webhooks, PII filtering |
|
||||
| Milestone 7 | 🟠 High | Rule sandboxing, audit trails |
|
||||
| Milestone 8 | 🟠 High | API security, DNSSEC |
|
||||
| Milestone 9 | 🔴 Critical | PII redaction, compliance |
|
||||
| Milestone 10 | 🟡 Medium | Export security, watermarking |
|
||||
| Milestone 11 | 🔴 Critical | Enterprise security, SOC 2 |
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
### Functional
|
||||
- All planned features implemented
|
||||
- Performance meets requirements
|
||||
- User experience is intuitive
|
||||
- Documentation is complete
|
||||
|
||||
### Security
|
||||
- Zero critical vulnerabilities
|
||||
- All high-severity issues resolved
|
||||
- Security tests pass
|
||||
- Regular security audits pass
|
||||
- Compliance requirements met
|
||||
|
||||
### Quality
|
||||
- >80% code coverage
|
||||
- All tests passing
|
||||
- No critical bugs
|
||||
- Performance benchmarks met
|
||||
- Code review approval
|
||||
|
||||
---
|
||||
|
||||
## Risk Management
|
||||
|
||||
### Technical Risks
|
||||
- **Risk**: Complex security implementations
|
||||
- **Mitigation**: Incremental approach, expert review
|
||||
- **Risk**: Performance degradation with security features
|
||||
- **Mitigation**: Performance testing, optimization
|
||||
|
||||
### Resource Risks
|
||||
- **Risk**: Limited security expertise
|
||||
- **Mitigation**: External security audits, community review
|
||||
- **Risk**: Time constraints for security work
|
||||
- **Mitigation**: Prioritize critical issues first
|
||||
|
||||
### Operational Risks
|
||||
- **Risk**: Breaking changes with security fixes
|
||||
- **Mitigation**: Thorough testing, clear documentation
|
||||
- **Risk**: User adoption of security features
|
||||
- **Mitigation**: Clear communication, good UX
|
||||
|
||||
---
|
||||
|
||||
## Contributing to This Roadmap
|
||||
|
||||
This roadmap is a living document. To contribute:
|
||||
|
||||
1. Review current milestones and status
|
||||
2. Propose changes via GitHub Issues
|
||||
3. Discuss in community forums
|
||||
4. Submit PRs for roadmap updates
|
||||
5. Participate in planning discussions
|
||||
|
||||
See [CONTRIBUTING.md](../CONTRIBUTING.md) for detailed guidelines.
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- [SECURITY.md](../SECURITY.md) - Security policy and vulnerability reporting
|
||||
- [CONTRIBUTING.md](../CONTRIBUTING.md) - Contribution guidelines
|
||||
- [AGENTS.md](../AGENTS.md) - AI-assisted development guidelines
|
||||
- [docs/milestones.md](milestones.md) - Detailed milestone specifications
|
||||
- [docs/todo.md](todo.md) - Detailed task tracking
|
||||
|
||||
---
|
||||
|
||||
**Maintained by**: DMARQ Development Team
|
||||
**Contact**: See [SECURITY.md](../SECURITY.md) for contact information
|
||||
@@ -0,0 +1,164 @@
|
||||
# TODO
|
||||
|
||||
This file tracks the delta between what the documentation promises and what is
|
||||
actually implemented in the codebase. Use it as a guide for future development.
|
||||
|
||||
For the full development roadmap, see [docs/development/roadmap.md](docs/development/roadmap.md).
|
||||
For detailed milestone specifications, see [docs/milestones.md](docs/milestones.md).
|
||||
|
||||
---
|
||||
|
||||
## Implemented (Working)
|
||||
|
||||
These features are documented and confirmed working in the codebase:
|
||||
|
||||
- [x] **DMARC Aggregate Report Parsing** — XML, ZIP, and GZIP formats supported
|
||||
via `defusedxml` (`backend/app/services/dmarc_parser.py`)
|
||||
- [x] **Database Persistence** — SQLAlchemy ORM with SQLite and PostgreSQL support,
|
||||
Alembic migrations (`backend/app/core/database.py`, `backend/app/models/`)
|
||||
- [x] **Report Upload** — Web interface for uploading DMARC reports with multi-layer
|
||||
file validation (`backend/app/api/api_v1/endpoints/reports.py`)
|
||||
- [x] **IMAP Integration** — Auto-fetch reports from mailbox with background
|
||||
scheduler (`backend/app/services/imap_client.py`)
|
||||
- [x] **Basic Dashboard** — Domain overview with compliance stats, Chart.js
|
||||
visualizations on domain detail page (`backend/app/templates/`)
|
||||
- [x] **Security Hardening** — Authentication middleware, security headers (CSP,
|
||||
HSTS, X-Frame-Options), defusedxml for XXE protection, restricted CORS,
|
||||
sanitized error responses (`backend/app/middleware/security.py`,
|
||||
`backend/app/core/security.py`)
|
||||
- [x] **Docker Deployment** — Docker Compose setup for production deployment
|
||||
(`docker-compose.yml`, `backend/Dockerfile`)
|
||||
- [x] **Setup Wizard** — Basic guided onboarding endpoints, though in-memory only
|
||||
(`backend/app/api/api_v1/endpoints/setup.py`)
|
||||
|
||||
---
|
||||
|
||||
## Documented but NOT Implemented
|
||||
|
||||
The following features are described in the README, documentation, or roadmap but
|
||||
have no working implementation in the codebase yet.
|
||||
|
||||
### Cloudflare Integration
|
||||
- **Documented in**: README.md ("Cloudflare-integrated"), docs/development/roadmap.md (Milestone 8)
|
||||
- **Current state**: Configuration variables exist in `backend/app/core/config.py`
|
||||
(`CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ZONE_ID`) but no functional code uses them.
|
||||
- [ ] Automatic domain discovery from Cloudflare account
|
||||
- [ ] Fetch and analyze DNS records via Cloudflare API
|
||||
- [ ] Suggest missing or malformed DNS entries
|
||||
- [ ] Track configuration changes over time
|
||||
|
||||
### Alerts & Notifications (Apprise)
|
||||
- **Documented in**: README.md ("Integration with Apprise"), docs/development/roadmap.md (Milestone 6)
|
||||
- **Current state**: `apprise>=1.4.5` is listed in `backend/requirements.txt` but
|
||||
is never imported or used anywhere in the codebase.
|
||||
- [ ] Apprise integration for multi-channel notifications
|
||||
- [ ] Email, Slack, webhook alert delivery
|
||||
- [ ] Alert on new failures, compliance drops, or unknown senders
|
||||
- [ ] Customizable alert rules and notification preferences
|
||||
- [ ] Alert history and management
|
||||
|
||||
### Forensic Reports (RFC 6591)
|
||||
- **Documented in**: README.md ("Forensic Reports: Analyze failure samples (RFC 6591 support)")
|
||||
- **Current state**: The DMARC parser (`backend/app/services/dmarc_parser.py`) only
|
||||
handles aggregate reports. There is no forensic report parsing, UI, or storage.
|
||||
- [ ] Forensic report parsing
|
||||
- [ ] Failure sample analysis
|
||||
- [ ] PII redaction options
|
||||
- [ ] Detailed authentication failure views
|
||||
|
||||
### DNS Record Health Checks
|
||||
- **Documented in**: README.md ("Inspect SPF, DKIM, DMARC, MX, and BIMI records"),
|
||||
docs/development/roadmap.md (Milestone 8)
|
||||
- **Current state**: The `/api/v1/domains/{domain_id}/dns` endpoint
|
||||
(`backend/app/api/api_v1/endpoints/domains.py`) returns hardcoded mock data.
|
||||
`dnspython>=2.3.0` is in `requirements.txt` but is never imported or used.
|
||||
- [ ] Real DNS lookups for SPF, DKIM, DMARC, and MX records
|
||||
- [ ] BIMI record support (zero code exists)
|
||||
- [ ] Identify missing, broken, or invalid records
|
||||
- [ ] Provider-specific fix suggestions (Google, Microsoft, etc.)
|
||||
- [ ] DNSSEC validation
|
||||
|
||||
### User Authentication & Multi-User Support
|
||||
- **Documented in**: README.md ("Built-in authentication via FastAPI Users"),
|
||||
docs/development/roadmap.md (Milestone 5)
|
||||
- **Current state**: A `User` model exists (`backend/app/models/user.py`) and
|
||||
`fastapi-users[sqlalchemy]` is in requirements, but FastAPI-Users is never wired
|
||||
up. There are no registration, login, or password-reset endpoints. Admin auth is
|
||||
API-key based only.
|
||||
- [ ] User registration and login endpoints
|
||||
- [ ] JWT-based session authentication for end users
|
||||
- [ ] Password reset functionality
|
||||
- [ ] Role-based access control (RBAC) per domain
|
||||
- [ ] Multi-factor authentication (MFA)
|
||||
- [ ] Email verification
|
||||
|
||||
### Dashboard Visualizations (Real Data)
|
||||
- **Documented in**: README.md ("Track pass/fail rates over time", "Volume & Trends")
|
||||
- **Current state**: The stats endpoints (`backend/app/utils/stats_summarizer.py`,
|
||||
`backend/app/api/api_v1/endpoints/domains.py`) return mock/random data with TODO
|
||||
comments like `# For now, mock statistics` and `# TODO: Replace with actual
|
||||
historical data`. Chart.js is integrated in templates but fed with mock data.
|
||||
- [ ] Historical trend charts with real data
|
||||
- [ ] Compliance rate visualizations from actual reports
|
||||
- [ ] Volume and sender analytics based on stored data
|
||||
- [ ] Time-series data from database
|
||||
- [ ] Domain comparison views
|
||||
|
||||
### Advanced Rule Engine
|
||||
- **Documented in**: docs/development/roadmap.md (Milestone 7)
|
||||
- **Current state**: Not implemented at all.
|
||||
- [ ] Custom alert conditions
|
||||
- [ ] Threshold-based triggers
|
||||
- [ ] New sender detection
|
||||
- [ ] Anomaly detection
|
||||
|
||||
### Advanced Analytics & Reporting
|
||||
- **Documented in**: docs/development/roadmap.md (Milestone 10)
|
||||
- **Current state**: Not implemented at all.
|
||||
- [ ] Historical trend analysis
|
||||
- [ ] Comparative reporting
|
||||
- [ ] Export capabilities (PDF, CSV)
|
||||
- [ ] Scheduled reports
|
||||
- [ ] Custom dashboards
|
||||
|
||||
### Enterprise Features
|
||||
- **Documented in**: docs/development/roadmap.md (Milestone 11)
|
||||
- **Current state**: Not implemented at all.
|
||||
- [ ] Multi-tenant architecture
|
||||
- [ ] API rate limiting (beyond basic)
|
||||
- [ ] Advanced RBAC
|
||||
- [ ] SSO integration (SAML, OAuth)
|
||||
- [ ] Compliance reporting (SOC 2, GDPR)
|
||||
|
||||
### Real-Time Features
|
||||
- **Documented in**: README.md ("real-time insights")
|
||||
- **Current state**: No WebSocket or real-time push functionality exists.
|
||||
- [ ] WebSocket or SSE for live dashboard updates
|
||||
|
||||
---
|
||||
|
||||
## Partially Implemented
|
||||
|
||||
### Setup Wizard
|
||||
- **Status**: Endpoints exist (`/api/v1/setup/status`, `/api/v1/setup/admin`,
|
||||
`/api/v1/setup/system`) but store data in memory only. Not persisted to database.
|
||||
- [ ] Persist setup configuration to database
|
||||
- [ ] Complete guided onboarding flow in the UI
|
||||
|
||||
### IMAP Credential Security
|
||||
- **Status**: IMAP integration works but credential storage needs improvement.
|
||||
- [ ] Encrypt IMAP credentials at rest
|
||||
- [ ] Add vault integration for secure credential storage
|
||||
- [ ] Audit logging for IMAP operations
|
||||
|
||||
---
|
||||
|
||||
## Housekeeping
|
||||
|
||||
- [ ] Remove unused `apprise` from `requirements.txt` or implement alerts
|
||||
- [ ] Remove unused `dnspython` from `requirements.txt` or implement DNS checks
|
||||
- [ ] Remove or wire up `fastapi-users` (currently installed but unused)
|
||||
- [ ] Replace mock data in stats endpoints with real database queries
|
||||
- [ ] Replace mock DNS data with actual DNS lookups
|
||||
- [ ] Add CI/CD pipeline
|
||||
- [ ] Reach >80% test coverage
|
||||
@@ -0,0 +1,3 @@
|
||||
"""DMARQ - DMARC monitoring and analysis platform."""
|
||||
|
||||
__version__ = "0.3.0"
|
||||
|
||||
+39
-41
@@ -5,47 +5,45 @@ All notable changes to DMARQ will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.0.0] - 2025-04-15
|
||||
This changelog is automatically maintained by
|
||||
[python-semantic-release](https://python-semantic-release.readthedocs.io/).
|
||||
See the root [CHANGELOG.md](https://github.com/christianlouis/dmarq/blob/main/CHANGELOG.md)
|
||||
for the canonical version.
|
||||
|
||||
## [0.3.0] - 2026-02-09
|
||||
|
||||
### Added
|
||||
- Database persistence with SQLAlchemy ORM (SQLite and PostgreSQL support)
|
||||
- Database migrations with Alembic
|
||||
- Persistent storage replacing in-memory data store
|
||||
|
||||
### Security
|
||||
- Fixed missing authentication on admin endpoints (CRITICAL)
|
||||
- Replaced default SECRET_KEY with secure auto-generation (CRITICAL)
|
||||
- Replaced ElementTree with defusedxml to prevent XXE attacks (HIGH)
|
||||
- Fixed IMAP credentials exposure in URL query parameters (HIGH)
|
||||
- Added multi-layer file upload validation (HIGH)
|
||||
- Added security headers middleware (CSP, X-Frame-Options, HSTS, etc.) (MEDIUM)
|
||||
- Restricted CORS configuration (MEDIUM)
|
||||
- Sanitized error responses to prevent information disclosure (MEDIUM)
|
||||
- Added comprehensive security test suite
|
||||
|
||||
## [0.2.0] - 2026-01-15
|
||||
|
||||
### Added
|
||||
- IMAP integration for automatic DMARC report fetching
|
||||
- Background task scheduler for periodic mailbox polling
|
||||
- IMAP configuration UI with connection testing
|
||||
- Manual sync trigger and status indicators
|
||||
|
||||
## [0.1.0] - 2025-12-01
|
||||
|
||||
### Added
|
||||
- Initial release of DMARQ
|
||||
- Domain management with basic health checks
|
||||
- DMARC report processing (aggregate and forensic)
|
||||
- Dashboard with compliance rate visualization
|
||||
- IMAP integration for automatic report collection
|
||||
- User authentication and management
|
||||
- SQLite and PostgreSQL database support
|
||||
- Docker deployment option
|
||||
- Basic alert system for compliance issues
|
||||
- API for third-party integration
|
||||
- Documentation site
|
||||
|
||||
### Security
|
||||
- Secure password storage with bcrypt
|
||||
- JWT-based authentication for API
|
||||
- Rate limiting for API endpoints
|
||||
- Input validation for all user inputs
|
||||
|
||||
## [0.9.0] - 2025-03-01
|
||||
|
||||
### Added
|
||||
- Beta release for early testing
|
||||
- All core functionality implemented
|
||||
- Limited to SQLite database only
|
||||
|
||||
### Fixed
|
||||
- Multiple parser bugs for different report formats
|
||||
- UI responsiveness issues on mobile devices
|
||||
|
||||
## [0.8.0] - 2025-02-15
|
||||
|
||||
### Added
|
||||
- Alpha release for internal testing
|
||||
- Basic DMARC report parsing
|
||||
- Simple domain management
|
||||
- Initial dashboard design
|
||||
|
||||
### Known Issues
|
||||
- Limited support for forensic reports
|
||||
- Missing authentication features
|
||||
- No alerting capabilities
|
||||
- DMARC XML report parsing (supports XML, ZIP, and GZIP formats)
|
||||
- In-memory storage of report data for up to 5 domains
|
||||
- Simple dashboard UI showing DMARC compliance statistics
|
||||
- Report upload via web interface
|
||||
- Domain overview with compliance rates and email statistics
|
||||
- Docker Compose deployment support
|
||||
- FastAPI backend with Jinja2 templates and Tailwind CSS
|
||||
@@ -188,8 +188,8 @@ jq '.[] | select(.labels[] | contains("priority: high"))' issues.json
|
||||
|
||||
## 📞 Support
|
||||
|
||||
- **Source**: Generated from [ROADMAP.md](../ROADMAP.md)
|
||||
- **Script**: [scripts/generate_issues.py](../scripts/generate_issues.py)
|
||||
- **Source**: Generated from [roadmap.md](../roadmap.md)
|
||||
- **Script**: [scripts/generate_issues.py](../../../scripts/generate_issues.py)
|
||||
- **Questions**: Open an issue in the DMARQ repository
|
||||
|
||||
## 🔒 Important Notes
|
||||
@@ -1,7 +1,7 @@
|
||||
[
|
||||
{
|
||||
"title": "[Security Sprint] Authentication & Authorization",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **CRITICAL**\n\n### Tasks\n\n- [ ] Add authentication middleware to all admin endpoints\n- [ ] Implement proper user authentication system\n- [ ] Add authorization checks on sensitive operations\n- [ ] Add rate limiting to prevent abuse\n\n### Files to Update\n\n- `backend/app/main.py`\n- `backend/app/api/api_v1/endpoints/imap.py`\n- `backend/app/api/api_v1/endpoints/domains.py`\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **CRITICAL**\n\n### Tasks\n\n- [ ] Add authentication middleware to all admin endpoints\n- [ ] Implement proper user authentication system\n- [ ] Add authorization checks on sensitive operations\n- [ ] Add rate limiting to prevent abuse\n\n### Files to Update\n\n- `backend/app/main.py`\n- `backend/app/api/api_v1/endpoints/imap.py`\n- `backend/app/api/api_v1/endpoints/domains.py`\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"security",
|
||||
"priority: critical",
|
||||
@@ -12,7 +12,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[Security Sprint] Secret Management",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **CRITICAL**\n\n### Tasks\n\n- [ ] Remove default SECRET_KEY value\n- [ ] Add SECRET_KEY validation on startup\n- [ ] Document secret generation in deployment guide\n- [ ] Add warning if default secret is detected\n\n### Files to Update\n\n- `backend/app/core/config.py`\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **CRITICAL**\n\n### Tasks\n\n- [ ] Remove default SECRET_KEY value\n- [ ] Add SECRET_KEY validation on startup\n- [ ] Document secret generation in deployment guide\n- [ ] Add warning if default secret is detected\n\n### Files to Update\n\n- `backend/app/core/config.py`\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"security",
|
||||
"priority: critical",
|
||||
@@ -23,7 +23,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[Security Sprint] XML Parsing Security",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **HIGH**\n\n### Tasks\n\n- [ ] Replace ElementTree with defusedxml\n- [ ] Add file size limits for uploads\n- [ ] Implement zip bomb protection\n- [ ] Add malware scanning hooks (optional)\n\n### Files to Update\n\n- `backend/app/services/dmarc_parser.py`\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **HIGH**\n\n### Tasks\n\n- [ ] Replace ElementTree with defusedxml\n- [ ] Add file size limits for uploads\n- [ ] Implement zip bomb protection\n- [ ] Add malware scanning hooks (optional)\n\n### Files to Update\n\n- `backend/app/services/dmarc_parser.py`\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"security",
|
||||
"priority: high",
|
||||
@@ -34,7 +34,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[Security Sprint] Input Validation",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **HIGH**\n\n### Tasks\n\n- [ ] Add domain name validation regex\n- [ ] Implement file type validation (MIME + extension)\n- [ ] Add parameter validation on all endpoints\n- [ ] Sanitize error messages\n\n### Files to Update\n\n- `backend/app/api/api_v1/endpoints/domains.py`\n- `backend/app/api/api_v1/endpoints/reports.py`\n- `backend/app/utils/domain_validator.py`\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **HIGH**\n\n### Tasks\n\n- [ ] Add domain name validation regex\n- [ ] Implement file type validation (MIME + extension)\n- [ ] Add parameter validation on all endpoints\n- [ ] Sanitize error messages\n\n### Files to Update\n\n- `backend/app/api/api_v1/endpoints/domains.py`\n- `backend/app/api/api_v1/endpoints/reports.py`\n- `backend/app/utils/domain_validator.py`\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"security",
|
||||
"priority: high",
|
||||
@@ -45,7 +45,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[Security Sprint] Security Headers",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **MEDIUM**\n\n### Tasks\n\n- [ ] Add security headers middleware\n- [ ] Implement CSP (Content Security Policy)\n- [ ] Add X-Frame-Options, X-Content-Type-Options\n- [ ] Configure HSTS for production\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **MEDIUM**\n\n### Tasks\n\n- [ ] Add security headers middleware\n- [ ] Implement CSP (Content Security Policy)\n- [ ] Add X-Frame-Options, X-Content-Type-Options\n- [ ] Configure HSTS for production\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"security",
|
||||
"priority: medium"
|
||||
@@ -55,7 +55,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[Security Sprint] CORS Configuration",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **MEDIUM**\n\n### Tasks\n\n- [ ] Restrict CORS methods and headers\n- [ ] Remove wildcard configurations\n- [ ] Document CORS setup for deployments\n\n### Files to Update\n\n- `backend/app/main.py`\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **MEDIUM**\n\n### Tasks\n\n- [ ] Restrict CORS methods and headers\n- [ ] Remove wildcard configurations\n- [ ] Document CORS setup for deployments\n\n### Files to Update\n\n- `backend/app/main.py`\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"security",
|
||||
"priority: medium"
|
||||
@@ -65,7 +65,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[Security Sprint] Error Handling",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **MEDIUM**\n\n### Tasks\n\n- [ ] Implement centralized error handling\n- [ ] Remove sensitive data from error responses\n- [ ] Add error logging with request context\n- [ ] Create user-friendly error messages\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nPart of the **Security Remediation Sprint** - Priority: **MEDIUM**\n\n### Tasks\n\n- [ ] Implement centralized error handling\n- [ ] Remove sensitive data from error responses\n- [ ] Add error logging with request context\n- [ ] Create user-friendly error messages\n\n### Related Documentation\n\n- [SECURITY.md](../SECURITY.md)\n- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"security",
|
||||
"priority: medium"
|
||||
@@ -75,7 +75,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M4] Historical trend charts (Chart.js integration)",
|
||||
"body": "## Description\n\nFeature for **Milestone 4: Enhanced Dashboard & Visualization**\n\n**Timeline**: Next - 4-6 weeks\n\n### Feature\nHistorical trend charts (Chart.js integration)\n\n### Related Documentation\n\n- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 4: Enhanced Dashboard & Visualization**\n\n**Timeline**: Next - 4-6 weeks\n\n### Feature\nHistorical trend charts (Chart.js integration)\n\n### Related Documentation\n\n- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-4",
|
||||
@@ -86,7 +86,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M4] Compliance rate visualizations",
|
||||
"body": "## Description\n\nFeature for **Milestone 4: Enhanced Dashboard & Visualization**\n\n**Timeline**: Next - 4-6 weeks\n\n### Feature\nCompliance rate visualizations\n\n### Related Documentation\n\n- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 4: Enhanced Dashboard & Visualization**\n\n**Timeline**: Next - 4-6 weeks\n\n### Feature\nCompliance rate visualizations\n\n### Related Documentation\n\n- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-4",
|
||||
@@ -97,7 +97,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M4] Volume and sender analytics",
|
||||
"body": "## Description\n\nFeature for **Milestone 4: Enhanced Dashboard & Visualization**\n\n**Timeline**: Next - 4-6 weeks\n\n### Feature\nVolume and sender analytics\n\n### Related Documentation\n\n- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 4: Enhanced Dashboard & Visualization**\n\n**Timeline**: Next - 4-6 weeks\n\n### Feature\nVolume and sender analytics\n\n### Related Documentation\n\n- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-4",
|
||||
@@ -108,7 +108,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M4] Time-series data displays",
|
||||
"body": "## Description\n\nFeature for **Milestone 4: Enhanced Dashboard & Visualization**\n\n**Timeline**: Next - 4-6 weeks\n\n### Feature\nTime-series data displays\n\n### Related Documentation\n\n- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 4: Enhanced Dashboard & Visualization**\n\n**Timeline**: Next - 4-6 weeks\n\n### Feature\nTime-series data displays\n\n### Related Documentation\n\n- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-4",
|
||||
@@ -119,7 +119,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M4] Domain comparison views",
|
||||
"body": "## Description\n\nFeature for **Milestone 4: Enhanced Dashboard & Visualization**\n\n**Timeline**: Next - 4-6 weeks\n\n### Feature\nDomain comparison views\n\n### Related Documentation\n\n- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 4: Enhanced Dashboard & Visualization**\n\n**Timeline**: Next - 4-6 weeks\n\n### Feature\nDomain comparison views\n\n### Related Documentation\n\n- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-4",
|
||||
@@ -130,7 +130,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M5] FastAPI Users integration",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nFastAPI Users integration\n\n### Related Documentation\n\n- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nFastAPI Users integration\n\n### Related Documentation\n\n- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-5",
|
||||
@@ -141,7 +141,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M5] User registration and management",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nUser registration and management\n\n### Related Documentation\n\n- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nUser registration and management\n\n### Related Documentation\n\n- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-5",
|
||||
@@ -152,7 +152,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M5] JWT-based authentication",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nJWT-based authentication\n\n### Related Documentation\n\n- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nJWT-based authentication\n\n### Related Documentation\n\n- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-5",
|
||||
@@ -163,7 +163,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M5] Role-based access control (RBAC)",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nRole-based access control (RBAC)\n\n### Related Documentation\n\n- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nRole-based access control (RBAC)\n\n### Related Documentation\n\n- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-5",
|
||||
@@ -174,7 +174,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M5] Password reset functionality",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nPassword reset functionality\n\n### Related Documentation\n\n- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nPassword reset functionality\n\n### Related Documentation\n\n- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-5",
|
||||
@@ -185,7 +185,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M5] Email verification (optional)",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nEmail verification (optional)\n\n### Related Documentation\n\n- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 5: User Authentication & Multi-User Support**\n\n**Timeline**: 8-10 weeks\n\n### Feature\nEmail verification (optional)\n\n### Related Documentation\n\n- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-5",
|
||||
@@ -196,7 +196,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M6] Apprise integration",
|
||||
"body": "## Description\n\nFeature for **Milestone 6: Alerting & Notifications**\n\n**Timeline**: 10-12 weeks\n\n### Feature\nApprise integration\n\n### Related Documentation\n\n- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 6: Alerting & Notifications**\n\n**Timeline**: 10-12 weeks\n\n### Feature\nApprise integration\n\n### Related Documentation\n\n- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-6",
|
||||
@@ -207,7 +207,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M6] Customizable alert rules",
|
||||
"body": "## Description\n\nFeature for **Milestone 6: Alerting & Notifications**\n\n**Timeline**: 10-12 weeks\n\n### Feature\nCustomizable alert rules\n\n### Related Documentation\n\n- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 6: Alerting & Notifications**\n\n**Timeline**: 10-12 weeks\n\n### Feature\nCustomizable alert rules\n\n### Related Documentation\n\n- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-6",
|
||||
@@ -218,7 +218,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M6] Multi-channel notifications (Email, Slack, etc.)",
|
||||
"body": "## Description\n\nFeature for **Milestone 6: Alerting & Notifications**\n\n**Timeline**: 10-12 weeks\n\n### Feature\nMulti-channel notifications (Email, Slack, etc.)\n\n### Related Documentation\n\n- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 6: Alerting & Notifications**\n\n**Timeline**: 10-12 weeks\n\n### Feature\nMulti-channel notifications (Email, Slack, etc.)\n\n### Related Documentation\n\n- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-6",
|
||||
@@ -229,7 +229,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M6] Alert history and management",
|
||||
"body": "## Description\n\nFeature for **Milestone 6: Alerting & Notifications**\n\n**Timeline**: 10-12 weeks\n\n### Feature\nAlert history and management\n\n### Related Documentation\n\n- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 6: Alerting & Notifications**\n\n**Timeline**: 10-12 weeks\n\n### Feature\nAlert history and management\n\n### Related Documentation\n\n- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-6",
|
||||
@@ -240,7 +240,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M6] Notification preferences per user",
|
||||
"body": "## Description\n\nFeature for **Milestone 6: Alerting & Notifications**\n\n**Timeline**: 10-12 weeks\n\n### Feature\nNotification preferences per user\n\n### Related Documentation\n\n- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 6: Alerting & Notifications**\n\n**Timeline**: 10-12 weeks\n\n### Feature\nNotification preferences per user\n\n### Related Documentation\n\n- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-6",
|
||||
@@ -251,7 +251,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M7] Custom alert conditions",
|
||||
"body": "## Description\n\nFeature for **Milestone 7: Advanced Rule Engine**\n\n**Timeline**: 14-16 weeks\n\n### Feature\nCustom alert conditions\n\n### Related Documentation\n\n- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 7: Advanced Rule Engine**\n\n**Timeline**: 14-16 weeks\n\n### Feature\nCustom alert conditions\n\n### Related Documentation\n\n- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-7",
|
||||
@@ -262,7 +262,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M7] Threshold-based triggers",
|
||||
"body": "## Description\n\nFeature for **Milestone 7: Advanced Rule Engine**\n\n**Timeline**: 14-16 weeks\n\n### Feature\nThreshold-based triggers\n\n### Related Documentation\n\n- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 7: Advanced Rule Engine**\n\n**Timeline**: 14-16 weeks\n\n### Feature\nThreshold-based triggers\n\n### Related Documentation\n\n- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-7",
|
||||
@@ -273,7 +273,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M7] New sender detection",
|
||||
"body": "## Description\n\nFeature for **Milestone 7: Advanced Rule Engine**\n\n**Timeline**: 14-16 weeks\n\n### Feature\nNew sender detection\n\n### Related Documentation\n\n- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 7: Advanced Rule Engine**\n\n**Timeline**: 14-16 weeks\n\n### Feature\nNew sender detection\n\n### Related Documentation\n\n- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-7",
|
||||
@@ -284,7 +284,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M7] Anomaly detection",
|
||||
"body": "## Description\n\nFeature for **Milestone 7: Advanced Rule Engine**\n\n**Timeline**: 14-16 weeks\n\n### Feature\nAnomaly detection\n\n### Related Documentation\n\n- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 7: Advanced Rule Engine**\n\n**Timeline**: 14-16 weeks\n\n### Feature\nAnomaly detection\n\n### Related Documentation\n\n- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-7",
|
||||
@@ -295,7 +295,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M7] Scheduled report summaries",
|
||||
"body": "## Description\n\nFeature for **Milestone 7: Advanced Rule Engine**\n\n**Timeline**: 14-16 weeks\n\n### Feature\nScheduled report summaries\n\n### Related Documentation\n\n- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 7: Advanced Rule Engine**\n\n**Timeline**: 14-16 weeks\n\n### Feature\nScheduled report summaries\n\n### Related Documentation\n\n- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-7",
|
||||
@@ -306,7 +306,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M8] DNS record health checks",
|
||||
"body": "## Description\n\nFeature for **Milestone 8: DNS Health & Cloudflare Integration**\n\n**Timeline**: 16-18 weeks\n\n### Feature\nDNS record health checks\n\n### Related Documentation\n\n- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 8: DNS Health & Cloudflare Integration**\n\n**Timeline**: 16-18 weeks\n\n### Feature\nDNS record health checks\n\n### Related Documentation\n\n- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-8",
|
||||
@@ -317,7 +317,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M8] SPF/DKIM/DMARC validation",
|
||||
"body": "## Description\n\nFeature for **Milestone 8: DNS Health & Cloudflare Integration**\n\n**Timeline**: 16-18 weeks\n\n### Feature\nSPF/DKIM/DMARC validation\n\n### Related Documentation\n\n- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 8: DNS Health & Cloudflare Integration**\n\n**Timeline**: 16-18 weeks\n\n### Feature\nSPF/DKIM/DMARC validation\n\n### Related Documentation\n\n- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-8",
|
||||
@@ -328,7 +328,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M8] Cloudflare API integration",
|
||||
"body": "## Description\n\nFeature for **Milestone 8: DNS Health & Cloudflare Integration**\n\n**Timeline**: 16-18 weeks\n\n### Feature\nCloudflare API integration\n\n### Related Documentation\n\n- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 8: DNS Health & Cloudflare Integration**\n\n**Timeline**: 16-18 weeks\n\n### Feature\nCloudflare API integration\n\n### Related Documentation\n\n- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-8",
|
||||
@@ -339,7 +339,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M8] Configuration recommendations",
|
||||
"body": "## Description\n\nFeature for **Milestone 8: DNS Health & Cloudflare Integration**\n\n**Timeline**: 16-18 weeks\n\n### Feature\nConfiguration recommendations\n\n### Related Documentation\n\n- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 8: DNS Health & Cloudflare Integration**\n\n**Timeline**: 16-18 weeks\n\n### Feature\nConfiguration recommendations\n\n### Related Documentation\n\n- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-8",
|
||||
@@ -350,7 +350,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M8] DNS change tracking",
|
||||
"body": "## Description\n\nFeature for **Milestone 8: DNS Health & Cloudflare Integration**\n\n**Timeline**: 16-18 weeks\n\n### Feature\nDNS change tracking\n\n### Related Documentation\n\n- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 8: DNS Health & Cloudflare Integration**\n\n**Timeline**: 16-18 weeks\n\n### Feature\nDNS change tracking\n\n### Related Documentation\n\n- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-8",
|
||||
@@ -361,7 +361,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M9] Forensic report parsing",
|
||||
"body": "## Description\n\nFeature for **Milestone 9: Forensic Reports**\n\n**Timeline**: RUF) Support (20-22 weeks\n\n### Feature\nForensic report parsing\n\n### Related Documentation\n\n- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 9: Forensic Reports**\n\n**Timeline**: RUF) Support (20-22 weeks\n\n### Feature\nForensic report parsing\n\n### Related Documentation\n\n- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-9",
|
||||
@@ -372,7 +372,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M9] Failure sample analysis",
|
||||
"body": "## Description\n\nFeature for **Milestone 9: Forensic Reports**\n\n**Timeline**: RUF) Support (20-22 weeks\n\n### Feature\nFailure sample analysis\n\n### Related Documentation\n\n- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 9: Forensic Reports**\n\n**Timeline**: RUF) Support (20-22 weeks\n\n### Feature\nFailure sample analysis\n\n### Related Documentation\n\n- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-9",
|
||||
@@ -383,7 +383,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M9] PII redaction options",
|
||||
"body": "## Description\n\nFeature for **Milestone 9: Forensic Reports**\n\n**Timeline**: RUF) Support (20-22 weeks\n\n### Feature\nPII redaction options\n\n### Related Documentation\n\n- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 9: Forensic Reports**\n\n**Timeline**: RUF) Support (20-22 weeks\n\n### Feature\nPII redaction options\n\n### Related Documentation\n\n- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-9",
|
||||
@@ -394,7 +394,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M9] Detailed authentication failure views",
|
||||
"body": "## Description\n\nFeature for **Milestone 9: Forensic Reports**\n\n**Timeline**: RUF) Support (20-22 weeks\n\n### Feature\nDetailed authentication failure views\n\n### Related Documentation\n\n- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 9: Forensic Reports**\n\n**Timeline**: RUF) Support (20-22 weeks\n\n### Feature\nDetailed authentication failure views\n\n### Related Documentation\n\n- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-9",
|
||||
@@ -405,7 +405,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M9] Sample download/export",
|
||||
"body": "## Description\n\nFeature for **Milestone 9: Forensic Reports**\n\n**Timeline**: RUF) Support (20-22 weeks\n\n### Feature\nSample download/export\n\n### Related Documentation\n\n- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 9: Forensic Reports**\n\n**Timeline**: RUF) Support (20-22 weeks\n\n### Feature\nSample download/export\n\n### Related Documentation\n\n- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-9",
|
||||
@@ -416,7 +416,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M10] Historical trend analysis",
|
||||
"body": "## Description\n\nFeature for **Milestone 10: Advanced Analytics & Reporting**\n\n**Timeline**: 24-26 weeks\n\n### Feature\nHistorical trend analysis\n\n### Related Documentation\n\n- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 10: Advanced Analytics & Reporting**\n\n**Timeline**: 24-26 weeks\n\n### Feature\nHistorical trend analysis\n\n### Related Documentation\n\n- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-10",
|
||||
@@ -427,7 +427,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M10] Comparative reporting",
|
||||
"body": "## Description\n\nFeature for **Milestone 10: Advanced Analytics & Reporting**\n\n**Timeline**: 24-26 weeks\n\n### Feature\nComparative reporting\n\n### Related Documentation\n\n- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 10: Advanced Analytics & Reporting**\n\n**Timeline**: 24-26 weeks\n\n### Feature\nComparative reporting\n\n### Related Documentation\n\n- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-10",
|
||||
@@ -438,7 +438,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M10] Export capabilities (PDF, CSV)",
|
||||
"body": "## Description\n\nFeature for **Milestone 10: Advanced Analytics & Reporting**\n\n**Timeline**: 24-26 weeks\n\n### Feature\nExport capabilities (PDF, CSV)\n\n### Related Documentation\n\n- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 10: Advanced Analytics & Reporting**\n\n**Timeline**: 24-26 weeks\n\n### Feature\nExport capabilities (PDF, CSV)\n\n### Related Documentation\n\n- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-10",
|
||||
@@ -449,7 +449,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M10] Scheduled reports",
|
||||
"body": "## Description\n\nFeature for **Milestone 10: Advanced Analytics & Reporting**\n\n**Timeline**: 24-26 weeks\n\n### Feature\nScheduled reports\n\n### Related Documentation\n\n- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 10: Advanced Analytics & Reporting**\n\n**Timeline**: 24-26 weeks\n\n### Feature\nScheduled reports\n\n### Related Documentation\n\n- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-10",
|
||||
@@ -460,7 +460,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M10] Custom dashboards",
|
||||
"body": "## Description\n\nFeature for **Milestone 10: Advanced Analytics & Reporting**\n\n**Timeline**: 24-26 weeks\n\n### Feature\nCustom dashboards\n\n### Related Documentation\n\n- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 10: Advanced Analytics & Reporting**\n\n**Timeline**: 24-26 weeks\n\n### Feature\nCustom dashboards\n\n### Related Documentation\n\n- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-10",
|
||||
@@ -471,7 +471,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M11] Multi-tenant architecture",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nMulti-tenant architecture\n\n### Related Documentation\n\n- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nMulti-tenant architecture\n\n### Related Documentation\n\n- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-11",
|
||||
@@ -482,7 +482,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M11] API rate limiting",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nAPI rate limiting\n\n### Related Documentation\n\n- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nAPI rate limiting\n\n### Related Documentation\n\n- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-11",
|
||||
@@ -493,7 +493,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M11] Advanced RBAC",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nAdvanced RBAC\n\n### Related Documentation\n\n- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nAdvanced RBAC\n\n### Related Documentation\n\n- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-11",
|
||||
@@ -504,7 +504,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M11] SSO integration (SAML, OAuth)",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nSSO integration (SAML, OAuth)\n\n### Related Documentation\n\n- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nSSO integration (SAML, OAuth)\n\n### Related Documentation\n\n- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-11",
|
||||
@@ -515,7 +515,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M11] Compliance reporting (SOC 2, GDPR)",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nCompliance reporting (SOC 2, GDPR)\n\n### Related Documentation\n\n- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nCompliance reporting (SOC 2, GDPR)\n\n### Related Documentation\n\n- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-11",
|
||||
@@ -526,7 +526,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M11] High availability setup",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nHigh availability setup\n\n### Related Documentation\n\n- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nHigh availability setup\n\n### Related Documentation\n\n- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-11",
|
||||
@@ -537,7 +537,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[M11] Backup and disaster recovery",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nBackup and disaster recovery\n\n### Related Documentation\n\n- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nFeature for **Milestone 11: Enterprise Features**\n\n**Timeline**: 28-30+ weeks\n\n### Feature\nBackup and disaster recovery\n\n### Related Documentation\n\n- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"enhancement",
|
||||
"milestone-11",
|
||||
@@ -548,7 +548,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[Continuous] Code Quality Improvements",
|
||||
"body": "## Description\n\nOngoing code quality tasks to maintain and improve DMARQ.\n\n### Tasks\n\n- [ ] Maintain >80% test coverage\n- [ ] Regular dependency updates\n- [ ] Code review for all changes\n- [ ] Performance optimization\n- [ ] Technical debt reduction\n\n### Related Documentation\n\n- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nOngoing code quality tasks to maintain and improve DMARQ.\n\n### Tasks\n\n- [ ] Maintain >80% test coverage\n- [ ] Regular dependency updates\n- [ ] Code review for all changes\n- [ ] Performance optimization\n- [ ] Technical debt reduction\n\n### Related Documentation\n\n- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"maintenance",
|
||||
"continuous-improvement",
|
||||
@@ -559,7 +559,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[Continuous] Security Improvements",
|
||||
"body": "## Description\n\nOngoing security tasks to maintain and improve DMARQ.\n\n### Tasks\n\n- [ ] Monthly security audits\n- [ ] Automated vulnerability scanning (GitHub Actions)\n- [ ] Dependency security monitoring\n- [ ] Regular penetration testing\n- [ ] Security training for contributors\n\n### Related Documentation\n\n- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nOngoing security tasks to maintain and improve DMARQ.\n\n### Tasks\n\n- [ ] Monthly security audits\n- [ ] Automated vulnerability scanning (GitHub Actions)\n- [ ] Dependency security monitoring\n- [ ] Regular penetration testing\n- [ ] Security training for contributors\n\n### Related Documentation\n\n- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"maintenance",
|
||||
"continuous-improvement",
|
||||
@@ -570,7 +570,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[Continuous] Documentation Improvements",
|
||||
"body": "## Description\n\nOngoing documentation tasks to maintain and improve DMARQ.\n\n### Tasks\n\n- [ ] Keep documentation current\n- [ ] API documentation completeness\n- [ ] Security best practices guide\n- [ ] Deployment playbooks\n- [ ] Troubleshooting guides\n\n### Related Documentation\n\n- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nOngoing documentation tasks to maintain and improve DMARQ.\n\n### Tasks\n\n- [ ] Keep documentation current\n- [ ] API documentation completeness\n- [ ] Security best practices guide\n- [ ] Deployment playbooks\n- [ ] Troubleshooting guides\n\n### Related Documentation\n\n- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"maintenance",
|
||||
"continuous-improvement",
|
||||
@@ -581,7 +581,7 @@
|
||||
},
|
||||
{
|
||||
"title": "[Continuous] Community Improvements",
|
||||
"body": "## Description\n\nOngoing community tasks to maintain and improve DMARQ.\n\n### Tasks\n\n- [ ] Issue triage and response\n- [ ] PR review and merging\n- [ ] Community engagement\n- [ ] Feature request evaluation\n- [ ] Bug fix prioritization\n\n### Related Documentation\n\n- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"body": "## Description\n\nOngoing community tasks to maintain and improve DMARQ.\n\n### Tasks\n\n- [ ] Issue triage and response\n- [ ] PR review and merging\n- [ ] Community engagement\n- [ ] Feature request evaluation\n- [ ] Bug fix prioritization\n\n### Related Documentation\n\n- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)\n\n---\n*This issue was auto-generated from the DMARQ roadmap.*",
|
||||
"labels": [
|
||||
"maintenance",
|
||||
"continuous-improvement"
|
||||
+54
-54
@@ -29,7 +29,7 @@ Ongoing code quality tasks to maintain and improve DMARQ.
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)
|
||||
- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -56,7 +56,7 @@ Ongoing security tasks to maintain and improve DMARQ.
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)
|
||||
- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -83,7 +83,7 @@ Ongoing documentation tasks to maintain and improve DMARQ.
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)
|
||||
- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -110,7 +110,7 @@ Ongoing community tasks to maintain and improve DMARQ.
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)
|
||||
- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -138,7 +138,7 @@ Historical trend analysis
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)
|
||||
- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -162,7 +162,7 @@ Comparative reporting
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)
|
||||
- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -186,7 +186,7 @@ Export capabilities (PDF, CSV)
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)
|
||||
- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -210,7 +210,7 @@ Scheduled reports
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)
|
||||
- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -234,7 +234,7 @@ Custom dashboards
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 10](../ROADMAP.md#milestone-10-advanced-analytics--reporting)
|
||||
- [Milestone 10](../roadmap.md#milestone-10-advanced-analytics--reporting)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -262,7 +262,7 @@ Multi-tenant architecture
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
|
||||
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -286,7 +286,7 @@ API rate limiting
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
|
||||
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -310,7 +310,7 @@ Advanced RBAC
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
|
||||
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -334,7 +334,7 @@ SSO integration (SAML, OAuth)
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
|
||||
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -358,7 +358,7 @@ Compliance reporting (SOC 2, GDPR)
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
|
||||
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -382,7 +382,7 @@ High availability setup
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
|
||||
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -406,7 +406,7 @@ Backup and disaster recovery
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 11](../ROADMAP.md#milestone-11-enterprise-features)
|
||||
- [Milestone 11](../roadmap.md#milestone-11-enterprise-features)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -434,7 +434,7 @@ Historical trend charts (Chart.js integration)
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)
|
||||
- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -458,7 +458,7 @@ Compliance rate visualizations
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)
|
||||
- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -482,7 +482,7 @@ Volume and sender analytics
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)
|
||||
- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -506,7 +506,7 @@ Time-series data displays
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)
|
||||
- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -530,7 +530,7 @@ Domain comparison views
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 4](../ROADMAP.md#milestone-4-enhanced-dashboard--visualization)
|
||||
- [Milestone 4](../roadmap.md#milestone-4-enhanced-dashboard--visualization)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -558,7 +558,7 @@ FastAPI Users integration
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
|
||||
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -582,7 +582,7 @@ User registration and management
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
|
||||
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -606,7 +606,7 @@ JWT-based authentication
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
|
||||
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -630,7 +630,7 @@ Role-based access control (RBAC)
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
|
||||
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -654,7 +654,7 @@ Password reset functionality
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
|
||||
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -678,7 +678,7 @@ Email verification (optional)
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 5](../ROADMAP.md#milestone-5-user-authentication--multi-user-support)
|
||||
- [Milestone 5](../roadmap.md#milestone-5-user-authentication--multi-user-support)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -706,7 +706,7 @@ Apprise integration
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)
|
||||
- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -730,7 +730,7 @@ Customizable alert rules
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)
|
||||
- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -754,7 +754,7 @@ Multi-channel notifications (Email, Slack, etc.)
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)
|
||||
- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -778,7 +778,7 @@ Alert history and management
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)
|
||||
- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -802,7 +802,7 @@ Notification preferences per user
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 6](../ROADMAP.md#milestone-6-alerting--notifications)
|
||||
- [Milestone 6](../roadmap.md#milestone-6-alerting--notifications)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -830,7 +830,7 @@ Custom alert conditions
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)
|
||||
- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -854,7 +854,7 @@ Threshold-based triggers
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)
|
||||
- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -878,7 +878,7 @@ New sender detection
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)
|
||||
- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -902,7 +902,7 @@ Anomaly detection
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)
|
||||
- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -926,7 +926,7 @@ Scheduled report summaries
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 7](../ROADMAP.md#milestone-7-advanced-rule-engine)
|
||||
- [Milestone 7](../roadmap.md#milestone-7-advanced-rule-engine)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -954,7 +954,7 @@ DNS record health checks
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)
|
||||
- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -978,7 +978,7 @@ SPF/DKIM/DMARC validation
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)
|
||||
- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1002,7 +1002,7 @@ Cloudflare API integration
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)
|
||||
- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1026,7 +1026,7 @@ Configuration recommendations
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)
|
||||
- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1050,7 +1050,7 @@ DNS change tracking
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 8](../ROADMAP.md#milestone-8-dns-health--cloudflare-integration)
|
||||
- [Milestone 8](../roadmap.md#milestone-8-dns-health--cloudflare-integration)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1078,7 +1078,7 @@ Forensic report parsing
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)
|
||||
- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1102,7 +1102,7 @@ Failure sample analysis
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)
|
||||
- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1126,7 +1126,7 @@ PII redaction options
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)
|
||||
- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1150,7 +1150,7 @@ Detailed authentication failure views
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)
|
||||
- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1174,7 +1174,7 @@ Sample download/export
|
||||
|
||||
### Related Documentation
|
||||
|
||||
- [Milestone 9](../ROADMAP.md#milestone-9-forensic-reports)
|
||||
- [Milestone 9](../roadmap.md#milestone-9-forensic-reports)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1211,7 +1211,7 @@ Part of the **Security Remediation Sprint** - Priority: **CRITICAL**
|
||||
### Related Documentation
|
||||
|
||||
- [SECURITY.md](../SECURITY.md)
|
||||
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
|
||||
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1242,7 +1242,7 @@ Part of the **Security Remediation Sprint** - Priority: **CRITICAL**
|
||||
### Related Documentation
|
||||
|
||||
- [SECURITY.md](../SECURITY.md)
|
||||
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
|
||||
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1273,7 +1273,7 @@ Part of the **Security Remediation Sprint** - Priority: **HIGH**
|
||||
### Related Documentation
|
||||
|
||||
- [SECURITY.md](../SECURITY.md)
|
||||
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
|
||||
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1306,7 +1306,7 @@ Part of the **Security Remediation Sprint** - Priority: **HIGH**
|
||||
### Related Documentation
|
||||
|
||||
- [SECURITY.md](../SECURITY.md)
|
||||
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
|
||||
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1333,7 +1333,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
|
||||
### Related Documentation
|
||||
|
||||
- [SECURITY.md](../SECURITY.md)
|
||||
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
|
||||
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1363,7 +1363,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
|
||||
### Related Documentation
|
||||
|
||||
- [SECURITY.md](../SECURITY.md)
|
||||
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
|
||||
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
@@ -1390,7 +1390,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
|
||||
### Related Documentation
|
||||
|
||||
- [SECURITY.md](../SECURITY.md)
|
||||
- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)
|
||||
- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)
|
||||
|
||||
---
|
||||
*This issue was auto-generated from the DMARQ roadmap.*
|
||||
+368
-151
@@ -1,201 +1,418 @@
|
||||
# Roadmap
|
||||
# DMARQ Security-Enhanced Roadmap
|
||||
|
||||
This document outlines the planned development roadmap for DMARQ, including upcoming features, improvements, and long-term goals.
|
||||
## Document Purpose
|
||||
|
||||
## Current Version: 1.0.0 (April 2025)
|
||||
This roadmap outlines the development plan for DMARQ with an enhanced focus on security, code quality, and preparation for agentic coding (AI-assisted development). This document supersedes previous roadmap versions with security milestones integrated throughout.
|
||||
|
||||
The initial release of DMARQ includes:
|
||||
**Last Updated**: 2026-02-06
|
||||
**Status**: Active Development
|
||||
|
||||
- Basic DMARC report processing and analysis
|
||||
- Domain management
|
||||
- User authentication
|
||||
- Dashboard with key metrics
|
||||
- IMAP integration for automatic report collection
|
||||
- Simple alerting system
|
||||
- Docker deployment option
|
||||
---
|
||||
|
||||
## Short-Term Goals (Q2-Q3 2025)
|
||||
## Current Status (Milestone 1 - COMPLETE ✅)
|
||||
|
||||
### Version 1.1.0 (June 2025)
|
||||
### Achievements
|
||||
- ✅ Basic DMARC report parsing (XML, ZIP, GZIP)
|
||||
- ✅ In-memory storage for up to 5 domains
|
||||
- ✅ Simple dashboard UI
|
||||
- ✅ Report upload functionality
|
||||
- ✅ Domain overview with compliance stats
|
||||
|
||||
- **Advanced Report Filtering**
|
||||
- Filter reports by IP address
|
||||
- Filter by authentication result
|
||||
- Custom date range selection
|
||||
- Save custom filters
|
||||
### Security Status
|
||||
⚠️ **Multiple critical security issues identified** - See [SECURITY.md](../../SECURITY.md) for details
|
||||
|
||||
- **Improved Visualizations**
|
||||
- Interactive charts with drill-down capability
|
||||
- Geographic IP distribution map
|
||||
- Timeline view of authentication changes
|
||||
---
|
||||
|
||||
- **Enhanced DNS Health Checks**
|
||||
- Automated SPF, DKIM, DMARC syntax validation
|
||||
- Record monitoring with change detection
|
||||
- Best practice recommendations
|
||||
## Security Remediation Sprint (PRIORITY - In Progress)
|
||||
|
||||
- **API Enhancements**
|
||||
- Additional endpoints for statistics
|
||||
- Improved authentication options
|
||||
- Better documentation and examples
|
||||
**Timeline**: Immediate (Next 2-4 weeks)
|
||||
**Status**: 🔄 In Progress
|
||||
|
||||
### Version 1.2.0 (August 2025)
|
||||
### Critical Fixes Required
|
||||
|
||||
- **User Management Improvements**
|
||||
- Role-based access control
|
||||
- Domain-specific permissions
|
||||
- User invitation system
|
||||
- Activity audit logging
|
||||
#### 1. Authentication & Authorization (CRITICAL)
|
||||
- [ ] Add authentication middleware to all admin endpoints
|
||||
- [ ] Implement proper user authentication system
|
||||
- [ ] Add authorization checks on sensitive operations
|
||||
- [ ] Add rate limiting to prevent abuse
|
||||
- **Files to Fix**:
|
||||
- `backend/app/main.py` (lines 195-196, 224-225)
|
||||
- `backend/app/api/api_v1/endpoints/imap.py`
|
||||
- `backend/app/api/api_v1/endpoints/domains.py`
|
||||
|
||||
- **Multi-tenant Support**
|
||||
- Organization-level grouping of domains
|
||||
- Isolated views for different user groups
|
||||
- White-labeling options
|
||||
#### 2. Secret Management (CRITICAL)
|
||||
- [ ] Remove default SECRET_KEY value
|
||||
- [ ] Add SECRET_KEY validation on startup
|
||||
- [ ] Document secret generation in deployment guide
|
||||
- [ ] Add warning if default secret is detected
|
||||
- **Files to Fix**:
|
||||
- `backend/app/core/config.py` (line 24)
|
||||
- Documentation updates
|
||||
|
||||
- **Enhanced IMAP Integration**
|
||||
- Support for multiple mailboxes
|
||||
- Advanced filtering options
|
||||
- Attachment preprocessing rules
|
||||
#### 3. XML Parsing Security (HIGH)
|
||||
- [ ] Replace ElementTree with defusedxml
|
||||
- [ ] Add file size limits for uploads
|
||||
- [ ] Implement zip bomb protection
|
||||
- [ ] Add malware scanning hooks (optional)
|
||||
- **Files to Fix**:
|
||||
- `backend/app/services/dmarc_parser.py`
|
||||
|
||||
- **Forensic Report Analysis**
|
||||
- Improved parsing for various report formats
|
||||
- Header analysis tools
|
||||
- Correlation with aggregate reports
|
||||
#### 4. Input Validation (HIGH)
|
||||
- [ ] Add domain name validation regex
|
||||
- [ ] Implement file type validation (MIME + extension)
|
||||
- [ ] Add parameter validation on all endpoints
|
||||
- [ ] Sanitize error messages
|
||||
- **Files to Fix**:
|
||||
- `backend/app/api/api_v1/endpoints/domains.py`
|
||||
- `backend/app/api/api_v1/endpoints/reports.py`
|
||||
- `backend/app/utils/domain_validator.py`
|
||||
|
||||
## Mid-Term Goals (Q4 2025 - Q1 2026)
|
||||
#### 5. Security Headers (MEDIUM)
|
||||
- [ ] Add security headers middleware
|
||||
- [ ] Implement CSP (Content Security Policy)
|
||||
- [ ] Add X-Frame-Options, X-Content-Type-Options
|
||||
- [ ] Configure HSTS for production
|
||||
- **Files to Create/Modify**:
|
||||
- `backend/app/middleware/security.py` (new)
|
||||
- `backend/app/main.py`
|
||||
|
||||
### Version 1.3.0 (November 2025)
|
||||
#### 6. CORS Configuration (MEDIUM)
|
||||
- [ ] Restrict CORS methods and headers
|
||||
- [ ] Remove wildcard configurations
|
||||
- [ ] Document CORS setup for deployments
|
||||
- **Files to Fix**:
|
||||
- `backend/app/main.py` (lines 75-82)
|
||||
|
||||
- **Integration Ecosystem**
|
||||
- Slack/Teams notifications
|
||||
- WebHook support for custom integrations
|
||||
- Export to BI tools
|
||||
- SIEM integration
|
||||
#### 7. Error Handling (MEDIUM)
|
||||
- [ ] Implement centralized error handling
|
||||
- [ ] Remove sensitive data from error responses
|
||||
- [ ] Add error logging with request context
|
||||
- [ ] Create user-friendly error messages
|
||||
- **Files to Fix**:
|
||||
- Multiple endpoints across API layer
|
||||
|
||||
- **Advanced Alerting System**
|
||||
- Custom alert rules
|
||||
- Alert severity levels
|
||||
- Alert acknowledgment workflow
|
||||
- Historical alert tracking
|
||||
### Testing & Validation
|
||||
- [ ] Add security-focused unit tests
|
||||
- [ ] Implement integration tests for auth flow
|
||||
- [ ] Add penetration testing checklist
|
||||
- [ ] Document security testing procedures
|
||||
|
||||
- **DNS Management**
|
||||
- Integration with Cloudflare API
|
||||
- Integration with AWS Route 53
|
||||
- One-click fix for common DNS issues
|
||||
- DNS record deployment tracking
|
||||
### Documentation
|
||||
- [x] Create SECURITY.md
|
||||
- [ ] Update deployment guides with security best practices
|
||||
- [ ] Create security checklist for contributors
|
||||
- [ ] Add security section to API documentation
|
||||
|
||||
- **Report Anomaly Detection**
|
||||
- Machine learning-based anomaly detection
|
||||
- Unusual sending pattern identification
|
||||
- Automatic threat scoring
|
||||
---
|
||||
|
||||
### Version 2.0.0 (February 2026)
|
||||
## Milestone 2: IMAP Integration (COMPLETE ✅ - Security Review Needed)
|
||||
|
||||
- **Comprehensive Email Authentication Suite**
|
||||
- SPF record management and monitoring
|
||||
- DKIM key rotation management
|
||||
- BIMI record support
|
||||
- MTA-STS implementation assistance
|
||||
### Current Features
|
||||
- ✅ IMAP connection and mailbox scanning
|
||||
- ✅ Automated report fetching
|
||||
- ✅ Background task scheduler
|
||||
- ✅ Configuration UI
|
||||
|
||||
- **Policy Management**
|
||||
- DMARC policy transition recommendations
|
||||
- Automated policy progression
|
||||
- Impact analysis before policy changes
|
||||
- Rollback capabilities
|
||||
### Security Enhancements Needed
|
||||
- [ ] **URGENT**: Remove credentials from URL parameters
|
||||
- [ ] Encrypt IMAP credentials at rest
|
||||
- [ ] Add connection timeout and retry logic
|
||||
- [ ] Implement secure credential storage (vault integration)
|
||||
- [ ] Add audit logging for IMAP operations
|
||||
|
||||
- **Reporting Enhancements**
|
||||
- Scheduled PDF/CSV exports
|
||||
- Custom report templates
|
||||
- Executive summary generation
|
||||
- Trend analysis with predictive insights
|
||||
---
|
||||
|
||||
- **Multi-Channel Notifications**
|
||||
- Email notifications
|
||||
- SMS alerts
|
||||
- Mobile app push notifications
|
||||
- Custom notification channels
|
||||
## Milestone 3: Database Integration & Persistence (COMPLETE ✅)
|
||||
|
||||
## Long-Term Goals (Mid 2026+)
|
||||
### Current Features
|
||||
- ✅ SQLAlchemy ORM setup
|
||||
- ✅ SQLite/PostgreSQL support
|
||||
- ✅ Database migrations with Alembic
|
||||
- ✅ Persistent storage
|
||||
|
||||
### Version 2.x and Beyond
|
||||
### Security Enhancements Needed
|
||||
- [ ] Add database encryption at rest
|
||||
- [ ] Implement query audit logging
|
||||
- [ ] Add prepared statement validation
|
||||
- [ ] Review and secure database credentials
|
||||
- [ ] Add database backup encryption
|
||||
|
||||
- **Advanced Threat Intelligence**
|
||||
- Integration with email security platforms
|
||||
- Shared threat database
|
||||
- Sender reputation scoring
|
||||
- Proactive security recommendations
|
||||
---
|
||||
|
||||
- **Enterprise Features**
|
||||
- LDAP/Active Directory integration
|
||||
- SAML/SSO support
|
||||
- Advanced audit logging
|
||||
- Custom branding
|
||||
## Milestone 4: Enhanced Dashboard & Visualization (Next - 4-6 weeks)
|
||||
|
||||
- **Internationalization**
|
||||
- Multi-language interface
|
||||
- Region-specific reporting
|
||||
- International domain support (IDN)
|
||||
- Localized documentation
|
||||
### Planned Features
|
||||
- [ ] Historical trend charts (Chart.js integration)
|
||||
- [ ] Compliance rate visualizations
|
||||
- [ ] Volume and sender analytics
|
||||
- [ ] Time-series data displays
|
||||
- [ ] Domain comparison views
|
||||
|
||||
- **AI-Powered Analysis**
|
||||
- Natural language querying of report data
|
||||
- Automated root cause analysis
|
||||
- Predictive compliance modeling
|
||||
- AI-assisted remediation recommendations
|
||||
### Security Considerations
|
||||
- [ ] XSS prevention in chart data
|
||||
- [ ] CSP compatibility with Chart.js
|
||||
- [ ] Rate limiting on analytics endpoints
|
||||
- [ ] Data access controls for multi-user scenarios
|
||||
|
||||
- **Ecosystem Expansion**
|
||||
- Mobile companion app
|
||||
- Browser plugins
|
||||
- Desktop notifications
|
||||
- Command-line tools
|
||||
### Implementation
|
||||
- **Priority**: Medium
|
||||
- **Dependencies**: Security Sprint completion
|
||||
- **Estimated Effort**: 2-3 weeks
|
||||
|
||||
## Feature Requests and Prioritization
|
||||
---
|
||||
|
||||
We prioritize features based on:
|
||||
## Milestone 5: User Authentication & Multi-User Support (8-10 weeks)
|
||||
|
||||
1. **User Impact**: How many users will benefit?
|
||||
2. **Security Enhancement**: Does it improve email security?
|
||||
3. **Ease of Implementation**: Can we deliver it quickly?
|
||||
4. **Strategic Alignment**: Does it align with our vision?
|
||||
### Planned Features
|
||||
- [ ] FastAPI Users integration
|
||||
- [ ] User registration and management
|
||||
- [ ] JWT-based authentication
|
||||
- [ ] Role-based access control (RBAC)
|
||||
- [ ] Password reset functionality
|
||||
- [ ] Email verification (optional)
|
||||
|
||||
To suggest features:
|
||||
### Security Features
|
||||
- [ ] Strong password policy enforcement
|
||||
- [ ] Multi-factor authentication (MFA)
|
||||
- [ ] Session management
|
||||
- [ ] Account lockout on failed attempts
|
||||
- [ ] Security event logging
|
||||
- [ ] GDPR compliance features
|
||||
|
||||
- Open an issue on our [GitHub repository](https://github.com/yourusername/dmarq)
|
||||
- Provide details about the feature and why it's valuable
|
||||
- Include use cases and examples when possible
|
||||
### Implementation Priority
|
||||
- **Priority**: High
|
||||
- **Security Impact**: Critical
|
||||
- **Dependencies**: Security Sprint, Milestone 4
|
||||
|
||||
## Contribution Opportunities
|
||||
---
|
||||
|
||||
We welcome contributions in these areas:
|
||||
## Milestone 6: Alerting & Notifications (10-12 weeks)
|
||||
|
||||
- **Integrations**: Help build integrations with other services
|
||||
- **Documentation**: Improve guides, examples, and references
|
||||
- **UI/UX**: Enhance the user interface and experience
|
||||
- **Testing**: Add tests and improve test coverage
|
||||
- **Performance**: Optimize database queries and processing
|
||||
### Planned Features
|
||||
- [ ] Apprise integration
|
||||
- [ ] Customizable alert rules
|
||||
- [ ] Multi-channel notifications (Email, Slack, etc.)
|
||||
- [ ] Alert history and management
|
||||
- [ ] Notification preferences per user
|
||||
|
||||
See our [Contributing Guide](contributing.md) for details on how to contribute.
|
||||
### Security Features
|
||||
- [ ] Secure webhook handling
|
||||
- [ ] Alert rate limiting
|
||||
- [ ] PII filtering in notifications
|
||||
- [ ] Encrypted notification credentials
|
||||
- [ ] Audit trail for alert configuration
|
||||
|
||||
## Release Schedule
|
||||
---
|
||||
|
||||
- **Major Releases**: 2 per year (February and August)
|
||||
- **Minor Releases**: Quarterly (February, May, August, November)
|
||||
- **Patch Releases**: As needed for bug fixes and security updates
|
||||
## Milestone 7: Advanced Rule Engine (14-16 weeks)
|
||||
|
||||
## Deprecation Policy
|
||||
### Planned Features
|
||||
- [ ] Custom alert conditions
|
||||
- [ ] Threshold-based triggers
|
||||
- [ ] New sender detection
|
||||
- [ ] Anomaly detection
|
||||
- [ ] Scheduled report summaries
|
||||
|
||||
We maintain backward compatibility where possible, but sometimes need to deprecate features:
|
||||
### Security Features
|
||||
- [ ] Rule validation and sandboxing
|
||||
- [ ] Resource limits on rule execution
|
||||
- [ ] Audit logging for rule changes
|
||||
- [ ] Protection against rule abuse
|
||||
|
||||
1. **Announcement**: We announce deprecations at least 6 months in advance
|
||||
2. **Alternative**: We provide migration paths to alternative solutions
|
||||
3. **Support**: We continue supporting deprecated features during the transition period
|
||||
4. **Removal**: We remove features only in major version updates
|
||||
---
|
||||
|
||||
## Feedback
|
||||
## Milestone 8: DNS Health & Cloudflare Integration (16-18 weeks)
|
||||
|
||||
We value your feedback on our roadmap! Please share your thoughts:
|
||||
### Planned Features
|
||||
- [ ] DNS record health checks
|
||||
- [ ] SPF/DKIM/DMARC validation
|
||||
- [ ] Cloudflare API integration
|
||||
- [ ] Configuration recommendations
|
||||
- [ ] DNS change tracking
|
||||
|
||||
- Through GitHub issues
|
||||
- In our community forums
|
||||
- During community calls
|
||||
- Via email to roadmap@example.com
|
||||
### Security Features
|
||||
- [ ] Secure API credential storage
|
||||
- [ ] DNS query rate limiting
|
||||
- [ ] DNSSEC validation
|
||||
- [ ] Audit logging for DNS operations
|
||||
- [ ] Read-only DNS access (no auto-changes initially)
|
||||
|
||||
---
|
||||
|
||||
## Milestone 9: Forensic Reports (RUF) Support (20-22 weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] Forensic report parsing
|
||||
- [ ] Failure sample analysis
|
||||
- [ ] PII redaction options
|
||||
- [ ] Detailed authentication failure views
|
||||
- [ ] Sample download/export
|
||||
|
||||
### Security Features
|
||||
- [ ] PII detection and redaction
|
||||
- [ ] Access controls for sensitive data
|
||||
- [ ] Audit logging for forensic data access
|
||||
- [ ] Compliance with privacy regulations
|
||||
- [ ] Secure export with encryption
|
||||
|
||||
---
|
||||
|
||||
## Milestone 10: Advanced Analytics & Reporting (24-26 weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] Historical trend analysis
|
||||
- [ ] Comparative reporting
|
||||
- [ ] Export capabilities (PDF, CSV)
|
||||
- [ ] Scheduled reports
|
||||
- [ ] Custom dashboards
|
||||
|
||||
### Security Features
|
||||
- [ ] Export sanitization
|
||||
- [ ] Watermarking for exported reports
|
||||
- [ ] Access logging for exports
|
||||
- [ ] Encrypted export files
|
||||
|
||||
---
|
||||
|
||||
## Milestone 11: Enterprise Features (28-30+ weeks)
|
||||
|
||||
### Planned Features
|
||||
- [ ] Multi-tenant architecture
|
||||
- [ ] API rate limiting
|
||||
- [ ] Advanced RBAC
|
||||
- [ ] SSO integration (SAML, OAuth)
|
||||
- [ ] Compliance reporting (SOC 2, GDPR)
|
||||
- [ ] High availability setup
|
||||
- [ ] Backup and disaster recovery
|
||||
|
||||
### Security Features
|
||||
- [ ] Tenant isolation
|
||||
- [ ] Advanced audit logging
|
||||
- [ ] Security event monitoring
|
||||
- [ ] Compliance automation
|
||||
- [ ] Regular security assessments
|
||||
|
||||
---
|
||||
|
||||
## Continuous Improvements (Ongoing)
|
||||
|
||||
### Code Quality
|
||||
- [ ] Maintain >80% test coverage
|
||||
- [ ] Regular dependency updates
|
||||
- [ ] Code review for all changes
|
||||
- [ ] Performance optimization
|
||||
- [ ] Technical debt reduction
|
||||
|
||||
### Security
|
||||
- [ ] Monthly security audits
|
||||
- [ ] Automated vulnerability scanning (GitHub Actions)
|
||||
- [ ] Dependency security monitoring
|
||||
- [ ] Regular penetration testing
|
||||
- [ ] Security training for contributors
|
||||
|
||||
### Documentation
|
||||
- [ ] Keep documentation current
|
||||
- [ ] API documentation completeness
|
||||
- [ ] Security best practices guide
|
||||
- [ ] Deployment playbooks
|
||||
- [ ] Troubleshooting guides
|
||||
|
||||
### Community
|
||||
- [ ] Issue triage and response
|
||||
- [ ] PR review and merging
|
||||
- [ ] Community engagement
|
||||
- [ ] Feature request evaluation
|
||||
- [ ] Bug fix prioritization
|
||||
|
||||
---
|
||||
|
||||
## Security Milestones Integration
|
||||
|
||||
Each development milestone now includes security considerations:
|
||||
|
||||
| Milestone | Security Priority | Key Security Features |
|
||||
|-----------|------------------|----------------------|
|
||||
| Security Sprint | 🔴 Critical | Fix all critical vulnerabilities |
|
||||
| Milestone 4 | 🟡 Medium | XSS prevention, CSP |
|
||||
| Milestone 5 | 🔴 Critical | Authentication, RBAC, MFA |
|
||||
| Milestone 6 | 🟠 High | Secure webhooks, PII filtering |
|
||||
| Milestone 7 | 🟠 High | Rule sandboxing, audit trails |
|
||||
| Milestone 8 | 🟠 High | API security, DNSSEC |
|
||||
| Milestone 9 | 🔴 Critical | PII redaction, compliance |
|
||||
| Milestone 10 | 🟡 Medium | Export security, watermarking |
|
||||
| Milestone 11 | 🔴 Critical | Enterprise security, SOC 2 |
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
### Functional
|
||||
- All planned features implemented
|
||||
- Performance meets requirements
|
||||
- User experience is intuitive
|
||||
- Documentation is complete
|
||||
|
||||
### Security
|
||||
- Zero critical vulnerabilities
|
||||
- All high-severity issues resolved
|
||||
- Security tests pass
|
||||
- Regular security audits pass
|
||||
- Compliance requirements met
|
||||
|
||||
### Quality
|
||||
- >80% code coverage
|
||||
- All tests passing
|
||||
- No critical bugs
|
||||
- Performance benchmarks met
|
||||
- Code review approval
|
||||
|
||||
---
|
||||
|
||||
## Risk Management
|
||||
|
||||
### Technical Risks
|
||||
- **Risk**: Complex security implementations
|
||||
- **Mitigation**: Incremental approach, expert review
|
||||
- **Risk**: Performance degradation with security features
|
||||
- **Mitigation**: Performance testing, optimization
|
||||
|
||||
### Resource Risks
|
||||
- **Risk**: Limited security expertise
|
||||
- **Mitigation**: External security audits, community review
|
||||
- **Risk**: Time constraints for security work
|
||||
- **Mitigation**: Prioritize critical issues first
|
||||
|
||||
### Operational Risks
|
||||
- **Risk**: Breaking changes with security fixes
|
||||
- **Mitigation**: Thorough testing, clear documentation
|
||||
- **Risk**: User adoption of security features
|
||||
- **Mitigation**: Clear communication, good UX
|
||||
|
||||
---
|
||||
|
||||
## Contributing to This Roadmap
|
||||
|
||||
This roadmap is a living document. To contribute:
|
||||
|
||||
1. Review current milestones and status
|
||||
2. Propose changes via GitHub Issues
|
||||
3. Discuss in community forums
|
||||
4. Submit PRs for roadmap updates
|
||||
5. Participate in planning discussions
|
||||
|
||||
See [CONTRIBUTING.md](../../CONTRIBUTING.md) for detailed guidelines.
|
||||
|
||||
---
|
||||
|
||||
## References
|
||||
|
||||
- [SECURITY.md](../../SECURITY.md) - Security policy and vulnerability reporting
|
||||
- [CONTRIBUTING.md](../../CONTRIBUTING.md) - Contribution guidelines
|
||||
- [Agentic Coding Guidelines](agents.md) - AI-assisted development guidelines
|
||||
- [Milestones](../milestones.md) - Detailed milestone specifications
|
||||
- [Todo](../todo.md) - Detailed task tracking
|
||||
|
||||
---
|
||||
|
||||
**Maintained by**: DMARQ Development Team
|
||||
**Contact**: See [SECURITY.md](../../SECURITY.md) for contact information
|
||||
|
||||
@@ -45,6 +45,8 @@ nav:
|
||||
- Contributing: development/contributing.md
|
||||
- Testing: development/testing.md
|
||||
- Roadmap: development/roadmap.md
|
||||
- Agentic Coding: development/agents.md
|
||||
- Issue Generation: development/issue_generation.md
|
||||
- FAQ: faq.md
|
||||
- Changelog: changelog.md
|
||||
|
||||
|
||||
@@ -1,3 +1,25 @@
|
||||
[project]
|
||||
name = "dmarq"
|
||||
version = "0.3.0"
|
||||
description = "A modern, privacy-conscious DMARC monitoring and analysis platform"
|
||||
readme = "README.md"
|
||||
license = {text = "MIT"}
|
||||
requires-python = ">=3.10"
|
||||
|
||||
[tool.semantic_release]
|
||||
version_toml = ["pyproject.toml:project.version"]
|
||||
version_variables = ["backend/app/__init__.py:__version__"]
|
||||
commit_message = "chore(release): v{version}"
|
||||
tag_format = "v{version}"
|
||||
build_command = "python3 scripts/sync_version.py"
|
||||
upload_to_pypi = false
|
||||
|
||||
[tool.semantic_release.changelog]
|
||||
changelog_file = "CHANGELOG.md"
|
||||
|
||||
[tool.semantic_release.branches.main]
|
||||
match = "main"
|
||||
|
||||
[tool.black]
|
||||
line-length = 100
|
||||
target-version = ['py310']
|
||||
|
||||
@@ -84,7 +84,7 @@ class RoadmapParser:
|
||||
"### Related Documentation",
|
||||
"",
|
||||
"- [SECURITY.md](../SECURITY.md)",
|
||||
"- [Security Remediation Sprint](../ROADMAP.md#security-remediation-sprint-priority---in-progress)",
|
||||
"- [Security Remediation Sprint](../roadmap.md#security-remediation-sprint-priority---in-progress)",
|
||||
"",
|
||||
"---",
|
||||
"*This issue was auto-generated from the DMARQ roadmap.*"
|
||||
@@ -166,7 +166,7 @@ class RoadmapParser:
|
||||
body_parts.extend([
|
||||
"### Related Documentation",
|
||||
"",
|
||||
f"- [Milestone {milestone_num}](../ROADMAP.md#milestone-{milestone_num}-{milestone_name.lower().replace(' ', '-').replace('&', '').replace('(', '').replace(')', '')})",
|
||||
f"- [Milestone {milestone_num}](../roadmap.md#milestone-{milestone_num}-{milestone_name.lower().replace(' ', '-').replace('&', '').replace('(', '').replace(')', '')})",
|
||||
"",
|
||||
"---",
|
||||
"*This issue was auto-generated from the DMARQ roadmap.*"
|
||||
@@ -211,7 +211,7 @@ class RoadmapParser:
|
||||
"",
|
||||
"### Related Documentation",
|
||||
"",
|
||||
f"- [Milestone {milestone_num}](../ROADMAP.md#milestone-{milestone_num}-{milestone_name.lower().replace(' ', '-').replace('&', '').replace('(', '').replace(')', '')})",
|
||||
f"- [Milestone {milestone_num}](../roadmap.md#milestone-{milestone_num}-{milestone_name.lower().replace(' ', '-').replace('&', '').replace('(', '').replace(')', '')})",
|
||||
"- [SECURITY.md](../SECURITY.md)",
|
||||
"",
|
||||
"---",
|
||||
@@ -290,7 +290,7 @@ class RoadmapParser:
|
||||
"",
|
||||
"### Related Documentation",
|
||||
"",
|
||||
"- [Continuous Improvements](../ROADMAP.md#continuous-improvements-ongoing)",
|
||||
"- [Continuous Improvements](../roadmap.md#continuous-improvements-ongoing)",
|
||||
"",
|
||||
"---",
|
||||
"*This issue was auto-generated from the DMARQ roadmap.*"
|
||||
@@ -452,8 +452,8 @@ def save_github_import_script(issues: List[Issue], output_path: Path):
|
||||
def main():
|
||||
"""Main function."""
|
||||
repo_root = Path(__file__).parent.parent
|
||||
roadmap_path = repo_root / "ROADMAP.md"
|
||||
output_dir = repo_root / "generated_issues"
|
||||
roadmap_path = repo_root / "docs" / "development" / "roadmap.md"
|
||||
output_dir = repo_root / "docs" / "development" / "generated_issues"
|
||||
output_dir.mkdir(exist_ok=True)
|
||||
|
||||
print("=" * 60)
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Sync the VERSION file from pyproject.toml after a version bump."""
|
||||
import re
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
root = Path(__file__).resolve().parent.parent
|
||||
|
||||
toml_content = (root / "pyproject.toml").read_text()
|
||||
match = re.search(
|
||||
r'^\[project\]\s*\n(?:.*\n)*?version\s*=\s*"([^"]+)"',
|
||||
toml_content,
|
||||
re.MULTILINE,
|
||||
)
|
||||
if match:
|
||||
version = match.group(1)
|
||||
(root / "VERSION").write_text(version + "\n")
|
||||
else:
|
||||
print("ERROR: Could not find version in pyproject.toml [project] section", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user