Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add namespace to search attributes operations requests
Browse files Browse the repository at this point in the history
rodrigozhou committed Feb 3, 2023
1 parent ca2e65f commit b9fdc78
Showing 9 changed files with 256 additions and 223 deletions.
4 changes: 2 additions & 2 deletions cli/config.go
Original file line number Diff line number Diff line change
@@ -68,7 +68,7 @@ func EnvProperty(c *cli.Context) error {

env, key := envKey(fullKey)

val := tctlConfig.EnvProperty(env, key)
val, _ := tctlConfig.EnvProperty(env, key)
fmt.Println(val)

return nil
@@ -148,7 +148,7 @@ func populateFlagsFunc(command *cli.Command, globalFlags []cli.Flag) func(ctx *c

for _, c := range ctx.Lineage() {
if !c.IsSet(name) {
value := tctlConfig.EnvProperty(tctlConfig.CurrentEnv, name)
value, _ := tctlConfig.EnvProperty(tctlConfig.CurrentEnv, name)
if value != "" {
c.Set(name, value)
}
10 changes: 9 additions & 1 deletion cli/search_attribute_commands.go
Original file line number Diff line number Diff line change
@@ -43,11 +43,15 @@ const (

// ListSearchAttributes lists search attributes
func ListSearchAttributes(c *cli.Context) error {
namespace := c.String(FlagNamespace)
client := cFactory.OperatorClient(c)
ctx, cancel := newContext(c)
defer cancel()

resp, err := client.ListSearchAttributes(ctx, &operatorservice.ListSearchAttributesRequest{})
resp, err := client.ListSearchAttributes(
ctx,
&operatorservice.ListSearchAttributesRequest{Namespace: namespace},
)
if err != nil {
return fmt.Errorf("unable to list search attributes: %w", err)
}
@@ -75,6 +79,7 @@ func ListSearchAttributes(c *cli.Context) error {

// AddSearchAttributes to add search attributes
func AddSearchAttributes(c *cli.Context) error {
namespace := c.String(FlagNamespace)
names := c.StringSlice(FlagName)
typeStrs := c.StringSlice(FlagType)

@@ -125,6 +130,7 @@ func AddSearchAttributes(c *cli.Context) error {

request := &operatorservice.AddSearchAttributesRequest{
SearchAttributes: searchAttributes,
Namespace: namespace,
}

ctx, cancel = newContextWithTimeout(c, addSearchAttributesTimeout)
@@ -139,6 +145,7 @@ func AddSearchAttributes(c *cli.Context) error {

// RemoveSearchAttributes to add search attributes
func RemoveSearchAttributes(c *cli.Context) error {
namespace := c.String(FlagNamespace)
names := c.StringSlice(FlagName)

promptMsg := fmt.Sprintf(
@@ -154,6 +161,7 @@ func RemoveSearchAttributes(c *cli.Context) error {
defer cancel()
request := &operatorservice.RemoveSearchAttributesRequest{
SearchAttributes: names,
Namespace: namespace,
}

_, err := client.RemoveSearchAttributes(ctx, request)
15 changes: 15 additions & 0 deletions cli_curr/admin.go
Original file line number Diff line number Diff line change
@@ -435,6 +435,11 @@ func newAdminClusterCommands() []cli.Command {
Aliases: []string{"asa"},
Usage: "Add custom search attributes",
Flags: []cli.Flag{
cli.StringFlag{
Name: FlagNamespace,
Usage: "Temporal namespace",
Required: true,
},
cli.BoolFlag{
Name: FlagSkipSchemaUpdate,
Usage: "Skip Elasticsearch index schema update (only register in metadata)",
@@ -463,6 +468,11 @@ func newAdminClusterCommands() []cli.Command {
Aliases: []string{"rsa"},
Usage: "Remove custom search attributes metadata only (Elasticsearch index schema is not modified)",
Flags: []cli.Flag{
cli.StringFlag{
Name: FlagNamespace,
Usage: "Temporal namespace",
Required: true,
},
cli.StringFlag{
Name: FlagElasticsearchIndex,
Usage: "Elasticsearch index name (optional)",
@@ -482,6 +492,11 @@ func newAdminClusterCommands() []cli.Command {
Aliases: []string{"gsa"},
Usage: "Show existing search attributes",
Flags: []cli.Flag{
cli.StringFlag{
Name: FlagNamespace,
Usage: "Temporal namespace",
Required: true,
},
cli.StringFlag{
Name: FlagPrintJSONWithAlias,
Usage: "Output in JSON format",
2 changes: 1 addition & 1 deletion cli_curr/adminCommands.go
Original file line number Diff line number Diff line change
@@ -589,7 +589,7 @@ func AdminListGossipMembers(c *cli.Context) {
}

members := response.MembershipInfo.Rings
if roleFlag != primitives.AllServices {
if roleFlag != string(primitives.AllServices) {
all := members

members = members[:0]
26 changes: 13 additions & 13 deletions cli_curr/admin_cluster_search_attributes_commands.go
Original file line number Diff line number Diff line change
@@ -46,6 +46,7 @@ const (

// AdminAddSearchAttributes to add search attributes
func AdminAddSearchAttributes(c *cli.Context) {
namespace := c.String(FlagNamespace)
names := getRequiredStringSliceOption(c, FlagName)
typeStrs := getRequiredStringSliceOption(c, FlagType)

@@ -54,7 +55,7 @@ func AdminAddSearchAttributes(c *cli.Context) {
}

adminClient := cFactory.AdminClient(c)
existingSearchAttributes, err := getSearchAttributes(c, adminClient)
existingSearchAttributes, err := getSearchAttributes(c, adminClient, namespace)
if err != nil {
ErrorAndExit("Unable to get existing search attributes.", err)
}
@@ -105,6 +106,7 @@ func AdminAddSearchAttributes(c *cli.Context) {
SearchAttributes: searchAttributes,
IndexName: c.String(FlagElasticsearchIndex),
SkipSchemaUpdate: c.Bool(FlagSkipSchemaUpdate),
Namespace: namespace,
}

ctx, cancel := newContextWithTimeout(c, addSearchAttributesTimeout)
@@ -114,16 +116,12 @@ func AdminAddSearchAttributes(c *cli.Context) {
ErrorAndExit("Unable to add search attributes.", err)
}

resp, err := getSearchAttributes(c, adminClient)
if err != nil {
ErrorAndExit("Search attributes have been added successfully but there was an error while reading them back.", err)
}
printSearchAttributesResponse(resp, c.String(FlagElasticsearchIndex))
color.HiGreen("Search attributes have been added successfully.")
}

// AdminRemoveSearchAttributes to add search attributes
func AdminRemoveSearchAttributes(c *cli.Context) {
namespace := c.String(FlagNamespace)
names := getRequiredStringSliceOption(c, FlagName)

// ask user for confirmation
@@ -139,25 +137,22 @@ func AdminRemoveSearchAttributes(c *cli.Context) {
request := &adminservice.RemoveSearchAttributesRequest{
SearchAttributes: names,
IndexName: c.String(FlagElasticsearchIndex),
Namespace: namespace,
}

_, err := adminClient.RemoveSearchAttributes(ctx, request)
if err != nil {
ErrorAndExit("Unable to remove search attributes.", err)
}

resp, err := getSearchAttributes(c, adminClient)
if err != nil {
ErrorAndExit("Search attributes have been removed successfully but there was an error while reading them back.", err)
}
printSearchAttributesResponse(resp, c.String(FlagElasticsearchIndex))
color.HiGreen("Search attributes have been removed successfully.")
}

// AdminGetSearchAttributes to print search attributes
func AdminGetSearchAttributes(c *cli.Context) {
namespace := c.String(FlagNamespace)
adminClient := cFactory.AdminClient(c)
resp, err := getSearchAttributes(c, adminClient)
resp, err := getSearchAttributes(c, adminClient, namespace)
if err != nil {
ErrorAndExit("Unable to get search attributes.", err)
}
@@ -168,11 +163,16 @@ func AdminGetSearchAttributes(c *cli.Context) {
printSearchAttributesResponse(resp, c.String(FlagElasticsearchIndex))
}

func getSearchAttributes(c *cli.Context, adminClient adminservice.AdminServiceClient) (*adminservice.GetSearchAttributesResponse, error) {
func getSearchAttributes(
c *cli.Context,
adminClient adminservice.AdminServiceClient,
namespace string,
) (*adminservice.GetSearchAttributesResponse, error) {
ctx, cancel := newContext(c)
defer cancel()
request := &adminservice.GetSearchAttributesRequest{
IndexName: c.String(FlagElasticsearchIndex),
Namespace: namespace,
}
return adminClient.GetSearchAttributes(ctx, request)
}
27 changes: 5 additions & 22 deletions cli_curr/namespaceCommands.go
Original file line number Diff line number Diff line change
@@ -39,17 +39,13 @@ import (
"go.temporal.io/api/serviceerror"
"go.temporal.io/api/workflowservice/v1"

"go.temporal.io/server/common/namespace"
"go.temporal.io/server/common/primitives/timestamp"
)

type (
namespaceCLIImpl struct {
// used when making RPC call to frontend service``
frontendClient workflowservice.WorkflowServiceClient

// act as admin to modify namespace in DB directly
namespaceHandler namespace.Handler
}
)

@@ -58,21 +54,8 @@ func newNamespaceCLI(
c *cli.Context,
isAdminMode bool,
) *namespaceCLIImpl {

var frontendClient workflowservice.WorkflowServiceClient
var namespaceHandler namespace.Handler
if !isAdminMode {
frontendClient = initializeFrontendClient(c)
} else {
var err error
namespaceHandler, err = initializeAdminNamespaceHandler(c)
if err != nil {
ErrorAndExit("Unable to initialize admin namespace handler", err)
}
}
return &namespaceCLIImpl{
frontendClient: frontendClient,
namespaceHandler: namespaceHandler,
frontendClient: initializeFrontendClient(c),
}
}

@@ -433,7 +416,7 @@ func (d *namespaceCLIImpl) listNamespaces(
return d.frontendClient.ListNamespaces(ctx, request)
}

return d.namespaceHandler.ListNamespaces(ctx, request)
return d.frontendClient.ListNamespaces(ctx, request)
}

func (d *namespaceCLIImpl) registerNamespace(
@@ -445,7 +428,7 @@ func (d *namespaceCLIImpl) registerNamespace(
return err
}

_, err := d.namespaceHandler.RegisterNamespace(ctx, request)
_, err := d.frontendClient.RegisterNamespace(ctx, request)
return err
}

@@ -458,7 +441,7 @@ func (d *namespaceCLIImpl) updateNamespace(
return err
}

_, err := d.namespaceHandler.UpdateNamespace(ctx, request)
_, err := d.frontendClient.UpdateNamespace(ctx, request)
return err
}

@@ -471,7 +454,7 @@ func (d *namespaceCLIImpl) describeNamespace(
return d.frontendClient.DescribeNamespace(ctx, request)
}

resp, err := d.namespaceHandler.DescribeNamespace(ctx, request)
resp, err := d.frontendClient.DescribeNamespace(ctx, request)
return resp, err
}

70 changes: 4 additions & 66 deletions cli_curr/namespaceUtils.go
Original file line number Diff line number Diff line change
@@ -25,7 +25,6 @@
package cli_curr

import (
"fmt"
"strings"

"github.com/golang/mock/gomock"
@@ -34,7 +33,6 @@ import (
"go.temporal.io/api/workflowservice/v1"
"go.temporal.io/server/common/archiver"
"go.temporal.io/server/common/archiver/provider"
"go.temporal.io/server/common/clock"
"go.temporal.io/server/common/cluster"
"go.temporal.io/server/common/config"
"go.temporal.io/server/common/dynamicconfig"
@@ -195,44 +193,6 @@ func initializeFrontendClient(
return cFactory.FrontendClient(context)
}

func initializeAdminNamespaceHandler(
context *cli.Context,
) (namespace.Handler, error) {

configuration := loadConfig(context)
logger := log.NewZapLogger(log.BuildZapLogger(configuration.Log))
metricsClient := initializeMetricsHandler(logger)

factory := initializePersistenceFactory(
&configuration.Persistence,
func() int {
return dependencyMaxQPS
},
"",
metricsClient,
logger,
)

metadataMgr, err := factory.NewMetadataManager()
if err != nil {
return nil, fmt.Errorf("unable to initialize metadata manager: %v", err)
}

clusterMetadata := initializeClusterMetadata(configuration)

dynamicConfig := initializeDynamicConfig(configuration, logger)

return initializeNamespaceHandler(
logger,
metadataMgr,
clusterMetadata,
initializeArchivalMetadata(configuration, dynamicConfig),
initializeArchivalProvider(configuration, clusterMetadata, metricsClient, logger),
nil,
nil,
), nil
}

func loadConfig(
context *cli.Context,
) *config.Config {
@@ -247,33 +207,11 @@ func loadConfig(
return &cfg
}

func initializeNamespaceHandler(
logger log.Logger,
metadataMgr persistence.MetadataManager,
clusterMetadata cluster.Metadata,
archivalMetadata archiver.ArchivalMetadata,
archiverProvider provider.ArchiverProvider,
enableSchedules dynamicconfig.BoolPropertyFnWithNamespaceFilter,
timeSource clock.TimeSource,
) namespace.Handler {
return namespace.NewHandler(
dynamicconfig.GetIntPropertyFilteredByNamespace(namespace.MaxBadBinaries),
logger,
metadataMgr,
clusterMetadata,
initializeNamespaceReplicator(logger),
archivalMetadata,
archiverProvider,
enableSchedules,
timeSource,
)
}

func initializePersistenceFactory(
pConfig *config.Persistence,
maxQps client.PersistenceMaxQps,
clusterName string,
metricsHandler metrics.MetricsHandler,
metricsHandler metrics.Handler,
logger log.Logger,
) client.Factory {

@@ -330,7 +268,7 @@ func initializeArchivalMetadata(
func initializeArchivalProvider(
serviceConfig *config.Config,
clusterMetadata cluster.Metadata,
metricsHandler metrics.MetricsHandler,
metricsHandler metrics.Handler,
logger log.Logger,
) provider.ArchiverProvider {

@@ -352,7 +290,7 @@ func initializeArchivalProvider(
}

err := archiverProvider.RegisterBootstrapContainer(
primitives.FrontendService,
string(primitives.FrontendService),
historyArchiverBootstrapContainer,
visibilityArchiverBootstrapContainer,
)
@@ -391,7 +329,7 @@ func initializeDynamicConfig(
return dynamicconfig.NewCollection(dynamicConfigClient, logger)
}

func initializeMetricsHandler(logger log.Logger) metrics.MetricsHandler {
func initializeMetricsHandler(logger log.Logger) metrics.Handler {
return metrics.MetricsHandlerFromConfig(logger, &metrics.Config{})
}

98 changes: 56 additions & 42 deletions go.mod
Original file line number Diff line number Diff line change
@@ -14,29 +14,29 @@ require (
github.com/olivere/elastic/v7 v7.0.32
github.com/pborman/uuid v1.2.1
github.com/stretchr/testify v1.8.1
github.com/temporalio/tctl-kit v0.0.0-20220930184216-35456dd1edc9
github.com/temporalio/tctl-kit v0.0.0-20221128225502-a682971cf481
github.com/urfave/cli v1.22.10
github.com/urfave/cli/v2 v2.4.0
go.temporal.io/api v1.13.1-0.20221110200459-6a3cb21a3415
go.temporal.io/sdk v1.18.1
go.temporal.io/server v1.19.0
golang.org/x/exp v0.0.0-20220929160808-de9c53c655b9
google.golang.org/grpc v1.50.1
go.temporal.io/api v1.16.0
go.temporal.io/sdk v1.20.1-0.20230131233224-093eabe1f8d1
go.temporal.io/server v1.18.1-0.20230203084658-bd2d3b3cb5be
golang.org/x/exp v0.0.0-20221126150942-6ab00d035af9
google.golang.org/grpc v1.52.3
)

require (
cloud.google.com/go v0.105.0 // indirect
cloud.google.com/go/compute v1.12.1 // indirect
cloud.google.com/go/compute/metadata v0.2.1 // indirect
cloud.google.com/go/iam v0.7.0 // indirect
cloud.google.com/go/storage v1.27.0 // indirect
cloud.google.com/go v0.107.0 // indirect
cloud.google.com/go/compute v1.13.0 // indirect
cloud.google.com/go/compute/metadata v0.2.2 // indirect
cloud.google.com/go/iam v0.8.0 // indirect
cloud.google.com/go/storage v1.28.0 // indirect
github.com/apache/thrift v0.17.0 // indirect
github.com/aws/aws-sdk-go v1.44.109 // indirect
github.com/aws/aws-sdk-go v1.44.151 // indirect
github.com/benbjohnson/clock v1.3.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
github.com/cactus/go-statsd-client/statsd v0.0.0-20200423205355-cb0885a1018c // indirect
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
github.com/cenkalti/backoff/v4 v4.2.0 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
@@ -46,41 +46,43 @@ require (
github.com/go-logr/logr v1.2.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-sql-driver/mysql v1.6.0 // indirect
github.com/gocql/gocql v1.2.1 // indirect
github.com/gocql/gocql v1.3.0 // indirect
github.com/gogo/googleapis v1.4.1 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/go-cmp v0.5.9 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.2.0 // indirect
github.com/googleapis/gax-go/v2 v2.6.0 // indirect
github.com/googleapis/gax-go/v2 v2.7.0 // indirect
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.14.0 // indirect
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect
github.com/hashicorp/yamux v0.1.1 // indirect
github.com/iancoleman/strcase v0.2.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/jmoiron/sqlx v1.3.5 // indirect
github.com/jonboulle/clockwork v0.3.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
github.com/lib/pq v1.10.7 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.16 // indirect
github.com/mattn/go-runewidth v0.0.14 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.2 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
github.com/oklog/run v1.1.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_golang v1.13.0 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/client_golang v1.14.0 // indirect
github.com/prometheus/client_model v0.3.0 // indirect
github.com/prometheus/common v0.37.0 // indirect
github.com/prometheus/procfs v0.8.0 // indirect
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
github.com/rivo/uniseg v0.4.2 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20220927061507-ef77025ab5aa // indirect
github.com/rivo/uniseg v0.4.3 // indirect
github.com/robfig/cron v1.2.0 // indirect
github.com/robfig/cron/v3 v3.0.1 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
@@ -90,38 +92,50 @@ require (
github.com/temporalio/tchannel-go v1.22.1-0.20220818200552-1be8d8cffa5b // indirect
github.com/twmb/murmur3 v1.1.6 // indirect
github.com/uber-common/bark v1.3.0 // indirect
github.com/uber-go/tally/v4 v4.1.2 // indirect
github.com/uber-go/tally/v4 v4.1.3 // indirect
github.com/xwb1989/sqlparser v0.0.0-20180606152119-120387863bf2 // indirect
go.opencensus.io v0.23.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.1 // indirect
go.opentelemetry.io/otel v1.10.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.31.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.31.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.31.0 // indirect
go.opentelemetry.io/otel/metric v0.32.1 // indirect
go.opentelemetry.io/otel/sdk v1.10.0 // indirect
go.opentelemetry.io/otel/sdk/metric v0.31.0 // indirect
go.opentelemetry.io/otel/trace v1.10.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.4 // indirect
go.opentelemetry.io/otel v1.11.2 // indirect
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.2 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.34.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.34.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.2 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.2 // indirect
go.opentelemetry.io/otel/exporters/prometheus v0.34.0 // indirect
go.opentelemetry.io/otel/metric v0.34.0 // indirect
go.opentelemetry.io/otel/sdk v1.11.2 // indirect
go.opentelemetry.io/otel/sdk/metric v0.34.0 // indirect
go.opentelemetry.io/otel/trace v1.11.2 // indirect
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/dig v1.15.0 // indirect
go.uber.org/fx v1.18.2 // indirect
go.uber.org/multierr v1.8.0 // indirect
go.uber.org/zap v1.23.0 // indirect
golang.org/x/net v0.2.0 // indirect
golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 // indirect
golang.org/x/sys v0.2.0 // indirect
golang.org/x/text v0.4.0 // indirect
golang.org/x/time v0.0.0-20220922220347-f3bd1da661af // indirect
go.uber.org/zap v1.24.0 // indirect
golang.org/x/mod v0.7.0 // indirect
golang.org/x/net v0.5.0 // indirect
golang.org/x/oauth2 v0.2.0 // indirect
golang.org/x/sys v0.4.0 // indirect
golang.org/x/text v0.6.0 // indirect
golang.org/x/time v0.2.0 // indirect
golang.org/x/tools v0.3.0 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/api v0.102.0 // indirect
google.golang.org/api v0.103.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66 // indirect
google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/validator.v2 v2.0.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
lukechampine.com/uint128 v1.2.0 // indirect
modernc.org/cc/v3 v3.40.0 // indirect
modernc.org/ccgo/v3 v3.16.13 // indirect
modernc.org/libc v1.21.5 // indirect
modernc.org/mathutil v1.5.0 // indirect
modernc.org/memory v1.4.0 // indirect
modernc.org/opt v0.1.3 // indirect
modernc.org/sqlite v1.20.0 // indirect
modernc.org/strutil v1.1.3 // indirect
modernc.org/token v1.1.0 // indirect
)
227 changes: 151 additions & 76 deletions go.sum

Large diffs are not rendered by default.

0 comments on commit b9fdc78

Please sign in to comment.