QOps 3.0.4 is a maintenance release that upgrades the runtime to .NET 8.0, adds hot-reload updates, and reduces log noise across all cmdlets — while maintaining full backwards compatibility with Windows PowerShell 5.1.
Breaking Changes
QOps-Update -Force behavior changed. The -Force parameter no longer kills PowerShell processes. Instead, it performs a hot-reload — downloading the update to a versioned subdirectory and prompting for a session restart. If your automation scripts relied on the old process-kill behavior, add explicit session restart logic after the update.
Default log verbosity reduced. All cmdlets now produce concise output summaries by default (HTTP response bodies truncated to 500 chars, no per-file "Reading" messages). To restore the previous full output, add the -VerboseLog parameter to any cmdlet.
.NET 8.0 Support
QOps now targets .NET 8.0 for PowerShell 7+ users, bringing improved performance and long-term support. Full backwards compatibility with Windows PowerShell 5.1 is maintained via netstandard2.0 — both platforms ship in a single module.
Hot-Reload Updates
No more restarting PowerShell after updating QOps. The new QOps-Update -Force performs an in-session hot-reload — the updated module is downloaded to a versioned subdirectory and loaded without interrupting your workflow. A new -NoAutoUpdate switch disables the daily automatic update check, useful for CI/CD pipelines or air-gapped environments.
Platform Mode Override
A new -Mode parameter (QlikSense, QlikSaaS, QlikView) has been added to 11 cmdlets: QOps-Build, QOps-Pull, QOps-Push, QOps-Commit, QOps-Release, QOps-Publish, QOps-Reload, QOps-Prepare, QOps-Apps, QOps-Version, and QOps-Configure. This allows explicit platform override instead of relying on config auto-detection.
VerboseLog Parameter
All QOps cmdlets now inherit a -VerboseLog switch from the base class. By default, logs are summarized — HTTP response bodies truncated to 500 characters, PropertiesJson shows length only, no per-file "Reading" messages. With -VerboseLog, you get the full verbose output. This prevents log files from bloating to 150+ MB during large reload operations.
Improved License Diagnostics
License activation errors (QOps-Activate) now display the specific InvalidReason from the server instead of generic messages. Additionally, license validation now performs silent auto-refresh — when a locally expired license is detected, QOps checks with the LicenseSpot server before failing, without risking quarantine.
Per-Profile Self-Signed Certificate Trust
You can now configure TrustSelfSignedCerts individually per authentication profile. This is useful when connecting to multiple Qlik environments with different certificate configurations.
Enhanced Credential Security (Non-Windows)
On Linux and macOS, credentials are now encrypted using machine-derived AES-256 keys via PBKDF2, with automatic migration from DPAPI format. This ensures credentials are tied to the specific machine and user account.