Releases: SoftInstigate/restheart
8.1.7
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
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
andJSStringService
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
Release 8.1.5
Bug Fixes
- Cross-OS Plugin Path Handling: Fixed path issues in
PluginsScanner
usingPath.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 version4.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
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 version21.0.2-graalce
and set thePATH
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 version1.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
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 version2.3.18.Final
. - JUnit Update: Updated
JUnit Jupiter
to version5.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
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:
- 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:
🧼 Refactoring and Cleanups
- CleanerUtils: Refactored to use virtual threads for resource cleanup ([54c6a7a]).
- URLUtils and RequestLogger:
- 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:
👀 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 torestheart.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
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
)
- Optimized GraalVM polyglot context allocation using virtual threads. Introduced a context reuse queue to enhance performance. (commit:
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, andclassgraph
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
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
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
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