Restheart Versions Save

Open Source Low-code API development framework Featuring ready-to-go Security and MongoDB API

8.0.0-beta

1 week ago

Release Notes - Version 8.0.0-beta 🔥

See milestone 8.0 issues

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:

  1. Thread Model Upgrade:

    • Virtual Threads: Migrated to virtual threads as the primary threading model, replacing the old worker-threads configuration.
    • Custom Pools: Implemented a ThreadAwareByteBufferPool to delegate buffers based on thread types, optimizing performance for virtual threads (37d0b99f2).
    • Carrier Threads Configuration: Added an option to specify the number of carrier threads for virtual threads (3ccdecc5a).
  2. Performance Improvements:

    • Heap Buffers: Virtual working threads now exclusively use heap buffers, which are faster (8a450aa4c).
    • Buffer Pools: Replaced Undertow's ByteBufferPool with the NotPoolingByteBufferPool for virtual thread compatibility (1f70da4a3).
    • Direct Buffers: Defaulted the configuration option for direct buffers to true for enhanced performance (181050b69).
    • Lazy Request Loading: Introduced lazy-loading of request content to minimize unnecessary resource usage (6eae3d0e4).
  3. Bug Fixes and Refactoring:

    • MongoDB Error Handling: Improved error handling for specific MongoDB errors (06638ecd5, fb6c01998).
    • Native Image Compatibility: Fixed native image builds to correctly handle plugins and prevent conflicts due to class loading (ff3c01cfa, ee3c387d0, f551d2b8c).
  4. Authentication Enhancements:

    • Cookie Authentication: Added cookie-based authentication with support of both JWT and RGT cookies (85d677154).
    • JWT Mechanism: Improved the JWT authentication mechanism to accommodate both rolesClaim and fixedRoles (070054c94).
  5. Other Improvements:

    • Java Upgrade Upgraded Java 21 LTS
    • GraalVM Upgrade Upgraded to latest version of GraalVM for Java 21
    • Configuration: Updated and refined various configuration options, including removing deprecated features and updating Java and Docker configurations (6cd3866c1, 4254c285e, 373bfa4b1).
    • Plugins: Refined the PluginsScanner to support native builds and maintain class loader consistency (ee3c387d0, f551d2b8c).

7.7.9

2 weeks ago

Release 7.7.9

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

7.7.8

1 month ago

Release 7.7.8

This minor release upgrades Undertow to v2.3.12.Final and fixes two minor bugs

New commits

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

7.7.7

2 months ago

Release 7.7.7

This minor release fixes a critical bug that prevented the previous version from being built as a Uber jar using the maven shade plugin.

New commits

31ad403b0 :bug: Fix PluginsScanner and PluginsClassloader to support Uber jar builds

7.7.6

3 months ago

Release 7.7.6

This minor release fixes a critical bug that prevented the previous version from being built as a native image.

New commits

def511184 :recycle: Refactor PluginsScanner to support native image build

7.7.5

3 months ago

Release 7.7.5

Updates and Improvements

  • Dependency Upgrades: We have updated our project dependencies to the latest versions, ensuring improved performance, security, and compatibility across the board.

Bug Fixes

  • Plugin Class Loading Enhancement: We've refactored the plugin class loading mechanism to utilize a custom 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.

New commits

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.

7.7.4

3 months ago

Release 7.7.4

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.

Bug Fixes

  • Class Not Found Error Fix: Resolved an issue where ClassNotFoundException was thrown when a Provider attempted to provide an instance of a class located within plugin JAR files.

Improvements

  • Enhanced MongoDB Error Handling: Improved error handling for MongoDB operations by specifically addressing two error conditions:
    • Error 16410: FieldPath field names may not start with '$'. The system now correctly identifies and returns a 400 Bad Request response when encountering this issue, preventing invalid queries from causing unhandled exceptions.
    • Error 73: Invalid database name. Similarly, this update ensures that attempts to use invalid database names are gracefully handled, returning a 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.

New commits

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

7.7.3

3 months ago

Release 7.7.3

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.

Improvements

  • Performance Enhancement: We have removed the 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.

New commits

c11b1703e :zap: Remove RequestLimitingHandler from base pipeline and linked requests-limit configuration option

7.7.2

3 months ago

Release 7.7.2

This minor release:

  • Fixes NPE on Optional Stages when ?avar qparam is missing
  • Upgrade json-path to v2.9.0

New commits

9c4adf318 :arrow_up: Upgrade json-path to v2.9.0 5c5f9506f :bug: Fix NPE on Optional Stages when ?avar qparam is missing

7.7.1

3 months ago

Release 7.7.1

This minor release:

  • Fixes graphql query-time-limit not enforced on multi queries requests and on query with nested fields
  • Upgrades TLS to v1.2

New commits

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