github fabriziosalmi/certmate v1.4.0
v1.4.0: Architecture Refactoring

latest release: v1.5.0
7 hours ago

🏗️ 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 ShellExecutor in CertificateManager
  • Removed test contamination from compatibility layers
  • Cleaner separation of concerns following SOLID principles

Strategy Pattern for DNS Providers

  • New modules/core/dns_strategies.py with 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 MaskedString field
  • 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
  • MockShellExecutor for reliable testing

📦 New Modules

  • modules/core/shell.py: Testable command execution interface
  • modules/core/dns_strategies.py: DNS provider strategy implementations
  • test_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

Don't miss a new certmate release

NewReleases is sending notifications on new releases.