Skip to content

Releases: SoftInstigate/restheart

8.1.7

11 Dec 15:33
735cbb3
Compare
Choose a tag to compare

Release 8.1.7

Bug Fixes

  • Metrics Service URI Change Issue: Fixed an issue where the URI of the metrics service could not be changed. (Commit: bdf19b8)
  • GitHub Actions Workflow Step ID: Renamed the step ID for setting the version in the GitHub Actions workflow to avoid conflicts or confusion. (Commit: b4c8c34)

Code Improvements

  • Code Cleanup and Formatting: Improved code readability by cleaning up import statements and enhancing code formatting in the DirectoryWatcher module. (Commit: dfc492d)

8.1.6

25 Nov 10:28
4b9c6be
Compare
Choose a tag to compare

Release 8.1.6

Version 8.1.6 focuses on bug fixes and improvements for better cross-platform compatibility, particularly on Windows.

Bug Fixes

  • Plugin Path Resolution Improvements: Updated plugin path resolution in JSInterceptorFactory and JSStringService to use URI for better handling across different platforms. Added debug logging to aid in troubleshooting these path issues.
  • PolyglotDeployer Fixes: Refactored PolyglotDeployer to catch specific exceptions and manage deployment timeouts more effectively. Addressed path handling issues specifically impacting Windows environments.
  • Cross-Platform Path Handling: Fixed multiple errors related to path handling in PolyglotDeployer to improve compatibility for Windows users.
  • Debug Output Enhancements: Added debug output for version input in workflows and updated version output handling to improve CI traceability.

Refactoring and Enhancements

  • JSStringService Refactoring: Refactored JSStringService for better code formatting, consistency, and improved path resolution, leading to increased maintainability.
  • PolyglotDeployer Reformatting: Reformatted the PolyglotDeployer class for improved readability and consistency in code style.

8.1.5

20 Nov 11:16
1fe237e
Compare
Choose a tag to compare

Release 8.1.5

