Skip to content

Releases: gatewayd-io/gatewayd

v0.5.4

07 Mar 22:12
0f1a0e0
Compare
Choose a tag to compare

This release contains a breaking change to how hooks are used. Hook names used to be string constants. This was error prone, as it was easy to misspell the hook name and keep watching the console to see nothing showing up from the method. The protobuf schema now has a HookName enumerator that contains a list of all the hook names. It is used in GatewayD core, plugin template and SDK. Currently, the plugins doesn't fully support this, so one needs to convert the enum value to an int32, but this will change soon.

What's Changed

Full Changelog: v0.5.3...v0.5.4

v0.5.3

07 Mar 00:21
c0ebb12
Compare
Choose a tag to compare

This release contains two things:

  1. A bugfix that was being constantly reported in Sentry.
  2. A gRPC client that reports usage stats to the GatewayD Usage Report Service every time your run GatewayD. It is a tiny service that records these pieces of information for analytics:
    1. GatewayD version (string)
    2. Go version (string)
    3. Go OS (string)
    4. Go Architecture (string)
    5. Service (string, constant, "gatewayd")
    6. DevMode (bool)
    7. Plugins (list of Plugin)
      • Name (string)
      • Version (string)
      • Checksum (string)
    8. Timestamp

No other information is recorded, but if you're still concerned about your privacy, use --usage-report=false flag to disable usage reporting.

What's Changed

Full Changelog: v0.5.2...v0.5.3

v0.5.2

05 Mar 19:33
72aa8ab
Compare
Choose a tag to compare

This release contains a very important feature that increases the stability and reliability of GatewayD: reloading plugins on crash. If reloadOnCrash is enabled, the plugin will be reloaded from disk with an already loaded plugins' config.

What's Changed

  • Reload plugin on crash if enabled in gatewayd_plugins.yaml by @mostafa in #184

Full Changelog: v0.5.1...v0.5.2

v0.5.1

05 Mar 17:24
30ad626
Compare
Choose a tag to compare

In this release I added --dev persistent (global) flag to the gatewayd command. This helps plugin developers bypass checksum validation while developing their plugins.

What's Changed

Full Changelog: v0.5.0...v0.5.1

v0.5.0

05 Mar 13:09
b240db2
Compare
Choose a tag to compare

This release includes a lot of fixes and cleanups, along with the new experimental Administration API, aka. Admin API. This is the very first iteration of the API and has limited functionality. For now, only a fraction of what I intended to build is developed, which includes these endpoints. Some or all of them will possibly change in the future.

  • Version returns GatewayD version info.
  • GetGlobalConfig returns global configuration.
  • GetPluginConfig return plugins configuration.
  • GetPlugins returns active plugin information.
  • GetPools returns active pools, their size and capacity.
  • GetProxies returns list of active proxies, along with available and busy connections.
  • GetServers returns list of active servers.

The API is exposed both on gRPC (port 9090) and HTTP (port 8080). The HTTP API includes a gateway to the GRPC endpoints along with a few more endpoints:

  • /v1/GatewayDPluginService/* routes to the gRPC API endpoints mentioned above.
  • /health returns OK status.
  • /version returns GatewayD version. This is like Version endpoint in GRPC, but without version details.
  • /swagger.json returns an OpenAPI v2 specification document in JSON.
  • /swagger-ui/ loads the Swagger UI for swagger.json.

The swagger.json and the Swagger UI endpoints are only available if the GatewayD binary is built with -tags embed_swagger. If is included in the release binary by default. The protobuf file is available at gatewayd/api/v1/api.proto, but it'll be moved to the plugin SDK soon.

The README is updated with the latest information about various components of GatewayD.

What's Changed

Full Changelog: v0.4.5...v0.5.0

v0.4.5

19 Feb 21:57
68a07c7
Compare
Choose a tag to compare

This release officially marks the end of the milestone v0.4.x. This milestone contained a lot of stability improvements and features:

  1. Tracing: this feature, alongside logging and metrics, makes observability a first-class citizen of GatewayD.
  2. Replace goreleaser with bash and make files.
  3. Create a plugin SDK.
  4. Fix flaky tests. Now they are running smoothly and never failing.
  5. Fix metrics merger failing when a plugin exists abruptly.
  6. Add ping to plugins.
  7. Add health check to plugins, so that they can be removed from registry and metrics merger if they die suddenly.
  8. Multi-tenancy: multiple instances of each object can exist simultaneously.
  9. Refactor proxy.passthrough to reduce complexity.
  10. Handle plugin errors properly.
  11. Add config parameter to disable metrics merger, in case plugins want to expose their own metrics on HTTP.
  12. Disable plugin-related schedulers when there's no plugin loaded or no addresses is configured for merging metrics.
  13. A few other fixes, improvements and cleanups.

What's Changed

Full Changelog: v0.4.4...v0.4.5

v0.4.4

07 Feb 20:25
64daaa8
Compare
Choose a tag to compare

This release includes two minor fixes:

  1. Introduction of enableMetricsMerger parameter in the plugins config, gatewayd_plugins.yaml, to enable/disable metrics merger.
  2. Disable plugin-related schedulers when there's no plugin loaded or no addresses is configured for merging metrics.

What's Changed

Full Changelog: v0.4.3...v0.4.4

v0.4.3

05 Feb 23:16
23b77c0
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.4.2...v0.4.3

v0.4.2

05 Feb 21:31
e2a725e
Compare
Choose a tag to compare

This release contains a long-standing fix I needed to make: multi-tenancy. Now, one can add multiple configurations to each config directive, and start listening on multiple ports with separate loggers, pools, proxies and clients. For now, only one default config is supported for the metrics server, until there's a use case to have multiple ones. Sentry, metrics merger, plugin health checks, plugins registry and plugins are shared among all the servers. In the original ticket, #148, I suggested that if there's no config, the default config will be used, but for now, that's only true for loggers, clients and metrics.

What's Changed

Full Changelog: v0.4.1...v0.4.2

v0.4.1

01 Feb 22:06
3c8eb65
Compare
Choose a tag to compare

This release contains a few fixes and a new feature:

  1. Fix flaky tests
  2. Fix metric merger from failing when the plugin dies
  3. Add ping to plugins
  4. Add health check to plugins, so that they can be removed from registry and metrics merger if they die suddenly
  5. A few other fixes

What's Changed

Full Changelog: v0.4.0...v0.4.1