[PATCH v3 0/5] client: repository: add individual component parameters

Thomas Lamprecht
2026-04-01T22:53:31Z

Talked a bit with Wolfgang offlist and saw some duplication and
confusion that the v2 kept and partialyl introduced too. So this is the
resulting follow-up to v2 [1] (and v1 [0]).

The compact repository URL format ([[auth-id@]server[:port]:]datastore)
can be cumbersome to work with when changing a single aspect of the
connection or when using API tokens. This series adds --server, --port,
--datastore, --auth-id, and --ns as separate CLI parameters alongside
the existing compound --repository URL.

Changes since v2:
- Deduplicated the param resolution cascade into a shared helper, which
should hopefully also make the change slightly easier to follow.
- Split BackupRepositoryArgs into two: BackupRepositoryArgs (repo fields
only) and BackupTargetArgs (wraps repo args + ns). This avoids the
confusing ns: None pattern in the resolution code.
- small cleanups.

Changes since v1:
- Split the single large commit into separate patches for struct +
logic, command migration, docs, and PBS_NAMESPACE
- CLI atom options now merge with PBS_* env vars per-field (CLI wins)
- Fixed error swallowing when combining --repository with atom options
- Fixed duplicate ns property in the restore command's #[api] block
- PBS_NAMESPACE env var support across all client binaries (bug #5340)

[0] https://lore.proxmox.com/pbs-devel/20260323211400.2661765-1-t.lamprecht@proxmox.com/
[1] https://lore.proxmox.com/pbs-devel/20260330182352.2346420-1-t.lamprecht@proxmox.com/

Thomas Lamprecht (5):
client: repository: add tests for BackupRepository parsing
client: repository: add individual component parameters
client: migrate commands to flattened repository args
docs: document repository component options and env vars
fix #5340: client: repository: add PBS_NAMESPACE environment variable

docs/backup-client.rst | 64 +++++
pbs-client/src/backup_repo.rs | 321 ++++++++++++++++++++++++-
pbs-client/src/tools/mod.rs | 279 ++++++++++++++++++---
proxmox-backup-client/src/benchmark.rs | 8 +-
proxmox-backup-client/src/catalog.rs | 26 +-
proxmox-backup-client/src/group.rs | 14 +-
proxmox-backup-client/src/main.rs | 101 ++++----
proxmox-backup-client/src/mount.rs | 17 +-
proxmox-backup-client/src/namespace.rs | 33 +--
proxmox-backup-client/src/snapshot.rs | 84 ++-----
proxmox-backup-client/src/task.rs | 20 +-
proxmox-file-restore/src/main.rs | 43 ++--
src/bin/proxmox_backup_debug/diff.rs | 23 +-
13 files changed, 784 insertions(+), 249 deletions(-)

--
2.47.3