Skip to content

v0.2.0

Latest

Choose a tag to compare

@indhifarhandika indhifarhandika released this 31 Jul 00:20

🚀 LunarDump v0.2.0 Release Notes

We are excited to announce LunarDump v0.2.0! This release introduces a major new disaster recovery feature: Stream Integrity & Checksum Verification (lunardump restore --verify), along with seamless environment variable loading, uv package manager support, and improved configuration guidance.


🌟 What's New in v0.2.0

🛡️ Backup Integrity & Checksum Verification (--verify)

Ensuring that your encrypted database backups are uncorrupted, authentic, and decryptable before a real disaster strikes is crucial. With lunardump restore --verify, you can now validate your backup archives on-the-fly without restoring them to a live database or writing unencrypted data to disk.

  • AES-256-GCM Stream Validation: Authenticates header signatures (LUNARDUMP_V1), salt, nonces, and cryptographic authentication tags across every chunk.
  • Cryptographic Checksums: Generates instant SHA-256 and MD5 checksums of the unencrypted payload.
  • Zero-Disk Overhead: Performs verification entirely in memory (64KB chunks).
  • Direct Cloud Storage Verification: Verify remote backup archives stored in AWS S3, Google Cloud Storage, MinIO, or Cloudflare R2 without manual downloading.

Command Examples:

# 1. Verify local encrypted backup file
lunardump restore --file backup_20260730.enc --key secret.key --verify

# 2. Download and verify directly from Cloud Storage (S3 / GCS)
lunardump restore --config config.yaml --remote-key daily/mysql/backup_20260730.enc --verify

Verification Terminal Report:

                     LunarDump Backup Integrity & Verification Report                     
┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Metric                   ┃ Details                                                              ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Backup Source            │ s3://company-db-backups/daily/mysql/backup_20260730.enc             │
│ Integrity Status         │ PASSED (AES-256-GCM Authenticated)                                   │
│ Decrypted Size           │ 14.28 MB (14,972,812 bytes)                                          │
│ SHA-256 Checksum         │ a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8a8       │
│ MD5 Checksum             │ c4ca4238a0b923820dcc509a6f75849b                                      │
│ Validated Chunks         │ 228 chunk(s)                                                         │
└━━━━━━━━━━━━━━━━━━━━━━━━━━┴━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┘

✓ Backup file is authentic, uncorrupted, and ready for disaster recovery.

⚡ Improvements & Fixes

📦 Automatic .env Loading Across All Terminals

  • Added python-dotenv>=1.0.0 to core package dependencies.
  • Added automatic .env initialization at CLI entrypoint (lunardump/main.py), resolving environment variables seamlessly out-of-the-box.

⚡ Package Manager Support (uv & uvx)

  • Full support and documentation for installing LunarDump via uv:
    • Global CLI installation: uv tool install lunardump
    • One-off instant execution: uvx lunardump run --config config.yaml

📝 Enhanced Configuration & Guidance

  • Updated config.example.yaml and README.md with explicit comments for storage: provider options (S3, GCS, MinIO, R2, Local).
  • Added explanatory notes for notifications: channels (requires at least 1 channel, supports multi-channel notification setups).

📄 Full Changelog

  • feat(cli): Added --verify flag to restore command for integrity and checksum verification.
  • feat(cli): Added --remote-key and --config support to restore for direct cloud storage verification.
  • feat(security): Added verify_stream method in StreamCipher calculating SHA-256 & MD5 checksums.
  • fix(deps): Moved python-dotenv into core dependencies array in pyproject.toml.
  • docs: Added CONTRIBUTING.md, SECURITY.md, and updated config.example.yaml comments.

⚙️ Installation & Upgrade

Via pip:

pip install --upgrade lunardump

Via uv:

uv tool install --upgrade lunardump

Full Commit History & Repository: github.com/indhifarhandika/LunarDump