[Cluster] fixed issue with 'ClusterTransactionIdBase64' and 'DatabaseTopologyIdBase64' being set to null after 'HardResetToNewCluster' is executed
[Configuration] fixed issue with identity parts separator not getting the default value when client configuration gets disabled
[ETL] added MySqlConnector support for SQL ETL and Import from SQL
[Indexes] added the ability to use prerelease NuGet packages in indexes when 'Indexing.NuGetAllowPreleasePackages' configuration is set to true
[JavaScript] decreased number of allocations when patching arrays
[JavaScript] only inject parameters into JavaScript engine that are required by the function
[Logging] fixed possible issue with Microsoft Logs bein disabled, yet still getting written
[Logging] added all backup, ETL, connection string configuration changes to the audit log
[Migration] added option to migrate non-public schemas
[Replication] decreased the memory footprint for replication process by early releasing memory of the replicated items
[Replication] disabling external replication should not allow deletion of tombstones
[Subscriptions] fixed issue with subscriptions not getting appropriate value when 'LastDocument' is set as change vector and the last document comes from external replication
[.NET] updated to .NET 7.0.5
Client API
[JSON] added nested generic types support to 'DefaultRavenSerializationBinder'
[HTTP] fixed a race condition when spawning a node health check and simultaneously timeout and topology update occurs
[HTTP] fixed HTTP Cache possible memory leak
[RQL] fixed issue with using 'RavenQUery.Raw' without 'select new' and query ignoring the raw content
[RQL] fixed issue with alias not being appended to 'OrderBy' clause when 'DocumentQuery' is used
Studio
[Debug] added additional options for collection of Debug information
[Client Configuration] allow to set both 'use session context' and 'read balance behavior'
[Cluster] added memory information explanations
[Database] added the ability to restart a database
[Documents] fixed issue with downloading huge document as text, instead of JSON
5.4.103 (54038) - 2023/03/30
Server
[Let's Encrypt] fixed issue with retrieving a certificate due to compatibility problem with upcoming Let's Encrypt API changes
5.4.102 (54037) - 2023/03/27
Server
[Backups] fixed possible desync of backup status between nodes
[Backups] fixed issue with saving a server-wide backup when any of the database is idle
[Backups] during Restore we should not hold read transaction (held by atomic guards) for a long time to decrease scratch file size
[Backups] fixed potential NRE when importing old dump file without Indexes History
[Changes API] created optimized channel for aggressive cache usage
[Debug] added the ability to collect debug package only for server or per database
[ETL] added stop reason to OLAP ETL statistics
[ETL] fixed issue with disabling an ETL task when in fallback mode
[ETL] fixed 'Failed to parse' issue when registering behavior function in a script engine when script contains GlobalObject
[Indexes] fixed regression and using a different approach to fix potential problems with JS or multi map-reduce indexes not preserving the order of hashing of reduce key values
[Indexes] fixed regression with proper detection of dynamic fields in JavaScript indexes
[Indexes] added certificate info to index history view
[Indexes] added support for .NET 7 'TimeOnly' increased precision
[Indexes] fixed issue with extraction of collection name for more index types
[Logging] added the ability to enable Kestrel logs
[Memory] releasing allocated compressed value when deleting a document with a lot of revisions
[Memory] added Zswap and Zswapped to memory info reader on Linux due to 'top' displaying only first 15 chars
[Memory] fixed possible memory leak when storage compaction is being used
[Querying] fixed issue with timings not working when metadata comes from query metadata cache
[Querying] fixed issue with accessing a disposed object when (id) when 'load' is used in RQL and value is used during projection more than once
[Querying] fixed internal cache issue which could result in returning invalid query results for certain query types
[Replication] when entire Time Series is being deleted, we should not update the document's metadata to avoid creating a conflict on the document
[Replication] when document with Time Series is being deleted, we should create a DeletedRange to prevent possible inconsistency between Time Series on database nodes
[Setup] added Ubuntu 22.04 DEB package
[Threading] using shorter thread names on Linux
[.NET] updated to 7.0.4
Client API
[Conventions] added 'CreateHttpClient' and 'HttpClientType' conventions
[Changes API] optimized changes API for aggressive cache usage (requires both server and client update)
[JSON] added support for .NET 7 'TimeOnly' increased precision
[JSON] added 'DefaultRavenSerializationBinder' which will throw for known .NET RCE Gadgets when they are used in '$type' field and deserialization needs to use value from this field to find a type
[Querying] fixed issue with generation of JS projection when '.ToDictionary' is used in LINQ select
[Querying] fixed regression that did not allow to select after project into