Skip to content

v0.4.0

Latest

Choose a tag to compare

@indhifarhandika indhifarhandika released this 15 Aug 06:19

🌖 LunarDump Release Notes

[v0.4.0] - 2026-08-15

We are excited to announce LunarDump v0.4.0, a major release bringing instant template generation, live zero-disk database migration, human-friendly daemon scheduling, a zero-config command-driven Web UI with live interactive terminal streaming, and extensive real-world performance benchmarks!


🚀 Highlights & New Features

1. Instant Template Generator (lunardump config generate)

No more writing configuration files or environment variables manually. With a single command, LunarDump generates three production-ready files pre-populated with a cryptographically secure 256-bit AES key:

  • config.yaml: Pre-configured backup pipeline template.
  • migration.yaml: Live database-to-database migration profile.
  • .env: Environment file containing passwords, cloud credentials, and an auto-generated AES-256 secret key.
# Generate default PostgreSQL + S3 templates
lunardump config generate

# Or specify database engine and cloud storage target
lunardump config generate --db-type mysql --storage s3

2. Live Database Migration (lunardump migrate) & Focused Web UI

Perform direct, real-time database-to-database migration from Server A (Source DB) to Server B (Target DB) with Zero-Disk Pipe Streaming (0 bytes disk space used).

  • Supports PostgreSQL, MySQL, MariaDB, and MongoDB.
  • Includes optional In-Flight AES-256-GCM Encryption for safe migration over untrusted public networks.
  • Dedicated Web UI view focused on Live Migration execution and parameter input.
# Migration using YAML configuration file
lunardump migrate --config migration.yaml

# Or direct migration via CLI flags with environment variables for passwords
export SOURCE_DB_PASS="password_server_a"
export TARGET_DB_PASS="password_server_b"

lunardump migrate \
  --source-type postgres --source-host 192.168.1.10 --source-name db_prod --source-password-env SOURCE_DB_PASS \
  --target-type postgres --target-host 192.168.1.20 --target-name db_dest --target-password-env TARGET_DB_PASS

3. Embedded Command-Driven Web Control Panel & Live Terminal (lunardump ui)

Launch an interactive, real-time web dashboard directly in your browser with a single CLI command:

  • Zero-Config Direct Parameter Execution: Input database connection parameters (Engine, Host, Port, Database Name, Username, Password) directly in the UI without requiring pre-existing config files on disk.
  • Embedded Interactive Live Terminal Stream (#migration-terminal): Real-time terminal output window displaying step-by-step progress, timestamps, and live WebSocket log streaming (/ws/logs).
  • 🧪 Test Dry-Run Parameters: 1-click dry-run testing tool to validate client binaries (pg_dump, mysqldump, mongodump, pg_restore, mysql) and TCP host connectivity before initiating live migration.
lunardump ui [--port 8080] [--host 127.0.0.1]

4. Human-Friendly Daemon & Schedule Runner (--cron)

Automate continuous background backups using human-friendly schedule expressions or standard 5-field cron syntax:

  • day-2: Daily at 02:00 AM
  • day-14.5 / day-14:30: Daily at 14:30
  • week-14.5: Weekly on Sunday at 14:30
  • week-mon-14.5: Weekly on Monday at 14:30
  • month-1-2: 1st of every month at 02:00 AM
  • every-15m: Every 15 minutes
  • 0 2 * * *: Standard cron expression
lunardump run --config config.yaml --cron "day-2"

5. Direct Cloud Restore & Injection (lunardump restore)

Stream-decrypt encrypted .enc backup archives directly from cloud storage (S3 / GCS) and inject payload into a target database engine without writing unencrypted files to disk.


⚡ Memory & Performance Benchmark (Memray Profile)

Real-world production benchmark profiling an 8 GB Database Dump over 1+ hour continuous execution using Bloomberg's Memray profiler:

Metric Result
Database Payload Size 8 GB Data
Execution Duration 1 Hour 1 Minute 57 Seconds
Total Memory Allocations 5,941,989 allocations
Peak RAM Usage 119.1 MB RAM (Constant $O(1)$ memory footprint)
Python Allocator pymalloc

🔐 Security & Schema Enhancements

  • Added GOOGLE_APPLICATION_CREDENTIALS support in generated .env and config.example.yaml for Google Cloud Storage.
  • Updated Pydantic v2 configuration schema to make storage optional for live migration profiles.
  • Enforced 0600 permission controls on generated encryption key secret files.

🧪 Quality Assurance & Test Coverage

  • 68/68 Pytest Unit Tests Passing with 83% Code Coverage.
  • Fully updated documentation suite at docs.lunardump.io.