From 8774b4d1b660868fd3e6614d4f8e36d459805be0 Mon Sep 17 00:00:00 2001 From: xiatianxuan Date: Fri, 19 Jun 2026 19:39:33 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=20v2.0.0=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- releases/v2.0.0.md | 135 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 releases/v2.0.0.md diff --git a/releases/v2.0.0.md b/releases/v2.0.0.md new file mode 100644 index 0000000..749fc7d --- /dev/null +++ b/releases/v2.0.0.md @@ -0,0 +1,135 @@ +## What's New + +### Major Features + +#### Multi-Destination Backup +- Parallel backup to local + multiple remote targets simultaneously +- Supports SFTP + WebDAV + S3 cloud storage in a single operation +- Independent failure handling per destination + +#### S3 Cloud Storage +- AWS S3 compatible storage support (AWS, MinIO, Alibaba Cloud OSS, etc.) +- Upload/download/delete operations +- Auto-create bucket if not exists + +#### Data Integrity +- SHA256 checksum generation and verification +- Reed-Solomon error correction codes (reedsolo) +- Tamper detection with HMAC validation + +#### Task Queue System +- JSON-persistent task queue management +- Add, execute, cancel, delete tasks +- Async background execution with status tracking + +#### Cross-Archive Search +- Search for files across multiple backup archives +- Pattern matching with wildcard support +- Results grouped by archive + +#### Selective Restore +- Restore specific files matching patterns +- Keyword-based file extraction +- Dry-run preview before actual restore + +#### Backup Rotation +- Keep-count policy: retain latest N backups +- Keep-days policy: retain backups within N days +- Keep-daily policy: retain N daily backups + +#### Pre/Post Hooks +- Execute custom commands before/after backup +- Timeout control and error handling +- Cross-platform command parsing + +#### Configuration Profile +- Save/load/delete named profiles +- Switch between different backup configurations +- Import/export profiles as JSON + +#### Audit Logging +- Record all backup/restore operations +- Search by time range and event type +- JSON-persistent audit trail + +### Performance & Reliability + +- **Chunked Backup**: 64KB block-level incremental backup +- **File Deduplication**: SHA256-based dedup to avoid redundant uploads +- **Parallel Compression**: Multi-threaded compression for large backups +- **Bandwidth Limiter**: Token bucket rate limiting for remote uploads +- **Retry Mechanism**: Exponential backoff for network operations +- **Backup Lock**: Cross-platform process lock to prevent concurrent runs + +### New Commands (27 added) + +| Command | Description | +|---------|-------------| +| `edit` | Edit existing backup strategy | +| `history` | View backup version history | +| `info` | View backup file details | +| `diff` | Compare source directory with backup | +| `verify` | Verify backup file integrity | +| `remote` | Remote file management (list/rm) | +| `export` / `import` | Export/import backup strategies | +| `status` | Backup status dashboard | +| `ignore` | Generate .sbackupignore file | +| `versions` | View backup version history | +| `schedule` | Export cron/schtasks configuration | +| `webhook` | Configure webhook presets | +| `config` | Encrypt/decrypt/validate config | +| `report` | Generate HTML/JSON backup reports | +| `search` | Search files in backup | +| `xsearch` | Cross-archive search | +| `clean` | Clean old backups | +| `completion` | Generate shell completion scripts | +| `wizard` | Interactive configuration wizard | +| `task` | Task queue management | +| `audit` | Audit log queries | +| `hooks` | Manual hook execution | +| `profile` | Configuration profile management | +| `rotate` | Backup rotation cleanup | +| `diskcheck` | Disk space estimation | +| `benchmark` | Compression format benchmarking | +| `integrity` | Directory integrity verification | + +### Remote Backup Enhancements + +- **SFTP**: Auto-detect default SSH keys (~/.ssh/id_rsa, id_ed25519) +- **SFTP**: Host key verification with known_hosts +- **SFTP**: Allow password fallback on private key auth failure +- **WebDAV**: Zero-dependency urllib implementation +- **WebDAV**: SSRF protection (protocol/IP validation) +- **WebDAV**: Proper PROPFIND redirect handling +- **S3**: MinIO client with path prefix support + +### Security + +- PBKDF2 encryption for sensitive config fields +- HMAC-SHA256 config tamper detection +- SSRF protection for WebDAV and webhook URLs +- Safe archive extraction (path traversal prevention) + +### Developer Experience + +- 37 CLI commands +- 37 source modules +- 9 language translations (665 keys each) +- 940 tests, 0 failures +- CI/CD: pytest on 3 platforms x 2 Python versions +- Release automation with versioned binary names + +## Installation + +```bash +pip install sbackup-cli +``` + +**Binary downloads:** + +| Platform | File | +|----------|------| +| Windows x64 | `sbackup-2.0.0-windows-x64.exe` | +| macOS ARM64 | `sbackup-2.0.0-macos-arm64` | +| macOS x64 | `sbackup-2.0.0-macos-x86_64` | +| Linux x64 | `sbackup-2.0.0-linux-x86_64` |