Skip to content

PowerNetbox v4.5.8.1

Released 2026-04-17 - View on GitHub

Patch release bundling two internal quality improvements on top of v4.5.8.0. No NetBox version target change (still NetBox 4.5.8). No new API surface; no new features.

6 HIGH-severity ValidateSet drift fixes (#392, PR #399)

Closes six of the HIGH-severity items tracked in #392 — PowerNetbox's ValidateSet decorators were narrower than NetBox's actual enum sets, so users could not supply legitimate API values. Every change is strictly additive:

Function(s) Parameter Values added
New/Set-NBVPNTunnel -Encapsulation l2tp, openvpn, pptp, wireguard
New-NBVPNIKEProposal -Authentication_Method rsa-signatures, dsa-signatures
Get/New/Set-NBVirtualMachine -Status paused
Get/New/Set-NBDCIMRack -Status available
New/Set-NBEventRule -Action_Type notification
New-NBVirtualMachineInterface -Mode q-in-q

Drift-tool count: 17 → 5 findings (12 per-function parity entries closed across 6 issue items).

Brief/Fields/Omit mutual exclusion now enforced on all Get functions (#397 PR-2, PR #400)

PR #397 in v4.5.8.0 introduced the mutex check and applied it to 3 pilot functions. This release completes the rollout:

  • Applies the AssertNBMutualExclusiveParam call to the remaining 121 Get functions that declare all three filter parameters
  • Adds the same config_context auto-omit guard on Get-NBVirtualMachine that Get-NBDCIMDevice got in PR #398
  • Ships a new AST-based auditor (scripts/Verify-FilterExclusion.ps1) wired into CI as .github/workflows/filter-exclusion.yml, so future Get functions cannot silently regress the invariant
  • Adds per-function .NOTES help text documenting the mutual-exclusion rule

Breaking-change note: the mutex check itself was already breaking in v4.5.8.0 (for 3 functions). This release expands the surface to all 124 Get functions with the three filter parameters. Scripts that silently combined any two of those flags were already broken — they now get a clear ParameterBindingException with the conflicting parameter names in the message.

Handled during the rollout

  • Functions/IPAM/Aggregate/Get-NBIPAMAggregate.ps1 had its process { block at column 0 (pre-existing indentation drift) — re-indented during this PR.
  • Functions/Setup/Support/Get-NBContentType.ps1 has no process block (delegates to Get-NBObjectType via splatting) — wrapped the delegation in a process block so the mutex assertion runs before the splat passes potentially-conflicting parameters through.

Stats

  • 32 new unit + integration tests
  • Full unit regression: 2291 passed / 0 failed
  • Integration test matrix green on Netbox 4.3.7, 4.4.10, 4.5.8
  • 171 function files touched in total

Published to the PowerShell Gallery automatically by the release workflow.