{"id":45074,"date":"2026-03-23T01:22:49","date_gmt":"2026-03-22T22:22:49","guid":{"rendered":"http:\/\/datalabsua.com\/ua\/?p=45074"},"modified":"2026-03-23T01:22:49","modified_gmt":"2026-03-22T22:22:49","slug":"qops-3-0-4-release","status":"publish","type":"post","link":"https:\/\/datalabsua.com\/en\/qops-3-0-4-release\/","title":{"rendered":"QOps 3.0.4 \u2014 .NET 8 Support, Hot-Reload Updates &#038; Enhanced Diagnostics"},"content":{"rendered":"<h2>What&#8217;s New in QOps 3.0.4<\/h2>\n<h3>.NET 8.0 Support<\/h3>\n<p>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 \u2014 both platforms ship in a single module.<\/p>\n<h3>Hot-Reload Updates<\/h3>\n<p>No more restarting PowerShell after updating QOps. The new <code>QOps-Update -Force<\/code> performs an in-session hot-reload \u2014 the updated module is loaded immediately without interrupting your workflow. This works for all updates from version 3.0.4 onwards.<\/p>\n<h3>VerboseLog Parameter<\/h3>\n<p>All QOps cmdlets now produce concise output summaries by default. When you need full detail, add the <code>-VerboseLog<\/code> parameter to get complete API response dumps and debug information. On errors, full diagnostics are shown automatically.<\/p>\n<h3>Improved License Diagnostics<\/h3>\n<p>License activation errors now display detailed reasons instead of generic messages. When activation fails, QOps automatically performs server-side verification and reports the exact cause \u2014 whether it&#8217;s an expired license, exceeded activations, or a network issue.<\/p>\n<h3>Per-Profile Self-Signed Certificate Trust<\/h3>\n<p>You can now configure <code>TrustSelfSignedCerts<\/code> individually per authentication profile. This is useful when connecting to multiple Qlik environments with different certificate configurations.<\/p>\n<h3>Enhanced Credential Security (Non-Windows)<\/h3>\n<p>On Linux and macOS, credentials are now encrypted using machine-derived AES-256 keys via PBKDF2. This replaces the previous shared-key approach and ensures credentials are tied to the specific machine and user account.<\/p>\n<h3>Safe License Refresh<\/h3>\n<p>License validation has been improved to safely refresh license status without risking deactivation. Previously, certain error conditions during refresh could trigger quarantine \u2014 this is no longer possible.<\/p>\n<h3>Qlik Cloud Improvements<\/h3>\n<p>Fixed API key handling in local configuration files and improved timeout handling for Qlik Cloud operations. Release operations in Cloud environments are now more reliable.<\/p>\n<h3>Download<\/h3>\n<p>Update from PowerShell: <code>QOps-Update<\/code><br \/>\nFresh install: <a href=\"https:\/\/qops.datalabsua.com\">qops.datalabsua.com<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What&#8217;s New in QOps 3.0.4 .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 \u2014 both platforms ship in a single module. Hot-Reload Updates No more restarting PowerShell after updating QOps. The new QOps-Update -Force performs an [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[50,154,169,172,171,170],"class_list":["post-45074","post","type-post","status-publish","format-standard","hentry","category-news","tag-qlik-sense","tag-qops","tag-devops","tag-powershell","tag-qlik-cloud","tag-release"],"_links":{"self":[{"href":"https:\/\/datalabsua.com\/en\/wp-json\/wp\/v2\/posts\/45074","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datalabsua.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/datalabsua.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/datalabsua.com\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/datalabsua.com\/en\/wp-json\/wp\/v2\/comments?post=45074"}],"version-history":[{"count":1,"href":"https:\/\/datalabsua.com\/en\/wp-json\/wp\/v2\/posts\/45074\/revisions"}],"predecessor-version":[{"id":45075,"href":"https:\/\/datalabsua.com\/en\/wp-json\/wp\/v2\/posts\/45074\/revisions\/45075"}],"wp:attachment":[{"href":"https:\/\/datalabsua.com\/en\/wp-json\/wp\/v2\/media?parent=45074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/datalabsua.com\/en\/wp-json\/wp\/v2\/categories?post=45074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datalabsua.com\/en\/wp-json\/wp\/v2\/tags?post=45074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}