Release v6
Overview
This is the first release of UNIFYConnect v6 (previously UNIFYBroker). Upgrades to this version from UNIFYBroker v5.3 should follow the upgrade instructions.
Notable Changes
Between the latest version of v5.3 and v6.1.0, the following defaults have changed:
- LDAP TLS legacy versions have been disabled
- Previously, UNIFYBroker LDAP supported SSL3, TLS 1.0, TLS 1.1 and TLS 1.2. As of UNIFYConnect v6, the default has been enforced to follow the enabled protocols for the OS. To override the defaults, refer to the LDAP Security documentation.
- The default upgrade behaviour is to keep the Change Log enabled for adapters, as this was forced in v5.3. For adapters that aren't exposed over an LDAP gateway, this setting is not required to stay enabled. Refer to the Adapter Overview page for information on this setting, and how to disable it.
- SQL Server now requires Snapshot Isolation to be enabled on the database.
v6.1.195378
🚀 - 30/06/2025**
- 🔧: Added support for Web Service Communicator consumers to define custom TCP Keep-Alive time value
- 🐛: Fixed an issue where SQL Server contexts would not correctly order multi-value values, resulting in incorrect change calculations
- 🔧: Added support for complex values to use array indexers on value retrieval
v6.1.193807
🚀 - 05/06/2025**
- ✨: Added the ability for configuration loading to recurse subdirectories
v6.1.193604
🚀 - 02/06/2025**
- 🐛: Fixed an issue with configuration upgrades on certain schedule objects losing time precision
v6.1.193189
🚀 - 28/05/2025**
- 🔧: Updated internal package version generation to support more flexibility with plugins upgrading their dependencies
- 🔧: Improved config file read mode to support read only configuration files
- 🐛: Fixed an issue where PowerShell values were sometimes unpacked as if they were complex objects
v6.1.188861
🚀 - 17/03/2025**
- 🔧: Improved how version information is calculated and surfaced into the product, to more accurately reflect the build and release process
- 🔒: Bump dependencies
v6.1.0
🚀 - 05/03/2025**
New Features
- ✨: Added options to connector imports to allow reporting of all duplicates, as well as ignoring subsequent duplicates to successfully complete an import
- ✨: Added Group-By connector, allowing out-of-the-box grouping of data on schema fields from an existing connector
- ✨: Added support for the anchor modify operation to PowerShell Connectors
- ✨: Added support for configuring a timeout on PowerShell Connector scripts being run
- ✨: Added ability for a PowerShell connector to page through its existing entity context
- ✨: Added support for disabling ChangeLog support on individual adapters, to improve performance where the adapter isn't used against an LDAP gateway
- ✨: Added the ability for the join transformation to resolve a target through the use of a PowerShell script
- ✨: Added "Simulate Changes" feature to adapter
- ✨: Added support for simulating entity changes on a single entity
- ✨: Added ability for join transformation to apply a selection (priority / PowerShell) on top of a date window (Recent/Relevant/NextPlacement)
- ✨: Added support for join transformation to target adapters
- ✨: Added support for group, MV group, FMV group transformations to target adapters
- ✨: Added detection for relational transformation schema loops when adapters refer to each other
- ✨: Added support for configuring a maximum limit of resolvable entities on relational transformations, to avoid overload on invalid data
- ✨: Added support for configuring a timeout on Adapter Powershell Transformation Scripts being run
- ✨: Added brand new SCIM gateway with fully customizable schema mapping support
- ✨: Added support for logging SCIM requests to assist with debugging
- ✨: Added multiple SCIM gateway authentication mechanisms for greater flexibility
- ✨: Added support for disabling the inbuilt log writer
- ✨: Added new log writer for writing to Azure Data Explorer
- ✨: Added support for the inbuilt log writer to write to Azure Data Explorer
- ✨: Added ability to manually trigger the execution of a Log Job
- ✨: Added support for Data Collection Rules (DCR) based writing for the Azure Log Analytics Log and Audit writer
- ✨: Added support for configuring a timeout on Log Writer Powershell Scripts being run
- ✨: Added support for configuring a timeout on Audit Writer Powershell Scripts being run
- ✨: Added support for configuring a timeout on Log Job Powershell Scripts being run
- ✨: Added complex data type for representing JSON objects internally
- ✨: Added complex extraction, complex insertion, and complex value group transformations.
- ✨: Added support for complex extraction transformation to work in either incoming or outgoing directions
- ✨: Added support for complex insertion transformation to work in either incoming or outgoing directions
- ✨: Added support for exposing complex data type over gateways
- ✨: Added support for converting PSObject to Complex Value type natively
- ✨: Added External Configuration value store, allowing configuration values to be referenced and shared
- ✨: Added ability for engines to register External Configuration value usage, to allow tracking of in-use values
- ✨: Added ability for engines to refresh when referenced External Configuration values change under most circumstances
- ✨: Added ability to either insert or reference External Configuration values across supported fields and engines
- ✨: Added support for PowerShell components to read from the External Configuration value store
- ✨: Added support to entity search for searching on ID and DN fields
- ✨: Added ability to enable and disable gateways
- ✨: Support distributing SDK as NuGet packages
- ✨: Completely rewrote SQL data layer to remove legacy reflection/expression-based implementation and better align with PostgreSQL functionality and performance
- ✨: Added better handling for PowerShell jobs being completed in scenarios where the thread may not exit properly
- ✨: Added support for the SHA256 hashing algorithm when using the SQL data store
- ✨: Added support for Web hosting settings to be overridden by Environment Variables
- ✨: Added support for setting service-wide TCP keep-alive time overrides
Enhancements
- 🔧: Converted to .NET 8 / .NET Framework 4.8
- 🔧: Modernized OData gateway to align with new library
- 🔧: Rewrote configuration engine to internally represent configuration in a generic manner
- 🔧: Migrated configuration format from XML to JSON
- 🔧: Updated audit decorators to only process activity when a service audit writer is configured
- 🔧: Updated wording in the time offset flag transformation description to better reflect expected behaviour
- 🔧: Improved performance of entity search on larger entity sets
- 🔧: Improved entity processing to aggregate changes over all transformations, rather than process for each transformation
- 🔧: Improved PowerShell connector schema field definition validation
- 🔧: Overhauled database query generation for improved performance on entity paging, filtering, and ordering operations
- 🔧: Updated PostgreSQL database connections to use connection pooling wherever possible
- 🔧: Improved API masking of secret values
- 🔧: Significantly improved reflection performance
- 🔧: Updated web styling
- 🔧: Updated OData gateway to report HTTP 424 instead of 404 on an adapter lookup, where the adapter exists but is disabled
- 🔧: Reworked plugin loading system to better load patches and plugins, and better avoid dependency version conflicts
- 🔧: Migrated PostgreSQL data store to use more performant JSON serialization implementation
- 🔧: Surfaced source context name when viewing origin information, including from plugins
- 🔧: Updated web dependencies, removing reliance on JQueryUI
- 🔧: Updated default SSL/TLS settings on LDAP gateway to more secure options
Removals
- ❌: Removed Splunk Log/Audit writer
- ❌: Removed service WCF endpoints
- ❌: Removed inbuilt web host
- ❌: Removed legacy SCIM gateway with migration path for existing configuration
- ❌: Removed Oracle DB database agent
- ❌: Removed legacy WIX installer support
- ❌: Removed "Generate Changes" feature from adapter, replaced by "Simulate Changes"
Bug Fixes
- 🐛: Fixed an issue where deleting a connector group would not persist to configuration files
- 🐛: Fixed an issue where CSV connector would fail to configure if the target CSV file didn't exist on connector creation
- 🐛: Fixed an issue where adapter entities were missing created and modified time entries on PostgreSQL databases
- 🐛: Fixed an issue where modifying the schema script of an existing PowerShell connector would fail to update the stored schema
- 🐛: Fixed an issue where the Extended URN for the gateways API would fail to generate
- 🐛: Fixed an issue relating to PostgreSQL not correctly storing updated metadata relating to LDAP containers
- 🐛: Fixed an issue with the LDAP gateway where container name lookups were processing in a case-sensitive manner
- 🐛: Fixed an issue where changing the casing of an adapter's container or object would not persist until service restart
- 🐛: Fixed an issue relating to duplicate change entries resulting from change time precision calculation on PostgreSQL data layer
- 🐛: Fixed an issue where deleting a transformation while the ChangeLog table was empty would throw an exception on PostgreSQL data layer
- 🐛: Fixed an issue where origin information would not insert correctly under certain update circumstances
- 🐛: Fixed an issue where the CSV connector would not correctly support Unicode characters on writing
- 🐛: Fixed an issue where the "end" script on a PowerShell log writer would fail to execute
- 🐛: Fixed an issue where duplicate changes could be inserted under certain conditions, resulting in extra processing
- 🐛: Fixed an issue where decimal value types could lose precision when saving to PostgreSQL
- 🐛: Fixed an issue where adding an entity to a CSV connector through an OData gateway could result in entries with duplicate keys
- 🐛: Fixed an issue where failures on a gateway delete operation could go unnoticed by the adapter, resulting in entities still being removed
- 🐛: Fixed an issue where entity counts in log messages could be incorrectly represented for certain operations
- 🐛: Fixed an issue where failed entity updates would show the wrong EntityID in reports, if the EntityID was used in the DN template of the adapter
- 🐛: Fixed an issue where string values containing quotes would not escape properly during export on the CSV connector
- 🐛: Fixed an issue where gateways could return a cached entity containing outdated data in certain circumstances
- 🐛: Fixed an issue where exceptions surfaced while interacting with the OData gateway would not be returned to the user
- 🐛: Fixed an issue where decimal and double value types could lose precision when exposing over a gateway
- 🐛: Fixed an issue where future dated changes weren't being created under certain conditions, if the value for the change came from a relational transformation
- 🐛: Fixed an issue where PowerShell transformations were not registering contributions correctly
- 🐛: Fixed an issue where connector comments were not persisted to configuration files
- 🐛: Fixed an issue where join transformations on fields generated by PowerShell transformations would not trigger change detection when the relational data changed
- 🐛: Fixed an issue where fields generated by a constant transformation used in resolution for join transformations could cause problems if the join transformation mapped datetime fields used in offsets
- 🐛: Fixed an issue on PowerShell transformations where indexing on the entity to retrieve a value could throw an exception in certain circumstances