feat: implement comprehensive environment variable credential support

- Add environment variable overrides for sensitive credentials in both Go and Rust implementations
- Support MAIL2COUCH_COUCHDB_USER and MAIL2COUCH_COUCHDB_PASSWORD for CouchDB credentials
- Support MAIL2COUCH_IMAP_<NAME>_USER and MAIL2COUCH_IMAP_<NAME>_PASSWORD for IMAP credentials
- Implement automatic name normalization for mail source names to environment variable format
- Add runtime display of active environment variable overrides
- Enhance --help output in both implementations with comprehensive environment variable documentation
- Add detailed environment variable section to README with usage examples and security benefits
- Create comprehensive ENVIRONMENT_VARIABLES.md reference guide with SystemD, Docker, and CI/CD examples
- Update all documentation indices and cross-references
- Include security best practices and troubleshooting guidance
- Maintain full backward compatibility with existing configuration files

This enhancement addresses the high-priority security requirement to eliminate plaintext
passwords from configuration files while providing production-ready credential management
for both development and deployment scenarios.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ole-Morten Duesund 2025-08-07 15:09:34 +02:00
commit 8764b44a05
9 changed files with 532 additions and 13 deletions

View file

@ -138,11 +138,14 @@ Both implementations have achieved **production readiness** with comprehensive t
- ✅ **SystemD Integration**: Automated scheduling support
- ✅ **Build System**: Unified justfile for both implementations
### **Recently Completed Enhancements**
1. **✅ Security**: Environment variable credential support - both implementations support full credential override via environment variables
2. **✅ Documentation**: Comprehensive help text and README documentation for all security features
### **Future Enhancement Priorities**
1. **Security**: Environment variable credential support
2. **Go Concurrency**: Optional parallel processing
3. **Progress Indicators**: Real-time progress reporting
4. **Interactive Setup**: Guided configuration wizard
1. **Go Concurrency**: Optional parallel processing
2. **Progress Indicators**: Real-time progress reporting
3. **Interactive Setup**: Guided configuration wizard
## Conclusion