mirror of
https://github.com/GoodOlClint/PSProxmoxVE.git
synced 2026-07-26 07:58:14 +00:00
b4754c72a0
- README: move Set-PveStorage to Storage section, Set-PveApiToken to Access section (were miscategorized under "Access — Groups & Domains") - CHANGELOG: add Changed section with 13 architectural improvements, expand Fixed section with all ConfirmImpact and credential fixes - SECURITY.md: add SecureString detail, Input Validation section, Dependabot mention, SkipCertificateCheck warning note - CLAUDE.md: update review system reference to scan-7 - findings.json: F050 resolved (URL encoding), F031 resolved (credentials) - REVIEW_REPORT.md: scan-7 report Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
71 lines
4.3 KiB
Markdown
71 lines
4.3 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
and this project adheres to [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
|
|
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
|
|
- Firewall management cmdlets (21): rules, security groups, aliases, IP sets, options at cluster/node/VM/container levels
|
|
- Backup/vzdump cmdlets (5): ad-hoc backup creation and scheduled backup job CRUD
|
|
- SDN IPAM cmdlets (3): Get/New/Remove-PveSdnIpam for IPAM plugin management
|
|
- SDN DNS cmdlets (3): Get/New/Remove-PveSdnDns for DNS plugin management
|
|
- SDN Controller cmdlets (3): Get/New/Remove-PveSdnController for controller management
|
|
- PSGallery version badge in README
|
|
- Integration tests for firewall rules, aliases, IP sets, backup jobs, and OVA import
|
|
- SDN Update cmdlets (7): Set-PveSdnZone/Vnet/Subnet/Controller/Ipam/Dns + Invoke-PveSdnApply
|
|
- Set-PveRole, Set-PveStorage, Set-PveApiToken for missing update operations
|
|
- Get-PveClusterResource: single-call cluster-wide inventory of all VMs, containers, nodes, storage
|
|
- Task management: Get-PveTaskList (list tasks on node), Stop-PveTask (cancel running tasks)
|
|
- Pool management cmdlets (4): Get/New/Set/Remove-PvePool
|
|
- Get-PveBackupInfo: find VMs/containers not covered by backup jobs
|
|
- VM disk operations: Move-PveVmDisk (storage migration), Remove-PveVmDisk (detach/delete)
|
|
- Guest agent extensions (6): Get-PveVmGuestOsInfo, Get-PveVmGuestFsInfo, Read/Write-PveVmGuestFile, Set-PveVmGuestPassword, Invoke-PveVmGuestFsTrim
|
|
- Container gaps (6): Suspend/Resume-PveContainer, Resize-PveContainerDisk, New-PveContainerTemplate, Move-PveContainerVolume, Get-PveContainerInterface
|
|
- Storage content management (4): Get-PveStorageStatus, Remove/Set-PveStorageContent, New-PveStorageDisk
|
|
- Node operations (6): Get/Set-PveNodeConfig, Get/Set-PveNodeDns, Start/Stop-PveNodeVms
|
|
- Access management (9): Get/New/Set/Remove-PveGroup, Get/New/Set/Remove-PveDomain, Set-PvePassword
|
|
- Two-tier version gating: introduced vs default version with clear user messaging
|
|
|
|
### Changed
|
|
|
|
- All cmdlet classes sealed for design clarity and JIT optimization
|
|
- `[OutputType]` attribute added to all 169 cmdlets for IntelliSense and pipeline support
|
|
- Publishable projects retargeted to `netstandard2.0` for PS 5.1 + PS 7.x compatibility
|
|
- `System.Text.Json` attributes removed — module uses `Newtonsoft.Json` exclusively
|
|
- Inline task-polling loops replaced with `TaskService.WaitForTask` (timeout + progress support)
|
|
- Password parameters changed from `string` to `SecureString` with secure memory handling
|
|
- `ValidateRange(100, 999999999)` added to all `VmId` parameters
|
|
- `Uri.EscapeDataString()` applied to all dynamic URL path segments
|
|
- Hardcoded verb strings replaced with verb class constants (`VerbsCommon.Get`, etc.)
|
|
- Auth header magic strings extracted to named constants in PveHttpClient
|
|
- Bare `catch` blocks replaced with specific or filtered exception handling
|
|
- MAML help (dll-Help.xml) and 170 markdown cmdlet docs generated
|
|
- PSGallery publish workflow with PS 5.1 smoke testing
|
|
|
|
### Fixed
|
|
|
|
- `ConfirmImpact.High` added to all destructive cmdlets (Stop, Reset, Restart, Suspend, Remove, Restore, New-PveTemplate)
|
|
- Hardcoded test password moved from CI workflow to GitHub Actions secret
|
|
- Terraform variable default password removed (requires env var)
|
|
|
|
## [0.1.0-preview] - 2026-03-19
|
|
|
|
### Added
|
|
|
|
- Initial project structure and solution setup
|
|
- Ticket and API token authentication with session management
|
|
- HTTP client with manual multipart ISO upload (bugzilla 7389 workaround)
|
|
- Typed response models for PVE 8.x and 9.x API resources
|
|
- Service layer for all resource domains
|
|
- 66 PowerShell cmdlets for VMs, containers, storage, networking, SDN, users, roles, permissions, API tokens, templates, cloud-init, snapshots, and tasks
|
|
- QEMU guest agent cmdlets (Test-PveVmGuestAgent, Get-PveVmGuestNetwork, Invoke-PveVmGuestExec)
|
|
- xUnit unit tests for core library
|
|
- Pester 5 cmdlet tests across OS/PS version matrix (Windows PS 5.1, PS 7.5 on Windows/Linux/macOS)
|
|
- Integration tests against live PVE 8 and PVE 9 instances via Terraform-provisioned nested VMs
|
|
- GitHub Actions CI/CD workflows (build, unit tests, integration tests)
|
|
- Format definitions for default table output on all PS versions
|