PegaProx Storage Assistant 0.2.0 — Read-Only Discovery Preview
Pre-releaseRead-only discovery preview
PegaProx Storage Assistant 0.2.0 adds read-only inspection of saved PVE/NFS and PBS/iSCSI definitions through connections already managed by PegaProx.
This remains an early community preview. It can observe existing state, but it does not mount exports or devices, log in to iSCSI targets, format filesystems, remove signatures, register storage or make any other remote change.
Highlights
- inspect PVE nodes, configured storage and NFS export visibility through the existing PegaProx cluster manager;
- inspect PBS datastores and disks through the existing PBS manager;
- optionally observe already-established iSCSI sessions, block devices and multipath maps through a hard-coded read-only command allowlist;
- run discovery on bounded, named daemon workers with owner-scoped results, progress reporting, TTL cleanup and cooperative cancellation;
- publish minimal PVE progress through cluster-scoped PegaProx SSE, with authenticated REST polling as a compatibility fallback;
- keep PBS progress owner-scoped through REST polling because PegaProx 1.0.2 does not expose a PBS- or user-scoped SSE target;
- inherit the signed-in user's PegaProx language at runtime;
- replace browser confirmation prompts with a theme-aware plugin dialog;
- preserve the existing persistent registry and the strict separation between PVE/NFS and PBS/iSCSI workflows.
Alignment with PegaProx guidance
The integration follows the maintainer guidance recorded in PegaProx issue #718:
check_cluster_access()runs before a PVE manager is resolved;check_pbs_access()runs beforepbs_managers[pbs_id]is read;- PegaProx-managed connections are reused without copying credentials;
- feature-detected private API and SSH seams are isolated in
compat.py; - PVE inspection requires
storage.view; - PBS inspection requires
pbs.view,pbs.disks.viewandpbs.datastore.view; - discovery start, cancellation request and final state are audited;
- mutating PBS work remains blocked until the planned core-owned
pbs.disks.managepermission and suitable public integration seams are available.
pbs.disks.smart is intentionally not requested because this plugin does not read SMART data.
Safety boundaries
Remote execution remains hard-disabled and cannot be enabled through the UI or config.json.
Version 0.2.0:
- does not run iSCSI SendTargets discovery;
- does not log in to or out of iSCSI targets;
- does not mount NFS exports, block devices or filesystems;
- does not format devices, remove signatures or create filesystems;
- does not create, modify or register PVE/PBS storage;
- does not store CHAP secrets, SSH credentials or PVE/PBS API credentials;
- never interpolates resource values into remote shell commands;
- limits optional PBS SSH inspection to an explicit read-only command allowlist with time and output bounds;
- keeps task details and results visible only to the task owner;
- scopes PVE progress events to the already-authorized cluster;
- never emits an unscoped global PBS progress event.
Review SECURITY.md before testing with infrastructure metadata.
Compatibility and validation
- PegaProx 1.0.2+;
- Python 3.12;
- 70 automated tests passed;
- CI validates Python compilation, JSON files, shell syntax, embedded JavaScript and the complete unit-test suite;
- tested in a healthy PegaProx 1.0.2 Docker container;
- verified PVE discovery with
200 text/event-streamscoped to the authorized cluster; - verified controlled per-node NFS scan failure against a synthetic documentation address;
- verified PBS inspection through owner-scoped polling without opening a PBS SSE channel;
- verified repeated PVE cancellation returns a consistent cancelled state and closes the scoped SSE connection;
- verified that installation, restart and discovery tests do not change the saved resource registry;
- English and Polish catalogs remain in parity.
The manual preview used synthetic NFS and iSCSI definitions. It did not connect to or modify real storage targets.
Installation
Extract the installation archive and run the installer from its top-level directory:
tar -xzf pegaprox-storage-assistant-0.2.0.tar.gz
cd pegaprox-storage-assistant-0.2.0
sudo ./install.shFor the official PegaProx Docker container, execute the installer inside the container with:
PEGAPROX_DIR=/app ./install.shRescan plugins, enable Storage Assistant, save the PegaProx settings and restart PegaProx when requested. Existing definitions under config/storage-assistant/ are preserved by upgrades.
Release assets
pegaprox-storage-assistant-0.2.0.tar.gz— installation archive;SHA256SUMS— SHA-256 checksum file.
SHA-256:
a3b4f3c1f0ec3294497a562e50eb3d898e42944d8fcbc3cea1e9eb6cf9c16be7 pegaprox-storage-assistant-0.2.0.tar.gz
Apply, mount, format, registration, verification and rollback operations remain intentionally deferred until the required core permission and public integration seams are available.