Releases: mdobprv-lab/pegaprox-storage-assistant
Release list
PegaProx Storage Assistant 0.2.0 — Read-Only Discovery Preview
Read-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.
PegaProx Storage Assistant 0.1.1 — Early Community Preview
Early community preview
PegaProx Storage Assistant 0.1.1 is a definition-only preview intended to validate the plugin architecture and storage safety model before remote execution is implemented.
This release validates and stores storage definitions. It does not discover, connect, mount, format or register storage on PVE, PBS or NAS systems.
Highlights
- PVE/NFS workflow restricted to technical content:
iso,vztmpl,snippetsandimport - PBS/iSCSI workflow designed around one dedicated LUN and one unambiguous PBS owner
- support for multiple NAS devices, exports, targets, LUNs and network locations
- NFS export path normalization with traversal protection
- WWID, target/LUN, datastore and NFS destination collision prevention
- separate create and update semantics preventing stale-ID or resource-type overwrites
- persistent, cross-process locked resource registry
- English and Polish interface catalogs
- Modern, Corporate Dark/Light and Cloud Dark/Light layout support
- PegaProx RBAC and audit-log integration for definition changes
Safety boundaries
Remote execution is hard-disabled in version 0.1.1 and cannot be enabled through the plugin UI or config.json.
This release:
- does not store CHAP secrets, SSH credentials or PVE/PBS API tokens;
- does not test connectivity to NAS, PVE or PBS;
- does not modify exports, targets, LUNs, filesystems or datastores;
- does not authorize future destructive operations based on a successful definition check.
Review SECURITY.md before testing the plugin with infrastructure metadata.
Compatibility and validation
- PegaProx 1.0.2+
- Python 3.12
- 29 automated tests
- GitHub Actions validation of Python, JSON, shell scripts and embedded JavaScript
- tested with the official PegaProx Docker deployment model
- visually verified across all supported PegaProx theme families
Real NAS, PVE and PBS discovery testing is intentionally deferred to later milestones.
Installation
Download both release assets and verify the archive:
sha256sum -c SHA256SUMS
tar -xzf pegaprox-storage-assistant-0.1.1.tar.gz
cd pegaprox-storage-assistant-0.1.1
sudo ./install.shFor the official PegaProx Docker container, follow the Docker installation instructions in README.md.
Feedback requested
Early feedback is especially welcome regarding:
- reuse of PegaProx-managed PVE/PBS connections without duplicating credentials;
- background-task, progress-reporting and cancellation interfaces;
- canonical RBAC and audit integration for plugin-initiated operations;
- targeting one PVE node, an entire PVE cluster or one PBS instance;
- frontend navigation for global and PBS-oriented plugins;
- community-plugin packaging and marketplace expectations.
The API and registry schema should be treated as preview interfaces until the first execution-capable release.
Release assets
pegaprox-storage-assistant-0.1.1.tar.gzSHA256SUMS
SHA-256:
86e0c515cb4e859ccb94582b81713d209eb7738302990b4c679928553adb1c44 pegaprox-storage-assistant-0.1.1.tar.gz