This release primarily contains improvements to the knitgateway
command.
But it also includes a backwards-incompatible change, migrating from the old Connect Go runtime ("github.com/bufbuild/connect-go"
) to the new one ("connectrpc.com/connect"
). This was deemed acceptable since Knit is still in an alpha state and has not yet had a v1.0 release. We are sorry for any breakages in user applications this causes. Please see Connect's migration instructions to remedy.
Command knitgateway
-
Release artifacts are now named
knitgateway-...
instead ofknit-go-...
since they contain only theknitgateway
binary. -
The gateway can now be configured to expose an admin web UI at
/admin/
. By default, they are served from an ephemeral port that is separate from application traffic. The web UI can be disabled or configured to serve from a different port via aknitgateway.yaml
configuration file.The UI currently provides a way to view the current configuration, a way to view information about all supported services, and a mechanism to explicitly reload schemas for these services (instead of waiting until next scheduled polling).
-
The gateway now reports a user-agent of
knitgateway/<version>
(includes other details, like the version of the Connect Go library in use) when sending RPC requests to backends and when fetching the schema from a Buf Schema Registry.
Package github.com/bufbuild/knit-go
- The Knit runtime now uses the Connect runtime via the "connectrpc.com/connect" import path. Previous versions used the "github.com/bufbuild/connect-go" import path. The two are not compatible and even linking both into the same program may cause issues. So users that import "github.com/bufbuild/knit-go" will need to migrate to using "connectrpc.com/connect" when upgrading to this release. We apologize for the inconvenience.
- The original
User-Agent
from the client's request is no longer propagated when the gateway invokes backend RPCs to service the request. Instead, its own user-agent is sent. If not customized (via custom HTTP client or Connect interceptor), this will be the default user-agent of the Connect library, which will beconnect-go/<connect-version> (go<go-version>)
for the Connect protocol orgrpc-go-connect/<connect-version> (go<go-version>)
for gRPC and gRPC-Web protocols.