Skip to content

Releases: gatewayd-io/gatewayd

v0.5.6

11 Mar 18:35
83cb704
Compare
Choose a tag to compare

This release officially marks the end of the v0.5.x milestone. This milestone contained all these features, fixes and cleanups:

  1. Introduce a new Admin API, so that plugins can query for information from GatewayD, information such as version, global and plugins config, plugins, pools, proxies and servers. The API works over gRPC with protobuf and has a thin HTTP layer that proxies call to the gRPC API. The HTTP API has an OpenAPI v2 specification document that can be accessed via /swagger.json. The specification document can be viewed and interacted with using the Swagger UI, which is accessible via /swagger-ui/.
  2. Introduce the --dev persistent (global) flag for the gatewayd command that can be used by plugin developers to bypass checksum validation of plugins in development.
  3. Add a new configuration parameter to the gatewayd_plugins.yaml config file, called ReloadOnCrash, to reload a crashed plugin upon the next scheduled call to the plugin health check, if enabled. The default is true.
  4. Fix bugs in the client that were reported in Sentry.
  5. Introduce a small usage report feature that reports some information back to the usage report service, devoid of any PII, which can be completely disabled by passing --usage-report=false to the gatewayd command.
  6. Change the type of hook names from constant string to protobuf enumeration.
  7. Fix bugs in graceful shutdown of the server.
  8. Fix bug in handling client.ID.
  9. Increase the buffer size to 128 MB and the chunk size to 8 KB.
  10. Improve client performance by using bytes.Buffer instead of append to a byte array to handle large inputs passed between the client, the server and the plugins.

What's Changed

Full Changelog: v0.5.5...v0.5.6

v0.5.5

09 Mar 22:24
c6894ce
Compare
Choose a tag to compare

This release contains a few fixes:

  1. Shutdown server(s) gracefully (#198)
  2. Check if client.ID is not empty by (d72bd1b)
  3. Increase buffer size to 128 MB and chunk size to 8 KB (97f49f7)
  4. Update SDK and other dependencies (4c80fd7)

Full Changelog: v0.5.4...v0.5.5

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