🏗️ Architecture Overhaul
This release represents a major architectural improvement to CertMate with comprehensive refactoring focused on clean architecture, dependency injection, and enhanced security.
🎯 Key Improvements
Dependency Injection
- Implemented proper DI for
ShellExecutorinCertificateManager - Removed test contamination from compatibility layers
- Cleaner separation of concerns following SOLID principles
Strategy Pattern for DNS Providers
- New
modules/core/dns_strategies.pywith extensible DNS provider support - Supports 15+ DNS providers (Cloudflare, Route53, Azure, GCP, etc.)
- Easy to add new providers without modifying core logic
- Foundation for future features like domain alias support (#39)
API Security Enhancements
- Automatic secret masking via
MaskedStringfield - Reduced manual masking logic, minimizing security risks
- Enhanced exception handling with specific error types
✅ Quality & Testing
- All 27 tests passing (7 core, 7 e2e, 13 integration)
- New comprehensive test suite for dependency injection
- Fixed all cryptography deprecation warnings
MockShellExecutorfor reliable testing
📦 New Modules
modules/core/shell.py: Testable command execution interfacemodules/core/dns_strategies.py: DNS provider strategy implementationstest_shell_executor.py: DI and mocking validation tests
🐛 Bug Fixes
- Fixed test contamination issues
- Resolved GitHub issue #38 (Private CA configuration fields)
- Updated deprecated cryptography API calls (
not_valid_after_utc,last_update_utc,next_update_utc) - Improved exception handling in API resources
- Fixed e2e test fixture issues
🔄 Breaking Changes
None - This release is fully backward compatible.
📊 Statistics
- 10 files changed
- 902 insertions, 794 deletions
- 3 new modules created
- 100% test pass rate
🚀 What's Next
The new Strategy Pattern architecture makes it easier to implement:
- Domain alias DNS challenge support (#39)
- Additional DNS providers
- Custom certificate validation logic
Full Changelog: v1.3.0...v1.4.0