Skip to content

Commit

Permalink
Remote codec (#161)
Browse files Browse the repository at this point in the history
* Add remote codec support.
  • Loading branch information
robholland authored Mar 22, 2022
1 parent 1a18a22 commit e266c7d
Show file tree
Hide file tree
Showing 11 changed files with 71 additions and 29 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ COLOR := "\e[1;36m%s\e[0m\n"
##### Build #####
build:
@printf $(COLOR) "Build tctl with OS: $(GOOS), ARCH: $(GOARCH)..."
CGO_ENABLED=0 go build $(PWD)/cmd/tctl
CGO_ENABLED=0 go build ./cmd/tctl
@printf $(COLOR) "Build tctl-authorization-plugin with OS: $(GOOS), ARCH: $(GOARCH)..."
CGO_ENABLED=$(CGO_ENABLED) go build $(PWD)/cmd/plugins/tctl-authorization-plugin
CGO_ENABLED=$(CGO_ENABLED) go build ./cmd/plugins/tctl-authorization-plugin

clean:
@printf $(COLOR) "Clearing binaries..."
Expand Down
12 changes: 12 additions & 0 deletions cli/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,12 @@ func NewCliApp() *cli.App {
Usage: "Data converter plugin executable name",
EnvVars: []string{"TEMPORAL_CLI_PLUGIN_DATA_CONVERTER"},
},
&cli.StringFlag{
Name: FlagRemoteCodecEndpoint,
Value: "",
Usage: "Remote Codec Server Endpoint",
EnvVars: []string{"TEMPORAL_CLI_REMOTE_CODEC_ENDPOINT"},
},
&cli.StringFlag{
Name: color.FlagColor,
Usage: fmt.Sprintf("when to use color: %v, %v, %v.", color.Auto, color.Always, color.Never),
Expand Down Expand Up @@ -146,6 +152,12 @@ func NewCliApp() *cli.App {
}

func loadPlugins(ctx *cli.Context) error {
endpoint := ctx.String(FlagRemoteCodecEndpoint)
if endpoint != "" {
endpoint := strings.ReplaceAll(endpoint, "{namespace}", ctx.String(FlagNamespace))
dataconverter.SetRemoteEndpoint(endpoint)
}

dcPlugin := ctx.String(FlagDataConverterPlugin)
if dcPlugin != "" {
dataConverter, err := plugin.NewDataConverterPlugin(dcPlugin)
Expand Down
9 changes: 9 additions & 0 deletions cli/dataconverter/dataconverter.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,15 @@ func SetCurrent(dc converter.DataConverter) {
dataConverter = dc
}

func SetRemoteEndpoint(endpoint string) {
dataConverter = converter.NewRemoteDataConverter(
converter.GetDefaultDataConverter(),
converter.RemoteDataConverterOptions{
Endpoint: endpoint,
},
)
}

func GetCurrent() converter.DataConverter {
return dataConverter
}
3 changes: 1 addition & 2 deletions cli/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,7 @@ func (b *clientFactory) SDKClient(c *cli.Context, namespace string) sdkclient.Cl
Logger: log.NewSdkLogger(b.logger),
Identity: getCliIdentity(),
ConnectionOptions: sdkclient.ConnectionOptions{
DisableHealthCheck: true,
TLS: tlsConfig,
TLS: tlsConfig,
},
HeadersProvider: headersprovider.GetCurrent(),
})
Expand Down
1 change: 1 addition & 0 deletions cli/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@ var (
FlagInputDirectory = "input-directory"
FlagAutoConfirm = "auto-confirm"
FlagDataConverterPlugin = "data-converter-plugin"
FlagRemoteCodecEndpoint = "remote-codec-endpoint"
FlagWebURL = "web-ui-url"
FlagHeadersProviderPlugin = "headers-provider-plugin"
FlagHeadersProviderPluginOptions = "headers-provider-plugin-options"
Expand Down
13 changes: 13 additions & 0 deletions cli_curr/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ package cli_curr

import (
"fmt"
"strings"

"github.com/temporalio/tctl/config"
"github.com/urfave/cli"
Expand Down Expand Up @@ -111,6 +112,12 @@ func NewCliApp() *cli.App {
Usage: "Data converter plugin executable name",
EnvVar: "TEMPORAL_CLI_PLUGIN_DATA_CONVERTER",
},
cli.StringFlag{
Name: FlagRemoteCodecEndpoint,
Value: "",
Usage: "Remote Codec Server Endpoint",
EnvVar: "TEMPORAL_CLI_REMOTE_CODEC_ENDPOINT",
},
}
app.Commands = []cli.Command{
{
Expand Down Expand Up @@ -239,6 +246,12 @@ func NewCliApp() *cli.App {
}

func loadPlugins(c *cli.Context) error {
endpoint := c.String(FlagRemoteCodecEndpoint)
if endpoint != "" {
endpoint := strings.ReplaceAll(endpoint, "{namespace}", c.String(FlagNamespace))
dataconverter.SetRemoteEndpoint(endpoint)
}

dcPlugin := c.String(FlagDataConverterPlugin)
if dcPlugin != "" {
dataConverter, err := plugin.NewDataConverterPlugin(dcPlugin)
Expand Down
9 changes: 9 additions & 0 deletions cli_curr/dataconverter/dataconverter.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,15 @@ func SetCurrent(dc converter.DataConverter) {
dataConverter = dc
}

func SetRemoteEndpoint(endpoint string) {
dataConverter = converter.NewRemoteDataConverter(
converter.GetDefaultDataConverter(),
converter.RemoteDataConverterOptions{
Endpoint: endpoint,
},
)
}

func GetCurrent() converter.DataConverter {
return dataConverter
}
3 changes: 1 addition & 2 deletions cli_curr/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,7 @@ func (b *clientFactory) SDKClient(c *cli.Context, namespace string) sdkclient.Cl
Logger: log.NewSdkLogger(b.logger),
Identity: getCliIdentity(),
ConnectionOptions: sdkclient.ConnectionOptions{
DisableHealthCheck: true,
TLS: tlsConfig,
TLS: tlsConfig,
},
HeadersProvider: headersprovider.GetCurrent(),
})
Expand Down
1 change: 1 addition & 0 deletions cli_curr/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,7 @@ const (
FlagDataConverterPlugin = "data_converter_plugin"
FlagDataConverterPluginWithAlias = FlagDataConverterPlugin + ", dcp"
FlagWebURL = "web_ui_url"
FlagRemoteCodecEndpoint = "remote_codec_endpoint"
FlagHeadersProviderPlugin = "headers_provider_plugin"
FlagHeadersProviderPluginWithAlias = FlagHeadersProviderPlugin + ", hpp"
FlagHeadersProviderPluginOptions = "headers_provider_plugin_options"
Expand Down
12 changes: 6 additions & 6 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ require (
github.com/uber-go/tally/v4 v4.1.1
github.com/urfave/cli v1.22.5
github.com/urfave/cli/v2 v2.3.0
go.temporal.io/api v1.7.1-0.20220308002655-96f7fbf5da40
go.temporal.io/sdk v1.13.1
go.temporal.io/server v1.15.1-0.20220309003626-1e3bc68f4d7e
google.golang.org/grpc v1.44.0
go.temporal.io/api v1.7.1-0.20220318011046-9d4c099e6f04
go.temporal.io/sdk v1.14.0
go.temporal.io/server v1.15.1-0.20220318150531-e2d6b31c0b82
google.golang.org/grpc v1.45.0
)

require (
Expand Down Expand Up @@ -117,13 +117,13 @@ require (
go.uber.org/zap v1.21.0 // indirect
golang.org/x/net v0.0.0-20220225172249-27dd8689420f // indirect
golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 // indirect
golang.org/x/sys v0.0.0-20220307203707-22a9840ba4d7 // indirect
golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf // indirect
golang.org/x/text v0.3.7 // indirect
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
google.golang.org/api v0.68.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20220307174427-659dce7fcb03 // indirect
google.golang.org/genproto v0.0.0-20220317150908-0efb43f6373e // indirect
google.golang.org/protobuf v1.27.1 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.63.2 // indirect
Expand Down
33 changes: 16 additions & 17 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -553,14 +553,13 @@ go.opentelemetry.io/otel/sdk/metric v0.27.0/go.mod h1:lOgrT5C3ORdbqp2LsDrx+pBj6g
go.opentelemetry.io/otel/trace v1.4.0 h1:4OOUrPZdVFQkbzl/JSdvGCWIdw5ONXXxzHlaLlWppmo=
go.opentelemetry.io/otel/trace v1.4.0/go.mod h1:uc3eRsqDfWs9R7b92xbQbU42/eTNz4N+gLP8qJCi4aE=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.temporal.io/api v1.6.1-0.20211110205628-60c98e9cbfe2/go.mod h1:IlUgOTGfmJuOkGrCZdptNxyXKE9CQz6oOx7/aH9bFY4=
go.temporal.io/api v1.7.1-0.20220308002655-96f7fbf5da40 h1:1tmfg5qW4792JnltwiDa35mI5Ccv4Z8X4opbtLDias0=
go.temporal.io/api v1.7.1-0.20220308002655-96f7fbf5da40/go.mod h1:gsMe5hegA/qJoTlSUZ3fZ8dWZw5j0c7DoDeR2PPZOZY=
go.temporal.io/sdk v1.13.0/go.mod h1:TCof7U/xas2FyDnx/UUEv4c/O/S41Lnhva+6JVer+Jo=
go.temporal.io/sdk v1.13.1 h1:4LRIe1WLM+m2pN6sNod4sMV+0bV8WTscVfRsipOP8N8=
go.temporal.io/sdk v1.13.1/go.mod h1:TCof7U/xas2FyDnx/UUEv4c/O/S41Lnhva+6JVer+Jo=
go.temporal.io/server v1.15.1-0.20220309003626-1e3bc68f4d7e h1:0d8L9Ie7ecJx0niZvIBAMMxdZwICWMvHB9T0hPXBW+I=
go.temporal.io/server v1.15.1-0.20220309003626-1e3bc68f4d7e/go.mod h1:R9NBkJ/A8UNi0pkNDJPnFw/Tr40FpqcEkgGpo9dkEJI=
go.temporal.io/api v1.7.1-0.20220223032354-6e6fe738916a/go.mod h1:OnUq5eS+Nyx+irKb3Ws5YB7yjGFf5XmI3WcVRU9COEo=
go.temporal.io/api v1.7.1-0.20220318011046-9d4c099e6f04 h1:JNWJLgZF5aWnSEpmQxpj/TS7f/SiHRdYieGsyU2gy7E=
go.temporal.io/api v1.7.1-0.20220318011046-9d4c099e6f04/go.mod h1:oj71uAxacV5TLzmJsOkZImOmBxrj14b8bhJyA/dCDTc=
go.temporal.io/sdk v1.14.0 h1:7tJO72gK4xmsZ8W3Xp1rwKYdkwQ/mgnKN5LmROyZTac=
go.temporal.io/sdk v1.14.0/go.mod h1:7rvvSS6oCXp19JSFQtSOhLxCX3wpEQSJZJlyCGleo9M=
go.temporal.io/server v1.15.1-0.20220318150531-e2d6b31c0b82 h1:1T3T8X5XHrbrpXycnwqJw/WK3hH6dwUCbe8d1lNMJGE=
go.temporal.io/server v1.15.1-0.20220318150531-e2d6b31c0b82/go.mod h1:FUB+A+/DTPOd3Z+jiLyJtLWJjQeuD8TvyxktW7beg40=
go.temporal.io/version v0.3.0/go.mod h1:UA9S8/1LaKYae6TyD9NaPMJTZb911JcbqghI2CBSP78=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
Expand Down Expand Up @@ -678,10 +677,10 @@ golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLd
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211109214657-ef0fda0de508/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=
golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
Expand Down Expand Up @@ -780,14 +779,14 @@ golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211004093028-2c5d950f24ef/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220307203707-22a9840ba4d7 h1:8IVLkfbr2cLhv0a/vKq4UFUcJym8RmDoDboxCFWEjYE=
golang.org/x/sys v0.0.0-20220307203707-22a9840ba4d7/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220222200937-f2425489ef4c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf h1:Fm4IcnUL803i92qDlmB0obyHmosDrxZWxJL3gIeNqOw=
golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
Expand Down Expand Up @@ -974,7 +973,6 @@ google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEc
google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211104193956-4c6863e31247/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
Expand All @@ -984,8 +982,9 @@ google.golang.org/genproto v0.0.0-20220111164026-67b88f271998/go.mod h1:5CzLGKJ6
google.golang.org/genproto v0.0.0-20220114231437-d2e6a121cae0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20220201184016-50beb8ab5c44/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20220204002441-d6cc3cc0770e/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20220307174427-659dce7fcb03 h1:roRqEkPqsCOa0ViO0CuSwDIVdttRbBMj8oU/2E7pI08=
google.golang.org/genproto v0.0.0-20220307174427-659dce7fcb03/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI=
google.golang.org/genproto v0.0.0-20220317150908-0efb43f6373e h1:fNKDNuUyC4WH+inqDMpfXDdfvwfYILbsX+oskGZ8hxg=
google.golang.org/genproto v0.0.0-20220317150908-0efb43f6373e/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E=
google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.12.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
Expand Down Expand Up @@ -1014,9 +1013,9 @@ google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD
google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
google.golang.org/grpc v1.44.0 h1:weqSxi/TMs1SqFRMHCtBgXRs8k3X39QIDEZ0pRcttUg=
google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M=
google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
google.golang.org/grpc/examples v0.0.0-20220210231334-75fd0240ac41/go.mod h1:gID3PKrg7pWKntu9Ss6zTLJ0ttC0X9IHgREOCZwbCVU=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
Expand Down

0 comments on commit e266c7d

Please sign in to comment.