ProxmoxBackupClientPBSClien.../CHANGELOG.md
zaphod-black 748e735e5d Fix critical password newline bug causing backup authentication failure
CRITICAL BUG FIX: The prompt_password() function was capturing a newline
character along with the password/token, causing the config file to have
malformed multi-line password values.

The Problem:
- prompt_password() used `echo` to print a newline after password input
- This echo was captured by command substitution: PBS_PASSWORD=$(prompt_password ...)
- Config file ended up with:
  PBS_PASSWORD="
  actual-token-here"
- PBS client couldn't authenticate with the malformed password
- Error: "authentication failed - invalid credentials"

The Fix:
- Changed `echo` to `echo >&2` (output to stderr)
- Stderr is not captured by command substitution
- Only the actual password is captured and stored
- Config file now correctly has: PBS_PASSWORD="actual-token-here"

File Changed: pbs-client-installer.sh
- Line 54: echo >&2  # Output newline to stderr so it doesn't get captured

CHANGELOG.md Updated:
- Documented as CRITICAL fix
- Explains the authentication failure in backup service
- Notes config file formatting fix

Impact:
- Connection test passed but backup service failed with auth error
- This affected both password and API token authentication
- Backups would fail silently on scheduled runs
- Now fixed: backups will authenticate correctly

Testing:
User should run installer again and the backup service will now work.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 18:08:18 -05:00

3.7 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • Intelligent reconfiguration options when PBS client is already installed
    • Quick connection-only reconfiguration (server/credentials only)
    • Full reconfiguration of all settings
    • Reinstall option with reconfiguration
    • Exit without changes option
  • 3-step connection verification process:
    • Step 1: Server reachability test (5s timeout with curl)
    • Step 2: Authentication test with automatic SSL fingerprint acceptance
    • Step 3: Datastore access verification
  • Display available block devices when invalid device is entered
  • Step-by-step progress indicators during connection testing
  • test-connection.sh - Diagnostic script for testing PBS connections manually
    • Parameterized for security (no hardcoded credentials)
    • Tests server reachability, authentication, and datastore access
    • Handles SSL fingerprint acceptance interactively
  • Comprehensive documentation in README:
    • Step-by-step walkthrough of complete installation (14 steps)
    • PBS server setup guide (API token creation and permissions)
    • Common permission error troubleshooting
    • Explanation of backup types, schedules, and retention policies

Changed

  • Installation instructions now use git clone instead of wget
  • Connection test provides better user feedback during testing
  • Script now detects existing configurations and offers appropriate options
  • Block device detection now strips btrfs subvolume notation (e.g., [/@])
  • Connection test succeeds if authentication works, even if no backups exist yet
  • More specific error messages based on which step of connection test fails
  • SSL certificate fingerprints are now automatically accepted during setup
  • Reduced authentication timeout from 30s to 15s
  • README now includes comprehensive step-by-step walkthrough
  • Prerequisites section expanded with detailed PBS server setup instructions

Fixed

  • CRITICAL: SSL fingerprint prompt no longer causes authentication timeout
    • Script now automatically accepts SSL fingerprints by piping 'y' to login
    • This was the root cause of "authentication hanging" issues
  • CRITICAL: Password/token capture no longer includes newline character
    • prompt_password() function now outputs formatting to stderr
    • Fixes "authentication failed - invalid credentials" in backup service
    • Config file now has properly formatted single-line passwords
  • Script no longer hangs indefinitely when PBS server is unreachable
  • Block device auto-detection now correctly handles btrfs subvolumes
  • Invalid device paths like /dev/mapper/root[/@] are now properly cleaned
  • Connection test now differentiates between network issues and authentication failures
  • Shows actual PBS client error messages when authentication fails
  • Authentication test now uses correct login command instead of non-existent status command
  • Connection test no longer times out due to using wrong PBS client commands

[1.0.0] - 2025-11-01

Added

  • Initial release
  • Auto-detection of Linux distribution (Ubuntu, Debian, Arch)
  • Interactive configuration via console prompts
  • Automatic encryption key generation with paper backup
  • Systemd service and timer for automated backups
  • Configurable retention policies
  • Connection testing before finalization
  • Immediate backup option after installation
  • Support for file-level (.pxar) backups
  • Support for block device (.img) backups
  • Hybrid backup mode (daily files + weekly block device)
  • Comprehensive error handling and logging
  • Uninstaller script