Releases · gatewayd-io/gatewayd
v0.10.3 v0.10.2 v0.10.1This release introduces Raft-based state management for GatewayD to ensure efficient and consistent coordination between multiple instances. By leveraging HashiCorp’s Raft implementation, GatewayD now maintains a unified state for parameters like connection pools and load-balancer strategies across all instances in a cluster, ensuring high availability, consistency, scalability, and efficiency.
Key Features and Objectives:High Availability: Ensures the system remains operational even if individual instances fail. Raft provides fault tolerance by replicating state across multiple nodes, enabling consistent state retrieval and updates during failover scenarios.
Consistency: Guarantees that all instances in the cluster share the same view of stateful parameters, such as connection pools and load-balancer strategies, maintaining synchronized operations across distributed instances.
Scalability: Simplifies state coordination in clusters, enabling seamless scaling of GatewayD instances without introducing inconsistencies or requiring manual intervention.
Efficiency: Propagates updates to stateful parameters in real-time, ensuring optimal load balancing and resource utilization across instances.
This update resolves inconsistencies in the previous per-instance state management approach, ensuring scalable and robust operation for GatewayD clusters. A huge thanks to @sinadarbouy for his excellent work on this implementation! 🎉
This release also includes several critical updates and fixes to enhance security, improve performance, and maintain compatibility:
Security Updates:3.3.2-r1
to address CVE-2024-9143.golang.org/x/crypto
to the latest version.softprops/action-gh-release
to v2
for enhanced functionality and compatibility.Full Changelog: v0.10.0...v0.10.1
v0.10.0 v0.9.10This release marks the culmination of the v0.9.x milestone, packed with significant new features, fixes, and enhancements that have made GatewayD more robust, stable, and scalable. Key highlights include the introduction of the policy engine, aka. the Act system, in v0.9.0, the plugin scaffold feature in v0.9.5, and the load balancing feature in v0.9.7, among many others.
Over the course of this milestone, we merged 89 squashed commits into the main
branch, resolved 30 issues, reviewed numerous PRs and published 11 releases — thanks to the perseverance and contributions of our amazing community. None of this would have been possible without their dedication.
Looking ahead, there's even more in store, and we invite you to get involved. Whether you're a user or a tester, your participation is crucial. If you're ready to contribute, @mostafa is here to support you every step of the way.
Full Changelog: v0.9.9...v0.9.10
v0.9.9 v0.9.8This release introduces several key enhancements and fixes. A significant improvement is the integration of PostgreSQL test containers for seamless integration testing, replacing hardcoded addresses with dynamic test container addresses. This ensures a consistent test environment across various packages such as api
, cmd
, and network
, and centralizes the setup in a reusable function. Additionally, dependency updates were made, including the latest GatewayD SDK, and the gomoddirectives
linter was disabled to streamline development. The plugin configuration was updated to utilize the cache plugin version 0.4.0. A major bug has been fixed that improved handling of PostgreSQL's COPY
command, as explained here, plus other bugfixes and improvements.
This wouldn't be possible without @sinadarbouy's contributions. 🙏
What's ChangedCOPY
command and a few others by @mostafa in #610Full Changelog: v0.9.7...v0.9.8
v0.9.7This release contain a major change, where each tenant can now connect to multiple databases, contrary to the previous one-tenant-one-database approach, and use server load balancing strategies to distribute the load among these databases. Random, round robin and weighted RR strategies with consistent hashing are supported, thanks to @sinadarbouy and @eabasir for their contributions.
What's ChangedFull Changelog: v0.9.6...v0.9.7
v0.9.6In this release of GatewayD, several updates and fixes have been made. Support for queueing asynchronous actions in the background was added (thanks to @Hamsajj 🙏). This feature allows the output of policy evaluation by Act to be published to a Pub/Sub queue on Redis and plugin and external consumers can consume and run arbitrary actions based on that.
Provenance attestation and SBOM features were added, along with an Alpine update. Setup issues were resolved. The REDIS_URL
environment variable can be used to setup the cache plugin. The policy input has been enriched to include plugin parameters and its result for better policy evaluation. Dependencies were updated, including a bump of grpc-gateway
to version 2.20.0. The Dockerfile linting was added to the CI workflow.
Additionally, an issue with IP address binding that prevented external access to the containers from the host machine was fixed (thanks to @sinadarbouy 🙏).
What's ChangedREDIS_URL
to set up the cache plugin by @mostafa in #539Full Changelog: v0.9.5...v0.9.6
v0.9.5This release contains a lot of improvements to the overall reliability and stability of GatewayD and a very nice feature contributed by @zeina1i (thank you 🙏). This release also has two first-time contributors: @ChrisD-Git and @smnmna99, which we are really grateful for (thank you🙏).
Plugin scaffolding feature: Previously the plugin template for Go was the go-to method for developing new plugins for GatewayD. @zeina1i integrated the template into the GatewayD CLI, so that you can create a new plugin scaffold and be able to test it in one place using the following command.
$ gatewayd plugin scaffold -h Scaffold a plugin and store the files into a directory Usage: gatewayd plugin scaffold [flags] Flags: -h, --help help for scaffold -i, --input-file string Plugin scaffold input file (default "input.yaml") -o, --output-dir string Output directory for the scaffold (default "./plugins")
An example input file is as follows. Note that the repository name defines the plugin name.
remote_url: https://github.com/gatewayd/test-gatewayd-plugin version: 0.1.0 description: This is test plugin license: MIT authors: - Author 1 <author1@example.com>
For more information, please refer to the updated Plugin Developers' Guide in the docs.
New security policy: @ChrisD-Git contributed the security policy and guidelines, which should be followed when reporting vulnerabilities.
@smnmna99 added OpenTelemetry tracing to the API, which means that almost everything in GatewayD can now be traced using OTLP gRPC.
gatewayd plugin scaffold
CLI docs by @mostafa in #528Full Changelog: v0.9.4...v0.9.5
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4