12.10.0
Features and improvements
New feature
Single-user password reset
Added support to reset all managed accounts for a single user in a single operation. End users can reset their own accounts from self-service, and help desk analysts or administrators can reset all accounts for a selected user, with new passwords stored in Bravura Safe and full audit logging.
Installation
SQL Server 2025 support for Fabric backend and SQL connectors
Introduced support for Microsoft SQL Server 2025 as a Bravura Security Fabric database backend and as a target/server for the
agtsqlandagtsqlscriptconnectors, based on initial testing on Windows Server 2025.Updated "Connectors Being Removed" pre-installation check URL
The "Connectors Being Removed" pre-installation check now points to the correct URL on the docs.bravurasecurity.com domain for the "Deprecated connectors" documentation page.
Core
CC recipients in batch email and exit trap notifications
Batch email notifications and exit trap email notifications now support CC recipients, with the
psntfsvcservice passing theccemailparameter to the email plugin. This requires a database schema change to theitsmmailtable and related stored procedure updates; the included upgrade script applies this change automatically.Event action strings help updated with new exit trap macros
The in-product "Event action strings help" popup now documents four new exit trap macros:
MGRNAME(manager full name),MGREMAIL(manager email),EXPACCTHOST(target system IDs of affected accounts), andEXPACCTLONGID(long IDs of affected accounts).KMKeyGetByAccount external scanner fallback mapping
Introduced a fallback mechanism in
KMKeyGetByAccountso that when standard host/IP/DNS cross-reference lookups fail, external scanners such as Qualys can resolve credentials via a registry-based account/domain/resource mapping. The feature is disabled by default and can be enabled explicitly where needed without affecting existing deployments. For environments previously using the Qualys-specific registry value, rename it to the new generalized name while preserving theaccountname domain resource_idformat.New
forceactionableoption forpwdconflicts.exeAdded a new
forceactionablecommand-line option topwdconflicts.exethat allows administrators to force-randomize non-actionable password conflicts. Existing behavior is unchanged unless the option is explicitly used. Inactive accounts are still filtered out regardless.ManageableAccountSearchperformance optimizationThe
ManageableAccountSearchquery has been optimized by removing a bound variable that was causing 15 GB memory grants in SQL Server, significantly improving performance in large-scale deployments.WstnPwdReqListperformance optimizationThe
WstnPwdReqListquery has been optimized for faster workstation password request listing, reducing response times when managing large numbers of workstation password requests.
Discovery
Safer
psupdateuse in shared schema environmentsIn shared schema environments, running auto discovery from a non-primary node now shows a clear warning and blocks
psupdateexecution, preventing silent changes to scheduler settings that previously caused scheduledpsupdatejobs to fail on both nodes.
Extensions
Removal of Firefox browser extension support
Removed Firefox browser extension support entirely, including the Firefox add-on code, native messaging host
hidbext2.exe, XPI packages, Firefox MSI installers, build references, JavaScript FirefoxChannel widget, download handlers, and associated language strings. Chrome, Edge, and Safari extensions are unchanged.
Bravura Pass
Mass password reset pre-notification reminders
A new batch notification plugin sends configurable email reminders before a scheduled mass password reset. Reminder intervals are configured via the
REMDAYSfield (comma-delimited days, e.g., "7,3,1") in theMPR_PRERESETnotification configuration entry. Available email macros:%DAYS%,%NEXTRUNTIME%,%JOBOWNER%,%AFFECTEDACCOUNTS%,%USERID%,%USERNAME%,%NREMIND%. Requires themass_password_resetscheduled job to be enabled. The reminder cycle resets automatically after each reset completes or when the MPR job schedule is updated. In multi-server deployments, notifications are only sent from the primary node. A daily scheduled job_NFY_MPR_PRERESETtriggers the reminders viapsntfsvcpluginsPLUGIN_BAT_MPR_PRERESETandPLUGIN_COMP_MPR_PRERESET.Mass password reset post-reset email notifications
Added new
MPR_SUCCESSandMPR_FAILUREexit traps that send per-user HTML email notifications with consolidated account reset results after a mass password reset batch completes, including success and failure information driven by configurable templates and existing notification policy UI.Mass password reset status monitoring dashboard card
A new metric card on the adaptive dashboard shows MPR Admins whether a mass password reset is currently running or the date/time the last one completed. The card is clickable and redirects to the Requests App with the relevant MPR request selected. Requests App ACLs are updated so MPR Admin users can see all MPR requests.
Optional scope restriction via user class point
Mass operations (including mass password reset and onboarding) can now be scoped to a specific user class point when
UCP_IDis configured in theMASS_PASSWORD_RESETnamespace (stored in the extdb). If the userclass point cache is invalid or stale, the operation is skipped and a warning is logged; ifUCP_IDis not set, behavior is unchanged and the operations apply to all users.Local Reset Extension controls restored
The
pslocalr.ocxand related controls have been added back to the product, along with thepslocalr-x64.msiandpslocalr.msiLocal Reset Extension installers. Thecgilocalr.cfgsample script has also been updated for thepslocalrcontrol.Per-account "not be an old password" validation on Change passwords page
Added per-account password validation on the page to check the "not be an old password" rule against each selected account individually when transparent synchronization is disabled for the target group. This prevents users from reusing recent passwords on accounts that do not participate in transparent sync.
ODBC Q&A authchain compatibility with 12.9 address format
In 12.9, NULL target type stores the address in key-value pair format (
{server=<DSN>;}) instead of the plain DSN name used in 12.7. Theodbcqa.exeplugin now correctly parses the new format to extract the DSN name forSQLConnectW.
Bravura Identity
Userclass
dsqltestfield size increased to NVARCHAR(MAX)Userclass definitions with more than 7 attribute logic statements previously caused silent SQL truncation, resulting in incorrect userclass calculations. The
dsqltestfield limit is removed and validation added. This change requires a database schema migration during upgrade.Profiles with trailing whitespace now supported
Fixed handling of profiles whose identifiers include leading or trailing whitespace so that requests such as MOVE-IN-ORG no longer fail with "Recipient identification ambiguous", and related profile reports now return the expected results.
Bravura Privilege
Consolidated auto-denied PAM checkout request email notifications
When a PAM checkout request expires without approval, the system now sends a single consolidated "Request Denied" email instead of one email per authorizer, while preserving individual notifications for manual denials. A configuration option controls this behavior, addressing email overload scenarios where dozens of denial emails were generated per expired request.
Improved VIM display in Guacamole PAM sessions
Upgraded the bundled Guacamole component to address a VIM display bug where lines appeared duplicated when scrolling, improving readability for users working in terminal sessions through PAM disclosures.
Error message when browser extension plugin process fails to launch
Added an error message box that displays when the browser extension plugin process cannot be launched, providing clear feedback instead of failing silently.
Windows Authentication support for MSSQL system type
Added support for Windows Authentication when connecting to MSSQL target systems, allowing Bravura Privilege to manage SQL Server accounts using integrated Windows credentials instead of requiring SQL Server authentication.
SMON session upgrade validation
Revalidated
SMONsession viewing and download functionality on upgrades (12.6 to 12.9.1.41530), confirming that live and recorded sessions show video, text, clipboard, and process data correctly and that download packages can be created for pre- and post-upgrade sessions without requiring an instance repair.Vault account PDR system info link access denied resolved
A parameter shift in
LoadDisplayManagedSystemcausedDEFAULTUSERGROUP=0(REQUEST_CAPACITY_INVALID) to be passed to the system info page, preventing users with vault trustee privilege from accessing vault system info links. The correct function overload is now used.
Connectors
Python 3.14: connectors and component verification
All Python connectors (
Dayforce,Bravura Safe,HYPR,NetSuite,Salesforce REST,Unix SSH, sample agents), interfaces (pxpython.exe), workflow/search/analytics/mail plugins, and the component management framework have been verified and updated for Python 3.14 compatibility.Python 3.14: Connector documentation updated
Connector and plugin development guides, API documentation, and sample code have been updated to reflect Python 3.14 support. References to Python 3.7 and 3.10 have been removed.
Notification
OAuth support for
global-mail-pluginImplemented OAuth-based SMTP authentication (XOAUTH2) in the
global-mail-pluginso that customers can use modern mail servers where basic authentication is being retired.More robust enrollment completion navigation
Improved the enrollment completion flow so that newly triggered notifications are handled correctly, and users are redirected back to the expected pages after completing registration and password change steps, instead of occasionally encountering a broken UI.
Workflow
HTML formatting for request macros in email
When HTML mail content is enabled, request macros such as
%REQUESTBATCHDETAILS%,%REQUESTPURPOSE%and%REQUESTLINKS%are now wrapped in<pre>tags so line breaks and spacing are preserved, improving readability of request emails that use customer-specific HTML templates.Scalability improvement for requests with many tasks
Handling of requests containing a large number of tasks (for example, roles with 70 or more groups) has been improved so that the 50-task display limit is enforced more gracefully and the behavior is documented. Roles that exceed this limit should be broken into smaller sub-roles.
Security
ASP.NET Core 8.0.23 security baseline
Updated the bundled ASP.NET Core runtime and related packages from 8.0.10/8.0.11 to 8.0.23 to address Microsoft security vulnerabilities (CVE-2024-43498, CVE-2024-43499, CVE-2024-43500).
REST API
UserSettingREST API resourceA new
UserSettingresource has been added to the REST API, nested within theUserresource, providing full CRUD operations for per-user preferences such as theme, font size, datetime format, and time zone as JSON values in theusersettingsdatabase table. Supports OData query options on list retrieval. Where applicable, datetime format and time zone are mapped from user profile attributes, and PATCH updates are applied back to profile attributes to avoid parallel legacy setting paths. This enables persistent dashboard and UI customization across sessions and devices.Customer branding REST API (logos and brand colors)
Added REST endpoints under
/api/rest/v2/applicationSettingsto retrieve/update branding configuration (JSON Patch for colors) and upload/serve/delete logos via/api/rest/v2/applicationSettings/logos({type}), including file-type validation by magic bytes, SVG sanitization, and hash-based filenames for cache busting. Write operations persist to both/ui/v2/assets/(immediate React visibility) and/design/src/custom/(rebuild-safe), with background-job processing and automatic cleanup of replaced assets.Mass password reset post-reset confirmation events
Added per-user MPR completion events
MPR_SUCCESSandMPR_FAILURE(configured under Manage the system > Policies > Options) to drive email notifications and/or program execution after a mass password reset completes for a user. These events expose session tagsSUCCESSTARGETSandFAILTARGETS(comma-separatedhost\accountpairs) and require the Bravura Pass license (KeyModPSynch).Skip
serverinfovalidation forTargetPAMAssociatedCredential_setThe
IDMConfigAPI no longer performs theserverinfovalidation check when mapping managed accounts viaTargetPAMAssociatedCredential_set, aligning API behavior with the GUI toolpsa.exe.Database indexes for
get_account_attributesperformanceAdded three new database indexes (
metaattr_idx_4,targetobjattr_idx_4, andtargetobjattr_file_idx_2) to optimize the performance of the REST APIget_account_attributesoperation, reducing query execution time in environments with large numbers of account attributes.Exit traps for help desk operations in REST API calls
Added exit trap support for help desk operations invoked through the idmlib REST API, enabling event-driven automation (such as email notifications or external integrations) when help desk actions are performed via the API.
Database query optimization for
ObjAssociateInitialandUserListUpdated database queries in the
ObjAssociateInitialandUserListoperations to useOPTION(MAXDOP 1), which restricts SQL Server to a single-threaded execution plan. This improves performance by avoiding parallel plan overhead in environments where parallelism introduces contention.Default authorization policies for REST API write operations
Added default authorization policies (
policies_post_create,policies_put, andpolicies_delete) to the REST API, providing out-of-the-box access control for create, update, and delete operations without requiring manual policy configuration.OpenAPI specification published as a submodule
Configured
ui/src/react/src/shared/api/specas a Git submodule repository, making the OpenAPI specification available for import into Postman and other API tooling. This enables external teams and integrators to stay current with the API contract without manual file sharing.REST API documentation reviewed and published
Postman documentation for the REST API has been validated including endpoints, examples, resources, and the OpenAPI 3.1 schema.
User interface
React UI is now the primary interface
The new React-based UI is now the primary interface, accessible at the application root URL. This provides a modern user experience with improved performance and clean URLs, replacing the legacy Angular UI as the default entry point. The legacy UI remains accessible via the version toggle for users who need it during the transition period.
Customer branding infrastructure and dynamic theming
Implemented a unified customer branding system that loads configuration from
branding.jsonat startup and applies logos, theme colors, and overrides across React and Angular UIs. Includes dynamic light/dark theme generation, context-aware logo selection, dynamic favicon switching, login page styling with OS-driven dark mode support, fallbacks when branding assets are missing, and synchronized theme state with the legacy Angular iframe. Build integration throughmake.batand generated branding SCSS.Dashboard notifications center
A notifications center has been added to the React dashboard, displaying alerts, updates, and system messages with category and priority levels, badges/indicators, persistence/read status, and support for real-time updates. This provides a central place for users to review important events without relying on email alone.
Dashboard Favorites section
Introduces a Favorites section on the dashboard that lets users pin 3-6 of their most used actions based on recency and frequency, replacing basic Quick Actions with a personalized, accessible experience.
Dashboard Frequently Used Actions section
Adds a Frequently Used Actions section to the adaptive dashboard that ranks actions with a frequency-biased algorithm, personalizes the list per user, hides actions already in Favorites, and adapts the number of displayed actions by screen size while storing usage data per user/instance.
Dashboard All Actions layout refresh
Renames Quick Actions to All Actions and refreshes the layout with a collapsible section, smart category grouping, paired small categories, pending request badges, and tooltip support, improving responsiveness and initial render performance.
Dashboard metrics management and configuration UI
Added a Manage Metrics dialog to add/remove/reorder dashboard metrics and configure alert thresholds for urgency-based metrics. Metric cards now support visual types (count, urgency, progress), skeleton loading states, zero-state messaging, and auto-saving configuration dialogs.
Dashboard metric card accent bars
Accent bars on urgency-type metric cards (e.g., Passwords Near Expiry, Oldest Password Age) are now transparent for healthy/neutral states. Color is shown only for attention (orange) and critical (red) states, reducing visual noise.
Bravura Insights dashboard entry point
Added a "Bravura Insights" tile on the dashboard, visible to users with report ACL; drilling down requires an appropriate license.
User Profile widget "Show Last Login" option
The User REST API endpoint now returns last login data (timestamp of last successful login), re-enabling the "Show Last Login" option in the React UI User Profile widget.
Dashboard user profile card visual polish
The user profile card now displays configurable identity attributes (name, role/title, department, last login) with consistent styling, responsive layout across breakpoints, and WCAG 2.2 AA accessibility compliance.
Non-destructive UI file installation
The
make.bat :INSTALLsection now uses robocopy /MIR instead of del/rmdir/mkdir for both v1 and v2 UI file deployment. This synchronizes directory contents in-place, preserving IIS virtual directory mappings and preventing application pool restarts during UI installs.Dashboard API query optimization
Optimized dashboard API queries to fetch only the required fields for each widget, reducing data transfer by 80-99% for user metrics, account summaries, and authentication operations. This significantly improves dashboard load times in large deployments.
Password manager autofill support on React login
Added
autocomplete="username"andautocomplete="current-password"attributes to login form inputs and changedreferrer-policyfromno-referrertostrict-origin-when-cross-origin.React UI session timeout now matches Angular UI behavior
The React UI now displays a countdown timer starting at 1 minute remaining, provides a functional "Extend" link, and handles session expiry consistently with the Angular UI.
Reduced white flash during login page load (dark mode)
Updated login page load behavior to prevent a white flash for dark-mode users by adding CSS
color-schemesupport and removing the hardcoded light-theme default.Version toggle and navigation stability improvements
Fixed the React/legacy version toggle so logging back in honors the user's previously selected interface, and improved navigation state tracking to avoid inconsistent UI state when users navigate rapidly (blank pages, stuck spinners, or unexpected redirects).
Widget refresh behavior aligned to configured intervals
Updated the User Profile and User Accounts Summary widgets to respect refresh intervals consistently and reduce unnecessary REST calls triggered by tab switching.
Dashboard cache invalidation refactored
The dashboard now uses proper React Query
invalidateQueries()instead of navigating to#/__refreshand back to force cache clearing.React Auth Provider stability improvements
Improved front-end authentication stability by memoizing
createAuthProviderand updatinguseAuthStateMonitorto avoid unnecessary dashboard cache clearing during authentication re-checks, reducing transient UI inconsistencies.Change Passwords page enhancements
Improved the Change Passwords page with a dedicated page header for clearer navigation and a reusable PageHeader component for consistent page titles across the application.
Optional
suggestedPasswordsfield for password policy validationAdded an optional
suggestedPasswordsfield to thePasswordPoliciesPOST endpoint. When theAUTOGEN_NUMrule is enabled, submitted passwords are validated against the suggested passwords list, ensuring that auto-generated password suggestions comply with the configured policy rules.Saved report lists honour display limits
The "My saved reports" and "Other users' saved reports" pages now correctly honour the configured "Records to display" value. Saved reports with missing or unreadable spool files remain in the list but have their selection and action controls disabled, instead of silently reducing the number of rows shown.
WCAG accessibility remediations
Progressbar nodes now have accessible names, frame/iframe elements have title attributes, login page elements meet minimum color contrast ratios, and Lighthouse-identified issues (form labels, heading level order, prohibited ARIA usage) have been addressed to improve WCAG 2.1 AA alignment.
PostMessage protocol files synced between Angular and React
The postMessage protocol definition files between the Angular and React frameworks are now synchronized for consistency across both frameworks and branches.
jQuery 3.7.x validation test coverage
Extended and updated automated UI tests to validate the jQuery 3.7.x upgrade, improving the reliability of regression coverage for the React-based interface.
Strengthened ESLint rules for React/TypeScript
Existing ESLint warnings promoted to errors and new security, bug prevention, and async safety rules added to improve code quality and catch issues at build time.
Mass Password Reset admin screens filter PDRs
Mass Password Reset admin screens now filter the custom PDR (Password Disclosure Rules) list to show only PDRs relevant to Mass Password Reset operations, reducing clutter and potential administrator confusion.
Reporting
Parent role columns in certification reports
Added "Parent role ID" and "Parent role description" columns to the Certification details and Review certification details reports, making it easier for reviewers to understand the role hierarchy and see which parent role grants each entitlement to a user.
Logging and metrics
Guacamole session correlation logging
A unique common identifier is now present in both
guacdlogs and BSF audit records, enabling administrators to match Guacamole session log entries to Bravura Privilege disclosure executions.More accurate
idmsuite.logtimestampsThe logging service for
idmsuite.lognow periodically flushes file buffers on a configurable interval so the file's modification timestamp reflects recent logging activity. This makes it easier for administrators to see when logs were last written, without relying solely on log entry content.
Documentation
Security hardening documentation for CDN HSTS
Updated the Security Hardening Guide to document that HTTP Strict Transport Security (HSTS) must be configured at the CDN or load balancer layer, specifically at Cloudflare for CDN-based deployments, and reorganized related hardening topics and references.
Updated
hid_batch_request_submitexample for IdentityUpdated documentation and examples for using
hid_batch_request_submitin the context of Identity, including clarification of specific quirks, parameters, and return behaviors so that integrators can implement batch requests with fewer integration issues.Mail plugin OAuth configuration
Added documentation describing how to configure OAuth authentication for the
global-mail-plugin, including new settings and example configuration steps. See Modifying global mail settings.Notification client manual install docs and tests
Reviewed and updated documentation and testing guidance for manually installing the Bravura Security notification client from a network share, consolidating best practices from KB content into the main product docs. See Notification Client (psntfclient).
Resolved issues
Installation
SQL error during 12.9 upgrade
Fixed an issue where upgrades from
12.5to12.9could fail with an “explicit DROP INDEX is not allowed” SQL error, ensuring the database migration scripts complete successfully without requiring manual intervention.Updated the end-user license agreement to remove the Training section.
instdump.exenow outputs connector pack binary versionsFixed
instdump.exeso that it correctly outputs global connector pack binary versions in its diagnostic output, making it easier to verify which connector pack version is deployed on each node.Fixed an installation issue where IIS handler mappings lacked script execution permissions, preventing the instance from running correctly.
Fixed an installation issue where IIS handler mappings were created without script execution permissions, preventing the Bravura Security Fabric instance from running correctly after a fresh install or upgrade.
Login failure after upgrade to 12.9 when "Log on as a batch job" privilege missing
The installer/documentation now addresses the requirement that IIS_IUSRS must have "Log on as a batch job" privilege, which is required by the 12.9 identity apppool. Without this privilege, the identity apppool stops on first request, causing login failures.
Core
Database objects verification errors on upgrade from 12.9 to 12.10 resolved
Upgrading from 12.9.1 to 12.10.0 no longer produces verification errors for missing restricted values "UStCr" and "UStDl" on the "operation" table column "kind".
Guacamole high CPU from infinite NumberFormatException loop
Fixed an unhandled NumberFormatException in
HIDSessmon.ParseMessage()(line 79) that caused Tomcat worker threads to spin at 100% CPU indefinitely when malformed (non-numeric) session data was received. The exception is now caught and logged, and the affected message is skipped.
Discovery
psupdatescheduler corruption on non-primary nodeFixed an issue in shared schema environments where manually running auto discovery from a non-primary node could silently change local scheduler settings and leave both nodes configured as the scheduled
psupdatenode, causing scheduled runs to fail.Fixed account associations that are not recalculated during psupdate after changes to account attributes made through Bravura Security Fabric
Fixed an issue where account associations were not recalculated during
psupdateafter changes to account attributes were made through the product UI or API. Associations now correctly update to reflect attribute changes without requiring a manual recalculation.
Database
RBAC variance stored procedures no longer return duplicate surplus rows
Updated
RBACVarianceUserListDetailsandRBACVarianceUserListDetailsAllto useSELECT DISTINCT *to eliminate duplicate surplus variance rows and verified the change is present after upgrade.UserclassIsMemberstored procedure runtime errorFixed a runtime error in the
UserclassIsMemberstored procedure caused by the SQL optimizer executing operations out of order, which led to data type conversion failures. The fix ensures the query plan evaluates type-safe operations in the correct sequence.UserClassPointLoadFromCache NULL criteria handling
Fixed a runtime error in the
UserClassPointLoadFromCachestored procedure that occurred when theuserclasspoint.criteriapfield contained a NULL value, which could happen for user class points with no criteria defined.
Bravura Pass
SKA sessions no longer persist across users
Resolved an SKA session persistence issue where closing the "Change my password" window on shared workstations could allow a subsequent user to see the previous user's dashboard. Sessions now end when the SKA window is closed, requiring re-authentication. See Login Assistant compatibility.
Active Directory interceptor backward compatibility
Fixed a compatibility issue where the newer version of the Active Directory interceptor could not communicate with older versions of Bravura Security Fabric and the Password Manager service (
idpm). The interceptor now works correctly in mixed-version environments during staged upgrades.Mass Password Reset button missing from new dashboard
Fixed the Mass Password Reset (MPR) button not displaying in the new React dashboard by adding the missing translation mappings for the
massPasswordResetdashboard item.Mass onboard and mass password reset batch size adjusted
Adjusted the minimum and default batch size values used for mass onboard and mass password reset operations. The previous defaults were too high for the current version of the safe connector, causing failures. Note that setting batch sizes too low will degrade performance significantly.
Mass Password Reset configuration blanked after upgrade to 12.10.0
Upgrading from 12.9.1 to 12.10.0 wiped all
MASS_PASSWORD_RESETandMASS_PASSWORD_ONBOARDconfiguration entries (TARGETS,VAULT_TARGET,VAULT_LINK_ATTRIBUTE,BATCH_SIZE,UCP_ID,REPORT, and related onboard entries) to blank. The upgrade procedure now preserves these values.
Bravura Identity
Missing hostid on LDEL operations in exit traps
The
LDEL(link detach) operation now correctly populates thehostidfield in exit trap account data. Previously,hostidwas returned asNone, causing exit trap scripts that filter by target system (e.g., SuccessFactors detach workflows) to fail silently."Recipient identification ambiguous" errors for some profiles
Fixed a defect where profiles created from accounts with trailing spaces in identifiers could not be used as recipients in certain PDRs and did not appear correctly in profile reports, removing spurious "Recipient identification ambiguous" errors.
Request search by requester notes
Fixed All Requests filtering so searches on Requester Notes correctly return matching requests, including those stored in legacy columns, restoring expected behavior for help desk and identity users relying on note text queries.
Bravura Privilege
Guacamole clipboard paste in RDP sessions fixed
Pasting text containing special characters or modifier key sequences (CTRL+C, ALT+TAB, etc.) from the Guacamole sidebar clipboard into an RDP session via CTRL+V no longer causes random actions such as creation of folders. Right-click paste was not affected.
Session monitoring package removal error handling
Fixed the session monitoring service (
idsmpg) to treat "file/path not found" as a successful result for both single and multi-session package removal, preventing spurious errors when cleaning up session packages that have already been removed.Fixed the session monitor recording icon label branding.
PAM Linux components migrated to
LINUX_NGconnectorAdjusted the
pam_system_type_linuxcomponent and other related components to use theLINUX_NGconnector instead of the legacyLINUXconnector, aligning PAM Linux target system management with the current supported connector.Incomplete JSON sample files for AWS website disclosure documentation
Corrected incomplete JSON sample files in the AWS website disclosure documentation, updating the examples to contain valid JSON syntax and accurate configuration fields so that customers can use them directly as a reference.
Bravura One
Fixed
mobproxyHTTP request handling issues for PATCH operations.Updated mobile proxy paths for modern deployment.
Authentication and authorization
SAML SSO redirect broken after 12.9 upgrade
Fixed a regression where both IdP-initiated and SP-initiated SAML SSO flows returned users to the
PSFmodule (front-end portal) instead of completing the redirect to the service provider, affecting all configured SAML applications and both the default and/v1URL paths. This behavior has been restored to match pre-12.9.0 releases.Authentication failure on shared schema node
Fixed an issue where users could not log in from a shared schema server node because the
PSFmodule returned a 401 error due to a failure requestingOpenIddictcookies (HTTP status 11). Environments using a load balancer were not affected.
Notification
First-time registration flow stability
Resolved an issue where the first-time registration process could crash the UI before the password change step completed, particularly when multiple notifications were triggered. The flow now consistently returns users to the expected notification and password change pages.
Fixed a notification client white-screen issue; notifications now display properly.
Workflow
HTML formatting for request macros in email
Corrected handling of request macros like %REQUESTBATCHDETAILS%, %REQUESTPURPOSE%, and %REQUESTLINKS% when MAIL CONTENT TYPE is enabled so multi-line values render with proper HTML line breaks instead of being collapsed into a single unreadable line.
Users with "View workflow requests" permission could not see request details
Fixed an issue where users with the "View workflow requests" (
viewworkflow) permission were unable to view request details on the request popup page, despite having the correct permission assigned.rbacenforce.exefailed request output format correctedModified
rbacenforce.exeto properly save requests that failed to submit, using the same KVG format as the wizard produces. Previously, the saved file used a different format that could not be reprocessed.
Component framework
Fixed
hid_policy_wfemailto respect the default policy.
REST API
HtmlSanitizer.dll now included in deployed REST API
SVG logo uploads via
PUT /applicationSettings/logos({type})/valueno longer fail with a missingHtmlSanitizerassembly error. The build/installer packaging now includesHtmlSanitizer.dlland its transitive dependencies (AngleSharp). Non-SVG uploads (PNG, JPG, WebP, AVIF, GIF) were not affected.REST API datetime output now respects time zones
Fixed the REST API to correctly include time zone information in datetime output fields. Previously, datetime values were returned without time zone context, which could lead to incorrect time interpretation by API consumers in different time zones.
discoveryIdadded to auto-discovery REST API outputAdded the
discoveryIdfield to the auto-discovery operation output for target systems in the REST API, enabling API consumers to correlate discovery results with specific discovery runs.Fixed REST API v2 to correctly mask password attribute values as ******** instead of returning encrypted strings
Fixed the REST API v2 to correctly mask password attribute values as
********instead of returning encrypted strings, preventing accidental exposure of encrypted password data in API responses.Fixed group and account DELETE endpoints returning 400 error in v1 API
Fixed the group and account DELETE endpoints in the v1 REST API that were incorrectly returning HTTP 400 (Bad Request) errors instead of successfully processing deletion requests.
Fixed refresh token authentication by ensuring the required userguid claim is properly included in refreshed access tokens
Fixed refresh token authentication by ensuring the required
userguidclaim is properly included in refreshed access tokens. Without this claim, subsequent API calls using refreshed tokens would fail authorization checks.Fixed a mass password reset issue to URL-decode the X-CSRF-Token header value for REST API calls
Fixed a mass password reset issue where the
X-CSRF-Tokenheader value was not being URL-decoded before validation, causing REST API calls to fail with CSRF validation errors when the token contained URL-encoded characters.Added superuser access to accounts and users patch operations
Added superuser access to the accounts and users PATCH operations in the REST API, allowing administrative users with superuser privileges to modify account and user attributes without requiring additional OPA policy configuration.
REST API error responses for invalid tokens
Improved REST API error responses for two scenarios: the
userinfoendpoint now returns proper error responses when invalid or expired tokens are used, and all endpoints now return appropriate error responses when invalid CSRF tokens are provided, instead of generic or misleading error messages.REST API token revocation now RFC 7009 compliant
The REST API now correctly invalidates access tokens when their associated refresh tokens are revoked, bringing token revocation behavior into compliance with RFC 7009. Previously, revoked refresh tokens did not cascade to their access tokens, potentially allowing continued API access after revocation.
Fixed an issue where the
authchain2factorAPI call was failing.Multi-issuer token validation with OpenIddict
Fixed multi-issuer token validation by configuring OpenIddict to use
BASE_IDSYNCH_URLfor consistent issuer claims. Previously, tokens issued from different nodes in a multi-node deployment could fail validation because the issuer claim did not match the validating node's URL.OPA policies updated to authorize
_REPORT_READERS_user classModified the following default REST API OPA policies to authorize members of the
_REPORT_READERS_user class, enabling report-reader users to access the data they need through the REST API without requiring custom policy changes:accounts_get
accounts_get_list
accounts_groupmemberships_get
accounts_groupmemberships_get_list
accounts_targetsystem_get
accounts_user_get
operations_get
operations_get_list
targetgroups_get
targetgroups_get_list
users_accounts_get_list
users_get
users_get_list
targetsystems_accounts_get_list
targetsystems_get
targetsystems_get_list
targetsystems_groups_get_list
targetsystems_options_get_list
IDMLib
Added missing fields to
ReqBatch.
Security
Enhanced
postMessageorigin validation to prevent potential message interception by malicious frames.Skip authentication button text cutoff
Fixed the Skip authentication button text being cut off on the login page by allowing login buttons to wrap text and styling the Skip button to match the Continue button dimensions.
Reporting
Saved reports record count and paging
Resolved an issue where saved reports pages did not respect the "Records to display" setting and appeared to show fewer results than configured, particularly when some spool files were missing or unreadable.
Boolean filters behave correctly for "No"
Fixed Boolean request attribute handling in the "Managed account check-outs / check-ins" report so that searching for "No" returns the correct results, matching how values are stored in the database.
User interface
Mass password reset PSF link behavior when PAM refbuild installed
The MPR link in PSF now correctly navigates when a refbuild component is installed, and PDR filtering ensures users see only the PDRs relevant to their user class.
Navigating after auto-discovery no longer goes to wrong screen
After running
psupdatethrough the UI, navigating to another screen (e.g., target systems list) now correctly displays the intended page instead of redirecting back to Auto Discovery.User Accounts Summary / User Profile widgets inconsistent refresh behavior fixed
These widgets now auto-refresh at the configured duration interval and no longer make excessive REST API calls when switching browser tabs.
Notification read status now retained when navigating within the same session
Previously, navigating away from the dashboard reset the notification read state, re-displaying the unread indicator. Read state now persists until logout.
Navigation state race condition during rapid navigation fixed
Replaced simple flag-based tracking with navigation-ID-based tracking in
SmartLegacyRouter.tsxto prevent inconsistent state when rapidly clicking between routes.URL redirection from login screen to a specific React UI page fixed
Navigating to a specific React UI URL (e.g., /change-passwords) and logging in now correctly redirects to that page instead of the main dashboard. This also fixes Domain SKA / Login Assistant redirect scenarios.
Version toggle routing bug on login fixed
When a user toggled to the legacy dashboard, logged out, and logged back in, they were incorrectly shown the React dashboard. The version toggle preference now persists across login sessions.
React auth error messages now display translated text instead of raw i18n keys
The
i18nProvider.tsnow loads 'auth' and 'core' namespaces into Polyglot's message catalog, so keys likeauth.errorCategories.errors.insufficient_permissionsresolve correctly.Relative timestamps (timeago.js) now localized
Relative timestamps (e.g., "5 minutes ago") from
timeago.jsin the notification center, session timeout notification, and connection status components now display in the user's selected language (French, Spanish).Dashboard elements now fully translated (metric cards, loading text)
Fixed untranslated strings ("in the next 30 days", "Loading Please wait") and a RelativeTimestamp styling regression in metric cards.
Expired passwords and password age metric cards fully translated
Text elements on these metric cards that remained in English regardless of the user's selected language are now properly localized.
Notification VIEW TASK button now works reliably on repeated clicks
Previously, clicking VIEW TASK a second time did nothing, and a third click produced a blank page with a 30-second delay. Navigation now works immediately on every click.
Mass Password Reset link with refbuild installed
The MPR link in
psfnow correctly navigates to/#/manage-resourceswhen a refbuild component (e.g.,RefBuild.pam_team_management) is installed, instead of the unavailable#/use-pre-defined-requests-for-custom-operationsroute.Session timeout redirect to Angular login page
After session timeout in the React UI, re-authentication now returns the user to the React UI (preserving the original route, e.g.,
/#/manage-the-system/resources/target-systems) instead of the Angular#/loginpage with missing menus.Suggested password dropdown display in legacy screen
The "Suggested password" dropdown is now properly sized when switching from the React interface to the legacy interface during password changes.
Iframe sandbox security hardening
Removed the allow-scripts + allow-same-origin combination from iframe sandbox attributes, which per MDN could allow embedded content to remove the sandbox attribute entirely and escape its restrictions.
Forgot password email link blank page in 12.9
The
FORGOT_PASSWORDauth chain'svalidate.pyredirect (JUMPTOCGI = PSS) now routes through the React SPA instead of directly topss.exe. Previously,pss.exeloaded as a top-level browser window with no SPA parent context, causing all API calls to fail silently and rendering a blank page.React deep-link login redirects (for example
/change-passwords)Fixed an issue where logging in from the main login page did not redirect to the requested React route (for example
/change-passwords) and instead landed on the dashboard; legacy/v1/...paths continue to route to the legacy UI as expected.Skin build failures when components define their own language tags
Fixed the skin build process so that component language files are correctly discovered and loaded in both product (
ui/src/ui/) and instance (design/src/ui/) build contexts, resolving failures where component-specific language tags (such asmass_password_resetlinks) could not be found.Dashboard "Favorites" and "Frequently Used" sections lost on logout
Fixed a bug where the dashboard Favorites and Frequently Used sections were reset after the user logged out and logged back in. The dashboard now persists these sections correctly across sessions.
Dashboard widget visibility and layout issues
Fixed multiple related bugs where dashboard widgets in the Frequently Used section could disappear when adding more than six items or when resizing the browser window. Widgets are now retained correctly regardless of viewport changes or section overflow.
Helpdesk "Skip authentication" button styling
Fixed the Helpdesk authentication screen so the Skip authentication bypass button uses the same button styling, sizing, and text casing as other authentication method options instead of rendering as a full-width, misaligned control.
Saved reports honor record limits
Fixed saved report pages so the "Records to display" setting is respected. Reports with missing or unreadable spool files are shown but their controls are disabled instead of silently dropping the rows.
Cookie check bypass for "forgot password" flow
Added a fix to bypass the cookie validation check when using the "forgot password" flow, which was incorrectly blocking password reset attempts when cookies were not yet established.
"Invalid request" error from popup window AJAX calls
Fixed an "Invalid request" error that occurred when AJAX calls were made from popup windows, caused by incorrect CSRF token handling in the popup context.
API calls firing before userId is set
Fixed a race condition where API calls could be made before the
userIdwas set in the session context, causing authorization failures during initial page load.Cross-instance logout when logging into a different instance
Fixed an issue where logging into a different Bravura Security Fabric instance would log users out of their current instance. Implemented instance-specific cookie paths so that sessions on different instances no longer interfere with each other.
In-app password character help dialog
Added an in-app help dialog that displays the allowed characters for the password rule "contain only characters available on a standard English (US) keyboard," helping users understand which characters are valid without consulting external documentation.
Password suggestion count respects
AUTOGEN_NUMpolicy ruleThe password suggestion count now uses the
AUTOGEN_NUMrule from the configured password policies (defaulting to 5 if not configured), instead of always showing a fixed number of suggestions regardless of policy settings.Password validation against suggested passwords list
Added an optional
suggestedPasswordsfield to thePasswordPoliciesPOST endpoint. When theAUTOGEN_NUMrule is enabled, submitted passwords are validated against the suggested passwords list to ensure compliance."Remember Me" persistence across logout and session expiry
Fixed the "Remember Me" functionality to correctly persist user preferences across logout and session expiry. Previously, remembered preferences were lost when the session expired or the user logged out.
OAuth2 Authentication Port label typo corrected
The address parameter label "OAuth2 Autentication Port" has been corrected to "OAuth2 Authentication Port" in the
en-us-errmsg.kvgresource file, affecting the configuration screens for the Azure Active Directory and Exchange connectors."Session Active in Another Tab" text invisible in dark mode
Fixed the "Session Active in Another Tab" message text being invisible in dark mode due to insufficient color contrast.
Missing translations in User Accounts Summary widget configuration
Fixed missing translations in the User Accounts Summary widget configuration dialog for status filters, sort options, and sort order dropdowns, which were displaying raw translation keys instead of localized text.
Removed non-functional quick action menu from User Accounts Summary
Removed the quick action menu (3-dot icon) from the User Accounts Summary list view, as it was non-functional in this context and caused user confusion.
"Last activity" field removed from User Accounts Summary widget
Removed the "Last activity" field from the User Accounts Summary widget, including its display, configuration, sorting, and all related functionality, as the underlying data source was not reliably available.
XSS sanitization for password policy rule descriptions
Added XSS sanitization using DOMPurify to password policy rule descriptions, preventing potential script injection attacks through maliciously crafted policy rule text.
Default dashboard loading before user layout is determined
Fixed the default dashboard loading pre-emptively before determining if the user has a saved dashboard layout, which caused a visual flash. The
LegacyIntegrationServiceis now the source of truth foruserStorageKey, ensuring no shared dashboard layouts between users.Mobile header logo overlapping navigation buttons
The mobile header now shows an icon-only logo on small screens to ensure the logout and navigation buttons remain accessible and are not obscured by an oversized logo.
Side menu search bar and description toggle positioning
Locked the search bar to the top and the description toggle to the bottom of the side menu, preventing them from scrolling out of view when the menu content is long.
Password policy descriptions not translating on language change
Fixed password policy descriptions not translating when the user changes language, by correctly parsing the
Accept-Languageheader, adding language family fallback in the backend, and refetching policies on language change in the React UI.Password policy validation improvements
Comprehensive improvements to password policy validation in the React UI: removed misleading fallback rules when policies fail to load, disabled the submit button when policies are unavailable or rules are not met, added clear error messages, fixed validation to check all required rules including regular expressions and whitelist entries, and corrected policy switching to use target group-specific policies that update correctly when switching between target groups.
Password policy rules panel shows regex and whitelist requirements
The password policy rules panel now displays regular expression and whitelist requirements alongside the standard rules, giving users complete visibility into all password requirements in one place.
Badge calculation errors in User Accounts Summary dashboard
Fixed badge calculation and display bugs in the "User Accounts Summary" dashboard widget where badge counts were incorrect or not updating properly.
User Profile widget dynamic attribute loading
The User Profile widget now dynamically loads attributes from the API with localized labels, filters out user-type attributes that should not be displayed, and includes comprehensive icons for each attribute type.
"Total Group Memberships" metric showing error instead of count
Fixed the "Total Group Memberships" user metric widget to correctly display the count of group memberships across all user accounts instead of showing a "Selected metric not found" error.
Removed the Show Last Login option from the user profile configuration widget.
Fixed the "Show Avatar" toggle to properly hide/show the user avatar.
Removed non-functional "Strong Passwords" metric from dashboard widgets.
Fixed an issue to read the CSRF token fresh from cookies on each request.
Enabled server logout endpoint to clear cookies.
CSRF token expiring after 1 hour while session is active
Fixed an issue where the CSRF token expired after 1 hour even while the user session remained active, causing unnecessary 403 errors on subsequent API calls. The token lifetime now aligns with the session lifetime.
REST API authorization failures for sessionclient tokens
Fixed REST API authorization failures for
sessionclienttokens by adding missing user claims to the JWT payload. Without these claims, API calls using session-based tokens would fail OPA policy checks.Added a missing GUID marker to the root HTML page.
User Accounts Summary "Enabled Statuses" filter not working
Fixed the User Accounts Summary widget's "Enabled Statuses" filter to correctly filter displayed accounts based on the selected status options instead of showing all accounts regardless of filter selection.
User Accounts Summary not showing real-time operation status
Fixed the User Accounts Summary widget to show real-time status updates until account operations (such as password resets or unlocks) fully complete, instead of showing stale status during in-progress operations.
User Accounts Summary list view showing plain text instead of status icons
Fixed the User Accounts Summary widget list view displaying plain text status chips instead of icon badges. The list view now shows the same status badge icons as the grid view for consistent status visualization.
Added missing legacy module ID mappings for dashboard items.
Fixed feature to restore default widgets on layout reset.
Multi-tab session coordination
Added a session transfer system for multi-tab coordination to prevent authentication conflicts and ensure a consistent user experience across browser tabs. Previously, opening multiple tabs could cause session conflicts or unexpected logouts.
Authentication race conditions on page refresh
Fixed authentication race conditions and iframe display issues that occurred on page refresh, which could result in blank pages or authentication errors requiring a manual re-login.
Legacy UI flash and navigation loop during logout
Fixed a legacy UI flash during React logout, a navigation loop after logout, and stale user cache data when switching users. The logout flow now cleanly transitions without visual artifacts or redirect loops.
Removed unused actions configuration option from User Accounts Summary widget.
Legacy iframe popups blocked by sandbox restrictions
Added the
allow-popups-to-escape-sandboxtoken to thesandboxattribute of the legacyiframe, allowing popup windows opened from the legacy UI to function correctly without inheriting sandbox restrictions.Fixed an issue to always use the top-level document for communications over the WebView channel.
Fixed an issue where quick actions were not loading on first login.
Language switching not translating UI controls
Language switching now correctly translates the dark/light mode toggle, logout button, and refresh button in all supported languages (English, French, Spanish). Previously, these controls remained in the original language after switching.
Password change notification messages are properly translated.
Memory leak in
StorageServiceduring logout/login cyclesFixed a memory leak in
StorageServicethat prevented proper cleanup of user session data during logout/login cycles. The fix eliminates unreleased promise references and race conditions in the authentication flow that could degrade browser performance over time.Wrong exit trap used for self-service password reset in React UI
Fixed the React UI to use the proper self-service exit trap (
PSS_RES) on password reset instead of the admin exit trap, ensuring that the correct notifications and automation are triggered for self-service operations.Duplicate attributes on dashboard user profile card
Fixed an issue where duplicate attributes were displayed on the user profile card on the dashboard, caused by the same attribute being loaded from multiple sources.
User Accounts Summary widget loading and refresh improvements
Enhanced the User Accounts Summary widget with immediate account loading on display and configurable refresh intervals with intelligent caching, reducing unnecessary API calls while keeping data current.
Dashboard widget refresh intervals not working correctly
Fixed widget refresh intervals for Total Accounts, Passwords Near Expiry, Average Password Age, and Total Group Memberships widgets, which now automatically refresh every 5 minutes as intended. Previously, these widgets either only refreshed on browser refresh or refreshed on every page navigation, causing either stale data or excessive API calls.
Change passwords screens not updating correctly
On the React UI the "Changing…" status remained and never changed to "Success." On the Angular UI the screen went blank after clicking the change-passwords button. Passwords were actually reset in both cases, but the UI did not reflect the result.
Post-login spurious logout causing blank dashboard
After successful login, the React app's
useAuthStateMonitorreplayed a staleauthenticated=falsemessage from the login page'sC_AUTHCHAIN_LOGIN, callinglogout()and leaving the app in a half-authenticated state where the React appbar never rendered and the Angular iframe dashboard showed fullscreen.Session expiry on legacy route shows blank screen instead of login page
When a session expired while the user was on a legacy (Angular) route, Angular's iframe reloaded but did not emit the authentication-state-change
postMessageback to React because theEMBEDDED_MODEconfirmation was lost on reload. The user saw a blank screen and could not proceed. React now detects the iframe reload and re-sends theEMBEDDED_MODEmessage.Navigational issues with blank pages and UI refresh
Clicking a widget from the dashboard sometimes showed the page header with a blank white page body. Clicking the React UI refresh button would eventually show the Angular dashboard after ~30 seconds, and the native browser refresh also fell back to the Angular dashboard.
403 permission denied incorrectly logs user out
A non-admin user whose API requests returned 403 (OPA policy denial) was immediately logged out because
checkErrortreated 403 the same as 401. A 403 now shows a localized "insufficient permissions" message without triggering logout.RelativeTimestamp skips listeners when browser tab is hidden at mount
If the
RelativeTimestampcomponent mounted while the browser tab was in the background, no interval timer, visibilitychange listener, or i18n languageChanged listener were registered — and they were never set up even when the tab became visible.
Proxy servers
Fixed unhandled exceptions that could occur during proxy shutdown, improving application stability.
Logging and metrics
Frozen
idmsuite.logmodification timeFixed a threading issue that could cause the
idmsuite.logfile's modification timestamp to stop updating even though new log entries were being written, which made it appear as though logging had stopped when it had not.
Upgrade actions
Security
Apply ASP.NET Core 8.0.23 guidance
When upgrading to this release, ensure that server environments meet the documented ASP.NET Core 8.0.23 (or later) requirements for Hosting Bundle, Runtime, and Desktop Runtime, and redeploy Bravura Security Fabric instances so that bundled DLLs are updated to the secured versions.
Core
Multi-node shared-schema upgrade pause required
A pause is required after the primary node's Post Upgrade Tasks complete. During this pause, run
setup.exeon all secondary nodes and wait for their Post Upgrade Tasks to complete. Then proceed on the primary node ("Next"), and finally on each secondary node. Command-line installations must accommodate this pause step.Optional KMKeyGetByAccount fallback configuration
For environments previously using the Qualys-specific fallback registry value, administrators should rename the KMKeyGetByAccount mapping value to the new generalized name while preserving the
accountname domain resource_idformat so external scanners continue to function after upgrading.HSTS at CDN layer (Cloudflare)
For environments using Cloudflare in front of Fabric, enable HSTS at the CDN edge (SSL/TLS > Edge Certificates > Enable HSTS) so
Strict-Transport-Securityis served as intended; verify withcurl -I https://<host> | grep -i strict-transport.referrer-policyheader changeThe
referrer-policyHTTP header has been changed fromno-referrertostrict-origin-when-cross-originto enable password manager autofill. If your deployment relies onno-referrerfor security policy reasons, review this change.
Installer
Python 3.14 installer check added to the installer for installing 12.10 or upgrading to 12.10. When upgrading to 12.10, Python 3.14 is required.
Multi-node upgrades via command line: pause/sequence support
Added
setup.exe--pause-after-tasksfor silent/command-line upgrades to support required coordination in multi-node shared-schema (and similar) environments: after post-upgrade tasks complete and before services start, the installer writesupgrade-pause.signalto the instance directory and waits until automation removes the file. Use with-U -silentto coordinate primary/secondary node sequencing.IIS "Log on as a batch job" privilege required (12.9+)
After upgrading to 12.9 or later, the IIS_IUSRS group must have the "Log on as a batch job" privilege in Local Security Policy. Without this, the identity apppool will stop on first request and login will fail with a 503 error. On domain-joined servers, this privilege must be granted via Group Policy.
Database
Database migration required for user class DSQL field length
The
dsqltestanddsqllistfields in tablesuserclassdefattr,userclassdefgroup,userclasstestmember, anduserclassare changed from NVARCHAR(2000) to NVARCHAR(MAX) to prevent silent truncation when user class criteria exceed the previous limit (for example, definitions with more than approximately 7–10 attribute/group criteria). This migration runs automatically during upgrade. Environments with user class definitions exceeding 7 attribute criteria should verify correct user class calculation after upgrade. For databases that were affected before upgrading, the DSQL values may need regeneration (for example vialoaduccache.exe -loaddsql), and the installer upgrade path may run this regeneration automatically.Database schema change for CC email support
Upgrading to releases that include CC support in batch and exit trap notifications requires a schema change to the
itsmmailtable (new column for CC email) and adjustments to related stored procedures. The supplied upgrade script applies these changes automatically during the database upgrade step.Database schema change for upgrade from 12.9 to 12.10
Restricted values "UStCr" and "UStDl" are added to the "operation" table column "kind" during upgrade. If upgrading from 12.9.1, ensure you use the updated installer that includes this fix.
SQL Server 2025 / ODBC Driver 18+ compatibility
All
sqlcmdinvocations now include the-C(TrustServerCertificate) flag. If your environment uses self-signed certificates, no action is needed. If your test automation callssqlcmddirectly outside of the product framework, add-Cto those invocations as well.
Discovery
Validate
psupdatescheduling on shared schemaIn shared schema environments, verify that
psupdateis only configured to run from the intended primary node after applying these builds, and update operational procedures so administrators always initiate auto discovery from that node to avoid future scheduler conflicts.
Notification
Plan OAuth transition for
global-mail-pluginFor environments using
global-mail-pluginwith Exchange or other OAuth-capable SMTP servers, plan to configure OAuth settings (client ID, client secret, token endpoints) ahead of Microsoft's basic-auth retirement date to avoid mail delivery interruptions.
Logging and metrics
Optional log flush interval tuning
Administrators who want tighter control over
idmsuite.logtimestamp updates can adjust or disable the new periodic flush interval using theflush-interval-msregistry setting for the logging service. The default interval is low-overhead and suitable for most deployments; no change is required unless you have specific logging or performance needs.
Extensions
Firefox browser extensions removed
The
firefox-extension-win-x64.msiandfirefox-extension-x86.msiinstallers are no longer produced, and Firefox browser extensions are no longer supported. If your deployment relies on Firefox extensions for Bravura Safe or local reset, plan to migrate to a supported browser (Chrome, Edge, or Safari). Administrators should discontinue any remaining Firefox extension deployments.
User interface
Customer branding logo format changes
Customer deployments that use custom logos must update their branding customization to the new
branding.jsonand logo file format described indesign/custom/branding/README.mdso that logos continue to render correctly in the React and Angular UIs.Non-destructive UI install changes to custom deployment scripts
The
make.bat :INSTALLsection now uses robocopy /MIR instead of del/rmdir/mkdir. If you have custom scripts that depend on the previous destructive-install behavior or expect the ui/v1 and ui/v2 directories to be recreated, update them accordingly. IIS virtual directory mappings are now preserved during installs.
Bravura Pass
Review SKA deployment on shared workstations
For shared machines using the SKA "Change my password" tile, deploy updated SKA installers and verify that session-only cookie settings are applied so that no active session remains available when users close the SKA window.
SKA client registry entries require ephemeral cookie parameter
The SKA client software needs to either be upgraded to the latest version, or have its Windows registry entries modified to append
?EPHEMERALCOOKIE=1to the URLs. This ensures that sessions are properly terminated when the SKA window is closed on shared workstations:# HKEY_LOCAL_MACHINE\SOFTWARE\Bravura Security\Bravura Security Fabric\Login Assistant\Credential Provider\WebBrowserURLExample: Change
http://server/instance/tohttp://server/instance/?EPHEMERALCOOKIE=1# HKEY_LOCAL_MACHINE\SOFTWARE\Bravura Security\Bravura Security Fabric\Login Assistant\Login Assistant\cmdExample: Change
-url http://server/instance/to-url http://server/instance/?EPHEMERALCOOKIE=1
ODBC Q&A authchain: address format change in 12.9
If upgrading from 12.7 to 12.9+, NULL target type address values are stored in key-value pair format (
{server=<DSN>;}) instead of plain DSN names. Theodbcqaplugin now handles both formats, but administrators should verify their external question set configuration after upgrade.Mass Password Reset configuration (upgrade to 12.10.0)
Environments upgrading from 12.9.x to 12.10.0 should document all
MASS_PASSWORD_RESETandMASS_PASSWORD_ONBOARDconfiguration values before upgrading. Although this release includes the fix, administrators who already upgraded to an earlier 12.10.0 build should verify that MPR settings (TARGETS,VAULT_TARGET,VAULT_LINK_ATTRIBUTE,BATCH_SIZE,UCP_ID,REPORT, and related onboard entries) are populated. Re-enter any blank values from the pre-upgrade backup.
Connectors
Python 3.14 agent/plugin development
Python 3.7 and 3.10 are no longer referenced in agent and plugin development documentation. Ensure custom agents and plugins are compatible with Python 3.14.