README.md updates: - Added Cloud Storage Integration section with quick start - Added cloud flags to Global Flags table - Added all 5 cloud providers (S3, MinIO, B2, Azure, GCS) - Updated Key Features to highlight cloud storage - Added Windows to cross-platform list CHANGELOG.md: - Complete v2.1.0 changelog with cloud storage features - Cross-platform support details (10/10 platforms) - TUI cloud integration documentation - Fixed issues from BSD/Windows build problems - v2.0.0 and earlier versions documented
6.4 KiB
6.4 KiB
Changelog
All notable changes to dbbackup will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.1.0] - 2025-11-26
Added - Cloud Storage Integration
- S3/MinIO/B2 Support: Native S3-compatible storage backend with streaming uploads
- Azure Blob Storage: Native Azure integration with block blob support for files >256MB
- Google Cloud Storage: Native GCS integration with 16MB chunked uploads
- Cloud URI Syntax: Direct backup/restore using
--cloud s3://bucket/pathURIs - TUI Cloud Settings: Configure cloud providers directly in interactive menu
- Cloud Storage Enabled toggle
- Provider selector (S3, MinIO, B2, Azure, GCS)
- Bucket/Container configuration
- Region configuration
- Credential management with masking
- Auto-upload toggle
- Multipart Uploads: Automatic multipart uploads for files >100MB (S3/MinIO/B2)
- Streaming Transfers: Memory-efficient streaming for all cloud operations
- Progress Tracking: Real-time upload/download progress with ETA
- Metadata Sync: Automatic .sha256 and .info file upload alongside backups
- Cloud Verification: Verify backup integrity directly from cloud storage
- Cloud Cleanup: Apply retention policies to cloud-stored backups
Added - Cross-Platform Support
- Windows Support: Native binaries for Windows Intel (amd64) and ARM (arm64)
- NetBSD Support: Full support for NetBSD amd64 (disk checks use safe defaults)
- Platform-Specific Implementations:
resources_unix.go- Linux, macOS, FreeBSD, OpenBSDresources_windows.go- Windows stub implementationdisk_check_netbsd.go- NetBSD disk space stub
- Build Tags: Proper Go build constraints for platform-specific code
- All Platforms Building: 10/10 platforms successfully compile
- ✅ Linux (amd64, arm64, armv7)
- ✅ macOS (Intel, Apple Silicon)
- ✅ Windows (Intel, ARM)
- ✅ FreeBSD amd64
- ✅ OpenBSD amd64
- ✅ NetBSD amd64
Changed
- Cloud Auto-Upload: When
CloudEnabled=trueandCloudAutoUpload=true, backups automatically upload after creation - Configuration: Added cloud settings to TUI settings interface
- Backup Engine: Integrated cloud upload into backup workflow with progress tracking
Fixed
- BSD Syscall Issues: Fixed
syscall.Rlimittype mismatches (int64 vs uint64) on BSD platforms - OpenBSD RLIMIT_AS: Made RLIMIT_AS check Linux-only (not available on OpenBSD)
- NetBSD Disk Checks: Added safe default implementation for NetBSD (syscall.Statfs unavailable)
- Cross-Platform Builds: Resolved Windows syscall.Rlimit undefined errors
Documentation
- Updated README.md with Cloud Storage section and examples
- Enhanced CLOUD.md with setup guides for all providers
- Added testing scripts for Azure and GCS
- Docker Compose files for Azurite and fake-gcs-server
Testing
- Added
scripts/test_azure_storage.sh- Azure Blob Storage integration tests - Added
scripts/test_gcs_storage.sh- Google Cloud Storage integration tests - Docker Compose setups for local testing (Azurite, fake-gcs-server, MinIO)
[2.0.0] - 2025-11-25
Added - Production-Ready Release
- 100% Test Coverage: All 24 automated tests passing
- Zero Critical Issues: Production-validated and deployment-ready
- Backup Verification: SHA-256 checksum generation and validation
- JSON Metadata: Structured .info files with backup metadata
- Retention Policy: Automatic cleanup of old backups with configurable retention
- Configuration Management:
- Auto-save/load settings to
.dbbackup.confin current directory - Per-directory configuration for different projects
- CLI flags always take precedence over saved configuration
- Passwords excluded from saved configuration files
- Auto-save/load settings to
Added - Performance Optimizations
- Parallel Cluster Operations: Worker pool pattern for concurrent database operations
- Memory Efficiency: Streaming command output eliminates OOM errors
- Optimized Goroutines: Ticker-based progress indicators reduce CPU overhead
- Configurable Concurrency:
CLUSTER_PARALLELISMenvironment variable
Added - Reliability Enhancements
- Context Cleanup: Proper resource cleanup with
sync.Onceandio.Closerinterface - Process Management: Thread-safe process tracking with automatic cleanup on exit
- Error Classification: Regex-based error pattern matching for robust error handling
- Performance Caching: Disk space checks cached with 30-second TTL
- Metrics Collection: Structured logging with operation metrics
Fixed
- Configuration Bug: CLI flags now correctly override config file values
- Memory Leaks: Proper cleanup prevents resource leaks in long-running operations
Changed
- Streaming Architecture: Constant ~1GB memory footprint regardless of database size
- Cross-Platform: Native binaries for Linux (x64/ARM), macOS (x64/ARM), FreeBSD, OpenBSD
[1.2.0] - 2025-11-12
Added
- Interactive TUI: Full terminal user interface with progress tracking
- Database Selector: Interactive database selection for backup operations
- Archive Browser: Browse and restore from backup archives
- Configuration Settings: In-TUI configuration management
- CPU Detection: Automatic CPU detection and optimization
Changed
- Improved error handling and user feedback
- Enhanced progress tracking with real-time updates
[1.1.0] - 2025-11-10
Added
- Multi-Database Support: PostgreSQL, MySQL, MariaDB
- Cluster Operations: Full cluster backup and restore for PostgreSQL
- Sample Backups: Create reduced-size backups for testing
- Parallel Processing: Automatic CPU detection and parallel jobs
Changed
- Refactored command structure for better organization
- Improved compression handling
[1.0.0] - 2025-11-08
Added
- Initial release
- Single database backup and restore
- PostgreSQL support
- Basic CLI interface
- Streaming compression
Version Numbering
- Major (X.0.0): Breaking changes, major feature additions
- Minor (0.X.0): New features, non-breaking changes
- Patch (0.0.X): Bug fixes, minor improvements
Upcoming Features
See ROADMAP.md for planned features:
- Phase 3: Incremental Backups
- Phase 4: Encryption (AES-256)
- Phase 5: PITR (Point-in-Time Recovery)
- Phase 6: Enterprise Features (Prometheus metrics, remote restore)