Open Source Low-code API development framework Featuring ready-to-go Security and MongoDB API
Big News: Virtual Threads Model
The highlight of this major update is the transition to the virtual threads threading model, providing improved performance and efficiency. This new threading model brings significant enhancements, including optimized buffer management and virtual thread compatibility across core operations. Here are the major changes:
Thread Model Upgrade:
ThreadAwareByteBufferPool
to delegate buffers based on thread types, optimizing performance for virtual threads (37d0b99f2).Performance Improvements:
ByteBufferPool
with the NotPoolingByteBufferPool
for virtual thread compatibility (1f70da4a3).true
for enhanced performance (181050b69).Bug Fixes and Refactoring:
Authentication Enhancements:
Other Improvements:
This is a patch release to update undertow-core to 2.3.13.Final and other dependencies to their latest patch release.
Bump MongoDB driver versions to 4.11.2, jnr-unixsocket to 0.38.22, zstd-jni to 1.5.6-3, undertow-core to 2.3.13.Final, slf4j-api to 2.0.13, tika-core to 2.9.2, classgraph to 4.8.172, junit-jupiter to 5.10.2
Full Changelog: https://github.com/SoftInstigate/restheart/compare/7.7.8...7.7.9
This minor release upgrades Undertow to v2.3.12.Final and fixes two minor bugs
fa6d28802 :bug: Prevent null return in HashMapLoadingCache.getLoading() to address potential multithreading cache issue 4bb0805a8 :goal_net: Handle mongodb error 241 (ConversionFailure) to return status code 400 dad521df7 :arrow_up: Upgrade Undertow to v2.3.12.Final
PluginsClassloader
. This significant change addresses and resolves the issue where plugin classes were previously loaded by multiple classloaders, leading to potential conflicts. With this update, all plugin classes are consistently loaded by a single classloader, enhancing the stability and reliability of the plugin system.9b4a7e6b9 :arrow_up: Upgrade dependencies f2b534afe :bug: Refactor plugin class loading to use custom PluginsClassloader. This change ensures that plugin classes are consistently loaded by a single classloader, preventing conflicts arising from classes being loaded by multiple classloaders.
RESTHeart 7.7.4 includes important bug fixes and error handling improvements to enhance stability and usability.
Below is a summary of the changes included in this release.
ClassNotFoundException
was thrown when a Provider attempted to provide an instance of a class located within plugin JAR files.400 Bad Request
response when encountering this issue, preventing invalid queries from causing unhandled exceptions.400 Bad Request
response to the client.These changes aim to improve the overall robustness and user experience of the software by preventing common errors and ensuring that clients receive clear, actionable feedback on issues. We recommend all users to update to this latest version to benefit from these improvements.
48495e024 :bug: Fix ClassNotFoundException when a Provider attempted to provide an instance of a class located within plugin JAR files 96b512aee :goal_net: Handle MongoDB errors 16410 (FieldPath field names may not start with '$') and 73 (Invalid database name) to return 400 Bad Request
This minor update introduces an important optimization. We have identified that the RequestLimitingHandler
within our base pipeline, while initially implemented to manage request throttling, is not effective while still slowing down RESTHeart. Given the complexity of efficiently handling request loads, we've concluded that utilizing a reverse proxy offers a more robust for request throttling.
RequestLimitingHandler
from the base processing pipeline. This change is aimed at streamlining operations and reducing unnecessary overhead. As part of this update, we've also deprecated the requests-limit
configuration option, reflecting our move towards leveraging external tools for more effective request management.c11b1703e :zap: Remove RequestLimitingHandler from base pipeline and linked requests-limit configuration option
This minor release:
8e921bbd3 :sparkles: GraphQL query-time-limit is enforced also on multi queries requests a50ff4c43 :bug: Fix timeout not returning executing graphql query that breaks query-time-limit on nested fields 98d96a387 Update SSLContext.getInstance() to use TLSv1.2