[Cluster] Fixed the failover mechanism for cluster transactions
[Cluster] Using SemaphoreSlim instead of a blocking Monitor.TryEnter as the cluster lock to prevent potential ThreadPool starvation
[Cluster] Fixed an edge case of NRE in ClusterStateMachine when adding a database
[ETL] Stopping an ETL tasks in an async fashion to avoid holding the cluster lock
[Indexing] Fixed incorrect staleness status due to unprocessed document tombstones after the replication
[Indexing] Fixed handling of field names extraction for boosted fields in JavaScript index definition
[Licensing] Making sure the license verification check will be executed when running as Windows Service
[Revisions] Fixing an issue that Enforce revisions configuration was skipping on docs when passing multiple collections
[Subscriptions] Fixed an issue with missing metadata on subscriptions with revisions enabled
[Subscriptions] Foxed a task connection status when getting subscription ongoing task by name
[ThreadPool] Doubling the minimum workers of ThreadPool in the default configuration
[Voron] Fixed occasional failures in loading the storage report
[.NET] Updated to .NET 7.0.17
Studio
Fixed wrong count of dedicated threads on Threads Runtime Info tab
Filtering out expired certificates by default
5.4.116 (54109) - 2024/02/12
Server
[Backup] Cluster observer will decide which node should perform the backup
[Certificates] Avoid triggering the replacement of the server certificate when the new one that comes from the CertificateRenewExec is the same as the one that is currently used
[Cluster] Improved performance of cluster operations
[Cluster] Avoided materialization of the database record in HandleClusterDatabaseChanged()
[Configuration] System store will take into account Storage.Temp configuration option for temporary directory
[Debug] Fixed an issue with downloading a memory dump file generated by /admin/debug/dump endpoint
[ETL] Replaced deprecated MySql.Data.MySqlClient package by MySqlConnector
[ETL] Fixed an issue with not preserving the casing of Time Series names
[Import] Fixed an issue that after the import we could end up with two attachments with identical names on one document
[Logging] Added ability to persist configuration of the server logs and the traffic watch logging
[Querying] Support for nullable numeric parameters of in clause
[Revisions] Fixed concurrent usage of the context in the revisions storage
[Setup] Fixes in rvn tool for the initial setup operations
Fixed issue that a database ID couldn't be added to unused database IDs
[.NET] updated to .NET 7.0.15
Client
Fixed an issue that WhatChanged() did not return old value for RemovedField on Dictionary
Fixed finalization of RequestExecutor instances
Throw meaningful exception when trying to use default HiLoIdGenerator while a custom AsyncDocumentIdGenerator convention was set
Studio
[Security] Introduced TOTP support for browser generated requests
5.4.115 (54106) - 2024/01/18
Server
[JavaScript Indexes] Fixed regression introduced in 5.4.113 which made that date fields indexed by JavaScript indexes got different format so queries could not find old results. If an index is affected (has a date field) then the reset is required in order to recover.
[Counters] Fixing the allocation size for a counter group name when purging counter tombstones
5.4.114 (54104) - 2024/01/16
Server
[Subscriptions] fixed issue with concurrent subscription not picking up appropriate state when connecting