Bug Fixes

  • Cross-OS Plugin Path Handling: Fixed path issues in PluginsScanner using Path.isAbsolute() to ensure cross-platform consistency, addressing problems on Windows (#531).
  • Trailing Slash in MongoDB URL Mapping: Fixed an issue with MongoDB URL mapping where trailing slashes in path templates caused incorrect matching.
  • PluginsScanner Errors on Windows: Resolved errors related to incorrect path handling when running PluginsScanner on Windows.

Dependency Updates

  • Classgraph Version Bump: Updated classgraph dependency to version 4.8.179

This release focuses on improving cross-platform compatibility, especially for Windows, while refining workflows and enhancing version management processes. Let us know if you need any assistance or further information!

8.1.4

04 Nov 11:17
fc804c9
Compare
Choose a tag to compare

Release 8.1.4

Key Highlights

  • Version Release: Version 8.1.4 includes dependency updates, workflow refinements, and bug fixes to improve reliability.
  • Timeout Increase for Workflows: Increased MongoDB workflow timeout durations for more robust and reliable builds.

Features and Enhancements

  • Native Image Build Improvements: Refactored native-image.yml to support building and uploading native artifacts for multiple platforms and to conditionally set paths for artifact uploads.
  • Dockerfile Updates: Updated Dockerfile.graalvm to use GraalVM version 21.0.2-graalce and set the PATH environment variable more reliably.
  • Timeout Adjustments: Increased timeout durations for MongoDB workflows to handle long-running tasks during branch and tag builds.

Bug Fixes

  • Aggregation Variables Issue: Ensured predefined aggregation variables (e.g., @user, @mongoPermission) are available in change stream aggregations, resolving issues with missing parameters.

Dependency Updates

  • Maven Build Plugin Upgrades: Updated Maven build plugin versions to align with the latest standards.
  • Logback Update: Updated logback-classic dependency to version 1.5.12 to address logging enhancements and bug fixes.

This release aims to enhance the workflow processes and dependency management for more robust builds and releases. Please let us know if you have any questions or need support!

Full Changelog: 8.1.1...8.1.4

8.1.1

24 Oct 15:44
57b2d20
Compare
Choose a tag to compare

Release Notes for Version 8.1.1

We are now publishing RESTHeart’s native images for Windows and Linux on amd64 architectures. You can download either the Linux or the Windows pre-compiled executable and run RESTHeart without the need to have Java on your machine.
Please let us know of any issue with them.

Key Highlights

  • Version Release: Version 8.1.1 introduces workflow improvements, bug fixes, and dependency updates to enhance reliability and performance.
  • Multi-Architecture Support: Added support for multi-architecture native images and streamlined Docker workflows.

Features and Enhancements

  • Multi-Architecture Native Image Support: Refactored native-image.yml workflow to support building native images across multiple architectures.
  • Refactored Docker Tags Generation: Improved Docker tag generation in native image and stable release workflows for better consistency.
  • Improved JS Service Deploy/Undeploy Mechanism: Enhanced JavaScript service deployment to trigger updates based on file modifications.

Bug Fixes

  • Fixed Ctrl-C Issue with GraalVM Container: Resolved an issue preventing proper shutdown of the GraalVM container with Ctrl-C.
  • Plugin Library Copy Issue: Fixed copying plugin libraries in Docker images for GraalVM and Distroless builds.

Dependency Updates

  • Undertow Core Update: Updated undertow-core to version 2.3.18.Final.
  • JUnit Update: Updated JUnit Jupiter to version 5.11.3.

Workflow Improvements

  • Workflow File Refactoring: Refactored workflow files for consistency in naming conventions and triggering logic.
  • Executable Binary Adjustments: Made RESTHeart binary executable in native Linux container.

Full Changelog: 8.1.0...8.1.1


This release focuses on workflow consistency and multi-platform build support. Let us know if you encounter any issues or have questions!

8.1.0

15 Oct 17:20
bedf6ca
Compare
Choose a tag to compare

RESTHeart 8.1.0

Release Notes

💡 Highlights

  • Performance Enhancements: Leveraged virtual threads for GraalVM polyglot context allocation and caching mechanisms for improved performance.
  • GraphQL Enhancements: Added configuration options for caching, and made GraphAppsUpdater more efficient, reducing the impact of cache invalidation.
  • Native Image Improvements: Enhanced native image support by fixing missing modules, upgrading dependencies, and resolving several build issues.
  • Security and Bug Fixes: Addressed thread leaks, unsanitized input vulnerabilities, and other important bug fixes.

🆕 New Features

  • Virtual Threads in GraalVM Polyglot: Optimized polyglot context allocation with virtual threads, introducing a queue to reuse contexts, which greatly improves performance ([0832bc9]).
  • GQL Cache Toggle: Introduced a configuration option to disable the GraphQL application cache (/graphql/app-cache-enabled->false) to facilitate testing and development ([5e58b4c]).
  • GraphAppsUpdater: Added a new component to periodically revalidate entries in the GraphQL applications cache, ensuring consistency and reducing unnecessary invalidations ([1267a82]).

🚀 Performance Improvements

  • Graph App Initialization: Apps are now initialized on separate threads, significantly reducing startup time ([75438cd]).
  • Caching Improvements:
    • Optimized the CaffeineLoadingCache.put() method ([06e9566]).
    • Improved GraphQL App cache updates to minimize invalidation overhead when app definitions change ([01a3513]).
  • Caffeine Cache Updates: Virtual threads are now used for the Caffeine cache's async methods, contributing to better overall throughput ([d5a8e8d]).

🐛 Bug Fixes

  • Thread Leak in ChangeStreamWorker: Fixed a thread leak that occurred due to inactive change streams ([743e169]).
  • Missing Modules and Dependencies: Added the missing metrics module to the native image to resolve incomplete builds ([04ddcb5]).
  • PolyglotDeployer Bugs:
    • Fixed a bug where restheart-commons was not being copied to the lib directory ([0887562]).
    • Corrected the getPluginsDirectory() logic in PolyglotDeployer ([b42f5ff]).

🧼 Refactoring and Cleanups

  • CleanerUtils: Refactored to use virtual threads for resource cleanup ([54c6a7a]).
  • URLUtils and RequestLogger:
    • Updated URLUtils.decodeQueryString(exchange) to improve URL decoding consistency ([94f3d20]).
    • Fixed an issue in RequestLogger when URLs contained illegal hex percent-encoded characters ([78ebe24]).
  • JwtAuthentication: Added a method to validate key complexity, improving the robustness of authentication ([e0d8b8b]).

⬆️ Dependency Upgrades

  • Truffle: Upgraded to version 24.1.0 ([d4a074f]).
  • Undertow: Upgraded to version 2.3.16.Final, followed by a subsequent update to 2.3.17.Final ([88cf353], [db8f15a]).
  • MongoDB, Logback, and ClassGraph: Updated to the latest versions to maintain compatibility and security ([b0946a7]).

🚚 Native Image and Docker Improvements

  • GraalVM and Native Image Fixes: Resolved multiple issues related to GraalVM native images, including adding dependencies, optimizing polyglot classes, and addressing build breakages caused by transitioning from fat jars to restheart-core packaging ([2495713]).
  • Docker Updates:
    • Updated the base image to debian:bookworm-slim ([d65348f]).
    • Modified Dockerfile to improve installation efficiency and replace the fat JAR with modularized dependencies ([42f5fb9]).

👀 Other Noteworthy Changes

  • Plugin Deployment Optimization: Optimized plugin deployment by excluding unnecessary JARs from startup scanning ([8911f70]).
  • Native Image Debug Logging: Added debug-level logging for JARs found in /lib directories to assist in debugging ([e486c73]).

🔥 Breaking Changes

  • Packaging Changes: The former restheart-core.jar has been renamed to restheart.jar as part of the ongoing refactoring and modularization effort. Adjust your configurations accordingly if you were referring to the previous artifact name.

🧌 Known Issues

  • Standalone Mode: The graph apps initializer has been disabled in standalone mode due to potential startup conflicts ([cc93aa7]).

Full Changelog: 8.0.14...8.1.0

8.0.14

30 Sep 17:01
0b11f4a
Compare
Choose a tag to compare

Release Notes for Version 8.0.14

New Features and Enhancements:

  • Performance Optimization:
    • Optimized GraalVM polyglot context allocation using virtual threads. Introduced a context reuse queue to enhance performance. (commit: be858bbea)
    • Enabled virtual threads in CleanerUtils, contributing to improved system performance. (commit: 85223e1e4)
    • The graphAppInitializer now initializes apps on separate threads, resulting in a faster startup. (commit: 5ee61d128)

Bug Fixes:

  • Fixed missing metrics module in the native image build. (commit: 4779b8ada)
  • Fixed the plugin directory path issue in PolyglotDeployer.getPluginsDirectory(). (commit: 7861575fd)

Dependency Upgrades:

  • Upgraded Truffle to version 24.1.0. (commit: 55eb1a274)
  • Bumped mongodb-driver-sync to version 5.1.4, logback-classic to 1.5.8, and classgraph to 4.8.176. (commit: 527a17749)

Refactoring:

  • Refactored several polyglot classes for cleaner code and better maintainability. (commit: 8b32a2eed)
  • Removed per-thread caching of context objects as it no longer provided benefits with the introduction of virtual threads. (commit: a737d7e27)
  • General code refactoring to improve readability and structure. (commit: 0bf1d0e67)

Documentation:

  • Updated GRAALVM.md documentation. (commit: 5e0ca4042)

8.0.13

17 Sep 07:31
37df0e0
Compare
Choose a tag to compare

Release 8.0.13

Main fixes in this patch release:

  • Fix error in RequestLogger when URL contains illegal hex percent encoded characters
  • Disable graphAppsInitializer in standalone mode configuration

Main new commits

9ba1783 ♻️ Refactor URLUtils.decodeQueryString(exchange)
6c6e25f 🔧 Disable graphAppsInitializer in standalone mode configuration
282b573 ♻️ Remove redundant decoding of exchange.getQueryParameter() as Undertow v2.3.16.Final returns query parameters already decoded.
4c29007 ♻️ Use URLUtils.decodeQueryString(exchange) in RequestLogger
09b1e7f 🐛 Fix error in RequestLogger when URL contains illegal hex percent encoded characters

Full Changelog: https://github.com/SoftInstigate/restheart/compare/8.0.12..8.0.13

8.0.12

03 Sep 18:06
33756dc
Compare
Choose a tag to compare

Release 8.0.12

Main fixes in this patch release:

⬆️ Update undertow-core dependency to version 2.3.17.Final
✅ Adds additional docker platforms:

  • standard image
    • linux/amd64
    • linux/arm64
    • linux/ppc64le
    • linux/s390x
  • distroless image
    • linux/amd64
    • linux/arm64
    • linux/ppc64le
  • graalvm image
    • linux/amd64,
    • linux/arm64

This release also fixes a bug in the creation of tags for docker images, as some were missing.

Full Changelog: 8.0.11...8.0.12

8.0.11

02 Sep 10:18
0c7f50d
Compare
Choose a tag to compare

Release 8.0.11

🔥 Added a new configuration option graphql/app-cache-enabled (default: true). This option allows disabling the GraphQL App cache.

Disabling GraphQL App chacing can be beneficial for development and testing in multi-node environments. In such setups, updating a GraphQL App Definition immediately refreshes the cache on the handling node, but other nodes may take up to graphql/app-cache-ttr to sync, potentially causing testing delays.

Main new commits

a534c51 ✨ GQL app cache can be disabled setting configuration option /graphql/app-cache-enabled->false. This helps during testing or development

Full Changelog: 8.0.10...8.0.11