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
|
## 🧪 Development Roadmap
|
||||||
|
|
||||||
- ✅ **Milestone 1**: Basic DMARC Monitoring (up to 5 domains)
|
- ✅ **Milestone 1**: Basic DMARC Monitoring (up to 5 domains)
|
||||||
- 🔄 **Milestone 2**: Enhanced Visualization & Analysis
|
- ✅ **Milestone 2**: IMAP Integration
|
||||||
- 🔜 **Milestone 3**: Database Persistence & User Management
|
- ✅ **Milestone 3**: Database Persistence
|
||||||
- 🔜 **Milestone 4**: Email Integration & Automated Processing
|
- 🔜 **Milestone 4**: Enhanced Dashboard & Visualization
|
||||||
- 🔜 **Milestone 5**: DNS Health & Configuration Suggestions
|
- 🔜 **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
|
## 🤝 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/),
|
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).
|
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
|
### Added
|
||||||
- Initial release of DMARQ
|
- Initial release of DMARQ
|
||||||
- Domain management with basic health checks
|
- DMARC XML report parsing (supports XML, ZIP, and GZIP formats)
|
||||||
- DMARC report processing (aggregate and forensic)
|
- In-memory storage of report data for up to 5 domains
|
||||||
- Dashboard with compliance rate visualization
|
- Simple dashboard UI showing DMARC compliance statistics
|
||||||
- IMAP integration for automatic report collection
|
- Report upload via web interface
|
||||||
- User authentication and management
|
- Domain overview with compliance rates and email statistics
|
||||||
- SQLite and PostgreSQL database support
|
- Docker Compose deployment support
|
||||||
- Docker deployment option
|
- FastAPI backend with Jinja2 templates and Tailwind CSS
|
||||||
- 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
|
|
||||||
@@ -188,8 +188,8 @@ jq '.[] | select(.labels[] | contains("priority: high"))' issues.json
|
|||||||
|
|
||||||
## 📞 Support
|
## 📞 Support
|
||||||
|
|
||||||
- **Source**: Generated from [ROADMAP.md](../ROADMAP.md)
|
- **Source**: Generated from [roadmap.md](../roadmap.md)
|
||||||
- **Script**: [scripts/generate_issues.py](../scripts/generate_issues.py)
|
- **Script**: [scripts/generate_issues.py](../../../scripts/generate_issues.py)
|
||||||
- **Questions**: Open an issue in the DMARQ repository
|
- **Questions**: Open an issue in the DMARQ repository
|
||||||
|
|
||||||
## 🔒 Important Notes
|
## 🔒 Important Notes
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"title": "[Security Sprint] Authentication & Authorization",
|
"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": [
|
"labels": [
|
||||||
"security",
|
"security",
|
||||||
"priority: critical",
|
"priority: critical",
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[Security Sprint] Secret Management",
|
"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": [
|
"labels": [
|
||||||
"security",
|
"security",
|
||||||
"priority: critical",
|
"priority: critical",
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[Security Sprint] XML Parsing Security",
|
"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": [
|
"labels": [
|
||||||
"security",
|
"security",
|
||||||
"priority: high",
|
"priority: high",
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[Security Sprint] Input Validation",
|
"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": [
|
"labels": [
|
||||||
"security",
|
"security",
|
||||||
"priority: high",
|
"priority: high",
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[Security Sprint] Security Headers",
|
"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": [
|
"labels": [
|
||||||
"security",
|
"security",
|
||||||
"priority: medium"
|
"priority: medium"
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[Security Sprint] CORS Configuration",
|
"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": [
|
"labels": [
|
||||||
"security",
|
"security",
|
||||||
"priority: medium"
|
"priority: medium"
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[Security Sprint] Error Handling",
|
"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": [
|
"labels": [
|
||||||
"security",
|
"security",
|
||||||
"priority: medium"
|
"priority: medium"
|
||||||
@@ -75,7 +75,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M4] Historical trend charts (Chart.js integration)",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-4",
|
"milestone-4",
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M4] Compliance rate visualizations",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-4",
|
"milestone-4",
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M4] Volume and sender analytics",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-4",
|
"milestone-4",
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M4] Time-series data displays",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-4",
|
"milestone-4",
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M4] Domain comparison views",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-4",
|
"milestone-4",
|
||||||
@@ -130,7 +130,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M5] FastAPI Users integration",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-5",
|
"milestone-5",
|
||||||
@@ -141,7 +141,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M5] User registration and management",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-5",
|
"milestone-5",
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M5] JWT-based authentication",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-5",
|
"milestone-5",
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M5] Role-based access control (RBAC)",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-5",
|
"milestone-5",
|
||||||
@@ -174,7 +174,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M5] Password reset functionality",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-5",
|
"milestone-5",
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M5] Email verification (optional)",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-5",
|
"milestone-5",
|
||||||
@@ -196,7 +196,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M6] Apprise integration",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-6",
|
"milestone-6",
|
||||||
@@ -207,7 +207,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M6] Customizable alert rules",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-6",
|
"milestone-6",
|
||||||
@@ -218,7 +218,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M6] Multi-channel notifications (Email, Slack, etc.)",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-6",
|
"milestone-6",
|
||||||
@@ -229,7 +229,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M6] Alert history and management",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-6",
|
"milestone-6",
|
||||||
@@ -240,7 +240,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M6] Notification preferences per user",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-6",
|
"milestone-6",
|
||||||
@@ -251,7 +251,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M7] Custom alert conditions",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-7",
|
"milestone-7",
|
||||||
@@ -262,7 +262,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M7] Threshold-based triggers",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-7",
|
"milestone-7",
|
||||||
@@ -273,7 +273,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M7] New sender detection",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-7",
|
"milestone-7",
|
||||||
@@ -284,7 +284,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M7] Anomaly detection",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-7",
|
"milestone-7",
|
||||||
@@ -295,7 +295,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M7] Scheduled report summaries",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-7",
|
"milestone-7",
|
||||||
@@ -306,7 +306,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M8] DNS record health checks",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-8",
|
"milestone-8",
|
||||||
@@ -317,7 +317,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M8] SPF/DKIM/DMARC validation",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-8",
|
"milestone-8",
|
||||||
@@ -328,7 +328,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M8] Cloudflare API integration",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-8",
|
"milestone-8",
|
||||||
@@ -339,7 +339,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M8] Configuration recommendations",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-8",
|
"milestone-8",
|
||||||
@@ -350,7 +350,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M8] DNS change tracking",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-8",
|
"milestone-8",
|
||||||
@@ -361,7 +361,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M9] Forensic report parsing",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-9",
|
"milestone-9",
|
||||||
@@ -372,7 +372,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M9] Failure sample analysis",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-9",
|
"milestone-9",
|
||||||
@@ -383,7 +383,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M9] PII redaction options",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-9",
|
"milestone-9",
|
||||||
@@ -394,7 +394,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M9] Detailed authentication failure views",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-9",
|
"milestone-9",
|
||||||
@@ -405,7 +405,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M9] Sample download/export",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-9",
|
"milestone-9",
|
||||||
@@ -416,7 +416,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M10] Historical trend analysis",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-10",
|
"milestone-10",
|
||||||
@@ -427,7 +427,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M10] Comparative reporting",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-10",
|
"milestone-10",
|
||||||
@@ -438,7 +438,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M10] Export capabilities (PDF, CSV)",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-10",
|
"milestone-10",
|
||||||
@@ -449,7 +449,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M10] Scheduled reports",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-10",
|
"milestone-10",
|
||||||
@@ -460,7 +460,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M10] Custom dashboards",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-10",
|
"milestone-10",
|
||||||
@@ -471,7 +471,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M11] Multi-tenant architecture",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-11",
|
"milestone-11",
|
||||||
@@ -482,7 +482,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M11] API rate limiting",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-11",
|
"milestone-11",
|
||||||
@@ -493,7 +493,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M11] Advanced RBAC",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-11",
|
"milestone-11",
|
||||||
@@ -504,7 +504,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M11] SSO integration (SAML, OAuth)",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-11",
|
"milestone-11",
|
||||||
@@ -515,7 +515,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M11] Compliance reporting (SOC 2, GDPR)",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-11",
|
"milestone-11",
|
||||||
@@ -526,7 +526,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M11] High availability setup",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-11",
|
"milestone-11",
|
||||||
@@ -537,7 +537,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[M11] Backup and disaster recovery",
|
"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": [
|
"labels": [
|
||||||
"enhancement",
|
"enhancement",
|
||||||
"milestone-11",
|
"milestone-11",
|
||||||
@@ -548,7 +548,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[Continuous] Code Quality Improvements",
|
"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": [
|
"labels": [
|
||||||
"maintenance",
|
"maintenance",
|
||||||
"continuous-improvement",
|
"continuous-improvement",
|
||||||
@@ -559,7 +559,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[Continuous] Security Improvements",
|
"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": [
|
"labels": [
|
||||||
"maintenance",
|
"maintenance",
|
||||||
"continuous-improvement",
|
"continuous-improvement",
|
||||||
@@ -570,7 +570,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[Continuous] Documentation Improvements",
|
"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": [
|
"labels": [
|
||||||
"maintenance",
|
"maintenance",
|
||||||
"continuous-improvement",
|
"continuous-improvement",
|
||||||
@@ -581,7 +581,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "[Continuous] Community Improvements",
|
"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": [
|
"labels": [
|
||||||
"maintenance",
|
"maintenance",
|
||||||
"continuous-improvement"
|
"continuous-improvement"
|
||||||
+54
-54
@@ -29,7 +29,7 @@ Ongoing code quality tasks to maintain and improve DMARQ.
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -56,7 +56,7 @@ Ongoing security tasks to maintain and improve DMARQ.
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -83,7 +83,7 @@ Ongoing documentation tasks to maintain and improve DMARQ.
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -110,7 +110,7 @@ Ongoing community tasks to maintain and improve DMARQ.
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -138,7 +138,7 @@ Historical trend analysis
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -162,7 +162,7 @@ Comparative reporting
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -186,7 +186,7 @@ Export capabilities (PDF, CSV)
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -210,7 +210,7 @@ Scheduled reports
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -234,7 +234,7 @@ Custom dashboards
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -262,7 +262,7 @@ Multi-tenant architecture
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -286,7 +286,7 @@ API rate limiting
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -310,7 +310,7 @@ Advanced RBAC
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -334,7 +334,7 @@ SSO integration (SAML, OAuth)
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -358,7 +358,7 @@ Compliance reporting (SOC 2, GDPR)
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -382,7 +382,7 @@ High availability setup
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -406,7 +406,7 @@ Backup and disaster recovery
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -434,7 +434,7 @@ Historical trend charts (Chart.js integration)
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -458,7 +458,7 @@ Compliance rate visualizations
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -482,7 +482,7 @@ Volume and sender analytics
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -506,7 +506,7 @@ Time-series data displays
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -530,7 +530,7 @@ Domain comparison views
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -558,7 +558,7 @@ FastAPI Users integration
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -582,7 +582,7 @@ User registration and management
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -606,7 +606,7 @@ JWT-based authentication
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -630,7 +630,7 @@ Role-based access control (RBAC)
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -654,7 +654,7 @@ Password reset functionality
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -678,7 +678,7 @@ Email verification (optional)
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -706,7 +706,7 @@ Apprise integration
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -730,7 +730,7 @@ Customizable alert rules
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -754,7 +754,7 @@ Multi-channel notifications (Email, Slack, etc.)
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -778,7 +778,7 @@ Alert history and management
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -802,7 +802,7 @@ Notification preferences per user
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -830,7 +830,7 @@ Custom alert conditions
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -854,7 +854,7 @@ Threshold-based triggers
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -878,7 +878,7 @@ New sender detection
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -902,7 +902,7 @@ Anomaly detection
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -926,7 +926,7 @@ Scheduled report summaries
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -954,7 +954,7 @@ DNS record health checks
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -978,7 +978,7 @@ SPF/DKIM/DMARC validation
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1002,7 +1002,7 @@ Cloudflare API integration
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1026,7 +1026,7 @@ Configuration recommendations
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1050,7 +1050,7 @@ DNS change tracking
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1078,7 +1078,7 @@ Forensic report parsing
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1102,7 +1102,7 @@ Failure sample analysis
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1126,7 +1126,7 @@ PII redaction options
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1150,7 +1150,7 @@ Detailed authentication failure views
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1174,7 +1174,7 @@ Sample download/export
|
|||||||
|
|
||||||
### Related Documentation
|
### 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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1211,7 +1211,7 @@ Part of the **Security Remediation Sprint** - Priority: **CRITICAL**
|
|||||||
### Related Documentation
|
### Related Documentation
|
||||||
|
|
||||||
- [SECURITY.md](../SECURITY.md)
|
- [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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1242,7 +1242,7 @@ Part of the **Security Remediation Sprint** - Priority: **CRITICAL**
|
|||||||
### Related Documentation
|
### Related Documentation
|
||||||
|
|
||||||
- [SECURITY.md](../SECURITY.md)
|
- [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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1273,7 +1273,7 @@ Part of the **Security Remediation Sprint** - Priority: **HIGH**
|
|||||||
### Related Documentation
|
### Related Documentation
|
||||||
|
|
||||||
- [SECURITY.md](../SECURITY.md)
|
- [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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1306,7 +1306,7 @@ Part of the **Security Remediation Sprint** - Priority: **HIGH**
|
|||||||
### Related Documentation
|
### Related Documentation
|
||||||
|
|
||||||
- [SECURITY.md](../SECURITY.md)
|
- [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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1333,7 +1333,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
|
|||||||
### Related Documentation
|
### Related Documentation
|
||||||
|
|
||||||
- [SECURITY.md](../SECURITY.md)
|
- [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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1363,7 +1363,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
|
|||||||
### Related Documentation
|
### Related Documentation
|
||||||
|
|
||||||
- [SECURITY.md](../SECURITY.md)
|
- [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.*
|
*This issue was auto-generated from the DMARQ roadmap.*
|
||||||
@@ -1390,7 +1390,7 @@ Part of the **Security Remediation Sprint** - Priority: **MEDIUM**
|
|||||||
### Related Documentation
|
### Related Documentation
|
||||||
|
|
||||||
- [SECURITY.md](../SECURITY.md)
|
- [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.*
|
*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**
|
### Security Status
|
||||||
- Filter reports by IP address
|
⚠️ **Multiple critical security issues identified** - See [SECURITY.md](../../SECURITY.md) for details
|
||||||
- Filter by authentication result
|
|
||||||
- Custom date range selection
|
|
||||||
- Save custom filters
|
|
||||||
|
|
||||||
- **Improved Visualizations**
|
---
|
||||||
- Interactive charts with drill-down capability
|
|
||||||
- Geographic IP distribution map
|
|
||||||
- Timeline view of authentication changes
|
|
||||||
|
|
||||||
- **Enhanced DNS Health Checks**
|
## Security Remediation Sprint (PRIORITY - In Progress)
|
||||||
- Automated SPF, DKIM, DMARC syntax validation
|
|
||||||
- Record monitoring with change detection
|
|
||||||
- Best practice recommendations
|
|
||||||
|
|
||||||
- **API Enhancements**
|
**Timeline**: Immediate (Next 2-4 weeks)
|
||||||
- Additional endpoints for statistics
|
**Status**: 🔄 In Progress
|
||||||
- Improved authentication options
|
|
||||||
- Better documentation and examples
|
|
||||||
|
|
||||||
### Version 1.2.0 (August 2025)
|
### Critical Fixes Required
|
||||||
|
|
||||||
- **User Management Improvements**
|
#### 1. Authentication & Authorization (CRITICAL)
|
||||||
- Role-based access control
|
- [ ] Add authentication middleware to all admin endpoints
|
||||||
- Domain-specific permissions
|
- [ ] Implement proper user authentication system
|
||||||
- User invitation system
|
- [ ] Add authorization checks on sensitive operations
|
||||||
- Activity audit logging
|
- [ ] 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**
|
#### 2. Secret Management (CRITICAL)
|
||||||
- Organization-level grouping of domains
|
- [ ] Remove default SECRET_KEY value
|
||||||
- Isolated views for different user groups
|
- [ ] Add SECRET_KEY validation on startup
|
||||||
- White-labeling options
|
- [ ] 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**
|
#### 3. XML Parsing Security (HIGH)
|
||||||
- Support for multiple mailboxes
|
- [ ] Replace ElementTree with defusedxml
|
||||||
- Advanced filtering options
|
- [ ] Add file size limits for uploads
|
||||||
- Attachment preprocessing rules
|
- [ ] Implement zip bomb protection
|
||||||
|
- [ ] Add malware scanning hooks (optional)
|
||||||
|
- **Files to Fix**:
|
||||||
|
- `backend/app/services/dmarc_parser.py`
|
||||||
|
|
||||||
- **Forensic Report Analysis**
|
#### 4. Input Validation (HIGH)
|
||||||
- Improved parsing for various report formats
|
- [ ] Add domain name validation regex
|
||||||
- Header analysis tools
|
- [ ] Implement file type validation (MIME + extension)
|
||||||
- Correlation with aggregate reports
|
- [ ] 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**
|
#### 7. Error Handling (MEDIUM)
|
||||||
- Slack/Teams notifications
|
- [ ] Implement centralized error handling
|
||||||
- WebHook support for custom integrations
|
- [ ] Remove sensitive data from error responses
|
||||||
- Export to BI tools
|
- [ ] Add error logging with request context
|
||||||
- SIEM integration
|
- [ ] Create user-friendly error messages
|
||||||
|
- **Files to Fix**:
|
||||||
|
- Multiple endpoints across API layer
|
||||||
|
|
||||||
- **Advanced Alerting System**
|
### Testing & Validation
|
||||||
- Custom alert rules
|
- [ ] Add security-focused unit tests
|
||||||
- Alert severity levels
|
- [ ] Implement integration tests for auth flow
|
||||||
- Alert acknowledgment workflow
|
- [ ] Add penetration testing checklist
|
||||||
- Historical alert tracking
|
- [ ] Document security testing procedures
|
||||||
|
|
||||||
- **DNS Management**
|
### Documentation
|
||||||
- Integration with Cloudflare API
|
- [x] Create SECURITY.md
|
||||||
- Integration with AWS Route 53
|
- [ ] Update deployment guides with security best practices
|
||||||
- One-click fix for common DNS issues
|
- [ ] Create security checklist for contributors
|
||||||
- DNS record deployment tracking
|
- [ ] 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**
|
### Current Features
|
||||||
- SPF record management and monitoring
|
- ✅ IMAP connection and mailbox scanning
|
||||||
- DKIM key rotation management
|
- ✅ Automated report fetching
|
||||||
- BIMI record support
|
- ✅ Background task scheduler
|
||||||
- MTA-STS implementation assistance
|
- ✅ Configuration UI
|
||||||
|
|
||||||
- **Policy Management**
|
### Security Enhancements Needed
|
||||||
- DMARC policy transition recommendations
|
- [ ] **URGENT**: Remove credentials from URL parameters
|
||||||
- Automated policy progression
|
- [ ] Encrypt IMAP credentials at rest
|
||||||
- Impact analysis before policy changes
|
- [ ] Add connection timeout and retry logic
|
||||||
- Rollback capabilities
|
- [ ] 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**
|
## Milestone 3: Database Integration & Persistence (COMPLETE ✅)
|
||||||
- Email notifications
|
|
||||||
- SMS alerts
|
|
||||||
- Mobile app push notifications
|
|
||||||
- Custom notification channels
|
|
||||||
|
|
||||||
## 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**
|
## Milestone 4: Enhanced Dashboard & Visualization (Next - 4-6 weeks)
|
||||||
- LDAP/Active Directory integration
|
|
||||||
- SAML/SSO support
|
|
||||||
- Advanced audit logging
|
|
||||||
- Custom branding
|
|
||||||
|
|
||||||
- **Internationalization**
|
### Planned Features
|
||||||
- Multi-language interface
|
- [ ] Historical trend charts (Chart.js integration)
|
||||||
- Region-specific reporting
|
- [ ] Compliance rate visualizations
|
||||||
- International domain support (IDN)
|
- [ ] Volume and sender analytics
|
||||||
- Localized documentation
|
- [ ] Time-series data displays
|
||||||
|
- [ ] Domain comparison views
|
||||||
|
|
||||||
- **AI-Powered Analysis**
|
### Security Considerations
|
||||||
- Natural language querying of report data
|
- [ ] XSS prevention in chart data
|
||||||
- Automated root cause analysis
|
- [ ] CSP compatibility with Chart.js
|
||||||
- Predictive compliance modeling
|
- [ ] Rate limiting on analytics endpoints
|
||||||
- AI-assisted remediation recommendations
|
- [ ] Data access controls for multi-user scenarios
|
||||||
|
|
||||||
- **Ecosystem Expansion**
|
### Implementation
|
||||||
- Mobile companion app
|
- **Priority**: Medium
|
||||||
- Browser plugins
|
- **Dependencies**: Security Sprint completion
|
||||||
- Desktop notifications
|
- **Estimated Effort**: 2-3 weeks
|
||||||
- Command-line tools
|
|
||||||
|
|
||||||
## 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?
|
### Planned Features
|
||||||
2. **Security Enhancement**: Does it improve email security?
|
- [ ] FastAPI Users integration
|
||||||
3. **Ease of Implementation**: Can we deliver it quickly?
|
- [ ] User registration and management
|
||||||
4. **Strategic Alignment**: Does it align with our vision?
|
- [ ] 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)
|
### Implementation Priority
|
||||||
- Provide details about the feature and why it's valuable
|
- **Priority**: High
|
||||||
- Include use cases and examples when possible
|
- **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
|
### Planned Features
|
||||||
- **Documentation**: Improve guides, examples, and references
|
- [ ] Apprise integration
|
||||||
- **UI/UX**: Enhance the user interface and experience
|
- [ ] Customizable alert rules
|
||||||
- **Testing**: Add tests and improve test coverage
|
- [ ] Multi-channel notifications (Email, Slack, etc.)
|
||||||
- **Performance**: Optimize database queries and processing
|
- [ ] 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)
|
## Milestone 7: Advanced Rule Engine (14-16 weeks)
|
||||||
- **Minor Releases**: Quarterly (February, May, August, November)
|
|
||||||
- **Patch Releases**: As needed for bug fixes and security updates
|
|
||||||
|
|
||||||
## 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
|
### Security Features
|
||||||
- In our community forums
|
- [ ] Secure API credential storage
|
||||||
- During community calls
|
- [ ] DNS query rate limiting
|
||||||
- Via email to roadmap@example.com
|
- [ ] 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
|
- Contributing: development/contributing.md
|
||||||
- Testing: development/testing.md
|
- Testing: development/testing.md
|
||||||
- Roadmap: development/roadmap.md
|
- Roadmap: development/roadmap.md
|
||||||
|
- Agentic Coding: development/agents.md
|
||||||
|
- Issue Generation: development/issue_generation.md
|
||||||
- FAQ: faq.md
|
- FAQ: faq.md
|
||||||
- Changelog: changelog.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]
|
[tool.black]
|
||||||
line-length = 100
|
line-length = 100
|
||||||
target-version = ['py310']
|
target-version = ['py310']
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ class RoadmapParser:
|
|||||||
"### Related Documentation",
|
"### Related Documentation",
|
||||||
"",
|
"",
|
||||||
"- [SECURITY.md](../SECURITY.md)",
|
"- [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.*"
|
"*This issue was auto-generated from the DMARQ roadmap.*"
|
||||||
@@ -166,7 +166,7 @@ class RoadmapParser:
|
|||||||
body_parts.extend([
|
body_parts.extend([
|
||||||
"### Related Documentation",
|
"### 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.*"
|
"*This issue was auto-generated from the DMARQ roadmap.*"
|
||||||
@@ -211,7 +211,7 @@ class RoadmapParser:
|
|||||||
"",
|
"",
|
||||||
"### Related Documentation",
|
"### 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)",
|
"- [SECURITY.md](../SECURITY.md)",
|
||||||
"",
|
"",
|
||||||
"---",
|
"---",
|
||||||
@@ -290,7 +290,7 @@ class RoadmapParser:
|
|||||||
"",
|
"",
|
||||||
"### Related Documentation",
|
"### 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.*"
|
"*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():
|
def main():
|
||||||
"""Main function."""
|
"""Main function."""
|
||||||
repo_root = Path(__file__).parent.parent
|
repo_root = Path(__file__).parent.parent
|
||||||
roadmap_path = repo_root / "ROADMAP.md"
|
roadmap_path = repo_root / "docs" / "development" / "roadmap.md"
|
||||||
output_dir = repo_root / "generated_issues"
|
output_dir = repo_root / "docs" / "development" / "generated_issues"
|
||||||
output_dir.mkdir(exist_ok=True)
|
output_dir.mkdir(exist_ok=True)
|
||||||
|
|
||||||
print("=" * 60)
|
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