From 095ec2167892e34f1675ee2c8df10f61e7d9c1b6 Mon Sep 17 00:00:00 2001 From: Silvan Date: Tue, 25 Apr 2023 09:02:29 +0200 Subject: [PATCH 01/11] feat: user v2alpha email API (#5708) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(proto): update versions * change protoc plugin * some cleanups * define api for setting emails in new api * implement user.SetEmail * move SetEmail buisiness logic into command * resuse newCryptoCode * command: add ChangeEmail unit tests Not complete, was not able to mock the generator. * Revert "resuse newCryptoCode" This reverts commit c89e90ae35ae924a3f706a0a7394f933910c2e65. * undo change to crypto code generators * command: use a generator so we can test properly * command: reorganise ChangeEmail improve test coverage * implement VerifyEmail including unit tests * add URL template tests * proto: change context to object * remove old auth option * remove old auth option * fix linting errors run gci on modified files * add permission checks and fix some errors * comments * comments --------- Co-authored-by: Livio Spring Co-authored-by: Tim Möhlmann --- build/grpc/Dockerfile | 6 +- build/zitadel/Dockerfile | 1 - build/zitadel/generate-grpc.sh | 46 +- cmd/setup/03.go | 1 + cmd/setup/config_change.go | 4 +- cmd/start/start.go | 3 +- internal/api/authz/authorization.go | 31 +- internal/api/authz/config.go | 6 +- internal/api/authz/permissions.go | 69 +- internal/api/authz/permissions_test.go | 116 +- internal/api/authz/token.go | 10 +- internal/api/grpc/admin/server.go | 2 +- internal/api/grpc/auth/server.go | 2 +- internal/api/grpc/management/server.go | 2 +- internal/api/grpc/object/v2/converter.go | 19 + .../middleware/auth_interceptor_test.go | 2 +- internal/api/grpc/server/server.go | 4 +- internal/api/grpc/system/server.go | 3 +- internal/api/grpc/user/v2/email.go | 65 + internal/api/grpc/user/v2/server.go | 18 +- internal/api/grpc/user/v2/test.go | 55 - .../eventstore/user_membership.go | 10 +- internal/authz/repository/user_membership.go | 2 +- internal/command/command.go | 9 +- internal/command/main_test.go | 13 + internal/command/permission.go | 11 + internal/command/user_human.go | 2 +- internal/command/user_human_email.go | 5 +- internal/command/user_human_email_model.go | 3 +- internal/command/user_v2_email.go | 208 +++ internal/command/user_v2_email_test.go | 1315 +++++++++++++++++ internal/domain/human_email.go | 36 +- internal/domain/human_email_test.go | 60 + .../notification/handlers/usernotifier.go | 6 +- .../types/email_verification_code.go | 16 +- .../types/email_verification_code_test.go | 107 ++ .../auth_method_mapping.go.tmpl | 16 + internal/protoc/protoc-gen-auth/main.go | 97 ++ .../protoc/protoc-gen-authoption/README.md | 37 - .../protoc/protoc-gen-authoption/generate.go | 4 - internal/protoc/protoc-gen-authoption/main.go | 15 - .../templates/auth_method_mapping.go.tmpl | 33 - internal/repository/user/human_email.go | 27 +- internal/static/i18n/de.yaml | 1 + internal/static/i18n/en.yaml | 1 + internal/static/i18n/es.yaml | 1 + internal/static/i18n/fr.yaml | 1 + internal/static/i18n/it.yaml | 1 + internal/static/i18n/ja.yaml | 1 + internal/static/i18n/pl.yaml | 1 + internal/static/i18n/zh.yaml | 1 + proto/zitadel/admin.proto | 2 +- proto/zitadel/management.proto | 2 +- proto/zitadel/object/v2alpha/object.proto | 40 + proto/zitadel/user/v2alpha/email.proto | 27 + proto/zitadel/user/v2alpha/user_service.proto | 119 +- tools/go.mod | 33 +- tools/go.sum | 1260 +++++++++++++++- 58 files changed, 3589 insertions(+), 399 deletions(-) create mode 100644 internal/api/grpc/object/v2/converter.go create mode 100644 internal/api/grpc/user/v2/email.go delete mode 100644 internal/api/grpc/user/v2/test.go create mode 100644 internal/command/permission.go create mode 100644 internal/command/user_v2_email.go create mode 100644 internal/command/user_v2_email_test.go create mode 100644 internal/notification/types/email_verification_code_test.go create mode 100644 internal/protoc/protoc-gen-auth/auth_method_mapping.go.tmpl create mode 100644 internal/protoc/protoc-gen-auth/main.go delete mode 100644 internal/protoc/protoc-gen-authoption/README.md delete mode 100644 internal/protoc/protoc-gen-authoption/generate.go delete mode 100644 internal/protoc/protoc-gen-authoption/main.go delete mode 100644 internal/protoc/protoc-gen-authoption/templates/auth_method_mapping.go.tmpl create mode 100644 proto/zitadel/object/v2alpha/object.proto create mode 100644 proto/zitadel/user/v2alpha/email.proto diff --git a/build/grpc/Dockerfile b/build/grpc/Dockerfile index aa1727ef8..d6b86dd01 100644 --- a/build/grpc/Dockerfile +++ b/build/grpc/Dockerfile @@ -16,11 +16,11 @@ ENV PROTOC_ARCH x86_64 ## protoc and protoc-gen-grpc-web for later use ####################### FROM ${BUILDARCH}-base -ARG PROTOC_VERSION=3.18.0 +ARG PROTOC_VERSION=22.3 ARG PROTOC_ZIP=protoc-${PROTOC_VERSION}-linux-${PROTOC_ARCH}.zip ARG GRPC_WEB_VERSION=1.3.0 -ARG GATEWAY_VERSION=2.15.1 -ARG VALIDATOR_VERSION=0.6.2 +ARG GATEWAY_VERSION=2.15.2 +ARG VALIDATOR_VERSION=0.10.1 # no arm specific version available and x86 works fine at the moment: ARG GRPC_WEB=protoc-gen-grpc-web-${GRPC_WEB_VERSION}-linux-x86_64 diff --git a/build/zitadel/Dockerfile b/build/zitadel/Dockerfile index 1ed0e34d7..7c0f7bdca 100644 --- a/build/zitadel/Dockerfile +++ b/build/zitadel/Dockerfile @@ -73,7 +73,6 @@ COPY --from=go-stub /go/src/github.com/zitadel/zitadel/openapi/statik/statik.go COPY --from=go-stub /go/src/github.com/zitadel/zitadel/pkg/grpc pkg/grpc COPY --from=go-stub /go/src/github.com/zitadel/zitadel/openapi/v2/zitadel openapi/v2/zitadel COPY --from=go-stub /go/src/github.com/zitadel/zitadel/openapi/statik/statik.go openapi/statik/statik.go -COPY --from=go-stub /go/src/github.com/zitadel/zitadel/internal/protoc/protoc-gen-authoption/templates.gen.go internal/protoc/protoc-gen-authoption/templates.gen.go COPY --from=go-stub /go/src/github.com/zitadel/zitadel/internal/protoc/protoc-gen-authoption/authoption/options.pb.go internal/protoc/protoc-gen-authoption/authoption/options.pb.go COPY --from=go-stub /go/src/github.com/zitadel/zitadel/docs/apis/proto docs/docs/apis/proto COPY --from=go-stub /go/src/github.com/zitadel/zitadel/docs/apis/assets docs/docs/apis/assets diff --git a/build/zitadel/generate-grpc.sh b/build/zitadel/generate-grpc.sh index 02d1fa86b..6f85200da 100755 --- a/build/zitadel/generate-grpc.sh +++ b/build/zitadel/generate-grpc.sh @@ -15,17 +15,11 @@ protoc \ -I=/proto/include/ \ --go_out $GOPATH/src \ --go-grpc_out $GOPATH/src \ + --validate_out=lang=go:${GOPATH}/src \ $(find ${PROTO_PATH} -iname *.proto) -# generate authoptions code from templates -go-bindata \ - -pkg main \ - -prefix internal/protoc/protoc-gen-authoption \ - -o ${ZITADEL_PATH}/internal/protoc/protoc-gen-authoption/templates.gen.go \ - ${ZITADEL_PATH}/internal/protoc/protoc-gen-authoption/templates - # install authoption proto compiler -go install ${ZITADEL_PATH}/internal/protoc/protoc-gen-authoption +go install ${ZITADEL_PATH}/internal/protoc/protoc-gen-auth # output folder for openapi v2 mkdir -p ${OPENAPI_PATH} @@ -39,28 +33,20 @@ protoc \ --grpc-gateway_opt logtostderr=true \ --openapiv2_out ${OPENAPI_PATH} \ --openapiv2_opt logtostderr=true \ - --authoption_out ${GRPC_PATH}/system \ + --auth_out ${GOPATH}/src \ --validate_out=lang=go:${GOPATH}/src \ ${PROTO_PATH}/system.proto -# authoptions are generated into the wrong folder -mv ${ZITADEL_PATH}/pkg/grpc/system/zitadel/* ${ZITADEL_PATH}/pkg/grpc/system -rm -r ${ZITADEL_PATH}/pkg/grpc/system/zitadel - protoc \ -I=/proto/include \ --grpc-gateway_out ${GOPATH}/src \ --grpc-gateway_opt logtostderr=true \ --openapiv2_out ${OPENAPI_PATH} \ --openapiv2_opt logtostderr=true \ - --authoption_out ${GRPC_PATH}/admin \ + --auth_out ${GOPATH}/src \ --validate_out=lang=go:${GOPATH}/src \ ${PROTO_PATH}/admin.proto -# authoptions are generated into the wrong folder -mv ${ZITADEL_PATH}/pkg/grpc/admin/zitadel/* ${ZITADEL_PATH}/pkg/grpc/admin -rm -r ${ZITADEL_PATH}/pkg/grpc/admin/zitadel - protoc \ -I=/proto/include \ --grpc-gateway_out ${GOPATH}/src \ @@ -69,14 +55,10 @@ protoc \ --openapiv2_out ${OPENAPI_PATH} \ --openapiv2_opt logtostderr=true \ --openapiv2_opt allow_delete_body=true \ - --authoption_out ${GRPC_PATH}/management \ + --auth_out ${GOPATH}/src \ --validate_out=lang=go:${GOPATH}/src \ ${PROTO_PATH}/management.proto -# authoptions are generated into the wrong folder -mv ${ZITADEL_PATH}/pkg/grpc/management/zitadel/* ${ZITADEL_PATH}/pkg/grpc/management -rm -r ${ZITADEL_PATH}/pkg/grpc/management/zitadel - protoc \ -I=/proto/include \ --grpc-gateway_out ${GOPATH}/src \ @@ -85,14 +67,10 @@ protoc \ --openapiv2_out ${OPENAPI_PATH} \ --openapiv2_opt logtostderr=true \ --openapiv2_opt allow_delete_body=true \ - --authoption_out=${GRPC_PATH}/auth \ + --auth_out=${GOPATH}/src \ --validate_out=lang=go:${GOPATH}/src \ ${PROTO_PATH}/auth.proto -# authoptions are generated into the wrong folder -mv ${ZITADEL_PATH}/pkg/grpc/auth/zitadel/* ${ZITADEL_PATH}/pkg/grpc/auth -rm -r ${ZITADEL_PATH}/pkg/grpc/auth/zitadel - protoc \ -I=/proto/include \ --grpc-gateway_out ${GOPATH}/src \ @@ -101,14 +79,10 @@ protoc \ --openapiv2_out ${OPENAPI_PATH} \ --openapiv2_opt logtostderr=true \ --openapiv2_opt allow_delete_body=true \ - --authoption_out=${GRPC_PATH}/user \ + --auth_out=${GOPATH}/src \ --validate_out=lang=go:${GOPATH}/src \ ${PROTO_PATH}/user/v2alpha/user_service.proto -# authoptions are generated into the wrong folder -cp -r ${ZITADEL_PATH}/pkg/grpc/user/zitadel/* ${ZITADEL_PATH}/pkg/grpc -rm -r ${ZITADEL_PATH}/pkg/grpc/user/zitadel - protoc \ -I=/proto/include \ --grpc-gateway_out ${GOPATH}/src \ @@ -117,12 +91,8 @@ protoc \ --openapiv2_out ${OPENAPI_PATH} \ --openapiv2_opt logtostderr=true \ --openapiv2_opt allow_delete_body=true \ - --authoption_out=${GRPC_PATH}/session \ + --auth_out=${GOPATH}/src \ --validate_out=lang=go:${GOPATH}/src \ ${PROTO_PATH}/session/v2alpha/session_service.proto -# authoptions are generated into the wrong folder -cp -r ${ZITADEL_PATH}/pkg/grpc/session/zitadel/* ${ZITADEL_PATH}/pkg/grpc -rm -r ${ZITADEL_PATH}/pkg/grpc/session/zitadel - echo "done generating grpc" diff --git a/cmd/setup/03.go b/cmd/setup/03.go index 3630ac85f..9774ab7b7 100644 --- a/cmd/setup/03.go +++ b/cmd/setup/03.go @@ -76,6 +76,7 @@ func (mig *FirstInstance) Execute(ctx context.Context) error { nil, nil, nil, + nil, ) if err != nil { diff --git a/cmd/setup/config_change.go b/cmd/setup/config_change.go index 71836c11a..f112dd8c7 100644 --- a/cmd/setup/config_change.go +++ b/cmd/setup/config_change.go @@ -33,7 +33,8 @@ func (mig *externalConfigChange) Check() bool { } func (mig *externalConfigChange) Execute(ctx context.Context) error { - cmd, err := command.StartCommands(mig.es, + cmd, err := command.StartCommands( + mig.es, systemdefaults.SystemDefaults{}, nil, nil, @@ -50,6 +51,7 @@ func (mig *externalConfigChange) Execute(ctx context.Context) error { nil, nil, nil, + nil, ) if err != nil { diff --git a/cmd/start/start.go b/cmd/start/start.go index c3ba766fe..90362d61e 100644 --- a/cmd/start/start.go +++ b/cmd/start/start.go @@ -146,6 +146,7 @@ func startZitadel(config *Config, masterKey string) error { keys.OIDC, keys.SAML, &http.Client{}, + authZRepo, ) if err != nil { return fmt.Errorf("cannot start commands: %w", err) @@ -248,7 +249,7 @@ func startAPIs( if err := apis.RegisterServer(ctx, auth.CreateServer(commands, queries, authRepo, config.SystemDefaults, keys.User, config.ExternalSecure, config.AuditLogRetention)); err != nil { return err } - if err := apis.RegisterService(ctx, user.CreateServer(commands, queries)); err != nil { + if err := apis.RegisterService(ctx, user.CreateServer(commands, queries, keys.User)); err != nil { return err } if err := apis.RegisterService(ctx, session.CreateServer(commands, queries)); err != nil { diff --git a/internal/api/authz/authorization.go b/internal/api/authz/authorization.go index c3c6d55d4..0df781f4b 100644 --- a/internal/api/authz/authorization.go +++ b/internal/api/authz/authorization.go @@ -14,11 +14,11 @@ const ( authenticated = "authenticated" ) -func CheckUserAuthorization(ctx context.Context, req interface{}, token, orgID string, verifier *TokenVerifier, authConfig Config, requiredAuthOption Option, method string) (ctxSetter func(context.Context) context.Context, err error) { +func CheckUserAuthorization(ctx context.Context, req interface{}, token, orgIDHeader string, verifier *TokenVerifier, authConfig Config, requiredAuthOption Option, method string) (ctxSetter func(context.Context) context.Context, err error) { ctx, span := tracing.NewServerInterceptorSpan(ctx) defer func() { span.EndWithError(err) }() - ctxData, err := VerifyTokenAndCreateCtxData(ctx, token, orgID, verifier, method) + ctxData, err := VerifyTokenAndCreateCtxData(ctx, token, orgIDHeader, verifier, method) if err != nil { return nil, err } @@ -29,7 +29,7 @@ func CheckUserAuthorization(ctx context.Context, req interface{}, token, orgID s }, nil } - requestedPermissions, allPermissions, err := getUserMethodPermissions(ctx, verifier, requiredAuthOption.Permission, authConfig, ctxData) + requestedPermissions, allPermissions, err := getUserPermissions(ctx, verifier, requiredAuthOption.Permission, authConfig.RolePermissionMappings, ctxData, ctxData.OrgID) if err != nil { return nil, err } @@ -110,18 +110,6 @@ func HasGlobalPermission(perms []string) bool { return false } -func HasGlobalExplicitPermission(perms []string, permToCheck string) bool { - for _, perm := range perms { - p, ctxID := SplitPermission(perm) - if p == permToCheck { - if ctxID == "" { - return true - } - } - } - return false -} - func GetAllPermissionCtxIDs(perms []string) []string { ctxIDs := make([]string, 0) for _, perm := range perms { @@ -132,16 +120,3 @@ func GetAllPermissionCtxIDs(perms []string) []string { } return ctxIDs } - -func GetExplicitPermissionCtxIDs(perms []string, searchPerm string) []string { - ctxIDs := make([]string, 0) - for _, perm := range perms { - p, ctxID := SplitPermission(perm) - if p == searchPerm { - if ctxID != "" { - ctxIDs = append(ctxIDs, ctxID) - } - } - } - return ctxIDs -} diff --git a/internal/api/authz/config.go b/internal/api/authz/config.go index d9b79ee19..865349d95 100644 --- a/internal/api/authz/config.go +++ b/internal/api/authz/config.go @@ -14,11 +14,11 @@ type MethodMapping map[string]Option type Option struct { Permission string CheckParam string - Feature string + AllowSelf bool } -func (a *Config) getPermissionsFromRole(role string) []string { - for _, roleMap := range a.RolePermissionMappings { +func getPermissionsFromRole(rolePermissionMappings []RoleMapping, role string) []string { + for _, roleMap := range rolePermissionMappings { if roleMap.Role == role { return roleMap.Permissions } diff --git a/internal/api/authz/permissions.go b/internal/api/authz/permissions.go index 74ffa80c7..b392ca795 100644 --- a/internal/api/authz/permissions.go +++ b/internal/api/authz/permissions.go @@ -7,7 +7,28 @@ import ( "github.com/zitadel/zitadel/internal/telemetry/tracing" ) -func getUserMethodPermissions(ctx context.Context, t *TokenVerifier, requiredPerm string, authConfig Config, ctxData CtxData) (requestedPermissions, allPermissions []string, err error) { +func CheckPermission(ctx context.Context, resolver MembershipsResolver, roleMappings []RoleMapping, permission, orgID, resourceID string, allowSelf bool) (err error) { + ctxData := GetCtxData(ctx) + if allowSelf && ctxData.UserID == resourceID { + return nil + } + requestedPermissions, _, err := getUserPermissions(ctx, resolver, permission, roleMappings, ctxData, orgID) + if err != nil { + return err + } + + _, userPermissionSpan := tracing.NewNamedSpan(ctx, "checkUserPermissions") + err = checkUserResourcePermissions(requestedPermissions, resourceID) + userPermissionSpan.EndWithError(err) + if err != nil { + return err + } + return nil +} + +// getUserPermissions retrieves the memberships of the authenticated user (on instance and provided organisation level), +// and maps them to permissions. It will return the requested permission(s) and all other granted permissions separately. +func getUserPermissions(ctx context.Context, resolver MembershipsResolver, requiredPerm string, roleMappings []RoleMapping, ctxData CtxData, orgID string) (requestedPermissions, allPermissions []string, err error) { ctx, span := tracing.NewSpan(ctx) defer func() { span.EndWithError(err) }() @@ -16,13 +37,13 @@ func getUserMethodPermissions(ctx context.Context, t *TokenVerifier, requiredPer } ctx = context.WithValue(ctx, dataKey, ctxData) - memberships, err := t.SearchMyMemberships(ctx) + memberships, err := resolver.SearchMyMemberships(ctx, orgID) if err != nil { return nil, nil, err } if len(memberships) == 0 { err = retry(func() error { - memberships, err = t.SearchMyMemberships(ctx) + memberships, err = resolver.SearchMyMemberships(ctx, orgID) if err != nil { return err } @@ -35,24 +56,56 @@ func getUserMethodPermissions(ctx context.Context, t *TokenVerifier, requiredPer return nil, nil, nil } } - requestedPermissions, allPermissions = mapMembershipsToPermissions(requiredPerm, memberships, authConfig) + requestedPermissions, allPermissions = mapMembershipsToPermissions(requiredPerm, memberships, roleMappings) return requestedPermissions, allPermissions, nil } -func mapMembershipsToPermissions(requiredPerm string, memberships []*Membership, authConfig Config) (requestPermissions, allPermissions []string) { +// checkUserResourcePermissions checks that if a user i granted either the requested permission globally (project.write) +// or the specific resource (project.write:123) +func checkUserResourcePermissions(userPerms []string, resourceID string) error { + if len(userPerms) == 0 { + return errors.ThrowPermissionDenied(nil, "AUTH-AWfge", "No matching permissions found") + } + + if resourceID == "" { + return nil + } + + if HasGlobalPermission(userPerms) { + return nil + } + + if hasContextResourcePermission(userPerms, resourceID) { + return nil + } + + return errors.ThrowPermissionDenied(nil, "AUTH-Swrgg2", "No matching permissions found") +} + +func hasContextResourcePermission(permissions []string, resourceID string) bool { + for _, perm := range permissions { + _, ctxID := SplitPermission(perm) + if resourceID == ctxID { + return true + } + } + return false +} + +func mapMembershipsToPermissions(requiredPerm string, memberships []*Membership, roleMappings []RoleMapping) (requestPermissions, allPermissions []string) { requestPermissions = make([]string, 0) allPermissions = make([]string, 0) for _, membership := range memberships { - requestPermissions, allPermissions = mapMembershipToPerm(requiredPerm, membership, authConfig, requestPermissions, allPermissions) + requestPermissions, allPermissions = mapMembershipToPerm(requiredPerm, membership, roleMappings, requestPermissions, allPermissions) } return requestPermissions, allPermissions } -func mapMembershipToPerm(requiredPerm string, membership *Membership, authConfig Config, requestPermissions, allPermissions []string) ([]string, []string) { +func mapMembershipToPerm(requiredPerm string, membership *Membership, roleMappings []RoleMapping, requestPermissions, allPermissions []string) ([]string, []string) { roleNames, roleContextID := roleWithContext(membership) for _, roleName := range roleNames { - perms := authConfig.getPermissionsFromRole(roleName) + perms := getPermissionsFromRole(roleMappings, roleName) for _, p := range perms { permWithCtx := addRoleContextIDToPerm(p, roleContextID) diff --git a/internal/api/authz/permissions_test.go b/internal/api/authz/permissions_test.go index 1a1b97d6f..ea217e1b8 100644 --- a/internal/api/authz/permissions_test.go +++ b/internal/api/authz/permissions_test.go @@ -18,7 +18,7 @@ type testVerifier struct { func (v *testVerifier) VerifyAccessToken(ctx context.Context, token, clientID, projectID string) (string, string, string, string, string, error) { return "userID", "agentID", "clientID", "de", "orgID", nil } -func (v *testVerifier) SearchMyMemberships(ctx context.Context) ([]*Membership, error) { +func (v *testVerifier) SearchMyMemberships(ctx context.Context, orgID string) ([]*Membership, error) { return v.memberships, nil } @@ -46,7 +46,7 @@ func equalStringArray(a, b []string) bool { return true } -func Test_GetUserMethodPermissions(t *testing.T) { +func Test_GetUserPermissions(t *testing.T) { type args struct { ctxData CtxData verifier *TokenVerifier @@ -139,7 +139,7 @@ func Test_GetUserMethodPermissions(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - _, perms, err := getUserMethodPermissions(context.Background(), tt.args.verifier, tt.args.requiredPerm, tt.args.authConfig, tt.args.ctxData) + _, perms, err := getUserPermissions(context.Background(), tt.args.verifier, tt.args.requiredPerm, tt.args.authConfig.RolePermissionMappings, tt.args.ctxData, tt.args.ctxData.OrgID) if tt.wantErr && err == nil { t.Errorf("got wrong result, should get err: actual: %v ", err) @@ -295,7 +295,7 @@ func Test_MapMembershipToPermissions(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - requestPerms, allPerms := mapMembershipsToPermissions(tt.args.requiredPerm, tt.args.membership, tt.args.authConfig) + requestPerms, allPerms := mapMembershipsToPermissions(tt.args.requiredPerm, tt.args.membership, tt.args.authConfig.RolePermissionMappings) if !equalStringArray(requestPerms, tt.requestPerms) { t.Errorf("got wrong requestPerms, expecting: %v, actual: %v ", tt.requestPerms, requestPerms) } @@ -435,7 +435,7 @@ func Test_MapMembershipToPerm(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - requestPerms, allPerms := mapMembershipToPerm(tt.args.requiredPerm, tt.args.membership, tt.args.authConfig, tt.args.requestPerms, tt.args.allPerms) + requestPerms, allPerms := mapMembershipToPerm(tt.args.requiredPerm, tt.args.membership, tt.args.authConfig.RolePermissionMappings, tt.args.requestPerms, tt.args.allPerms) if !equalStringArray(requestPerms, tt.requestPerms) { t.Errorf("got wrong requestPerms, expecting: %v, actual: %v ", tt.requestPerms, requestPerms) } @@ -519,3 +519,109 @@ func Test_ExistisPerm(t *testing.T) { }) } } + +func Test_CheckUserResourcePermissions(t *testing.T) { + type args struct { + perms []string + resourceID string + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "no permissions", + args: args{ + perms: []string{}, + resourceID: "", + }, + wantErr: true, + }, + { + name: "has permission and no context requested", + args: args{ + perms: []string{"project.read"}, + resourceID: "", + }, + wantErr: false, + }, + { + name: "context requested and has global permission", + args: args{ + perms: []string{"project.read", "project.read:1"}, + resourceID: "Test", + }, + wantErr: false, + }, + { + name: "context requested and has specific permission", + args: args{ + perms: []string{"project.read:Test"}, + resourceID: "Test", + }, + wantErr: false, + }, + { + name: "context requested and has no permission", + args: args{ + perms: []string{"project.read:Test"}, + resourceID: "Hodor", + }, + wantErr: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := checkUserResourcePermissions(tt.args.perms, tt.args.resourceID) + if tt.wantErr && err == nil { + t.Errorf("got wrong result, should get err: actual: %v ", err) + } + + if !tt.wantErr && err != nil { + t.Errorf("shouldn't get err: %v ", err) + } + + if tt.wantErr && !caos_errs.IsPermissionDenied(err) { + t.Errorf("got wrong err: %v ", err) + } + }) + } +} + +func Test_HasContextResourcePermission(t *testing.T) { + type args struct { + perms []string + resourceID string + } + tests := []struct { + name string + args args + result bool + }{ + { + name: "existing context permission", + args: args{ + perms: []string{"test:wrong", "test:right"}, + resourceID: "right", + }, + result: true, + }, + { + name: "not existing context permission", + args: args{ + perms: []string{"test:wrong", "test:wrong2"}, + resourceID: "test", + }, + result: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result := hasContextResourcePermission(tt.args.perms, tt.args.resourceID) + if result != tt.result { + t.Errorf("got wrong result, expecting: %v, actual: %v ", tt.result, result) + } + }) + } +} diff --git a/internal/api/authz/token.go b/internal/api/authz/token.go index a7ea46a68..a8a9b3afb 100644 --- a/internal/api/authz/token.go +++ b/internal/api/authz/token.go @@ -27,10 +27,14 @@ type TokenVerifier struct { systemJWTProfile op.JWTProfileVerifier } +type MembershipsResolver interface { + SearchMyMemberships(ctx context.Context, orgID string) ([]*Membership, error) +} + type authZRepo interface { VerifyAccessToken(ctx context.Context, token, verifierClientID, projectID string) (userID, agentID, clientID, prefLang, resourceOwner string, err error) VerifierClientID(ctx context.Context, name string) (clientID, projectID string, err error) - SearchMyMemberships(ctx context.Context) ([]*Membership, error) + SearchMyMemberships(ctx context.Context, orgID string) ([]*Membership, error) ProjectIDAndOriginsByClientID(ctx context.Context, clientID string) (projectID string, origins []string, err error) ExistsOrg(ctx context.Context, orgID string) error } @@ -127,10 +131,10 @@ func (v *TokenVerifier) RegisterServer(appName, methodPrefix string, mappings Me } } -func (v *TokenVerifier) SearchMyMemberships(ctx context.Context) (_ []*Membership, err error) { +func (v *TokenVerifier) SearchMyMemberships(ctx context.Context, orgID string) (_ []*Membership, err error) { ctx, span := tracing.NewSpan(ctx) defer func() { span.EndWithError(err) }() - return v.authZRepo.SearchMyMemberships(ctx) + return v.authZRepo.SearchMyMemberships(ctx, orgID) } func (v *TokenVerifier) ProjectIDAndOriginsByClientID(ctx context.Context, clientID string) (_ string, _ []string, err error) { diff --git a/internal/api/grpc/admin/server.go b/internal/api/grpc/admin/server.go index 267fad2f4..d25bd4b3d 100644 --- a/internal/api/grpc/admin/server.go +++ b/internal/api/grpc/admin/server.go @@ -71,7 +71,7 @@ func (s *Server) AppName() string { } func (s *Server) MethodPrefix() string { - return admin.AdminService_MethodPrefix + return admin.AdminService_ServiceDesc.ServiceName } func (s *Server) AuthMethods() authz.MethodMapping { diff --git a/internal/api/grpc/auth/server.go b/internal/api/grpc/auth/server.go index ff7d7ae7b..16fb66022 100644 --- a/internal/api/grpc/auth/server.go +++ b/internal/api/grpc/auth/server.go @@ -69,7 +69,7 @@ func (s *Server) AppName() string { } func (s *Server) MethodPrefix() string { - return auth.AuthService_MethodPrefix + return auth.AuthService_ServiceDesc.ServiceName } func (s *Server) AuthMethods() authz.MethodMapping { diff --git a/internal/api/grpc/management/server.go b/internal/api/grpc/management/server.go index 732f44ea2..12413e1bc 100644 --- a/internal/api/grpc/management/server.go +++ b/internal/api/grpc/management/server.go @@ -63,7 +63,7 @@ func (s *Server) AppName() string { } func (s *Server) MethodPrefix() string { - return management.ManagementService_MethodPrefix + return management.ManagementService_ServiceDesc.ServiceName } func (s *Server) AuthMethods() authz.MethodMapping { diff --git a/internal/api/grpc/object/v2/converter.go b/internal/api/grpc/object/v2/converter.go new file mode 100644 index 000000000..eca168f70 --- /dev/null +++ b/internal/api/grpc/object/v2/converter.go @@ -0,0 +1,19 @@ +package object + +import ( + "google.golang.org/protobuf/types/known/timestamppb" + + "github.com/zitadel/zitadel/internal/domain" + object "github.com/zitadel/zitadel/pkg/grpc/object/v2alpha" +) + +func DomainToDetailsPb(objectDetail *domain.ObjectDetails) *object.Details { + details := &object.Details{ + Sequence: objectDetail.Sequence, + ResourceOwner: objectDetail.ResourceOwner, + } + if !objectDetail.EventDate.IsZero() { + details.ChangeDate = timestamppb.New(objectDetail.EventDate) + } + return details +} diff --git a/internal/api/grpc/server/middleware/auth_interceptor_test.go b/internal/api/grpc/server/middleware/auth_interceptor_test.go index abe50606f..c041d9ca4 100644 --- a/internal/api/grpc/server/middleware/auth_interceptor_test.go +++ b/internal/api/grpc/server/middleware/auth_interceptor_test.go @@ -24,7 +24,7 @@ type verifierMock struct{} func (v *verifierMock) VerifyAccessToken(ctx context.Context, token, clientID, projectID string) (string, string, string, string, string, error) { return "", "", "", "", "", nil } -func (v *verifierMock) SearchMyMemberships(ctx context.Context) ([]*authz.Membership, error) { +func (v *verifierMock) SearchMyMemberships(ctx context.Context, orgID string) ([]*authz.Membership, error) { return nil, nil } diff --git a/internal/api/grpc/server/server.go b/internal/api/grpc/server/server.go index 71eef0afa..925277803 100644 --- a/internal/api/grpc/server/server.go +++ b/internal/api/grpc/server/server.go @@ -50,13 +50,13 @@ func CreateServer( middleware.MetricsHandler(metricTypes, grpc_api.Probes...), middleware.NoCacheInterceptor(), middleware.ErrorHandler(), - middleware.InstanceInterceptor(queries, hostHeaderName, system_pb.SystemService_MethodPrefix, healthpb.Health_ServiceDesc.ServiceName), + middleware.InstanceInterceptor(queries, hostHeaderName, system_pb.SystemService_ServiceDesc.ServiceName, healthpb.Health_ServiceDesc.ServiceName), middleware.AccessStorageInterceptor(accessSvc), middleware.AuthorizationInterceptor(verifier, authConfig), middleware.TranslationHandler(), middleware.ValidationHandler(), middleware.ServiceHandler(), - middleware.QuotaExhaustedInterceptor(accessSvc, system_pb.SystemService_MethodPrefix), + middleware.QuotaExhaustedInterceptor(accessSvc, system_pb.SystemService_ServiceDesc.ServiceName), ), ), } diff --git a/internal/api/grpc/system/server.go b/internal/api/grpc/system/server.go index a954cfce4..dd947c950 100644 --- a/internal/api/grpc/system/server.go +++ b/internal/api/grpc/system/server.go @@ -4,7 +4,6 @@ import ( "google.golang.org/grpc" "github.com/zitadel/zitadel/internal/admin/repository" - "github.com/zitadel/zitadel/internal/admin/repository/eventsourcing" "github.com/zitadel/zitadel/internal/api/authz" "github.com/zitadel/zitadel/internal/api/grpc/server" @@ -60,7 +59,7 @@ func (s *Server) AppName() string { } func (s *Server) MethodPrefix() string { - return system.SystemService_MethodPrefix + return system.SystemService_ServiceDesc.ServiceName } func (s *Server) AuthMethods() authz.MethodMapping { diff --git a/internal/api/grpc/user/v2/email.go b/internal/api/grpc/user/v2/email.go new file mode 100644 index 000000000..94530167c --- /dev/null +++ b/internal/api/grpc/user/v2/email.go @@ -0,0 +1,65 @@ +package user + +import ( + "context" + + "google.golang.org/protobuf/types/known/timestamppb" + + "github.com/zitadel/zitadel/internal/domain" + caos_errs "github.com/zitadel/zitadel/internal/errors" + object "github.com/zitadel/zitadel/pkg/grpc/object/v2alpha" + user "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha" +) + +func (s *Server) SetEmail(ctx context.Context, req *user.SetEmailRequest) (resp *user.SetEmailResponse, err error) { + resourceOwner := "" // TODO: check if still needed + var email *domain.Email + + switch v := req.GetVerification().(type) { + case *user.SetEmailRequest_SendCode: + email, err = s.command.ChangeUserEmailURLTemplate(ctx, req.GetUserId(), resourceOwner, req.GetEmail(), s.userCodeAlg, v.SendCode.GetUrlTemplate()) + case *user.SetEmailRequest_ReturnCode: + email, err = s.command.ChangeUserEmailReturnCode(ctx, req.GetUserId(), resourceOwner, req.GetEmail(), s.userCodeAlg) + case *user.SetEmailRequest_IsVerified: + if v.IsVerified { + email, err = s.command.ChangeUserEmailVerified(ctx, req.GetUserId(), resourceOwner, req.GetEmail()) + } else { + email, err = s.command.ChangeUserEmail(ctx, req.GetUserId(), resourceOwner, req.GetEmail(), s.userCodeAlg) + } + case nil: + email, err = s.command.ChangeUserEmail(ctx, req.GetUserId(), resourceOwner, req.GetEmail(), s.userCodeAlg) + default: + err = caos_errs.ThrowUnimplementedf(nil, "USERv2-Ahng0", "verification oneOf %T in method SetEmail not implemented", v) + } + if err != nil { + return nil, err + } + + return &user.SetEmailResponse{ + Details: &object.Details{ + Sequence: email.Sequence, + ChangeDate: timestamppb.New(email.ChangeDate), + ResourceOwner: email.ResourceOwner, + }, + VerificationCode: email.PlainCode, + }, nil +} + +func (s *Server) VerifyEmail(ctx context.Context, req *user.VerifyEmailRequest) (*user.VerifyEmailResponse, error) { + details, err := s.command.VerifyUserEmail(ctx, + req.GetUserId(), + "", // TODO: check if still needed + req.GetVerificationCode(), + s.userCodeAlg, + ) + if err != nil { + return nil, err + } + return &user.VerifyEmailResponse{ + Details: &object.Details{ + Sequence: details.Sequence, + ChangeDate: timestamppb.New(details.EventDate), + ResourceOwner: details.ResourceOwner, + }, + }, nil +} diff --git a/internal/api/grpc/user/v2/server.go b/internal/api/grpc/user/v2/server.go index 6a7a96d31..d81d51ff2 100644 --- a/internal/api/grpc/user/v2/server.go +++ b/internal/api/grpc/user/v2/server.go @@ -6,27 +6,27 @@ import ( "github.com/zitadel/zitadel/internal/api/authz" "github.com/zitadel/zitadel/internal/api/grpc/server" "github.com/zitadel/zitadel/internal/command" + "github.com/zitadel/zitadel/internal/crypto" "github.com/zitadel/zitadel/internal/query" - "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha" + user "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha" ) var _ user.UserServiceServer = (*Server)(nil) type Server struct { user.UnimplementedUserServiceServer - command *command.Commands - query *query.Queries + command *command.Commands + query *query.Queries + userCodeAlg crypto.EncryptionAlgorithm } type Config struct{} -func CreateServer( - command *command.Commands, - query *query.Queries, -) *Server { +func CreateServer(command *command.Commands, query *query.Queries, userCodeAlg crypto.EncryptionAlgorithm) *Server { return &Server{ - command: command, - query: query, + command: command, + query: query, + userCodeAlg: userCodeAlg, } } diff --git a/internal/api/grpc/user/v2/test.go b/internal/api/grpc/user/v2/test.go deleted file mode 100644 index 8b5bc3865..000000000 --- a/internal/api/grpc/user/v2/test.go +++ /dev/null @@ -1,55 +0,0 @@ -package user - -import ( - "context" - - "github.com/zitadel/zitadel/internal/api/authz" - "github.com/zitadel/zitadel/internal/errors" - "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha" -) - -func (s *Server) TestGet(ctx context.Context, req *user.TestGetRequest) (*user.TestGetResponse, error) { - return &user.TestGetResponse{ - Ctx: req.Ctx.String(), - }, nil -} - -func (s *Server) TestPost(ctx context.Context, req *user.TestPostRequest) (*user.TestPostResponse, error) { - return &user.TestPostResponse{ - Ctx: req.Ctx.String(), - }, nil -} - -func (s *Server) TestAuth(ctx context.Context, req *user.TestAuthRequest) (*user.TestAuthResponse, error) { - reqCtx, err := authDemo(ctx, req.Ctx) - if err != nil { - return nil, err - } - return &user.TestAuthResponse{ - User: &user.User{Id: authz.GetCtxData(ctx).UserID}, - Ctx: reqCtx, - }, nil -} - -func authDemo(ctx context.Context, reqCtx *user.Context) (*user.Context, error) { - ro := authz.GetCtxData(ctx).ResourceOwner - if reqCtx == nil { - return &user.Context{Ctx: &user.Context_OrgId{OrgId: ro}}, nil - } - switch c := reqCtx.Ctx.(type) { - case *user.Context_OrgId: - if c.OrgId == ro { - return reqCtx, nil - } - return nil, errors.ThrowPermissionDenied(nil, "USER-dg4g", "Errors.User.NotAllowedOrg") - case *user.Context_OrgDomain: - if c.OrgDomain == "forbidden.com" { - return nil, errors.ThrowPermissionDenied(nil, "USER-SDg4g", "Errors.User.NotAllowedOrg") - } - return reqCtx, nil - case *user.Context_Instance: - return reqCtx, nil - default: - return reqCtx, nil - } -} diff --git a/internal/authz/repository/eventsourcing/eventstore/user_membership.go b/internal/authz/repository/eventsourcing/eventstore/user_membership.go index b7e95b603..ae9cea03d 100644 --- a/internal/authz/repository/eventsourcing/eventstore/user_membership.go +++ b/internal/authz/repository/eventsourcing/eventstore/user_membership.go @@ -12,17 +12,17 @@ type UserMembershipRepo struct { Queries *query.Queries } -func (repo *UserMembershipRepo) SearchMyMemberships(ctx context.Context) (_ []*authz.Membership, err error) { +func (repo *UserMembershipRepo) SearchMyMemberships(ctx context.Context, orgID string) (_ []*authz.Membership, err error) { ctx, span := tracing.NewSpan(ctx) defer func() { span.EndWithError(err) }() - memberships, err := repo.searchUserMemberships(ctx) + memberships, err := repo.searchUserMemberships(ctx, orgID) if err != nil { return nil, err } return userMembershipsToMemberships(memberships), nil } -func (repo *UserMembershipRepo) searchUserMemberships(ctx context.Context) (_ []*query.Membership, err error) { +func (repo *UserMembershipRepo) searchUserMemberships(ctx context.Context, orgID string) (_ []*query.Membership, err error) { ctx, span := tracing.NewSpan(ctx) defer func() { span.EndWithError(err) }() ctxData := authz.GetCtxData(ctx) @@ -30,11 +30,11 @@ func (repo *UserMembershipRepo) searchUserMemberships(ctx context.Context) (_ [] if err != nil { return nil, err } - orgIDsQuery, err := query.NewMembershipResourceOwnersSearchQuery(ctxData.OrgID, authz.GetInstance(ctx).InstanceID()) + orgIDsQuery, err := query.NewMembershipResourceOwnersSearchQuery(orgID, authz.GetInstance(ctx).InstanceID()) if err != nil { return nil, err } - grantedIDQuery, err := query.NewMembershipGrantedOrgIDSearchQuery(ctxData.OrgID) + grantedIDQuery, err := query.NewMembershipGrantedOrgIDSearchQuery(orgID) if err != nil { return nil, err } diff --git a/internal/authz/repository/user_membership.go b/internal/authz/repository/user_membership.go index 105a51ba5..a1b1fc78b 100644 --- a/internal/authz/repository/user_membership.go +++ b/internal/authz/repository/user_membership.go @@ -7,5 +7,5 @@ import ( ) type UserMembershipRepository interface { - SearchMyMemberships(ctx context.Context) ([]*authz.Membership, error) + SearchMyMemberships(ctx context.Context, orgID string) ([]*authz.Membership, error) } diff --git a/internal/command/command.go b/internal/command/command.go index 485bf563c..4499b84b5 100644 --- a/internal/command/command.go +++ b/internal/command/command.go @@ -29,6 +29,8 @@ import ( type Commands struct { httpClient *http.Client + checkPermission permissionCheck + eventstore *eventstore.Eventstore static static.Storage idGenerator id.Generator @@ -59,7 +61,8 @@ type Commands struct { certificateLifetime time.Duration } -func StartCommands(es *eventstore.Eventstore, +func StartCommands( + es *eventstore.Eventstore, defaults sd.SystemDefaults, zitadelRoles []authz.RoleMapping, staticStore static.Storage, @@ -76,6 +79,7 @@ func StartCommands(es *eventstore.Eventstore, oidcEncryption, samlEncryption crypto.EncryptionAlgorithm, httpClient *http.Client, + membershipsResolver authz.MembershipsResolver, ) (repo *Commands, err error) { if externalDomain == "" { return nil, errors.ThrowInvalidArgument(nil, "COMMAND-Df21s", "no external domain specified") @@ -102,6 +106,9 @@ func StartCommands(es *eventstore.Eventstore, certificateAlgorithm: samlEncryption, webauthnConfig: webAuthN, httpClient: httpClient, + checkPermission: func(ctx context.Context, permission, orgID, resourceID string, allowSelf bool) (err error) { + return authz.CheckPermission(ctx, membershipsResolver, zitadelRoles, permission, orgID, resourceID, allowSelf) + }, } instance_repo.RegisterEventMappers(repo.eventstore) diff --git a/internal/command/main_test.go b/internal/command/main_test.go index 237f98488..2f516133f 100644 --- a/internal/command/main_test.go +++ b/internal/command/main_test.go @@ -10,6 +10,7 @@ import ( "golang.org/x/text/language" "github.com/zitadel/zitadel/internal/crypto" + "github.com/zitadel/zitadel/internal/errors" "github.com/zitadel/zitadel/internal/eventstore" "github.com/zitadel/zitadel/internal/eventstore/repository" "github.com/zitadel/zitadel/internal/eventstore/repository/mock" @@ -248,3 +249,15 @@ func (m *mockInstance) RequestedHost() string { func (m *mockInstance) SecurityPolicyAllowedOrigins() []string { return nil } + +func newMockPermissionCheckAllowed() permissionCheck { + return func(ctx context.Context, permission, orgID, resourceID string, allowSelf bool) (err error) { + return nil + } +} + +func newMockPermissionCheckNotAllowed() permissionCheck { + return func(ctx context.Context, permission, orgID, resourceID string, allowSelf bool) (err error) { + return errors.ThrowPermissionDenied(nil, "AUTHZ-HKJD33", "Errors.PermissionDenied") + } +} diff --git a/internal/command/permission.go b/internal/command/permission.go new file mode 100644 index 000000000..138df0a44 --- /dev/null +++ b/internal/command/permission.go @@ -0,0 +1,11 @@ +package command + +import ( + "context" +) + +type permissionCheck func(ctx context.Context, permission, orgID, resourceID string, allowSelf bool) (err error) + +const ( + permissionUserWrite = "user.write" +) diff --git a/internal/command/user_human.go b/internal/command/user_human.go index 3d55ccf53..3d84eeb12 100644 --- a/internal/command/user_human.go +++ b/internal/command/user_human.go @@ -507,7 +507,7 @@ func (c *Commands) createHuman(ctx context.Context, orgID string, human *domain. if human.Email != nil && human.EmailAddress != "" && human.IsEmailVerified { events = append(events, user.NewHumanEmailVerifiedEvent(ctx, userAgg)) } else { - emailCode, err := domain.NewEmailCode(emailCodeGenerator) + emailCode, _, err := domain.NewEmailCode(emailCodeGenerator) if err != nil { return nil, nil, err } diff --git a/internal/command/user_human_email.go b/internal/command/user_human_email.go index 22fbf7b46..66a498286 100644 --- a/internal/command/user_human_email.go +++ b/internal/command/user_human_email.go @@ -4,6 +4,7 @@ import ( "context" "github.com/zitadel/logging" + "github.com/zitadel/zitadel/internal/crypto" "github.com/zitadel/zitadel/internal/domain" caos_errs "github.com/zitadel/zitadel/internal/errors" @@ -41,7 +42,7 @@ func (c *Commands) ChangeHumanEmail(ctx context.Context, email *domain.Email, em if email.IsEmailVerified { events = append(events, user.NewHumanEmailVerifiedEvent(ctx, userAgg)) } else { - emailCode, err := domain.NewEmailCode(emailCodeGenerator) + emailCode, _, err := domain.NewEmailCode(emailCodeGenerator) if err != nil { return nil, err } @@ -113,7 +114,7 @@ func (c *Commands) CreateHumanEmailVerificationCode(ctx context.Context, userID, return nil, caos_errs.ThrowPreconditionFailed(nil, "COMMAND-3M9ds", "Errors.User.Email.AlreadyVerified") } userAgg := UserAggregateFromWriteModel(&existingEmail.WriteModel) - emailCode, err := domain.NewEmailCode(emailCodeGenerator) + emailCode, _, err := domain.NewEmailCode(emailCodeGenerator) if err != nil { return nil, err } diff --git a/internal/command/user_human_email_model.go b/internal/command/user_human_email_model.go index f33247749..d05881a79 100644 --- a/internal/command/user_human_email_model.go +++ b/internal/command/user_human_email_model.go @@ -4,10 +4,9 @@ import ( "context" "time" - "github.com/zitadel/zitadel/internal/eventstore" - "github.com/zitadel/zitadel/internal/crypto" "github.com/zitadel/zitadel/internal/domain" + "github.com/zitadel/zitadel/internal/eventstore" "github.com/zitadel/zitadel/internal/repository/user" ) diff --git a/internal/command/user_v2_email.go b/internal/command/user_v2_email.go new file mode 100644 index 000000000..d636b21a7 --- /dev/null +++ b/internal/command/user_v2_email.go @@ -0,0 +1,208 @@ +package command + +import ( + "context" + "io" + + "github.com/zitadel/logging" + + "github.com/zitadel/zitadel/internal/crypto" + "github.com/zitadel/zitadel/internal/domain" + caos_errs "github.com/zitadel/zitadel/internal/errors" + "github.com/zitadel/zitadel/internal/eventstore" + "github.com/zitadel/zitadel/internal/repository/user" +) + +// ChangeUserEmail sets a user's email address, generates a code +// and triggers a notification e-mail with the default confirmation URL format. +func (c *Commands) ChangeUserEmail(ctx context.Context, userID, resourceOwner, email string, alg crypto.EncryptionAlgorithm) (*domain.Email, error) { + return c.changeUserEmailWithCode(ctx, userID, resourceOwner, email, alg, false, "") +} + +// ChangeUserEmailURLTemplate sets a user's email address, generates a code +// and triggers a notification e-mail with the confirmation URL rendered from the passed urlTmpl. +// urlTmpl must be a valid [tmpl.Template]. +func (c *Commands) ChangeUserEmailURLTemplate(ctx context.Context, userID, resourceOwner, email string, alg crypto.EncryptionAlgorithm, urlTmpl string) (*domain.Email, error) { + if err := domain.RenderConfirmURLTemplate(io.Discard, urlTmpl, userID, "code", "orgID"); err != nil { + return nil, err + } + return c.changeUserEmailWithCode(ctx, userID, resourceOwner, email, alg, false, urlTmpl) +} + +// ChangeUserEmailReturnCode sets a user's email address, generates a code and does not send a notification email. +// The generated plain text code will be set in the returned Email object. +func (c *Commands) ChangeUserEmailReturnCode(ctx context.Context, userID, resourceOwner, email string, alg crypto.EncryptionAlgorithm) (*domain.Email, error) { + return c.changeUserEmailWithCode(ctx, userID, resourceOwner, email, alg, true, "") +} + +// ChangeUserEmailVerified sets a user's email address and marks it is verified. +// No code is generated and no confirmation e-mail is send. +func (c *Commands) ChangeUserEmailVerified(ctx context.Context, userID, resourceOwner, email string) (*domain.Email, error) { + cmd, err := c.NewUserEmailEvents(ctx, userID, resourceOwner) + if err != nil { + return nil, err + } + if err = c.checkPermission(ctx, permissionUserWrite, cmd.aggregate.ResourceOwner, userID, false); err != nil { + return nil, err + } + if err = cmd.Change(ctx, domain.EmailAddress(email)); err != nil { + return nil, err + } + cmd.SetVerified(ctx) + return cmd.Push(ctx) +} + +func (c *Commands) changeUserEmailWithCode(ctx context.Context, userID, resourceOwner, email string, alg crypto.EncryptionAlgorithm, returnCode bool, urlTmpl string) (*domain.Email, error) { + config, err := secretGeneratorConfig(ctx, c.eventstore.Filter, domain.SecretGeneratorTypeVerifyEmailCode) + if err != nil { + return nil, err + } + gen := crypto.NewEncryptionGenerator(*config, alg) + return c.changeUserEmailWithGenerator(ctx, userID, resourceOwner, email, gen, returnCode, urlTmpl) +} + +// changeUserEmailWithGenerator set a user's email address. +// returnCode controls if the plain text version of the code will be set in the return object. +// When the plain text code is returned, no notification e-mail will be send to the user. +// urlTmpl allows changing the target URL that is used by the e-mail and should be a validated Go template, if used. +func (c *Commands) changeUserEmailWithGenerator(ctx context.Context, userID, resourceOwner, email string, gen crypto.Generator, returnCode bool, urlTmpl string) (*domain.Email, error) { + cmd, err := c.NewUserEmailEvents(ctx, userID, resourceOwner) + if err != nil { + return nil, err + } + if err = c.checkPermission(ctx, permissionUserWrite, cmd.aggregate.ResourceOwner, userID, true); err != nil { + return nil, err + } + if err = cmd.Change(ctx, domain.EmailAddress(email)); err != nil { + return nil, err + } + if err = cmd.AddGeneratedCode(ctx, gen, urlTmpl, returnCode); err != nil { + return nil, err + } + return cmd.Push(ctx) +} + +func (c *Commands) VerifyUserEmail(ctx context.Context, userID, resourceOwner, code string, alg crypto.EncryptionAlgorithm) (*domain.ObjectDetails, error) { + config, err := secretGeneratorConfig(ctx, c.eventstore.Filter, domain.SecretGeneratorTypeVerifyEmailCode) + if err != nil { + return nil, err + } + gen := crypto.NewEncryptionGenerator(*config, alg) + return c.verifyUserEmailWithGenerator(ctx, userID, resourceOwner, code, gen) +} + +func (c *Commands) verifyUserEmailWithGenerator(ctx context.Context, userID, resourceOwner, code string, gen crypto.Generator) (*domain.ObjectDetails, error) { + cmd, err := c.NewUserEmailEvents(ctx, userID, resourceOwner) + if err != nil { + return nil, err + } + err = cmd.VerifyCode(ctx, code, gen) + if err != nil { + return nil, err + } + if _, err = cmd.Push(ctx); err != nil { + return nil, err + } + return writeModelToObjectDetails(&cmd.model.WriteModel), nil +} + +// UserEmailEvents allows step-by-step additions of events, +// operating on the Human Email Model. +type UserEmailEvents struct { + eventstore *eventstore.Eventstore + aggregate *eventstore.Aggregate + events []eventstore.Command + model *HumanEmailWriteModel + + plainCode *string +} + +// NewUserEmailEvents constructs a UserEmailEvents with a Human Email Write Model, +// filtered by userID and resourceOwner. +// If a model cannot be found, or it's state is invalid and error is returned. +func (c *Commands) NewUserEmailEvents(ctx context.Context, userID, resourceOwner string) (*UserEmailEvents, error) { + if userID == "" { + return nil, caos_errs.ThrowInvalidArgument(nil, "COMMAND-0Gzs3", "Errors.User.Email.IDMissing") + } + + model, err := c.emailWriteModel(ctx, userID, resourceOwner) + if err != nil { + return nil, err + } + if model.UserState == domain.UserStateUnspecified || model.UserState == domain.UserStateDeleted { + return nil, caos_errs.ThrowNotFound(nil, "COMMAND-ieJ2e", "Errors.User.Email.NotFound") + } + if model.UserState == domain.UserStateInitial { + return nil, caos_errs.ThrowPreconditionFailed(nil, "COMMAND-uz0Uu", "Errors.User.NotInitialised") + } + return &UserEmailEvents{ + eventstore: c.eventstore, + aggregate: UserAggregateFromWriteModel(&model.WriteModel), + model: model, + }, nil +} + +// Change sets a new email address. +// The generated event unsets any previously generated code and verified flag. +func (c *UserEmailEvents) Change(ctx context.Context, email domain.EmailAddress) error { + if err := email.Validate(); err != nil { + return err + } + event, hasChanged := c.model.NewChangedEvent(ctx, c.aggregate, email) + if !hasChanged { + return caos_errs.ThrowPreconditionFailed(nil, "COMMAND-Uch5e", "Errors.User.Email.NotChanged") + } + c.events = append(c.events, event) + return nil +} + +// SetVerified sets the email address to verified. +func (c *UserEmailEvents) SetVerified(ctx context.Context) { + c.events = append(c.events, user.NewHumanEmailVerifiedEvent(ctx, c.aggregate)) +} + +// AddGeneratedCode generates a new encrypted code and sets it to the email address. +// When returnCode a plain text of the code will be returned from Push. +func (c *UserEmailEvents) AddGeneratedCode(ctx context.Context, gen crypto.Generator, urlTmpl string, returnCode bool) error { + value, plain, err := crypto.NewCode(gen) + if err != nil { + return err + } + + c.events = append(c.events, user.NewHumanEmailCodeAddedEventV2(ctx, c.aggregate, value, gen.Expiry(), urlTmpl, returnCode)) + if returnCode { + c.plainCode = &plain + } + return nil +} + +func (c *UserEmailEvents) VerifyCode(ctx context.Context, code string, gen crypto.Generator) error { + if code == "" { + return caos_errs.ThrowInvalidArgument(nil, "COMMAND-Fia4a", "Errors.User.Code.Empty") + } + + err := crypto.VerifyCode(c.model.CodeCreationDate, c.model.CodeExpiry, c.model.Code, code, gen) + if err == nil { + c.events = append(c.events, user.NewHumanEmailVerifiedEvent(ctx, c.aggregate)) + return nil + } + _, err = c.eventstore.Push(ctx, user.NewHumanEmailVerificationFailedEvent(ctx, c.aggregate)) + logging.WithFields("id", "COMMAND-Zoo6b", "userID", c.aggregate.ID).OnError(err).Error("NewHumanEmailVerificationFailedEvent push failed") + return caos_errs.ThrowInvalidArgument(err, "COMMAND-eis9R", "Errors.User.Code.Invalid") +} + +// Push all events to the eventstore and Reduce them into the Model. +func (c *UserEmailEvents) Push(ctx context.Context) (*domain.Email, error) { + pushedEvents, err := c.eventstore.Push(ctx, c.events...) + if err != nil { + return nil, err + } + err = AppendAndReduce(c.model, pushedEvents...) + if err != nil { + return nil, err + } + email := writeModelToEmail(c.model) + email.PlainCode = c.plainCode + + return email, nil +} diff --git a/internal/command/user_v2_email_test.go b/internal/command/user_v2_email_test.go new file mode 100644 index 000000000..9989229ef --- /dev/null +++ b/internal/command/user_v2_email_test.go @@ -0,0 +1,1315 @@ +package command + +import ( + "context" + "testing" + "time" + + "github.com/golang/mock/gomock" + "github.com/muhlemmer/gu" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "golang.org/x/text/language" + + "github.com/zitadel/zitadel/internal/crypto" + "github.com/zitadel/zitadel/internal/domain" + caos_errs "github.com/zitadel/zitadel/internal/errors" + "github.com/zitadel/zitadel/internal/eventstore" + "github.com/zitadel/zitadel/internal/eventstore/repository" + "github.com/zitadel/zitadel/internal/eventstore/v1/models" + "github.com/zitadel/zitadel/internal/repository/instance" + "github.com/zitadel/zitadel/internal/repository/user" +) + +func TestCommands_ChangeUserEmail(t *testing.T) { + type fields struct { + eventstore *eventstore.Eventstore + checkPermission permissionCheck + } + type args struct { + userID string + resourceOwner string + email string + } + tests := []struct { + name string + fields fields + args args + wantErr error + }{ + { + name: "missing permission", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent(context.Background(), + &instance.NewAggregate("inst1").Aggregate, + domain.SecretGeneratorTypeVerifyEmailCode, + 12, time.Minute, true, true, true, true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckNotAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "", + }, + wantErr: caos_errs.ThrowPermissionDenied(nil, "AUTHZ-HKJD33", "Errors.PermissionDenied"), + }, + { + name: "missing email", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent(context.Background(), + &instance.NewAggregate("inst1").Aggregate, + domain.SecretGeneratorTypeVerifyEmailCode, + 12, time.Minute, true, true, true, true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "EMAIL-spblu", "Errors.User.Email.Empty"), + }, + { + name: "not changed", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent(context.Background(), + &instance.NewAggregate("inst1").Aggregate, + domain.SecretGeneratorTypeVerifyEmailCode, + 12, time.Minute, true, true, true, true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email@test.ch", + }, + wantErr: caos_errs.ThrowPreconditionFailed(nil, "COMMAND-Uch5e", "Errors.User.Email.NotChanged"), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Commands{ + eventstore: tt.fields.eventstore, + checkPermission: tt.fields.checkPermission, + } + _, err := c.ChangeUserEmail(context.Background(), tt.args.userID, tt.args.resourceOwner, tt.args.email, crypto.CreateMockEncryptionAlg(gomock.NewController(t))) + require.ErrorIs(t, err, tt.wantErr) + // successful cases are tested in TestCommands_changeUserEmailWithGenerator + }) + } +} + +func TestCommands_ChangeUserEmailURLTemplate(t *testing.T) { + type fields struct { + eventstore *eventstore.Eventstore + checkPermission permissionCheck + } + type args struct { + userID string + resourceOwner string + email string + urlTmpl string + } + tests := []struct { + name string + fields fields + args args + wantErr error + }{ + { + name: "invalid template", + fields: fields{ + eventstore: eventstoreExpect(t), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email-changed@test.ch", + urlTmpl: "{{", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "USERv2-ooD8p", "Errors.User.Email.InvalidURLTemplate"), + }, + { + name: "permission missing", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent(context.Background(), + &instance.NewAggregate("inst1").Aggregate, + domain.SecretGeneratorTypeVerifyEmailCode, + 12, time.Minute, true, true, true, true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckNotAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email@test.ch", + urlTmpl: "https://example.com/email/verify?userID={{.UserID}}&code={{.Code}}&orgID={{.OrgID}}", + }, + wantErr: caos_errs.ThrowPermissionDenied(nil, "AUTHZ-HKJD33", "Errors.PermissionDenied"), + }, + { + name: "not changed", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent(context.Background(), + &instance.NewAggregate("inst1").Aggregate, + domain.SecretGeneratorTypeVerifyEmailCode, + 12, time.Minute, true, true, true, true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email@test.ch", + urlTmpl: "https://example.com/email/verify?userID={{.UserID}}&code={{.Code}}&orgID={{.OrgID}}", + }, + wantErr: caos_errs.ThrowPreconditionFailed(nil, "COMMAND-Uch5e", "Errors.User.Email.NotChanged"), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Commands{ + eventstore: tt.fields.eventstore, + checkPermission: tt.fields.checkPermission, + } + _, err := c.ChangeUserEmailURLTemplate(context.Background(), tt.args.userID, tt.args.resourceOwner, tt.args.email, crypto.CreateMockEncryptionAlg(gomock.NewController(t)), tt.args.urlTmpl) + require.ErrorIs(t, err, tt.wantErr) + // successful cases are tested in TestCommands_changeUserEmailWithGenerator + }) + } +} + +func TestCommands_ChangeUserEmailReturnCode(t *testing.T) { + type fields struct { + eventstore *eventstore.Eventstore + checkPermission permissionCheck + } + type args struct { + userID string + resourceOwner string + email string + } + tests := []struct { + name string + fields fields + args args + wantErr error + }{ + { + name: "missing permission", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent(context.Background(), + &instance.NewAggregate("inst1").Aggregate, + domain.SecretGeneratorTypeVerifyEmailCode, + 12, time.Minute, true, true, true, true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckNotAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email@test.ch", + }, + wantErr: caos_errs.ThrowPermissionDenied(nil, "AUTHZ-HKJD33", "Errors.PermissionDenied"), + }, + { + name: "missing email", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent(context.Background(), + &instance.NewAggregate("inst1").Aggregate, + domain.SecretGeneratorTypeVerifyEmailCode, + 12, time.Minute, true, true, true, true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "EMAIL-spblu", "Errors.User.Email.Empty"), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Commands{ + eventstore: tt.fields.eventstore, + checkPermission: tt.fields.checkPermission, + } + _, err := c.ChangeUserEmailReturnCode(context.Background(), tt.args.userID, tt.args.resourceOwner, tt.args.email, crypto.CreateMockEncryptionAlg(gomock.NewController(t))) + require.ErrorIs(t, err, tt.wantErr) + // successful cases are tested in TestCommands_changeUserEmailWithGenerator + }) + } +} + +func TestCommands_ChangeUserEmailVerified(t *testing.T) { + type fields struct { + eventstore *eventstore.Eventstore + checkPermission permissionCheck + } + type args struct { + userID string + resourceOwner string + email string + } + tests := []struct { + name string + fields fields + args args + want *domain.Email + wantErr error + }{ + { + name: "missing userID", + fields: fields{ + eventstore: eventstoreExpect(t), + checkPermission: newMockPermissionCheckNotAllowed(), + }, + args: args{ + userID: "", + resourceOwner: "org1", + email: "email@test.ch", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "COMMAND-0Gzs3", "Errors.User.Email.IDMissing"), + }, + { + name: "missing permission", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckNotAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email-changed@test.ch", + }, + wantErr: caos_errs.ThrowPermissionDenied(nil, "AUTHZ-HKJD33", "Errors.PermissionDenied"), + }, + { + name: "missing email", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "EMAIL-spblu", "Errors.User.Email.Empty"), + }, + { + name: "email changed", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + expectPush( + []*repository.Event{ + eventFromEventPusher( + user.NewHumanEmailChangedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "email-changed@test.ch", + ), + ), + eventFromEventPusher( + user.NewHumanEmailVerifiedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + ), + ), + }, + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email-changed@test.ch", + }, + want: &domain.Email{ + ObjectRoot: models.ObjectRoot{ + AggregateID: "user1", + ResourceOwner: "org1", + }, + EmailAddress: "email-changed@test.ch", + IsEmailVerified: true, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Commands{ + eventstore: tt.fields.eventstore, + checkPermission: tt.fields.checkPermission, + } + got, err := c.ChangeUserEmailVerified(context.Background(), tt.args.userID, tt.args.resourceOwner, tt.args.email) + require.ErrorIs(t, err, tt.wantErr) + assert.Equal(t, got, tt.want) + }) + } +} + +func TestCommands_changeUserEmailWithGenerator(t *testing.T) { + type fields struct { + eventstore *eventstore.Eventstore + checkPermission permissionCheck + } + type args struct { + userID string + resourceOwner string + email string + returnCode bool + urlTmpl string + } + tests := []struct { + name string + fields fields + args args + want *domain.Email + wantErr error + }{ + { + name: "missing user", + fields: fields{ + eventstore: eventstoreExpect(t), + }, + args: args{ + userID: "", + resourceOwner: "org1", + email: "email@test.ch", + returnCode: false, + urlTmpl: "", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "COMMAND-0Gzs3", "Errors.User.Email.IDMissing"), + }, + { + name: "missing permission", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckNotAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email@test.ch", + returnCode: false, + urlTmpl: "", + }, + wantErr: caos_errs.ThrowPermissionDenied(nil, "AUTHZ-HKJD33", "Errors.PermissionDenied"), + }, + { + name: "missing email", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "", + returnCode: false, + urlTmpl: "", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "EMAIL-spblu", "Errors.User.Email.Empty"), + }, + { + name: "not changed", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email@test.ch", + returnCode: false, + urlTmpl: "", + }, + wantErr: caos_errs.ThrowPreconditionFailed(nil, "COMMAND-Uch5e", "Errors.User.Email.NotChanged"), + }, + { + name: "email changed", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + expectPush( + []*repository.Event{ + eventFromEventPusher( + user.NewHumanEmailChangedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "email-changed@test.ch", + ), + ), + eventFromEventPusher( + user.NewHumanEmailCodeAddedEventV2(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + &crypto.CryptoValue{ + CryptoType: crypto.TypeEncryption, + Algorithm: "enc", + KeyID: "id", + Crypted: []byte("a"), + }, + time.Hour*1, + "", false, + ), + ), + }, + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email-changed@test.ch", + returnCode: false, + urlTmpl: "", + }, + want: &domain.Email{ + ObjectRoot: models.ObjectRoot{ + AggregateID: "user1", + ResourceOwner: "org1", + }, + EmailAddress: "email-changed@test.ch", + IsEmailVerified: false, + }, + }, + { + name: "email changed, return code", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + expectPush( + []*repository.Event{ + eventFromEventPusher( + user.NewHumanEmailChangedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "email-changed@test.ch", + ), + ), + eventFromEventPusher( + user.NewHumanEmailCodeAddedEventV2(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + &crypto.CryptoValue{ + CryptoType: crypto.TypeEncryption, + Algorithm: "enc", + KeyID: "id", + Crypted: []byte("a"), + }, + time.Hour*1, + "", true, + ), + ), + }, + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email-changed@test.ch", + returnCode: true, + urlTmpl: "", + }, + want: &domain.Email{ + ObjectRoot: models.ObjectRoot{ + AggregateID: "user1", + ResourceOwner: "org1", + }, + EmailAddress: "email-changed@test.ch", + IsEmailVerified: false, + PlainCode: gu.Ptr("a"), + }, + }, + { + name: "email changed, URL template", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + expectPush( + []*repository.Event{ + eventFromEventPusher( + user.NewHumanEmailChangedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "email-changed@test.ch", + ), + ), + eventFromEventPusher( + user.NewHumanEmailCodeAddedEventV2(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + &crypto.CryptoValue{ + CryptoType: crypto.TypeEncryption, + Algorithm: "enc", + KeyID: "id", + Crypted: []byte("a"), + }, + time.Hour*1, + "https://example.com/email/verify?userID={{.UserID}}&code={{.Code}}&orgID={{.OrgID}}", false, + ), + ), + }, + ), + ), + checkPermission: newMockPermissionCheckAllowed(), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + email: "email-changed@test.ch", + returnCode: false, + urlTmpl: "https://example.com/email/verify?userID={{.UserID}}&code={{.Code}}&orgID={{.OrgID}}", + }, + want: &domain.Email{ + ObjectRoot: models.ObjectRoot{ + AggregateID: "user1", + ResourceOwner: "org1", + }, + EmailAddress: "email-changed@test.ch", + IsEmailVerified: false, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Commands{ + eventstore: tt.fields.eventstore, + checkPermission: tt.fields.checkPermission, + } + got, err := c.changeUserEmailWithGenerator(context.Background(), tt.args.userID, tt.args.resourceOwner, tt.args.email, GetMockSecretGenerator(t), tt.args.returnCode, tt.args.urlTmpl) + require.ErrorIs(t, err, tt.wantErr) + assert.Equal(t, got, tt.want) + }) + } +} + +func TestCommands_VerifyUserEmail(t *testing.T) { + type fields struct { + eventstore *eventstore.Eventstore + } + type args struct { + userID string + resourceOwner string + code string + } + tests := []struct { + name string + fields fields + args args + wantErr error + }{ + { + name: "missing userID", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent(context.Background(), + &instance.NewAggregate("inst1").Aggregate, + domain.SecretGeneratorTypeVerifyEmailCode, + 12, time.Minute, true, true, true, true, + ), + ), + ), + ), + }, + args: args{ + userID: "", + resourceOwner: "org1", + code: "a", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "COMMAND-0Gzs3", "Errors.User.Email.IDMissing"), + }, + { + name: "missing code", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent(context.Background(), + &instance.NewAggregate("inst1").Aggregate, + domain.SecretGeneratorTypeVerifyEmailCode, + 12, time.Minute, true, true, true, true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + code: "", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "COMMAND-Fia4a", "Errors.User.Code.Empty"), + }, + { + name: "wrong code", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent(context.Background(), + &instance.NewAggregate("inst1").Aggregate, + domain.SecretGeneratorTypeVerifyEmailCode, + 12, time.Minute, true, true, true, true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + eventFromEventPusher( + user.NewHumanEmailCodeAddedEventV2(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + &crypto.CryptoValue{ + CryptoType: crypto.TypeEncryption, + Algorithm: "enc", + KeyID: "id", + Crypted: []byte("a"), + }, + time.Hour*1, + "", false, + ), + ), + ), + expectPush( + []*repository.Event{ + eventFromEventPusher( + user.NewHumanEmailVerificationFailedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + ), + ), + }, + ), + ), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + code: "wrong", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "COMMAND-eis9R", "Errors.User.Code.Invalid"), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Commands{ + eventstore: tt.fields.eventstore, + } + _, err := c.VerifyUserEmail(context.Background(), tt.args.userID, tt.args.resourceOwner, tt.args.code, crypto.CreateMockEncryptionAlg(gomock.NewController(t))) + require.ErrorIs(t, err, tt.wantErr) + // successful cases are tested in TestCommands_verifyUserEmailWithGenerator + }) + } +} + +func TestCommands_verifyUserEmailWithGenerator(t *testing.T) { + type fields struct { + eventstore *eventstore.Eventstore + } + type args struct { + userID string + resourceOwner string + code string + } + tests := []struct { + name string + fields fields + args args + want *domain.ObjectDetails + wantErr error + }{ + { + name: "missing userID", + fields: fields{ + eventstore: eventstoreExpect(t), + }, + args: args{ + userID: "", + resourceOwner: "org1", + code: "a", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "COMMAND-0Gzs3", "Errors.User.Email.IDMissing"), + }, + { + name: "missing code", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + ), + ), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + code: "", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "COMMAND-Fia4a", "Errors.User.Code.Empty"), + }, + { + name: "good code", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + eventFromEventPusher( + user.NewHumanEmailCodeAddedEventV2(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + &crypto.CryptoValue{ + CryptoType: crypto.TypeEncryption, + Algorithm: "enc", + KeyID: "id", + Crypted: []byte("a"), + }, + time.Hour*1, + "", false, + ), + ), + ), + expectPush( + []*repository.Event{ + eventFromEventPusher( + user.NewHumanEmailVerificationFailedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + ), + ), + }, + ), + ), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + code: "wrong", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "COMMAND-eis9R", "Errors.User.Code.Invalid"), + }, + { + name: "wrong code", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + eventFromEventPusherWithCreationDateNow( + user.NewHumanEmailCodeAddedEventV2(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + &crypto.CryptoValue{ + CryptoType: crypto.TypeEncryption, + Algorithm: "enc", + KeyID: "id", + Crypted: []byte("a"), + }, + time.Hour*1, + "", false, + ), + ), + ), + expectPush( + []*repository.Event{ + eventFromEventPusher( + user.NewHumanEmailVerifiedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + ), + ), + }, + ), + ), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + code: "a", + }, + want: &domain.ObjectDetails{ + ResourceOwner: "org1", + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Commands{ + eventstore: tt.fields.eventstore, + } + got, err := c.verifyUserEmailWithGenerator(context.Background(), tt.args.userID, tt.args.resourceOwner, tt.args.code, GetMockSecretGenerator(t)) + require.ErrorIs(t, err, tt.wantErr) + assert.Equal(t, got, tt.want) + }) + } +} + +func TestCommands_NewUserEmailEvents(t *testing.T) { + type fields struct { + eventstore *eventstore.Eventstore + } + type args struct { + userID string + resourceOwner string + } + tests := []struct { + name string + fields fields + args args + wantErr error + }{ + { + name: "missing userID", + fields: fields{ + eventstore: eventstoreExpect(t), + }, + args: args{ + userID: "", + resourceOwner: "org1", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "COMMAND-0Gzs3", "Errors.User.Email.IDMissing"), + }, + { + name: "not found", + fields: fields{ + eventstore: eventstoreExpect(t, expectFilter()), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + }, + wantErr: caos_errs.ThrowNotFound(nil, "COMMAND-ieJ2e", "Errors.User.Email.NotFound"), + }, + { + name: "user not initialized", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + user.NewHumanAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + "username", + "firstname", + "lastname", + "nickname", + "displayname", + language.German, + domain.GenderUnspecified, + "email@test.ch", + true, + ), + ), + eventFromEventPusher( + user.NewHumanInitialCodeAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + nil, time.Hour*1, + ), + ), + ), + ), + }, + args: args{ + userID: "user1", + resourceOwner: "org1", + }, + wantErr: caos_errs.ThrowPreconditionFailed(nil, "COMMAND-uz0Uu", "Errors.User.NotInitialised"), + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + c := &Commands{ + eventstore: tt.fields.eventstore, + } + _, err := c.NewUserEmailEvents(context.Background(), tt.args.userID, tt.args.resourceOwner) + require.ErrorIs(t, err, tt.wantErr) + // successful cases are tested in TestCommands_changeUserEmailWithGenerator + }) + } +} diff --git a/internal/domain/human_email.go b/internal/domain/human_email.go index 18bf0440d..578c9fe22 100644 --- a/internal/domain/human_email.go +++ b/internal/domain/human_email.go @@ -1,12 +1,15 @@ package domain import ( + "io" "regexp" "strings" + "text/template" "time" "github.com/zitadel/zitadel/internal/crypto" "github.com/zitadel/zitadel/internal/errors" + caos_errs "github.com/zitadel/zitadel/internal/errors" es_models "github.com/zitadel/zitadel/internal/eventstore/v1/models" ) @@ -35,6 +38,8 @@ type Email struct { EmailAddress EmailAddress IsEmailVerified bool + // PlainCode is set by the command and can be used to return it to the caller (API) + PlainCode *string } type EmailCode struct { @@ -51,13 +56,36 @@ func (e *Email) Validate() error { return e.EmailAddress.Validate() } -func NewEmailCode(emailGenerator crypto.Generator) (*EmailCode, error) { - emailCodeCrypto, _, err := crypto.NewCode(emailGenerator) +func NewEmailCode(emailGenerator crypto.Generator) (*EmailCode, string, error) { + emailCodeCrypto, code, err := crypto.NewCode(emailGenerator) if err != nil { - return nil, err + return nil, "", err } return &EmailCode{ Code: emailCodeCrypto, Expiry: emailGenerator.Expiry(), - }, nil + }, code, nil +} + +type ConfirmURLData struct { + UserID string + Code string + OrgID string +} + +// RenderConfirmURLTemplate parses and renders tmplStr. +// userID, code and orgID are passed into the [ConfirmURLData]. +// "%s%s?userID=%s&code=%s&orgID=%s" +func RenderConfirmURLTemplate(w io.Writer, tmplStr, userID, code, orgID string) error { + tmpl, err := template.New("").Parse(tmplStr) + if err != nil { + return caos_errs.ThrowInvalidArgument(err, "USERv2-ooD8p", "Errors.User.Email.InvalidURLTemplate") + } + + data := &ConfirmURLData{userID, code, orgID} + if err = tmpl.Execute(w, data); err != nil { + return caos_errs.ThrowInvalidArgument(err, "USERv2-ohSi5", "Errors.User.Email.InvalidURLTemplate") + } + + return nil } diff --git a/internal/domain/human_email_test.go b/internal/domain/human_email_test.go index c516ade47..f77ba6d5c 100644 --- a/internal/domain/human_email_test.go +++ b/internal/domain/human_email_test.go @@ -1,7 +1,13 @@ package domain import ( + "strings" "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + caos_errs "github.com/zitadel/zitadel/internal/errors" ) func TestEmailValid(t *testing.T) { @@ -72,3 +78,57 @@ func TestEmailValid(t *testing.T) { }) } } + +func TestRenderConfirmURLTemplate(t *testing.T) { + type args struct { + tmplStr string + userID string + code string + orgID string + } + tests := []struct { + name string + args args + want string + wantErr error + }{ + { + name: "invalid template", + args: args{ + tmplStr: "{{", + userID: "user1", + code: "123", + orgID: "org1", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "USERv2-ooD8p", "Errors.User.Email.InvalidURLTemplate"), + }, + { + name: "execution error", + args: args{ + tmplStr: "{{.Foo}}", + userID: "user1", + code: "123", + orgID: "org1", + }, + wantErr: caos_errs.ThrowInvalidArgument(nil, "USERv2-ohSi5", "Errors.User.Email.InvalidURLTemplate"), + }, + { + name: "success", + args: args{ + tmplStr: "https://example.com/email/verify?userID={{.UserID}}&code={{.Code}}&orgID={{.OrgID}}", + userID: "user1", + code: "123", + orgID: "org1", + }, + want: "https://example.com/email/verify?userID=user1&code=123&orgID=org1", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + var w strings.Builder + err := RenderConfirmURLTemplate(&w, tt.args.tmplStr, tt.args.userID, tt.args.code, tt.args.orgID) + require.ErrorIs(t, err, tt.wantErr) + assert.Equal(t, tt.want, w.String()) + }) + } +} diff --git a/internal/notification/handlers/usernotifier.go b/internal/notification/handlers/usernotifier.go index 542e9287b..9a779c6cd 100644 --- a/internal/notification/handlers/usernotifier.go +++ b/internal/notification/handlers/usernotifier.go @@ -182,6 +182,10 @@ func (u *userNotifier) reduceEmailCodeAdded(event eventstore.Event) (*handler.St if !ok { return nil, errors.ThrowInvalidArgumentf(nil, "HANDL-SWf3g", "reduce.wrong.event.type %s", user.HumanEmailCodeAddedType) } + if e.CodeReturned { + return crdb.NewNoOpStatement(e), nil + } + ctx := HandlerContext(event.Aggregate()) alreadyHandled, err := u.checkIfCodeAlreadyHandledOrExpired(ctx, event, e.Expiry, nil, user.UserV1EmailCodeAddedType, user.UserV1EmailCodeSentType, @@ -232,7 +236,7 @@ func (u *userNotifier) reduceEmailCodeAdded(event eventstore.Event) (*handler.St e, u.metricSuccessfulDeliveriesEmail, u.metricFailedDeliveriesEmail, - ).SendEmailVerificationCode(notifyUser, origin, code) + ).SendEmailVerificationCode(notifyUser, origin, code, e.URLTemplate) if err != nil { return nil, err } diff --git a/internal/notification/types/email_verification_code.go b/internal/notification/types/email_verification_code.go index 5f4ab071f..112da75dd 100644 --- a/internal/notification/types/email_verification_code.go +++ b/internal/notification/types/email_verification_code.go @@ -1,13 +1,25 @@ package types import ( + "strings" + "github.com/zitadel/zitadel/internal/api/ui/login" "github.com/zitadel/zitadel/internal/domain" "github.com/zitadel/zitadel/internal/query" ) -func (notify Notify) SendEmailVerificationCode(user *query.NotifyUser, origin, code string) error { - url := login.MailVerificationLink(origin, user.ID, code, user.ResourceOwner) +func (notify Notify) SendEmailVerificationCode(user *query.NotifyUser, origin, code string, urlTmpl string) error { + var url string + if urlTmpl == "" { + url = login.MailVerificationLink(origin, user.ID, code, user.ResourceOwner) + } else { + var buf strings.Builder + if err := domain.RenderConfirmURLTemplate(&buf, urlTmpl, user.ID, code, user.ResourceOwner); err != nil { + return err + } + url = buf.String() + } + args := make(map[string]interface{}) args["Code"] = code return notify(url, args, domain.VerifyEmailMessageType, true) diff --git a/internal/notification/types/email_verification_code_test.go b/internal/notification/types/email_verification_code_test.go new file mode 100644 index 000000000..0e1975fbc --- /dev/null +++ b/internal/notification/types/email_verification_code_test.go @@ -0,0 +1,107 @@ +package types + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/zitadel/zitadel/internal/domain" + caos_errs "github.com/zitadel/zitadel/internal/errors" + "github.com/zitadel/zitadel/internal/query" +) + +func TestNotify_SendEmailVerificationCode(t *testing.T) { + type res struct { + url string + args map[string]interface{} + messageType string + allowUnverifiedNotificationChannel bool + } + notify := func(dst *res) Notify { + return func( + url string, + args map[string]interface{}, + messageType string, + allowUnverifiedNotificationChannel bool, + ) error { + dst.url = url + dst.args = args + dst.messageType = messageType + dst.allowUnverifiedNotificationChannel = allowUnverifiedNotificationChannel + return nil + } + } + + type args struct { + user *query.NotifyUser + origin string + code string + urlTmpl string + } + tests := []struct { + name string + args args + want *res + wantErr error + }{ + { + name: "default URL", + args: args{ + user: &query.NotifyUser{ + ID: "user1", + ResourceOwner: "org1", + }, + origin: "https://example.com", + code: "123", + urlTmpl: "", + }, + want: &res{ + url: "https://example.com/ui/login/mail/verification?userID=user1&code=123&orgID=org1", + args: map[string]interface{}{"Code": "123"}, + messageType: domain.VerifyEmailMessageType, + allowUnverifiedNotificationChannel: true, + }, + }, + { + name: "template error", + args: args{ + user: &query.NotifyUser{ + ID: "user1", + ResourceOwner: "org1", + }, + origin: "https://example.com", + code: "123", + urlTmpl: "{{", + }, + want: &res{}, + wantErr: caos_errs.ThrowInvalidArgument(nil, "USERv2-ooD8p", "Errors.User.Email.InvalidURLTemplate"), + }, + { + name: "template success", + args: args{ + user: &query.NotifyUser{ + ID: "user1", + ResourceOwner: "org1", + }, + origin: "https://example.com", + code: "123", + urlTmpl: "https://example.com/email/verify?userID={{.UserID}}&code={{.Code}}&orgID={{.OrgID}}", + }, + want: &res{ + url: "https://example.com/email/verify?userID=user1&code=123&orgID=org1", + args: map[string]interface{}{"Code": "123"}, + messageType: domain.VerifyEmailMessageType, + allowUnverifiedNotificationChannel: true, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := new(res) + err := notify(got).SendEmailVerificationCode(tt.args.user, tt.args.origin, tt.args.code, tt.args.urlTmpl) + require.ErrorIs(t, err, tt.wantErr) + assert.Equal(t, tt.want, got) + }) + } +} diff --git a/internal/protoc/protoc-gen-auth/auth_method_mapping.go.tmpl b/internal/protoc/protoc-gen-auth/auth_method_mapping.go.tmpl new file mode 100644 index 000000000..fc47ff49e --- /dev/null +++ b/internal/protoc/protoc-gen-auth/auth_method_mapping.go.tmpl @@ -0,0 +1,16 @@ +// Code generated by protoc-gen-auth. DO NOT EDIT. + +package {{.GoPackageName}} + +import ( + "github.com/zitadel/zitadel/internal/api/authz" +) + +var {{.ServiceName}}_AuthMethods = authz.MethodMapping { + {{ range $m := .AuthOptions}} + {{$.ServiceName}}_{{$m.Name}}_FullMethodName: authz.Option{ + Permission: "{{$m.Permission}}", + CheckParam: "{{$m.CheckFieldName}}", + }, + {{ end}} +} diff --git a/internal/protoc/protoc-gen-auth/main.go b/internal/protoc/protoc-gen-auth/main.go new file mode 100644 index 000000000..b0e78c699 --- /dev/null +++ b/internal/protoc/protoc-gen-auth/main.go @@ -0,0 +1,97 @@ +package main + +import ( + "bytes" + _ "embed" + "fmt" + "io" + "os" + "text/template" + + "google.golang.org/protobuf/compiler/protogen" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/descriptorpb" + "google.golang.org/protobuf/types/pluginpb" + + "github.com/zitadel/zitadel/internal/protoc/protoc-gen-authoption/authoption" +) + +var ( + //go:embed auth_method_mapping.go.tmpl + authTemplate []byte +) + +type authMethods struct { + GoPackageName string + ProtoPackageName string + ServiceName string + AuthOptions []authOption +} + +type authOption struct { + Name string + Permission string + CheckFieldName string +} + +func main() { + + input, _ := io.ReadAll(os.Stdin) + var req pluginpb.CodeGeneratorRequest + err := proto.Unmarshal(input, &req) + if err != nil { + panic(err) + } + + opts := protogen.Options{} + plugin, err := opts.New(&req) + if err != nil { + panic(err) + } + plugin.SupportedFeatures = uint64(pluginpb.CodeGeneratorResponse_FEATURE_PROTO3_OPTIONAL) + + authTemp := loadTemplate(authTemplate) + + for _, file := range plugin.Files { + + var buf bytes.Buffer + + var methods authMethods + for _, service := range file.Services { + methods.ServiceName = service.GoName + methods.GoPackageName = string(file.GoPackageName) + methods.ProtoPackageName = *file.Proto.Package + for _, method := range service.Methods { + if options := method.Desc.Options().(*descriptorpb.MethodOptions); options != nil { + ext := proto.GetExtension(options, authoption.E_AuthOption).(*authoption.AuthOption) + if ext != nil { + methods.AuthOptions = append(methods.AuthOptions, authOption{Name: string(method.Desc.Name()), Permission: ext.Permission, CheckFieldName: ext.CheckFieldName}) + } + } + } + } + if len(methods.AuthOptions) > 0 { + authTemp.Execute(&buf, &methods) + + filename := file.GeneratedFilenamePrefix + ".pb.authoptions.go" + file := plugin.NewGeneratedFile(filename, ".") + + file.Write(buf.Bytes()) + } + } + + // Generate a response from our plugin and marshall as protobuf + stdout := plugin.Response() + out, err := proto.Marshal(stdout) + if err != nil { + panic(err) + } + + // Write the response to stdout, to be picked up by protoc + fmt.Fprintf(os.Stdout, string(out)) +} + +func loadTemplate(templateData []byte) *template.Template { + return template.Must(template.New(""). + Parse(string(templateData))) +} diff --git a/internal/protoc/protoc-gen-authoption/README.md b/internal/protoc/protoc-gen-authoption/README.md deleted file mode 100644 index 793c57569..000000000 --- a/internal/protoc/protoc-gen-authoption/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# protoc-gen-authoption - -Proto options to annotate auth methods in protos - -## Generate protos/templates -protos: `go generate authoption/generate.go` -templates/install: `go generate generate.go` - -## Usage -``` -// proto file -import "authoption/options.proto"; - -service MyService { - - rpc Hello(Hello) returns (google.protobuf.Empty) { - option (google.api.http) = { - get: "/hello" - }; - - option (caos.zitadel.utils.v1.auth_option) = { - zitadel_permission: "hello.read" - zitadel_check_param: "id" - }; - } - - message Hello { - string id = 1; - } -} -``` -Caos Auth Option is used for granting groups -On each zitadel role is specified which auth methods are allowed to call - -Get protoc-get-authoption: ``go get github.com/zitadel/zitadel/internal/protoc/protoc-gen-authoption`` - -Protc-Flag: ``--authoption_out=.`` \ No newline at end of file diff --git a/internal/protoc/protoc-gen-authoption/generate.go b/internal/protoc/protoc-gen-authoption/generate.go deleted file mode 100644 index 3278b63e6..000000000 --- a/internal/protoc/protoc-gen-authoption/generate.go +++ /dev/null @@ -1,4 +0,0 @@ -package main - -//go:generate go-bindata -pkg main -o templates.gen.go templates -//go:generate go install diff --git a/internal/protoc/protoc-gen-authoption/main.go b/internal/protoc/protoc-gen-authoption/main.go deleted file mode 100644 index 5e4cbd683..000000000 --- a/internal/protoc/protoc-gen-authoption/main.go +++ /dev/null @@ -1,15 +0,0 @@ -package main - -import ( - base "github.com/zitadel/zitadel/internal/protoc/protoc-base" - "github.com/zitadel/zitadel/internal/protoc/protoc-gen-authoption/authoption" -) - -const ( - fileName = "%v.pb.authoptions.go" -) - -func main() { - base.RegisterExtension(authoption.E_AuthOption) - base.RunWithBaseTemplate(fileName, base.LoadTemplate(templatesAuth_method_mappingGoTmplBytes())) -} diff --git a/internal/protoc/protoc-gen-authoption/templates/auth_method_mapping.go.tmpl b/internal/protoc/protoc-gen-authoption/templates/auth_method_mapping.go.tmpl deleted file mode 100644 index bd6fe3b88..000000000 --- a/internal/protoc/protoc-gen-authoption/templates/auth_method_mapping.go.tmpl +++ /dev/null @@ -1,33 +0,0 @@ -// Code generated by protoc-gen-authmethod. DO NOT EDIT. - -package {{.File.GoPkg.Name}} - - -import ( - "google.golang.org/grpc" - - "github.com/zitadel/zitadel/internal/api/authz" - "github.com/zitadel/zitadel/internal/api/grpc/server/middleware" -) - -{{ range $s := .File.Services }} - -/** - * {{$s.Name}} - */ - -const {{$s.Name}}_MethodPrefix = "{{$.File.Package}}.{{$s.Name}}" - -var {{$s.Name}}_AuthMethods = authz.MethodMapping { - {{ range $m := $s.Method}} - {{ $mAuthOpt := option $m.Options "zitadel.v1.auth_option" }} - {{ if and $mAuthOpt $mAuthOpt.Permission }} - "/{{$.File.Package}}.{{$s.Name}}/{{.Name}}": authz.Option{ - Permission: "{{$mAuthOpt.Permission}}", - CheckParam: "{{$mAuthOpt.CheckFieldName}}", - }, - {{end}} - {{ end}} -} - -{{ end }} diff --git a/internal/repository/user/human_email.go b/internal/repository/user/human_email.go index 5732a7cac..a6a5b8a18 100644 --- a/internal/repository/user/human_email.go +++ b/internal/repository/user/human_email.go @@ -19,6 +19,7 @@ const ( HumanEmailVerificationFailedType = emailEventPrefix + "verification.failed" HumanEmailCodeAddedType = emailEventPrefix + "code.added" HumanEmailCodeSentType = emailEventPrefix + "code.sent" + HumanEmailConfirmURLAddedType = emailEventPrefix + "confirm_url.added" ) type HumanEmailChangedEvent struct { @@ -121,8 +122,10 @@ func HumanEmailVerificationFailedEventMapper(event *repository.Event) (eventstor type HumanEmailCodeAddedEvent struct { eventstore.BaseEvent `json:"-"` - Code *crypto.CryptoValue `json:"code,omitempty"` - Expiry time.Duration `json:"expiry,omitempty"` + Code *crypto.CryptoValue `json:"code,omitempty"` + Expiry time.Duration `json:"expiry,omitempty"` + URLTemplate string `json:"url_template,omitempty"` + CodeReturned bool `json:"code_returned,omitempty"` } func (e *HumanEmailCodeAddedEvent) Data() interface{} { @@ -137,15 +140,29 @@ func NewHumanEmailCodeAddedEvent( ctx context.Context, aggregate *eventstore.Aggregate, code *crypto.CryptoValue, - expiry time.Duration) *HumanEmailCodeAddedEvent { + expiry time.Duration, +) *HumanEmailCodeAddedEvent { + return NewHumanEmailCodeAddedEventV2(ctx, aggregate, code, expiry, "", false) +} + +func NewHumanEmailCodeAddedEventV2( + ctx context.Context, + aggregate *eventstore.Aggregate, + code *crypto.CryptoValue, + expiry time.Duration, + urlTemplate string, + codeReturned bool, +) *HumanEmailCodeAddedEvent { return &HumanEmailCodeAddedEvent{ BaseEvent: *eventstore.NewBaseEventForPush( ctx, aggregate, HumanEmailCodeAddedType, ), - Code: code, - Expiry: expiry, + Code: code, + Expiry: expiry, + URLTemplate: urlTemplate, + CodeReturned: codeReturned, } } diff --git a/internal/static/i18n/de.yaml b/internal/static/i18n/de.yaml index ebd123f1c..9cf6f96f4 100644 --- a/internal/static/i18n/de.yaml +++ b/internal/static/i18n/de.yaml @@ -81,6 +81,7 @@ Errors: NotChanged: Email wurde nicht geändert Empty: Email ist leer IDMissing: Email ID fehlt + InvalidURLTemplate: URL Template ist ungültig Phone: NotFound: Telefonnummer nicht gefunden Invalid: Telefonnummer ist ungültig diff --git a/internal/static/i18n/en.yaml b/internal/static/i18n/en.yaml index 6049ea0ed..c5d3c36b2 100644 --- a/internal/static/i18n/en.yaml +++ b/internal/static/i18n/en.yaml @@ -81,6 +81,7 @@ Errors: NotChanged: Email not changed Empty: Email is empty IDMissing: Email ID is missing + InvalidURLTemplate: URL Template is invalid Phone: NotFound: Phone not found Invalid: Phone is invalid diff --git a/internal/static/i18n/es.yaml b/internal/static/i18n/es.yaml index 7ac109b3d..63ffb3981 100644 --- a/internal/static/i18n/es.yaml +++ b/internal/static/i18n/es.yaml @@ -81,6 +81,7 @@ Errors: NotChanged: El email no ha cambiado Empty: El email no está vacío IDMissing: Falta el ID del email + InvalidURLTemplate: La plantilla URL no es válida Phone: NotFound: Teléfono no encontrado Invalid: El teléfono no es válido diff --git a/internal/static/i18n/fr.yaml b/internal/static/i18n/fr.yaml index 77043e07a..184cd83f0 100644 --- a/internal/static/i18n/fr.yaml +++ b/internal/static/i18n/fr.yaml @@ -81,6 +81,7 @@ Errors: NotChanged: L'adresse électronique n'a pas changé Empty: Email est vide IDMissing: Email ID manquant + InvalidURLTemplate: Le modèle d'URL n'est pas valide Phone: Notfound: Téléphone non trouvé Invalid: Le téléphone n'est pas valide diff --git a/internal/static/i18n/it.yaml b/internal/static/i18n/it.yaml index 426d0f453..1f9056cf5 100644 --- a/internal/static/i18n/it.yaml +++ b/internal/static/i18n/it.yaml @@ -81,6 +81,7 @@ Errors: NotChanged: Email non cambiata Empty: Email è vuota IDMissing: Email ID mancante + InvalidURLTemplate: Il modello di URL non è valido Phone: NotFound: Telefono non trovato Invalid: Il telefono non è valido diff --git a/internal/static/i18n/ja.yaml b/internal/static/i18n/ja.yaml index 7c07972e1..8f347b02d 100644 --- a/internal/static/i18n/ja.yaml +++ b/internal/static/i18n/ja.yaml @@ -76,6 +76,7 @@ Errors: Invalid: 無効なメールアドレスです AlreadyVerified: メールアドレスはすでに検証済みです NotChanged: メールアドレスが変更されていません + InvalidURLTemplate: URLテンプレートが無効です Phone: NotFound: 電話番号が見つかりません Invalid: 無効な電話番号です diff --git a/internal/static/i18n/pl.yaml b/internal/static/i18n/pl.yaml index 4f69639a7..0ef614bff 100644 --- a/internal/static/i18n/pl.yaml +++ b/internal/static/i18n/pl.yaml @@ -81,6 +81,7 @@ Errors: NotChanged: Adres e-mail nie zmieniony Empty: Adres e-mail jest pusty IDMissing: Adres e-mail ID brakuje + InvalidURLTemplate: Szablon URL jest nieprawidłowy Phone: NotFound: Numer telefonu nie znaleziony Invalid: Numer telefonu jest nieprawidłowy diff --git a/internal/static/i18n/zh.yaml b/internal/static/i18n/zh.yaml index 96b731f6b..31c679ea2 100644 --- a/internal/static/i18n/zh.yaml +++ b/internal/static/i18n/zh.yaml @@ -81,6 +81,7 @@ Errors: NotChanged: 电子邮件未更改 Empty: 电子邮件是空的 IDMissing: 电子邮件ID丢失 + InvalidURLTemplate: URL模板无效 Phone: NotFound: 手机号码未找到 Invalid: 手机号码无效 diff --git a/proto/zitadel/admin.proto b/proto/zitadel/admin.proto index da7ccb4e4..1424d7cd2 100644 --- a/proto/zitadel/admin.proto +++ b/proto/zitadel/admin.proto @@ -2801,7 +2801,7 @@ service AdminService { rpc ResetCustomPasswordResetMessageTextToDefault(ResetCustomPasswordResetMessageTextToDefaultRequest) returns (ResetCustomPasswordResetMessageTextToDefaultResponse) { option (google.api.http) = { - delete: "/text/message/verifyemail/{language}" + delete: "/text/message/passwordreset/{language}" }; option (zitadel.v1.auth_option) = { diff --git a/proto/zitadel/management.proto b/proto/zitadel/management.proto index 1c92cffd8..cf055e4a5 100644 --- a/proto/zitadel/management.proto +++ b/proto/zitadel/management.proto @@ -5588,7 +5588,7 @@ service ManagementService { rpc ResetCustomPasswordResetMessageTextToDefault(ResetCustomPasswordResetMessageTextToDefaultRequest) returns (ResetCustomPasswordResetMessageTextToDefaultResponse) { option (google.api.http) = { - delete: "/text/message/verifyemail/{language}" + delete: "/text/message/passwordreset/{language}" }; option (zitadel.v1.auth_option) = { diff --git a/proto/zitadel/object/v2alpha/object.proto b/proto/zitadel/object/v2alpha/object.proto new file mode 100644 index 000000000..c11b12257 --- /dev/null +++ b/proto/zitadel/object/v2alpha/object.proto @@ -0,0 +1,40 @@ +syntax = "proto3"; + +package zitadel.object.v2alpha; + +option go_package = "github.com/zitadel/zitadel/pkg/grpc/object/v2alpha;object"; + +import "google/protobuf/timestamp.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; + +message OrgContext { + oneof ctx { + string org_id = 1; + string org_domain = 2; + } +} + +message Details { + //sequence represents the order of events. It's always counting + // + // on read: the sequence of the last event reduced by the projection + // + // on manipulation: the timestamp of the event(s) added by the manipulation + uint64 sequence = 1 [ + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + example: "\"2\""; + } + ]; + //change_date is the timestamp when the object was changed + // + // on read: the timestamp of the last event reduced by the projection + // + // on manipulation: the timestamp of the event(s) added by the manipulation + google.protobuf.Timestamp change_date = 2; + //resource_owner is the organization or instance_id an object belongs to + string resource_owner = 3 [ + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + example: "\"69629023906488334\""; + } + ]; +} diff --git a/proto/zitadel/user/v2alpha/email.proto b/proto/zitadel/user/v2alpha/email.proto new file mode 100644 index 000000000..daa744fe1 --- /dev/null +++ b/proto/zitadel/user/v2alpha/email.proto @@ -0,0 +1,27 @@ +syntax = "proto3"; + +package zitadel.user.v2alpha; + +option go_package = "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha;user"; + +import "google/api/annotations.proto"; +import "google/api/field_behavior.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; +import "validate/validate.proto"; + + +message SendEmailVerificationCode { + optional string url_template = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"https://example.com/email/verify?userID={{.UserID}}&code={{.Code}}&orgID={{.OrgID}}\""; + description: "\"Optionally set a url_template, which will be used in the verification mail sent by ZITADEL to guide the user to your verification page. If no template is set, the default ZITADEL url will be used.\"" + } + ]; +} + +message ReturnEmailVerificationCode {} + diff --git a/proto/zitadel/user/v2alpha/user_service.proto b/proto/zitadel/user/v2alpha/user_service.proto index f16bb8ecf..a9a1f26d4 100644 --- a/proto/zitadel/user/v2alpha/user_service.proto +++ b/proto/zitadel/user/v2alpha/user_service.proto @@ -3,39 +3,32 @@ syntax = "proto3"; package zitadel.user.v2alpha; import "zitadel/options.proto"; -import "zitadel/user/v2alpha/user.proto"; +import "zitadel/object/v2alpha/object.proto"; +import "zitadel/user/v2alpha/email.proto"; import "google/api/annotations.proto"; +import "google/api/field_behavior.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; import "validate/validate.proto"; option go_package = "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha;user"; service UserService { - // TestGet simply demonstrates how the context (org, instance) could be handled in a GET request // - // - // this request is subject to change and currently used for demonstration only - rpc TestGet (TestGetRequest) returns (TestGetResponse) { + rpc SetEmail (SetEmailRequest) returns (SetEmailResponse) { option (google.api.http) = { - get: "/v2alpha/users/test" - }; - } - - // TestPOST simply demonstrates how the context (org, instance) could be handled in a POST request - // - // this request is subject to change and currently used for demonstration only - rpc TestPost (TestPostRequest) returns (TestPostResponse) { - option (google.api.http) = { - post: "/v2alpha/users/test" + post: "/v2alpha/users/{user_id}/email" body: "*" }; + + option (zitadel.v1.auth_option) = { + permission: "authenticated" + }; } - // TestAuth demonstrates how the context (org, instance) could be handled in combination of the authorized context - // - // this request is subject to change and currently used for demonstration only - rpc TestAuth (TestAuthRequest) returns (TestAuthResponse) { + rpc VerifyEmail (VerifyEmailRequest) returns (VerifyEmailResponse) { option (google.api.http) = { - get: "/v2alpha/users/test_auth" + post: "/v2alpha/users/{user_id}/email/_verify" + body: "*" }; option (zitadel.v1.auth_option) = { @@ -44,35 +37,61 @@ service UserService { } } -message TestGetRequest{ - Context ctx = 1; -} - -message TestGetResponse{ - string ctx = 1; -} - -message TestPostRequest{ - Context ctx = 1; -} - -message TestPostResponse{ - string ctx = 1; -} - -message TestAuthRequest{ - Context ctx = 1; -} - -message TestAuthResponse{ - User user = 1; - Context ctx = 2; -} - -message Context { - oneof ctx { - bool instance = 1; - string org_id = 2; - string org_domain = 3; +message SetEmailRequest{ + string user_id = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"69629026806489455\""; + } + ]; + string email = 2 [ + (validate.rules).string = {min_len: 1, max_len: 200, email: true}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"mini@mouse.com\""; + } + ]; + // if no verification is specified, an email is sent with the default url + oneof verification { + SendEmailVerificationCode send_code = 3; + ReturnEmailVerificationCode return_code = 4; + bool is_verified = 5 [(validate.rules).bool.const = true]; } } + +message SetEmailResponse{ + zitadel.object.v2alpha.Details details = 1; + // in case the verification was set to return_code, the code will be returned + optional string verification_code = 2; +} + +message VerifyEmailRequest{ + string user_id = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"69629026806489455\""; + } + ]; + string verification_code = 2 [ + (validate.rules).string = {min_len: 1, max_len: 20}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 20; + example: "\"SKJd342k\""; + description: "\"the verification code generated during the set email request\""; + } + ]; +} + +message VerifyEmailResponse{ + zitadel.object.v2alpha.Details details = 1; +} diff --git a/tools/go.mod b/tools/go.mod index 604ee5704..b2135488f 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -3,17 +3,28 @@ module github.com/zitadel/zitadel/tools go 1.15 require ( - github.com/envoyproxy/protoc-gen-validate v0.6.1 + github.com/Masterminds/goutils v1.1.1 // indirect + github.com/Masterminds/semver v1.5.0 // indirect + github.com/Masterminds/sprig v2.22.0+incompatible // indirect + github.com/envoyproxy/protoc-gen-validate v0.10.1 github.com/go-bindata/go-bindata/v3 v3.1.3 - github.com/golang/mock v1.4.4 - github.com/grpc-ecosystem/grpc-gateway/v2 v2.2.0 - github.com/iancoleman/strcase v0.1.3 // indirect - github.com/kisielk/errcheck v1.5.0 // indirect - github.com/lyft/protoc-gen-star v0.5.2 // indirect - github.com/pseudomuto/protoc-gen-doc v1.4.1 + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/glog v1.1.1 // indirect + github.com/golang/mock v1.6.0 + github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 + github.com/huandu/xstrings v1.4.0 // indirect + github.com/imdario/mergo v0.3.15 // indirect + github.com/kisielk/errcheck v1.6.3 // indirect + github.com/lyft/protoc-gen-star/v2 v2.0.3 // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect + github.com/mwitkow/go-proto-validators v0.3.2 // indirect + github.com/pseudomuto/protoc-gen-doc v1.5.1 + github.com/pseudomuto/protokit v0.2.1 // indirect github.com/rakyll/statik v0.1.7 - github.com/spf13/afero v1.5.1 // indirect - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 - google.golang.org/protobuf v1.26.0 - gopkg.in/yaml.v2 v2.4.0 // indirect + github.com/spf13/afero v1.9.5 // indirect + golang.org/x/crypto v0.8.0 // indirect + golang.org/x/tools v0.8.0 // indirect + google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 + google.golang.org/protobuf v1.30.0 ) diff --git a/tools/go.sum b/tools/go.sum index e087e3f39..98976a176 100644 --- a/tools/go.sum +++ b/tools/go.sum @@ -3,6 +3,7 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= @@ -13,62 +14,681 @@ cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKV cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= +cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.1/go.mod h1:fs4QogzfH5n2pBXBP9vRiU+eCny7lD2vmFZy79Iuw1U= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= +cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= +cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= +cloud.google.com/go v0.105.0/go.mod h1:PrLgOJNe5nfE9UMxKxgXj4mD3voiP+YQ6gdt6KMFOKM= +cloud.google.com/go v0.107.0/go.mod h1:wpc2eNrD7hXUTy8EKS10jkxpZBjASrORK7goS+3YX2I= +cloud.google.com/go v0.110.0/go.mod h1:SJnCLqQ0FCFGSZMUNUf84MV3Aia54kn7pi8st7tMzaY= +cloud.google.com/go/accessapproval v1.4.0/go.mod h1:zybIuC3KpDOvotz59lFe5qxRZx6C75OtwbisN56xYB4= +cloud.google.com/go/accessapproval v1.5.0/go.mod h1:HFy3tuiGvMdcd/u+Cu5b9NkO1pEICJ46IR82PoUdplw= +cloud.google.com/go/accessapproval v1.6.0/go.mod h1:R0EiYnwV5fsRFiKZkPHr6mwyk2wxUJ30nL4j2pcFY2E= +cloud.google.com/go/accesscontextmanager v1.3.0/go.mod h1:TgCBehyr5gNMz7ZaH9xubp+CE8dkrszb4oK9CWyvD4o= +cloud.google.com/go/accesscontextmanager v1.4.0/go.mod h1:/Kjh7BBu/Gh83sv+K60vN9QE5NJcd80sU33vIe2IFPE= +cloud.google.com/go/accesscontextmanager v1.6.0/go.mod h1:8XCvZWfYw3K/ji0iVnp+6pu7huxoQTLmxAbVjbloTtM= +cloud.google.com/go/accesscontextmanager v1.7.0/go.mod h1:CEGLewx8dwa33aDAZQujl7Dx+uYhS0eay198wB/VumQ= +cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= +cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/aiplatform v1.27.0/go.mod h1:Bvxqtl40l0WImSb04d0hXFU7gDOiq9jQmorivIiWcKg= +cloud.google.com/go/aiplatform v1.35.0/go.mod h1:7MFT/vCaOyZT/4IIFfxH4ErVg/4ku6lKv3w0+tFTgXQ= +cloud.google.com/go/aiplatform v1.36.1/go.mod h1:WTm12vJRPARNvJ+v6P52RDHCNe4AhvjcIZ/9/RRHy/k= +cloud.google.com/go/aiplatform v1.37.0/go.mod h1:IU2Cv29Lv9oCn/9LkFiiuKfwrRTq+QQMbW+hPCxJGZw= +cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= +cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/analytics v0.17.0/go.mod h1:WXFa3WSym4IZ+JiKmavYdJwGG/CvpqiqczmL59bTD9M= +cloud.google.com/go/analytics v0.18.0/go.mod h1:ZkeHGQlcIPkw0R/GW+boWHhCOR43xz9RN/jn7WcqfIE= +cloud.google.com/go/analytics v0.19.0/go.mod h1:k8liqf5/HCnOUkbawNtrWWc+UAzyDlW89doe8TtoDsE= +cloud.google.com/go/apigateway v1.3.0/go.mod h1:89Z8Bhpmxu6AmUxuVRg/ECRGReEdiP3vQtk4Z1J9rJk= +cloud.google.com/go/apigateway v1.4.0/go.mod h1:pHVY9MKGaH9PQ3pJ4YLzoj6U5FUDeDFBllIz7WmzJoc= +cloud.google.com/go/apigateway v1.5.0/go.mod h1:GpnZR3Q4rR7LVu5951qfXPJCHquZt02jf7xQx7kpqN8= +cloud.google.com/go/apigeeconnect v1.3.0/go.mod h1:G/AwXFAKo0gIXkPTVfZDd2qA1TxBXJ3MgMRBQkIi9jc= +cloud.google.com/go/apigeeconnect v1.4.0/go.mod h1:kV4NwOKqjvt2JYR0AoIWo2QGfoRtn/pkS3QlHp0Ni04= +cloud.google.com/go/apigeeconnect v1.5.0/go.mod h1:KFaCqvBRU6idyhSNyn3vlHXc8VMDJdRmwDF6JyFRqZ8= +cloud.google.com/go/apigeeregistry v0.4.0/go.mod h1:EUG4PGcsZvxOXAdyEghIdXwAEi/4MEaoqLMLDMIwKXY= +cloud.google.com/go/apigeeregistry v0.5.0/go.mod h1:YR5+s0BVNZfVOUkMa5pAR2xGd0A473vA5M7j247o1wM= +cloud.google.com/go/apigeeregistry v0.6.0/go.mod h1:BFNzW7yQVLZ3yj0TKcwzb8n25CFBri51GVGOEUcgQsc= +cloud.google.com/go/apikeys v0.4.0/go.mod h1:XATS/yqZbaBK0HOssf+ALHp8jAlNHUgyfprvNcBIszU= +cloud.google.com/go/apikeys v0.5.0/go.mod h1:5aQfwY4D+ewMMWScd3hm2en3hCj+BROlyrt3ytS7KLI= +cloud.google.com/go/apikeys v0.6.0/go.mod h1:kbpXu5upyiAlGkKrJgQl8A0rKNNJ7dQ377pdroRSSi8= +cloud.google.com/go/appengine v1.4.0/go.mod h1:CS2NhuBuDXM9f+qscZ6V86m1MIIqPj3WC/UoEuR1Sno= +cloud.google.com/go/appengine v1.5.0/go.mod h1:TfasSozdkFI0zeoxW3PTBLiNqRmzraodCWatWI9Dmak= +cloud.google.com/go/appengine v1.6.0/go.mod h1:hg6i0J/BD2cKmDJbaFSYHFyZkgBEfQrDg/X0V5fJn84= +cloud.google.com/go/appengine v1.7.0/go.mod h1:eZqpbHFCqRGa2aCdope7eC0SWLV1j0neb/QnMJVWx6A= +cloud.google.com/go/appengine v1.7.1/go.mod h1:IHLToyb/3fKutRysUlFO0BPt5j7RiQ45nrzEJmKTo6E= +cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= +cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/area120 v0.7.0/go.mod h1:a3+8EUD1SX5RUcCs3MY5YasiO1z6yLiNLRiFrykbynY= +cloud.google.com/go/area120 v0.7.1/go.mod h1:j84i4E1RboTWjKtZVWXPqvK5VHQFJRF2c1Nm69pWm9k= +cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= +cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/artifactregistry v1.8.0/go.mod h1:w3GQXkJX8hiKN0v+at4b0qotwijQbYUqF2GWkZzAhC0= +cloud.google.com/go/artifactregistry v1.9.0/go.mod h1:2K2RqvA2CYvAeARHRkLDhMDJ3OXy26h3XW+3/Jh2uYc= +cloud.google.com/go/artifactregistry v1.11.1/go.mod h1:lLYghw+Itq9SONbCa1YWBoWs1nOucMH0pwXN1rOBZFI= +cloud.google.com/go/artifactregistry v1.11.2/go.mod h1:nLZns771ZGAwVLzTX/7Al6R9ehma4WUEhZGWV6CeQNQ= +cloud.google.com/go/artifactregistry v1.12.0/go.mod h1:o6P3MIvtzTOnmvGagO9v/rOjjA0HmhJ+/6KAXrmYDCI= +cloud.google.com/go/artifactregistry v1.13.0/go.mod h1:uy/LNfoOIivepGhooAUpL1i30Hgee3Cu0l4VTWHUC08= +cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= +cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= +cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= +cloud.google.com/go/asset v1.9.0/go.mod h1:83MOE6jEJBMqFKadM9NLRcs80Gdw76qGuHn8m3h8oHQ= +cloud.google.com/go/asset v1.10.0/go.mod h1:pLz7uokL80qKhzKr4xXGvBQXnzHn5evJAEAtZiIb0wY= +cloud.google.com/go/asset v1.11.1/go.mod h1:fSwLhbRvC9p9CXQHJ3BgFeQNM4c9x10lqlrdEUYXlJo= +cloud.google.com/go/asset v1.12.0/go.mod h1:h9/sFOa4eDIyKmH6QMpm4eUK3pDojWnUhTgJlk762Hg= +cloud.google.com/go/asset v1.13.0/go.mod h1:WQAMyYek/b7NBpYq/K4KJWcRqzoalEsxz/t/dTk4THw= +cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= +cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= +cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/assuredworkloads v1.8.0/go.mod h1:AsX2cqyNCOvEQC8RMPnoc0yEarXQk6WEKkxYfL6kGIo= +cloud.google.com/go/assuredworkloads v1.9.0/go.mod h1:kFuI1P78bplYtT77Tb1hi0FMxM0vVpRC7VVoJC3ZoT0= +cloud.google.com/go/assuredworkloads v1.10.0/go.mod h1:kwdUQuXcedVdsIaKgKTp9t0UJkE5+PAVNhdQm4ZVq2E= +cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= +cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= +cloud.google.com/go/automl v1.7.0/go.mod h1:RL9MYCCsJEOmt0Wf3z9uzG0a7adTT1fe+aObgSpkCt8= +cloud.google.com/go/automl v1.8.0/go.mod h1:xWx7G/aPEe/NP+qzYXktoBSDfjO+vnKMGgsApGJJquM= +cloud.google.com/go/automl v1.12.0/go.mod h1:tWDcHDp86aMIuHmyvjuKeeHEGq76lD7ZqfGLN6B0NuU= +cloud.google.com/go/baremetalsolution v0.3.0/go.mod h1:XOrocE+pvK1xFfleEnShBlNAXf+j5blPPxrhjKgnIFc= +cloud.google.com/go/baremetalsolution v0.4.0/go.mod h1:BymplhAadOO/eBa7KewQ0Ppg4A4Wplbn+PsFKRLo0uI= +cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/batch v0.3.0/go.mod h1:TR18ZoAekj1GuirsUsR1ZTKN3FC/4UDnScjT8NXImFE= +cloud.google.com/go/batch v0.4.0/go.mod h1:WZkHnP43R/QCGQsZ+0JyG4i79ranE2u8xvjq/9+STPE= +cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/beyondcorp v0.2.0/go.mod h1:TB7Bd+EEtcw9PCPQhCJtJGjk/7TC6ckmnSFS+xwTfm4= +cloud.google.com/go/beyondcorp v0.3.0/go.mod h1:E5U5lcrcXMsCuoDNyGrpyTm/hn7ne941Jz2vmksAxW8= +cloud.google.com/go/beyondcorp v0.4.0/go.mod h1:3ApA0mbhHx6YImmuubf5pyW8srKnCEPON32/5hj+RmM= +cloud.google.com/go/beyondcorp v0.5.0/go.mod h1:uFqj9X+dSfrheVp7ssLTaRHd2EHqSL4QZmH4e8WXGGU= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/bigquery v1.43.0/go.mod h1:ZMQcXHsl+xmU1z36G2jNGZmKp9zNY5BUua5wDgmNCfw= +cloud.google.com/go/bigquery v1.44.0/go.mod h1:0Y33VqXTEsbamHJvJHdFmtqHvMIY28aK1+dFsvaChGc= +cloud.google.com/go/bigquery v1.47.0/go.mod h1:sA9XOgy0A8vQK9+MWhEQTY6Tix87M/ZurWFIxmF9I/E= +cloud.google.com/go/bigquery v1.48.0/go.mod h1:QAwSz+ipNgfL5jxiaK7weyOhzdoAy1zFm0Nf1fysJac= +cloud.google.com/go/bigquery v1.49.0/go.mod h1:Sv8hMmTFFYBlt/ftw2uN6dFdQPzBlREY9yBh7Oy7/4Q= +cloud.google.com/go/bigquery v1.50.0/go.mod h1:YrleYEh2pSEbgTBZYMJ5SuSr0ML3ypjRB1zgf7pvQLU= +cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= +cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/billing v1.6.0/go.mod h1:WoXzguj+BeHXPbKfNWkqVtDdzORazmCjraY+vrxcyvI= +cloud.google.com/go/billing v1.7.0/go.mod h1:q457N3Hbj9lYwwRbnlD7vUpyjq6u5U1RAOArInEiD5Y= +cloud.google.com/go/billing v1.12.0/go.mod h1:yKrZio/eu+okO/2McZEbch17O5CB5NpZhhXG6Z766ss= +cloud.google.com/go/billing v1.13.0/go.mod h1:7kB2W9Xf98hP9Sr12KfECgfGclsH3CQR0R08tnRlRbc= +cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= +cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/binaryauthorization v1.3.0/go.mod h1:lRZbKgjDIIQvzYQS1p99A7/U1JqvqeZg0wiI5tp6tg0= +cloud.google.com/go/binaryauthorization v1.4.0/go.mod h1:tsSPQrBd77VLplV70GUhBf/Zm3FsKmgSqgm4UmiDItk= +cloud.google.com/go/binaryauthorization v1.5.0/go.mod h1:OSe4OU1nN/VswXKRBmciKpo9LulY41gch5c68htf3/Q= +cloud.google.com/go/certificatemanager v1.3.0/go.mod h1:n6twGDvcUBFu9uBgt4eYvvf3sQ6My8jADcOVwHmzadg= +cloud.google.com/go/certificatemanager v1.4.0/go.mod h1:vowpercVFyqs8ABSmrdV+GiFf2H/ch3KyudYQEMM590= +cloud.google.com/go/certificatemanager v1.6.0/go.mod h1:3Hh64rCKjRAX8dXgRAyOcY5vQ/fE1sh8o+Mdd6KPgY8= +cloud.google.com/go/channel v1.8.0/go.mod h1:W5SwCXDJsq/rg3tn3oG0LOxpAo6IMxNa09ngphpSlnk= +cloud.google.com/go/channel v1.9.0/go.mod h1:jcu05W0my9Vx4mt3/rEHpfxc9eKi9XwsdDL8yBMbKUk= +cloud.google.com/go/channel v1.11.0/go.mod h1:IdtI0uWGqhEeatSB62VOoJ8FSUhJ9/+iGkJVqp74CGE= +cloud.google.com/go/channel v1.12.0/go.mod h1:VkxCGKASi4Cq7TbXxlaBezonAYpp1GCnKMY6tnMQnLU= +cloud.google.com/go/cloudbuild v1.3.0/go.mod h1:WequR4ULxlqvMsjDEEEFnOG5ZSRSgWOywXYDb1vPE6U= +cloud.google.com/go/cloudbuild v1.4.0/go.mod h1:5Qwa40LHiOXmz3386FrjrYM93rM/hdRr7b53sySrTqA= +cloud.google.com/go/cloudbuild v1.6.0/go.mod h1:UIbc/w9QCbH12xX+ezUsgblrWv+Cv4Tw83GiSMHOn9M= +cloud.google.com/go/cloudbuild v1.7.0/go.mod h1:zb5tWh2XI6lR9zQmsm1VRA+7OCuve5d8S+zJUul8KTg= +cloud.google.com/go/cloudbuild v1.9.0/go.mod h1:qK1d7s4QlO0VwfYn5YuClDGg2hfmLZEb4wQGAbIgL1s= +cloud.google.com/go/clouddms v1.3.0/go.mod h1:oK6XsCDdW4Ib3jCCBugx+gVjevp2TMXFtgxvPSee3OM= +cloud.google.com/go/clouddms v1.4.0/go.mod h1:Eh7sUGCC+aKry14O1NRljhjyrr0NFC0G2cjwX0cByRk= +cloud.google.com/go/clouddms v1.5.0/go.mod h1:QSxQnhikCLUw13iAbffF2CZxAER3xDGNHjsTAkQJcQA= +cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= +cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/cloudtasks v1.7.0/go.mod h1:ImsfdYWwlWNJbdgPIIGJWC+gemEGTBK/SunNQQNCAb4= +cloud.google.com/go/cloudtasks v1.8.0/go.mod h1:gQXUIwCSOI4yPVK7DgTVFiiP0ZW/eQkydWzwVMdHxrI= +cloud.google.com/go/cloudtasks v1.9.0/go.mod h1:w+EyLsVkLWHcOaqNEyvcKAsWp9p29dL6uL9Nst1cI7Y= +cloud.google.com/go/cloudtasks v1.10.0/go.mod h1:NDSoTLkZ3+vExFEWu2UJV1arUyzVDAiZtdWcsUyNwBs= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= +cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= +cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= +cloud.google.com/go/compute v1.12.0/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.12.1/go.mod h1:e8yNOBcBONZU1vJKCvCoDw/4JQsA0dpM4x/6PIIOocU= +cloud.google.com/go/compute v1.13.0/go.mod h1:5aPTS0cUNMIc1CE546K+Th6weJUNQErARyZtRXDJ8GE= +cloud.google.com/go/compute v1.14.0/go.mod h1:YfLtxrj9sU4Yxv+sXzZkyPjEyPBZfXHUvjxega5vAdo= +cloud.google.com/go/compute v1.15.1/go.mod h1:bjjoF/NtFUrkD/urWfdHaKuOPDR5nWIs63rR+SXhcpA= +cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.0/go.mod h1:rikpw2y+UMidAe9tISo04EHNOIf42RLYF/q8Bs93scU= +cloud.google.com/go/compute/metadata v0.1.0/go.mod h1:Z1VN+bulIf6bt4P/C37K4DyZYZEXYonfTBHHFPO/4UU= +cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +cloud.google.com/go/compute/metadata v0.2.1/go.mod h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/contactcenterinsights v1.3.0/go.mod h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY= +cloud.google.com/go/contactcenterinsights v1.4.0/go.mod h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck= +cloud.google.com/go/contactcenterinsights v1.6.0/go.mod h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w= +cloud.google.com/go/container v1.6.0/go.mod h1:Xazp7GjJSeUYo688S+6J5V+n/t+G5sKBTFkKNudGRxg= +cloud.google.com/go/container v1.7.0/go.mod h1:Dp5AHtmothHGX3DwwIHPgq45Y8KmNsgN3amoYfxVkLo= +cloud.google.com/go/container v1.13.1/go.mod h1:6wgbMPeQRw9rSnKBCAJXnds3Pzj03C4JHamr8asWKy4= +cloud.google.com/go/container v1.14.0/go.mod h1:3AoJMPhHfLDxLvrlVWaK57IXzaPnLaZq63WX59aQBfM= +cloud.google.com/go/container v1.15.0/go.mod h1:ft+9S0WGjAyjDggg5S06DXj+fHJICWg8L7isCQe9pQA= +cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= +cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/containeranalysis v0.7.0/go.mod h1:9aUL+/vZ55P2CXfuZjS4UjQ9AgXoSw8Ts6lemfmxBxI= +cloud.google.com/go/containeranalysis v0.9.0/go.mod h1:orbOANbwk5Ejoom+s+DUCTTJ7IBdBQJDcSylAx/on9s= +cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= +cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= +cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/datacatalog v1.7.0/go.mod h1:9mEl4AuDYWw81UGc41HonIHH7/sn52H0/tc8f8ZbZIE= +cloud.google.com/go/datacatalog v1.8.0/go.mod h1:KYuoVOv9BM8EYz/4eMFxrr4DUKhGIOXxZoKYF5wdISM= +cloud.google.com/go/datacatalog v1.8.1/go.mod h1:RJ58z4rMp3gvETA465Vg+ag8BGgBdnRPEMMSTr5Uv+M= +cloud.google.com/go/datacatalog v1.12.0/go.mod h1:CWae8rFkfp6LzLumKOnmVh4+Zle4A3NXLzVJ1d1mRm0= +cloud.google.com/go/datacatalog v1.13.0/go.mod h1:E4Rj9a5ZtAxcQJlEBTLgMTphfP11/lNaAshpoBgemX8= +cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= +cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataflow v0.8.0/go.mod h1:Rcf5YgTKPtQyYz8bLYhFoIV/vP39eL7fWNcSOyFfLJE= +cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= +cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/dataform v0.5.0/go.mod h1:GFUYRe8IBa2hcomWplodVmUx/iTL0FrsauObOM3Ipr0= +cloud.google.com/go/dataform v0.6.0/go.mod h1:QPflImQy33e29VuapFdf19oPbE4aYTJxr31OAPV+ulA= +cloud.google.com/go/dataform v0.7.0/go.mod h1:7NulqnVozfHvWUBpMDfKMUESr+85aJsC/2O0o3jWPDE= +cloud.google.com/go/datafusion v1.4.0/go.mod h1:1Zb6VN+W6ALo85cXnM1IKiPw+yQMKMhB9TsTSRDo/38= +cloud.google.com/go/datafusion v1.5.0/go.mod h1:Kz+l1FGHB0J+4XF2fud96WMmRiq/wj8N9u007vyXZ2w= +cloud.google.com/go/datafusion v1.6.0/go.mod h1:WBsMF8F1RhSXvVM8rCV3AeyWVxcC2xY6vith3iw3S+8= +cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= +cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/datalabeling v0.7.0/go.mod h1:WPQb1y08RJbmpM3ww0CSUAGweL0SxByuW2E+FU+wXcM= +cloud.google.com/go/dataplex v1.3.0/go.mod h1:hQuRtDg+fCiFgC8j0zV222HvzFQdRd+SVX8gdmFcZzA= +cloud.google.com/go/dataplex v1.4.0/go.mod h1:X51GfLXEMVJ6UN47ESVqvlsRplbLhcsAt0kZCCKsU0A= +cloud.google.com/go/dataplex v1.5.2/go.mod h1:cVMgQHsmfRoI5KFYq4JtIBEUbYwc3c7tXmIDhRmNNVQ= +cloud.google.com/go/dataplex v1.6.0/go.mod h1:bMsomC/aEJOSpHXdFKFGQ1b0TDPIeL28nJObeO1ppRs= +cloud.google.com/go/dataproc v1.7.0/go.mod h1:CKAlMjII9H90RXaMpSxQ8EU6dQx6iAYNPcYPOkSbi8s= +cloud.google.com/go/dataproc v1.8.0/go.mod h1:5OW+zNAH0pMpw14JVrPONsxMQYMBqJuzORhIBfBn9uI= +cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= +cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= +cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= +cloud.google.com/go/dataqna v0.7.0/go.mod h1:Lx9OcIIeqCrw1a6KdO3/5KMP1wAmTc0slZWwP12Qq3c= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastore v1.10.0/go.mod h1:PC5UzAmDEkAmkfaknstTYbNpgE49HAgW2J1gcgUfmdM= +cloud.google.com/go/datastore v1.11.0/go.mod h1:TvGxBIHCS50u8jzG+AW/ppf87v1of8nwzFNgEZU1D3c= +cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= +cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/datastream v1.4.0/go.mod h1:h9dpzScPhDTs5noEMQVWP8Wx8AFBRyS0s8KWPx/9r0g= +cloud.google.com/go/datastream v1.5.0/go.mod h1:6TZMMNPwjUqZHBKPQ1wwXpb0d5VDVPl2/XoS5yi88q4= +cloud.google.com/go/datastream v1.6.0/go.mod h1:6LQSuswqLa7S4rPAOZFVjHIG3wJIjZcZrw8JDEDJuIs= +cloud.google.com/go/datastream v1.7.0/go.mod h1:uxVRMm2elUSPuh65IbZpzJNMbuzkcvu5CjMqVIUHrww= +cloud.google.com/go/deploy v1.4.0/go.mod h1:5Xghikd4VrmMLNaF6FiRFDlHb59VM59YoDQnOUdsH/c= +cloud.google.com/go/deploy v1.5.0/go.mod h1:ffgdD0B89tToyW/U/D2eL0jN2+IEV/3EMuXHA0l4r+s= +cloud.google.com/go/deploy v1.6.0/go.mod h1:f9PTHehG/DjCom3QH0cntOVRm93uGBDt2vKzAPwpXQI= +cloud.google.com/go/deploy v1.8.0/go.mod h1:z3myEJnA/2wnB4sgjqdMfgxCA0EqC3RBTNcVPs93mtQ= +cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= +cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= +cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= +cloud.google.com/go/dialogflow v1.18.0/go.mod h1:trO7Zu5YdyEuR+BhSNOqJezyFQ3aUzz0njv7sMx/iek= +cloud.google.com/go/dialogflow v1.19.0/go.mod h1:JVmlG1TwykZDtxtTXujec4tQ+D8SBFMoosgy+6Gn0s0= +cloud.google.com/go/dialogflow v1.29.0/go.mod h1:b+2bzMe+k1s9V+F2jbJwpHPzrnIyHihAdRFMtn2WXuM= +cloud.google.com/go/dialogflow v1.31.0/go.mod h1:cuoUccuL1Z+HADhyIA7dci3N5zUssgpBJmCzI6fNRB4= +cloud.google.com/go/dialogflow v1.32.0/go.mod h1:jG9TRJl8CKrDhMEcvfcfFkkpp8ZhgPz3sBGmAUYJ2qE= +cloud.google.com/go/dlp v1.6.0/go.mod h1:9eyB2xIhpU0sVwUixfBubDoRwP+GjeUoxxeueZmqvmM= +cloud.google.com/go/dlp v1.7.0/go.mod h1:68ak9vCiMBjbasxeVD17hVPxDEck+ExiHavX8kiHG+Q= +cloud.google.com/go/dlp v1.9.0/go.mod h1:qdgmqgTyReTz5/YNSSuueR8pl7hO0o9bQ39ZhtgkWp4= +cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= +cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/documentai v1.9.0/go.mod h1:FS5485S8R00U10GhgBC0aNGrJxBP8ZVpEeJ7PQDZd6k= +cloud.google.com/go/documentai v1.10.0/go.mod h1:vod47hKQIPeCfN2QS/jULIvQTugbmdc0ZvxxfQY1bg4= +cloud.google.com/go/documentai v1.16.0/go.mod h1:o0o0DLTEZ+YnJZ+J4wNfTxmDVyrkzFvttBXXtYRMHkM= +cloud.google.com/go/documentai v1.18.0/go.mod h1:F6CK6iUH8J81FehpskRmhLq/3VlwQvb7TvwOceQ2tbs= +cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= +cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/domains v0.8.0/go.mod h1:M9i3MMDzGFXsydri9/vW+EWz9sWb4I6WyHqdlAk0idE= +cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= +cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/edgecontainer v0.3.0/go.mod h1:FLDpP4nykgwwIfcLt6zInhprzw0lEi2P1fjO6Ie0qbc= +cloud.google.com/go/edgecontainer v1.0.0/go.mod h1:cttArqZpBB2q58W/upSG++ooo6EsblxDIolxa3jSjbY= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/essentialcontacts v1.3.0/go.mod h1:r+OnHa5jfj90qIfZDO/VztSFqbQan7HV75p8sA+mdGI= +cloud.google.com/go/essentialcontacts v1.4.0/go.mod h1:8tRldvHYsmnBCHdFpvU+GL75oWiBKl80BiqlFh9tp+8= +cloud.google.com/go/essentialcontacts v1.5.0/go.mod h1:ay29Z4zODTuwliK7SnX8E86aUF2CTzdNtvv42niCX0M= +cloud.google.com/go/eventarc v1.7.0/go.mod h1:6ctpF3zTnaQCxUjHUdcfgcA1A2T309+omHZth7gDfmc= +cloud.google.com/go/eventarc v1.8.0/go.mod h1:imbzxkyAU4ubfsaKYdQg04WS1NvncblHEup4kvF+4gw= +cloud.google.com/go/eventarc v1.10.0/go.mod h1:u3R35tmZ9HvswGRBnF48IlYgYeBcPUCjkr4BTdem2Kw= +cloud.google.com/go/eventarc v1.11.0/go.mod h1:PyUjsUKPWoRBCHeOxZd/lbOOjahV41icXyUY5kSTvVY= +cloud.google.com/go/filestore v1.3.0/go.mod h1:+qbvHGvXU1HaKX2nD0WEPo92TP/8AQuCVEBXNY9z0+w= +cloud.google.com/go/filestore v1.4.0/go.mod h1:PaG5oDfo9r224f8OYXURtAsY+Fbyq/bLYoINEK8XQAI= +cloud.google.com/go/filestore v1.5.0/go.mod h1:FqBXDWBp4YLHqRnVGveOkHDf8svj9r5+mUDLupOWEDs= +cloud.google.com/go/filestore v1.6.0/go.mod h1:di5unNuss/qfZTw2U9nhFqo8/ZDSc466dre85Kydllg= +cloud.google.com/go/firestore v1.9.0/go.mod h1:HMkjKHNTtRyZNiMzu7YAsLr9K3X2udY2AMwDaMEQiiE= +cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= +cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/functions v1.8.0/go.mod h1:RTZ4/HsQjIqIYP9a9YPbU+QFoQsAlYgrwOXJWHn1POY= +cloud.google.com/go/functions v1.9.0/go.mod h1:Y+Dz8yGguzO3PpIjhLTbnqV1CWmgQ5UwtlpzoyquQ08= +cloud.google.com/go/functions v1.10.0/go.mod h1:0D3hEOe3DbEvCXtYOZHQZmD+SzYsi1YbI7dGvHfldXw= +cloud.google.com/go/functions v1.12.0/go.mod h1:AXWGrF3e2C/5ehvwYo/GH6O5s09tOPksiKhz+hH8WkA= +cloud.google.com/go/functions v1.13.0/go.mod h1:EU4O007sQm6Ef/PwRsI8N2umygGqPBS/IZQKBQBcJ3c= +cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= +cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gaming v1.7.0/go.mod h1:LrB8U7MHdGgFG851iHAfqUdLcKBdQ55hzXy9xBJz0+w= +cloud.google.com/go/gaming v1.8.0/go.mod h1:xAqjS8b7jAVW0KFYeRUxngo9My3f33kFmua++Pi+ggM= +cloud.google.com/go/gaming v1.9.0/go.mod h1:Fc7kEmCObylSWLO334NcO+O9QMDyz+TKC4v1D7X+Bc0= +cloud.google.com/go/gkebackup v0.2.0/go.mod h1:XKvv/4LfG829/B8B7xRkk8zRrOEbKtEam6yNfuQNH60= +cloud.google.com/go/gkebackup v0.3.0/go.mod h1:n/E671i1aOQvUxT541aTkCwExO/bTer2HDlj4TsBRAo= +cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= +cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= +cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkeconnect v0.7.0/go.mod h1:SNfmVqPkaEi3bF/B3CNZOAYPYdg7sU+obZ+QTky2Myw= +cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= +cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/gkehub v0.11.0/go.mod h1:JOWHlmN+GHyIbuWQPl47/C2RFhnFKH38jH9Ascu3n0E= +cloud.google.com/go/gkehub v0.12.0/go.mod h1:djiIwwzTTBrF5NaXCGv3mf7klpEMcST17VBTVVDcuaw= +cloud.google.com/go/gkemulticloud v0.3.0/go.mod h1:7orzy7O0S+5kq95e4Hpn7RysVA7dPs8W/GgfUtsPbrA= +cloud.google.com/go/gkemulticloud v0.4.0/go.mod h1:E9gxVBnseLWCk24ch+P9+B2CoDFJZTyIgLKSalC7tuI= +cloud.google.com/go/gkemulticloud v0.5.0/go.mod h1:W0JDkiyi3Tqh0TJr//y19wyb1yf8llHVto2Htf2Ja3Y= +cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/gsuiteaddons v1.3.0/go.mod h1:EUNK/J1lZEZO8yPtykKxLXI6JSVN2rg9bN8SXOa0bgM= +cloud.google.com/go/gsuiteaddons v1.4.0/go.mod h1:rZK5I8hht7u7HxFQcFei0+AtfS9uSushomRlg+3ua1o= +cloud.google.com/go/gsuiteaddons v1.5.0/go.mod h1:TFCClYLd64Eaa12sFVmUyG62tk4mdIsI7pAnSXRkcFo= +cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= +cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= +cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= +cloud.google.com/go/iam v0.6.0/go.mod h1:+1AH33ueBne5MzYccyMHtEKqLE4/kJOibtffMHDMFMc= +cloud.google.com/go/iam v0.7.0/go.mod h1:H5Br8wRaDGNc8XP3keLc4unfUUZeyH3Sfl9XpQEYOeg= +cloud.google.com/go/iam v0.8.0/go.mod h1:lga0/y3iH6CX7sYqypWJ33hf7kkfXJag67naqGESjkE= +cloud.google.com/go/iam v0.11.0/go.mod h1:9PiLDanza5D+oWFZiH1uG+RnRCfEGKoyl6yo4cgWZGY= +cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= +cloud.google.com/go/iap v1.4.0/go.mod h1:RGFwRJdihTINIe4wZ2iCP0zF/qu18ZwyKxrhMhygBEc= +cloud.google.com/go/iap v1.5.0/go.mod h1:UH/CGgKd4KyohZL5Pt0jSKE4m3FR51qg6FKQ/z/Ix9A= +cloud.google.com/go/iap v1.6.0/go.mod h1:NSuvI9C/j7UdjGjIde7t7HBz+QTwBcapPE07+sSRcLk= +cloud.google.com/go/iap v1.7.0/go.mod h1:beqQx56T9O1G1yNPph+spKpNibDlYIiIixiqsQXxLIo= +cloud.google.com/go/iap v1.7.1/go.mod h1:WapEwPc7ZxGt2jFGB/C/bm+hP0Y6NXzOYGjpPnmMS74= +cloud.google.com/go/ids v1.1.0/go.mod h1:WIuwCaYVOzHIj2OhN9HAwvW+DBdmUAdcWlFxRl+KubM= +cloud.google.com/go/ids v1.2.0/go.mod h1:5WXvp4n25S0rA/mQWAg1YEEBBq6/s+7ml1RDCW1IrcY= +cloud.google.com/go/ids v1.3.0/go.mod h1:JBdTYwANikFKaDP6LtW5JAi4gubs57SVNQjemdt6xV4= +cloud.google.com/go/iot v1.3.0/go.mod h1:r7RGh2B61+B8oz0AGE+J72AhA0G7tdXItODWsaA2oLs= +cloud.google.com/go/iot v1.4.0/go.mod h1:dIDxPOn0UvNDUMD8Ger7FIaTuvMkj+aGk94RPP0iV+g= +cloud.google.com/go/iot v1.5.0/go.mod h1:mpz5259PDl3XJthEmh9+ap0affn/MqNSP4My77Qql9o= +cloud.google.com/go/iot v1.6.0/go.mod h1:IqdAsmE2cTYYNO1Fvjfzo9po179rAtJeVGUvkLN3rLE= +cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= +cloud.google.com/go/kms v1.5.0/go.mod h1:QJS2YY0eJGBg3mnDfuaCyLauWwBJiHRboYxJ++1xJNg= +cloud.google.com/go/kms v1.6.0/go.mod h1:Jjy850yySiasBUDi6KFUwUv2n1+o7QZFyuUJg6OgjA0= +cloud.google.com/go/kms v1.8.0/go.mod h1:4xFEhYFqvW+4VMELtZyxomGSYtSQKzM178ylFW4jMAg= +cloud.google.com/go/kms v1.9.0/go.mod h1:qb1tPTgfF9RQP8e1wq4cLFErVuTJv7UsSC915J8dh3w= +cloud.google.com/go/kms v1.10.0/go.mod h1:ng3KTUtQQU9bPX3+QGLsflZIHlkbn8amFAMY63m8d24= +cloud.google.com/go/kms v1.10.1/go.mod h1:rIWk/TryCkR59GMC3YtHtXeLzd634lBbKenvyySAyYI= +cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= +cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/language v1.7.0/go.mod h1:DJ6dYN/W+SQOjF8e1hLQXMF21AkH2w9wiPzPCJa2MIE= +cloud.google.com/go/language v1.8.0/go.mod h1:qYPVHf7SPoNNiCL2Dr0FfEFNil1qi3pQEyygwpgVKB8= +cloud.google.com/go/language v1.9.0/go.mod h1:Ns15WooPM5Ad/5no/0n81yUetis74g3zrbeJBE+ptUY= +cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= +cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/lifesciences v0.8.0/go.mod h1:lFxiEOMqII6XggGbOnKiyZ7IBwoIqA84ClvoezaA/bo= +cloud.google.com/go/logging v1.6.1/go.mod h1:5ZO0mHHbvm8gEmeEUHrmDlTDSu5imF6MUP9OfilNXBw= +cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/longrunning v0.1.1/go.mod h1:UUFxuDWkv22EuY93jjmDMFT5GPQKeFVJBIF6QlTqdsE= +cloud.google.com/go/longrunning v0.3.0/go.mod h1:qth9Y41RRSUE69rDcOn6DdK3HfQfsUI0YSmW3iIlLJc= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= +cloud.google.com/go/managedidentities v1.3.0/go.mod h1:UzlW3cBOiPrzucO5qWkNkh0w33KFtBJU281hacNvsdE= +cloud.google.com/go/managedidentities v1.4.0/go.mod h1:NWSBYbEMgqmbZsLIyKvxrYbtqOsxY1ZrGM+9RgDqInM= +cloud.google.com/go/managedidentities v1.5.0/go.mod h1:+dWcZ0JlUmpuxpIDfyP5pP5y0bLdRwOS4Lp7gMni/LA= +cloud.google.com/go/maps v0.1.0/go.mod h1:BQM97WGyfw9FWEmQMpZ5T6cpovXXSd1cGmFma94eubI= +cloud.google.com/go/maps v0.6.0/go.mod h1:o6DAMMfb+aINHz/p/jbcY+mYeXBoZoxTfdSQ8VAJaCw= +cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= +cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= +cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/mediatranslation v0.7.0/go.mod h1:LCnB/gZr90ONOIQLgSXagp8XUW1ODs2UmUMvcgMfI2I= +cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= +cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/memcache v1.6.0/go.mod h1:XS5xB0eQZdHtTuTF9Hf8eJkKtR3pVRCcvJwtm68T3rA= +cloud.google.com/go/memcache v1.7.0/go.mod h1:ywMKfjWhNtkQTxrWxCkCFkoPjLHPW6A7WOTVI8xy3LY= +cloud.google.com/go/memcache v1.9.0/go.mod h1:8oEyzXCu+zo9RzlEaEjHl4KkgjlNDaXbCQeQWlzNFJM= +cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= +cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/metastore v1.7.0/go.mod h1:s45D0B4IlsINu87/AsWiEVYbLaIMeUSoxlKKDqBGFS8= +cloud.google.com/go/metastore v1.8.0/go.mod h1:zHiMc4ZUpBiM7twCIFQmJ9JMEkDSyZS9U12uf7wHqSI= +cloud.google.com/go/metastore v1.10.0/go.mod h1:fPEnH3g4JJAk+gMRnrAnoqyv2lpUCqJPWOodSaf45Eo= +cloud.google.com/go/monitoring v1.7.0/go.mod h1:HpYse6kkGo//7p6sT0wsIC6IBDET0RhIsnmlA53dvEk= +cloud.google.com/go/monitoring v1.8.0/go.mod h1:E7PtoMJ1kQXWxPjB6mv2fhC5/15jInuulFdYYtlcvT4= +cloud.google.com/go/monitoring v1.12.0/go.mod h1:yx8Jj2fZNEkL/GYZyTLS4ZtZEZN8WtDEiEqG4kLK50w= +cloud.google.com/go/monitoring v1.13.0/go.mod h1:k2yMBAB1H9JT/QETjNkgdCGD9bPF712XiLTVr+cBrpw= +cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= +cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networkconnectivity v1.6.0/go.mod h1:OJOoEXW+0LAxHh89nXd64uGG+FbQoeH8DtxCHVOMlaM= +cloud.google.com/go/networkconnectivity v1.7.0/go.mod h1:RMuSbkdbPwNMQjB5HBWD5MpTBnNm39iAVpC3TmsExt8= +cloud.google.com/go/networkconnectivity v1.10.0/go.mod h1:UP4O4sWXJG13AqrTdQCD9TnLGEbtNRqjuaaA7bNjF5E= +cloud.google.com/go/networkconnectivity v1.11.0/go.mod h1:iWmDD4QF16VCDLXUqvyspJjIEtBR/4zq5hwnY2X3scM= +cloud.google.com/go/networkmanagement v1.4.0/go.mod h1:Q9mdLLRn60AsOrPc8rs8iNV6OHXaGcDdsIQe1ohekq8= +cloud.google.com/go/networkmanagement v1.5.0/go.mod h1:ZnOeZ/evzUdUsnvRt792H0uYEnHQEMaz+REhhzJRcf4= +cloud.google.com/go/networkmanagement v1.6.0/go.mod h1:5pKPqyXjB/sgtvB5xqOemumoQNB7y95Q7S+4rjSOPYY= +cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= +cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/networksecurity v0.7.0/go.mod h1:mAnzoxx/8TBSyXEeESMy9OOYwo1v+gZ5eMRnsT5bC8k= +cloud.google.com/go/networksecurity v0.8.0/go.mod h1:B78DkqsxFG5zRSVuwYFRZ9Xz8IcQ5iECsNrPn74hKHU= +cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= +cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/notebooks v1.4.0/go.mod h1:4QPMngcwmgb6uw7Po99B2xv5ufVoIQ7nOGDyL4P8AgA= +cloud.google.com/go/notebooks v1.5.0/go.mod h1:q8mwhnP9aR8Hpfnrc5iN5IBhrXUy8S2vuYs+kBJ/gu0= +cloud.google.com/go/notebooks v1.7.0/go.mod h1:PVlaDGfJgj1fl1S3dUwhFMXFgfYGhYQt2164xOMONmE= +cloud.google.com/go/notebooks v1.8.0/go.mod h1:Lq6dYKOYOWUCTvw5t2q1gp1lAp0zxAxRycayS0iJcqQ= +cloud.google.com/go/optimization v1.1.0/go.mod h1:5po+wfvX5AQlPznyVEZjGJTMr4+CAkJf2XSTQOOl9l4= +cloud.google.com/go/optimization v1.2.0/go.mod h1:Lr7SOHdRDENsh+WXVmQhQTrzdu9ybg0NecjHidBq6xs= +cloud.google.com/go/optimization v1.3.1/go.mod h1:IvUSefKiwd1a5p0RgHDbWCIbDFgKuEdB+fPPuP0IDLI= +cloud.google.com/go/orchestration v1.3.0/go.mod h1:Sj5tq/JpWiB//X/q3Ngwdl5K7B7Y0KZ7bfv0wL6fqVA= +cloud.google.com/go/orchestration v1.4.0/go.mod h1:6W5NLFWs2TlniBphAViZEVhrXRSMgUGDfW7vrWKvsBk= +cloud.google.com/go/orchestration v1.6.0/go.mod h1:M62Bevp7pkxStDfFfTuCOaXgaaqRAga1yKyoMtEoWPQ= +cloud.google.com/go/orgpolicy v1.4.0/go.mod h1:xrSLIV4RePWmP9P3tBl8S93lTmlAxjm06NSm2UTmKvE= +cloud.google.com/go/orgpolicy v1.5.0/go.mod h1:hZEc5q3wzwXJaKrsx5+Ewg0u1LxJ51nNFlext7Tanwc= +cloud.google.com/go/orgpolicy v1.10.0/go.mod h1:w1fo8b7rRqlXlIJbVhOMPrwVljyuW5mqssvBtU18ONc= +cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= +cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/osconfig v1.9.0/go.mod h1:Yx+IeIZJ3bdWmzbQU4fxNl8xsZ4amB+dygAwFPlvnNo= +cloud.google.com/go/osconfig v1.10.0/go.mod h1:uMhCzqC5I8zfD9zDEAfvgVhDS8oIjySWh+l4WK6GnWw= +cloud.google.com/go/osconfig v1.11.0/go.mod h1:aDICxrur2ogRd9zY5ytBLV89KEgT2MKB2L/n6x1ooPw= +cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= +cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/oslogin v1.6.0/go.mod h1:zOJ1O3+dTU8WPlGEkFSh7qeHPPSoxrcMbbK1Nm2iX70= +cloud.google.com/go/oslogin v1.7.0/go.mod h1:e04SN0xO1UNJ1M5GP0vzVBFicIe4O53FOfcixIqTyXo= +cloud.google.com/go/oslogin v1.9.0/go.mod h1:HNavntnH8nzrn8JCTT5fj18FuJLFJc4NaZJtBnQtKFs= +cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= +cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/phishingprotection v0.7.0/go.mod h1:8qJI4QKHoda/sb/7/YmMQ2omRLSLYSu9bU0EKCNI+Lk= +cloud.google.com/go/policytroubleshooter v1.3.0/go.mod h1:qy0+VwANja+kKrjlQuOzmlvscn4RNsAc0e15GGqfMxg= +cloud.google.com/go/policytroubleshooter v1.4.0/go.mod h1:DZT4BcRw3QoO8ota9xw/LKtPa8lKeCByYeKTIf/vxdE= +cloud.google.com/go/policytroubleshooter v1.5.0/go.mod h1:Rz1WfV+1oIpPdN2VvvuboLVRsB1Hclg3CKQ53j9l8vw= +cloud.google.com/go/policytroubleshooter v1.6.0/go.mod h1:zYqaPTsmfvpjm5ULxAyD/lINQxJ0DDsnWOP/GZ7xzBc= +cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= +cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= +cloud.google.com/go/privatecatalog v0.7.0/go.mod h1:2s5ssIFO69F5csTXcwBP7NPFTZvps26xGzvQ2PQaBYg= +cloud.google.com/go/privatecatalog v0.8.0/go.mod h1:nQ6pfaegeDAq/Q5lrfCQzQLhubPiZhSaNhIgfJlnIXs= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.26.0/go.mod h1:QgBH3U/jdJy/ftjPhTkyXNj543Tin1pRYcdcPRnFIRI= +cloud.google.com/go/pubsub v1.27.1/go.mod h1:hQN39ymbV9geqBnfQq6Xf63yNhUAhv9CZhzp5O6qsW0= +cloud.google.com/go/pubsub v1.28.0/go.mod h1:vuXFpwaVoIPQMGXqRyUQigu/AX1S3IWugR9xznmcXX8= +cloud.google.com/go/pubsub v1.30.0/go.mod h1:qWi1OPS0B+b5L+Sg6Gmc9zD1Y+HaM0MdUr7LsupY1P4= +cloud.google.com/go/pubsublite v1.5.0/go.mod h1:xapqNQ1CuLfGi23Yda/9l4bBCKz/wC3KIJ5gKcxveZg= +cloud.google.com/go/pubsublite v1.6.0/go.mod h1:1eFCS0U11xlOuMFV/0iBqw3zP12kddMeCbj/F3FSj9k= +cloud.google.com/go/pubsublite v1.7.0/go.mod h1:8hVMwRXfDfvGm3fahVbtDbiLePT3gpoiJYJY+vxWxVM= +cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= +cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= +cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= +cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recaptchaenterprise/v2 v2.4.0/go.mod h1:Am3LHfOuBstrLrNCBrlI5sbwx9LBg3te2N6hGvHn2mE= +cloud.google.com/go/recaptchaenterprise/v2 v2.5.0/go.mod h1:O8LzcHXN3rz0j+LBC91jrwI3R+1ZSZEWrfL7XHgNo9U= +cloud.google.com/go/recaptchaenterprise/v2 v2.6.0/go.mod h1:RPauz9jeLtB3JVzg6nCbe12qNoaa8pXc4d/YukAmcnA= +cloud.google.com/go/recaptchaenterprise/v2 v2.7.0/go.mod h1:19wVj/fs5RtYtynAPJdDTb69oW0vNHYDBTbB4NvMD9c= +cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= +cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommendationengine v0.7.0/go.mod h1:1reUcE3GIu6MeBz/h5xZJqNLuuVjNg1lmWMPyjatzac= +cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= +cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/recommender v1.7.0/go.mod h1:XLHs/W+T8olwlGOgfQenXBTbIseGclClff6lhFVe9Bs= +cloud.google.com/go/recommender v1.8.0/go.mod h1:PkjXrTT05BFKwxaUxQmtIlrtj0kph108r02ZZQ5FE70= +cloud.google.com/go/recommender v1.9.0/go.mod h1:PnSsnZY7q+VL1uax2JWkt/UegHssxjUVVCrX52CuEmQ= +cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= +cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/redis v1.9.0/go.mod h1:HMYQuajvb2D0LvMgZmLDZW8V5aOC/WxstZHiy4g8OiA= +cloud.google.com/go/redis v1.10.0/go.mod h1:ThJf3mMBQtW18JzGgh41/Wld6vnDDc/F/F35UolRZPM= +cloud.google.com/go/redis v1.11.0/go.mod h1:/X6eicana+BWcUda5PpwZC48o37SiFVTFSs0fWAJ7uQ= +cloud.google.com/go/resourcemanager v1.3.0/go.mod h1:bAtrTjZQFJkiWTPDb1WBjzvc6/kifjj4QBYuKCCoqKA= +cloud.google.com/go/resourcemanager v1.4.0/go.mod h1:MwxuzkumyTX7/a3n37gmsT3py7LIXwrShilPh3P1tR0= +cloud.google.com/go/resourcemanager v1.5.0/go.mod h1:eQoXNAiAvCf5PXxWxXjhKQoTMaUSNrEfg+6qdf/wots= +cloud.google.com/go/resourcemanager v1.6.0/go.mod h1:YcpXGRs8fDzcUl1Xw8uOVmI8JEadvhRIkoXXUNVYcVo= +cloud.google.com/go/resourcemanager v1.7.0/go.mod h1:HlD3m6+bwhzj9XCouqmeiGuni95NTrExfhoSrkC/3EI= +cloud.google.com/go/resourcesettings v1.3.0/go.mod h1:lzew8VfESA5DQ8gdlHwMrqZs1S9V87v3oCnKCWoOuQU= +cloud.google.com/go/resourcesettings v1.4.0/go.mod h1:ldiH9IJpcrlC3VSuCGvjR5of/ezRrOxFtpJoJo5SmXg= +cloud.google.com/go/resourcesettings v1.5.0/go.mod h1:+xJF7QSG6undsQDfsCJyqWXyBwUoJLhetkRMDRnIoXA= +cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= +cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/retail v1.10.0/go.mod h1:2gDk9HsL4HMS4oZwz6daui2/jmKvqShXKQuB2RZ+cCc= +cloud.google.com/go/retail v1.11.0/go.mod h1:MBLk1NaWPmh6iVFSz9MeKG/Psyd7TAgm6y/9L2B4x9Y= +cloud.google.com/go/retail v1.12.0/go.mod h1:UMkelN/0Z8XvKymXFbD4EhFJlYKRx1FGhQkVPU5kF14= +cloud.google.com/go/run v0.2.0/go.mod h1:CNtKsTA1sDcnqqIFR3Pb5Tq0usWxJJvsWOCPldRU3Do= +cloud.google.com/go/run v0.3.0/go.mod h1:TuyY1+taHxTjrD0ZFk2iAR+xyOXEA0ztb7U3UNA0zBo= +cloud.google.com/go/run v0.8.0/go.mod h1:VniEnuBwqjigv0A7ONfQUaEItaiCRVujlMqerPPiktM= +cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= +cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= +cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/scheduler v1.6.0/go.mod h1:SgeKVM7MIwPn3BqtcBntpLyrIJftQISRrYB5ZtT+KOk= +cloud.google.com/go/scheduler v1.7.0/go.mod h1:jyCiBqWW956uBjjPMMuX09n3x37mtyPJegEWKxRsn44= +cloud.google.com/go/scheduler v1.8.0/go.mod h1:TCET+Y5Gp1YgHT8py4nlg2Sew8nUHMqcpousDgXJVQc= +cloud.google.com/go/scheduler v1.9.0/go.mod h1:yexg5t+KSmqu+njTIh3b7oYPheFtBWGcbVUYF1GGMIc= +cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/secretmanager v1.8.0/go.mod h1:hnVgi/bN5MYHd3Gt0SPuTPPp5ENina1/LxM+2W9U9J4= +cloud.google.com/go/secretmanager v1.9.0/go.mod h1:b71qH2l1yHmWQHt9LC80akm86mX8AL6X1MA01dW8ht4= +cloud.google.com/go/secretmanager v1.10.0/go.mod h1:MfnrdvKMPNra9aZtQFvBcvRU54hbPD8/HayQdlUgJpU= +cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= +cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= +cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/security v1.9.0/go.mod h1:6Ta1bO8LXI89nZnmnsZGp9lVoVWXqsVbIq/t9dzI+2Q= +cloud.google.com/go/security v1.10.0/go.mod h1:QtOMZByJVlibUT2h9afNDWRZ1G96gVywH8T5GUSb9IA= +cloud.google.com/go/security v1.12.0/go.mod h1:rV6EhrpbNHrrxqlvW0BWAIawFWq3X90SduMJdFwtLB8= +cloud.google.com/go/security v1.13.0/go.mod h1:Q1Nvxl1PAgmeW0y3HTt54JYIvUdtcpYKVfIB8AOMZ+0= +cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= +cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/securitycenter v1.15.0/go.mod h1:PeKJ0t8MoFmmXLXWm41JidyzI3PJjd8sXWaVqg43WWk= +cloud.google.com/go/securitycenter v1.16.0/go.mod h1:Q9GMaLQFUD+5ZTabrbujNWLtSLZIZF7SAR0wWECrjdk= +cloud.google.com/go/securitycenter v1.18.1/go.mod h1:0/25gAzCM/9OL9vVx4ChPeM/+DlfGQJDwBy/UC8AKK0= +cloud.google.com/go/securitycenter v1.19.0/go.mod h1:LVLmSg8ZkkyaNy4u7HCIshAngSQ8EcIRREP3xBnyfag= +cloud.google.com/go/servicecontrol v1.4.0/go.mod h1:o0hUSJ1TXJAmi/7fLJAedOovnujSEvjKCAFNXPQ1RaU= +cloud.google.com/go/servicecontrol v1.5.0/go.mod h1:qM0CnXHhyqKVuiZnGKrIurvVImCs8gmqWsDoqe9sU1s= +cloud.google.com/go/servicecontrol v1.10.0/go.mod h1:pQvyvSRh7YzUF2efw7H87V92mxU8FnFDawMClGCNuAA= +cloud.google.com/go/servicecontrol v1.11.0/go.mod h1:kFmTzYzTUIuZs0ycVqRHNaNhgR+UMUpw9n02l/pY+mc= +cloud.google.com/go/servicecontrol v1.11.1/go.mod h1:aSnNNlwEFBY+PWGQ2DoM0JJ/QUXqV5/ZD9DOLB7SnUk= +cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= +cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/servicedirectory v1.6.0/go.mod h1:pUlbnWsLH9c13yGkxCmfumWEPjsRs1RlmJ4pqiNjVL4= +cloud.google.com/go/servicedirectory v1.7.0/go.mod h1:5p/U5oyvgYGYejufvxhgwjL8UVXjkuw7q5XcG10wx1U= +cloud.google.com/go/servicedirectory v1.8.0/go.mod h1:srXodfhY1GFIPvltunswqXpVxFPpZjf8nkKQT7XcXaY= +cloud.google.com/go/servicedirectory v1.9.0/go.mod h1:29je5JjiygNYlmsGz8k6o+OZ8vd4f//bQLtvzkPPT/s= +cloud.google.com/go/servicemanagement v1.4.0/go.mod h1:d8t8MDbezI7Z2R1O/wu8oTggo3BI2GKYbdG4y/SJTco= +cloud.google.com/go/servicemanagement v1.5.0/go.mod h1:XGaCRe57kfqu4+lRxaFEAuqmjzF0r+gWHjWqKqBvKFo= +cloud.google.com/go/servicemanagement v1.6.0/go.mod h1:aWns7EeeCOtGEX4OvZUWCCJONRZeFKiptqKf1D0l/Jc= +cloud.google.com/go/servicemanagement v1.8.0/go.mod h1:MSS2TDlIEQD/fzsSGfCdJItQveu9NXnUniTrq/L8LK4= +cloud.google.com/go/serviceusage v1.3.0/go.mod h1:Hya1cozXM4SeSKTAgGXgj97GlqUvF5JaoXacR1JTP/E= +cloud.google.com/go/serviceusage v1.4.0/go.mod h1:SB4yxXSaYVuUBYUml6qklyONXNLt83U0Rb+CXyhjEeU= +cloud.google.com/go/serviceusage v1.5.0/go.mod h1:w8U1JvqUqwJNPEOTQjrMHkw3IaIFLoLsPLvsE3xueec= +cloud.google.com/go/serviceusage v1.6.0/go.mod h1:R5wwQcbOWsyuOfbP9tGdAnCAc6B9DRwPG1xtWMDeuPA= +cloud.google.com/go/shell v1.3.0/go.mod h1:VZ9HmRjZBsjLGXusm7K5Q5lzzByZmJHf1d0IWHEN5X4= +cloud.google.com/go/shell v1.4.0/go.mod h1:HDxPzZf3GkDdhExzD/gs8Grqk+dmYcEjGShZgYa9URw= +cloud.google.com/go/shell v1.6.0/go.mod h1:oHO8QACS90luWgxP3N9iZVuEiSF84zNyLytb+qE2f9A= +cloud.google.com/go/spanner v1.41.0/go.mod h1:MLYDBJR/dY4Wt7ZaMIQ7rXOTLjYrmxLE/5ve9vFfWos= +cloud.google.com/go/spanner v1.44.0/go.mod h1:G8XIgYdOK+Fbcpbs7p2fiprDw4CaZX63whnSMLVBxjk= +cloud.google.com/go/spanner v1.45.0/go.mod h1:FIws5LowYz8YAE1J8fOS7DJup8ff7xJeetWEo5REA2M= +cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= +cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= +cloud.google.com/go/speech v1.8.0/go.mod h1:9bYIl1/tjsAnMgKGHKmBZzXKEkGgtU+MpdDPTE9f7y0= +cloud.google.com/go/speech v1.9.0/go.mod h1:xQ0jTcmnRFFM2RfX/U+rk6FQNUF6DQlydUSyoooSpco= +cloud.google.com/go/speech v1.14.1/go.mod h1:gEosVRPJ9waG7zqqnsHpYTOoAS4KouMRLDFMekpJ0J0= +cloud.google.com/go/speech v1.15.0/go.mod h1:y6oH7GhqCaZANH7+Oe0BhgIogsNInLlz542tg3VqeYI= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= +cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= +cloud.google.com/go/storage v1.28.1/go.mod h1:Qnisd4CqDdo6BGs2AD5LLnEsmSQ80wQ5ogcBBKhU86Y= +cloud.google.com/go/storage v1.29.0/go.mod h1:4puEjyTKnku6gfKoTfNOU/W+a9JyuVNxjpS5GBrB8h4= +cloud.google.com/go/storagetransfer v1.5.0/go.mod h1:dxNzUopWy7RQevYFHewchb29POFv3/AaBgnhqzqiK0w= +cloud.google.com/go/storagetransfer v1.6.0/go.mod h1:y77xm4CQV/ZhFZH75PLEXY0ROiS7Gh6pSKrM8dJyg6I= +cloud.google.com/go/storagetransfer v1.7.0/go.mod h1:8Giuj1QNb1kfLAiWM1bN6dHzfdlDAVC9rv9abHot2W4= +cloud.google.com/go/storagetransfer v1.8.0/go.mod h1:JpegsHHU1eXg7lMHkvf+KE5XDJ7EQu0GwNJbbVGanEw= +cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= +cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/talent v1.3.0/go.mod h1:CmcxwJ/PKfRgd1pBjQgU6W3YBwiewmUzQYH5HHmSCmM= +cloud.google.com/go/talent v1.4.0/go.mod h1:ezFtAgVuRf8jRsvyE6EwmbTK5LKciD4KVnHuDEFmOOA= +cloud.google.com/go/talent v1.5.0/go.mod h1:G+ODMj9bsasAEJkQSzO2uHQWXHHXUomArjWQQYkqK6c= +cloud.google.com/go/texttospeech v1.4.0/go.mod h1:FX8HQHA6sEpJ7rCMSfXuzBcysDAuWusNNNvN9FELDd8= +cloud.google.com/go/texttospeech v1.5.0/go.mod h1:oKPLhR4n4ZdQqWKURdwxMy0uiTS1xU161C8W57Wkea4= +cloud.google.com/go/texttospeech v1.6.0/go.mod h1:YmwmFT8pj1aBblQOI3TfKmwibnsfvhIBzPXcW4EBovc= +cloud.google.com/go/tpu v1.3.0/go.mod h1:aJIManG0o20tfDQlRIej44FcwGGl/cD0oiRyMKG19IQ= +cloud.google.com/go/tpu v1.4.0/go.mod h1:mjZaX8p0VBgllCzF6wcU2ovUXN9TONFLd7iz227X2Xg= +cloud.google.com/go/tpu v1.5.0/go.mod h1:8zVo1rYDFuW2l4yZVY0R0fb/v44xLh3llq7RuV61fPM= +cloud.google.com/go/trace v1.3.0/go.mod h1:FFUE83d9Ca57C+K8rDl/Ih8LwOzWIV1krKgxg6N0G28= +cloud.google.com/go/trace v1.4.0/go.mod h1:UG0v8UBqzusp+z63o7FK74SdFE+AXpCLdFb1rshXG+Y= +cloud.google.com/go/trace v1.8.0/go.mod h1:zH7vcsbAhklH8hWFig58HvxcxyQbaIqMarMg9hn5ECA= +cloud.google.com/go/trace v1.9.0/go.mod h1:lOQqpE5IaWY0Ixg7/r2SjixMuc6lfTFeO4QGM4dQWOk= +cloud.google.com/go/translate v1.3.0/go.mod h1:gzMUwRjvOqj5i69y/LYLd8RrNQk+hOmIXTi9+nb3Djs= +cloud.google.com/go/translate v1.4.0/go.mod h1:06Dn/ppvLD6WvA5Rhdp029IX2Mi3Mn7fpMRLPvXT5Wg= +cloud.google.com/go/translate v1.5.0/go.mod h1:29YDSYveqqpA1CQFD7NQuP49xymq17RXNaUDdc0mNu0= +cloud.google.com/go/translate v1.6.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/translate v1.7.0/go.mod h1:lMGRudH1pu7I3n3PETiOB2507gf3HnfLV8qlkHZEyos= +cloud.google.com/go/video v1.8.0/go.mod h1:sTzKFc0bUSByE8Yoh8X0mn8bMymItVGPfTuUBUyRgxk= +cloud.google.com/go/video v1.9.0/go.mod h1:0RhNKFRF5v92f8dQt0yhaHrEuH95m068JYOvLZYnJSw= +cloud.google.com/go/video v1.12.0/go.mod h1:MLQew95eTuaNDEGriQdcYn0dTwf9oWiA4uYebxM5kdg= +cloud.google.com/go/video v1.13.0/go.mod h1:ulzkYlYgCp15N2AokzKjy7MQ9ejuynOJdf1tR5lGthk= +cloud.google.com/go/video v1.14.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/video v1.15.0/go.mod h1:SkgaXwT+lIIAKqWAJfktHT/RbgjSuY6DobxEp0C5yTQ= +cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= +cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/videointelligence v1.8.0/go.mod h1:dIcCn4gVDdS7yte/w+koiXn5dWVplOZkE+xwG9FgK+M= +cloud.google.com/go/videointelligence v1.9.0/go.mod h1:29lVRMPDYHikk3v8EdPSaL8Ku+eMzDljjuvRs105XoU= +cloud.google.com/go/videointelligence v1.10.0/go.mod h1:LHZngX1liVtUhZvi2uNS0VQuOzNi2TkY1OakiuoUOjU= +cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= +cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= +cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/vision/v2 v2.4.0/go.mod h1:VtI579ll9RpVTrdKdkMzckdnwMyX2JILb+MhPqRbPsY= +cloud.google.com/go/vision/v2 v2.5.0/go.mod h1:MmaezXOOE+IWa+cS7OhRRLK2cNv1ZL98zhqFFZaaH2E= +cloud.google.com/go/vision/v2 v2.6.0/go.mod h1:158Hes0MvOS9Z/bDMSFpjwsUrZ5fPrdwuyyvKSGAGMY= +cloud.google.com/go/vision/v2 v2.7.0/go.mod h1:H89VysHy21avemp6xcf9b9JvZHVehWbET0uT/bcuY/0= +cloud.google.com/go/vmmigration v1.2.0/go.mod h1:IRf0o7myyWFSmVR1ItrBSFLFD/rJkfDCUTO4vLlJvsE= +cloud.google.com/go/vmmigration v1.3.0/go.mod h1:oGJ6ZgGPQOFdjHuocGcLqX4lc98YQ7Ygq8YQwHh9A7g= +cloud.google.com/go/vmmigration v1.5.0/go.mod h1:E4YQ8q7/4W9gobHjQg4JJSgXXSgY21nA5r8swQV+Xxc= +cloud.google.com/go/vmmigration v1.6.0/go.mod h1:bopQ/g4z+8qXzichC7GW1w2MjbErL54rk3/C843CjfY= +cloud.google.com/go/vmwareengine v0.1.0/go.mod h1:RsdNEf/8UDvKllXhMz5J40XxDrNJNN4sagiox+OI208= +cloud.google.com/go/vmwareengine v0.2.2/go.mod h1:sKdctNJxb3KLZkE/6Oui94iw/xs9PRNC2wnNLXsHvH8= +cloud.google.com/go/vmwareengine v0.3.0/go.mod h1:wvoyMvNWdIzxMYSpH/R7y2h5h3WFkx6d+1TIsP39WGY= +cloud.google.com/go/vpcaccess v1.4.0/go.mod h1:aQHVbTWDYUR1EbTApSVvMq1EnT57ppDmQzZ3imqIk4w= +cloud.google.com/go/vpcaccess v1.5.0/go.mod h1:drmg4HLk9NkZpGfCmZ3Tz0Bwnm2+DKqViEpeEpOq0m8= +cloud.google.com/go/vpcaccess v1.6.0/go.mod h1:wX2ILaNhe7TlVa4vC5xce1bCnqE3AeH27RV31lnmZes= +cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= +cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/webrisk v1.6.0/go.mod h1:65sW9V9rOosnc9ZY7A7jsy1zoHS5W9IAXv6dGqhMQMc= +cloud.google.com/go/webrisk v1.7.0/go.mod h1:mVMHgEYH0r337nmt1JyLthzMr6YxwN1aAIEc2fTcq7A= +cloud.google.com/go/webrisk v1.8.0/go.mod h1:oJPDuamzHXgUc+b8SiHRcVInZQuybnvEW72PqTc7sSg= +cloud.google.com/go/websecurityscanner v1.3.0/go.mod h1:uImdKm2wyeXQevQJXeh8Uun/Ym1VqworNDlBXQevGMo= +cloud.google.com/go/websecurityscanner v1.4.0/go.mod h1:ebit/Fp0a+FWu5j4JOmJEV8S8CzdTkAS77oDsiSqYWQ= +cloud.google.com/go/websecurityscanner v1.5.0/go.mod h1:Y6xdCPy81yi0SQnDY1xdNTNpfY1oAgXUlcfN3B3eSng= +cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= +cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +cloud.google.com/go/workflows v1.8.0/go.mod h1:ysGhmEajwZxGn1OhGOGKsTXc5PyxOc0vfKf5Af+to4M= +cloud.google.com/go/workflows v1.9.0/go.mod h1:ZGkj1aFIOd9c8Gerkjjq7OW7I5+l6cSvT3ujaO/WwSA= +cloud.google.com/go/workflows v1.10.0/go.mod h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8= +git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc= +github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= +github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= +github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/sprig v2.15.0+incompatible h1:0gSxPGWS9PAr7U2NsQ2YQg6juRDINkUyuvbb4b2Xm8w= +github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/sprig v2.15.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= +github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY= +github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM= +github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/aokoli/goutils v1.0.1 h1:7fpzNGoJ3VA8qcrm++XEE1QUe0mIwNeLa02Nwq7RDkg= github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= +github.com/apache/arrow/go/v10 v10.0.1/go.mod h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0= +github.com/apache/arrow/go/v11 v11.0.0/go.mod h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20220314180256-7f1daf1720fc/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230105202645-06c439db220b/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= +github.com/envoyproxy/go-control-plane v0.10.3/go.mod h1:fJJn/j26vwOu972OllsvAgJJM//w9BV6Fxbg2LuVd34= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v0.3.0-java/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v0.6.1 h1:4CF52PCseTFt4bE+Yk3dIpdVi7XWuPVMhPtm4FaIJPM= -github.com/envoyproxy/protoc-gen-validate v0.6.1/go.mod h1:txg5va2Qkip90uYoSKH+nkAAmXrb2j3iq4FLwdrCbXQ= -github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/envoyproxy/protoc-gen-validate v0.6.7/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/envoyproxy/protoc-gen-validate v0.9.1/go.mod h1:OKNgG7TCp5pF4d6XftA0++PMirau2/yoOwVac3AbF2w= +github.com/envoyproxy/protoc-gen-validate v0.10.1 h1:c0g45+xCJhdgFGw7a5QAfdS4byAbud7miNWJ1WwEVf8= +github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-bindata/go-bindata/v3 v3.1.3 h1:F0nVttLC3ws0ojc7p60veTurcOm//D4QBODNM7EGrCI= github.com/go-bindata/go-bindata/v3 v3.1.3/go.mod h1:1/zrpXsLD8YDIbhZRqXzm1Ghc7NhEvIN9+Z6R5/xH4I= +github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g= +github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks= +github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY= +github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo= +github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U= +github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk= +github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= +github.com/goccy/go-json v0.9.11/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= +github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/glog v1.1.1 h1:jxpi2eWoU84wbX9iIEyAeeoac3FLuifZpY9tcNUD9kw= +github.com/golang/glog v1.1.1/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -78,8 +698,11 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.0.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -95,10 +718,15 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/flatbuffers v2.0.8+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -106,11 +734,20 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -118,93 +755,201 @@ github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v0.0.0-20161128191214-064e2069ce9c/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= +github.com/googleapis/enterprise-certificate-proxy v0.2.1/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.2.0 h1:HlJcTiqGHvaWDG7/s85d68Kw7G7FqMz+9LlcyVauOAw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.2.0/go.mod h1:gRq9gZWcIFvz68EgWqy2qQpRbmtn5j2qLZ4zHjqiLpg= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= +github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= +github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= +github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= +github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= +github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 h1:gDLXvp5S9izjldquuoAhDzccbskOL6tDC5jMSyx3zxE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2/go.mod h1:7pdNwVWBBHGiCxa9lAszqCJMbfTISJ7oMftp8+UGV08= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/huandu/xstrings v1.0.0 h1:pO2K/gKgKaat5LdpAhxhluX2GPQMaI3W5FUz/I/UnWk= github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= -github.com/iancoleman/strcase v0.0.0-20180726023541-3605ed457bf7/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= -github.com/iancoleman/strcase v0.1.3 h1:dJBk1m2/qjL1twPLf68JND55vvivMupZ4wIzE8CTdBw= -github.com/iancoleman/strcase v0.1.3/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE= +github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= +github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.4 h1:mKkfHkZWD8dC7WxKx3N9WCF0Y+dLau45704YQmY6H94= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= +github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= -github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/errcheck v1.6.3 h1:dEKh+GLHcWm2oN34nMvDzn1sqI0i0WxPvrgiJA5JuM8= +github.com/kisielk/errcheck v1.6.3/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/asmfmt v1.3.2/go.mod h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/lyft/protoc-gen-star v0.5.1/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU= -github.com/lyft/protoc-gen-star v0.5.2 h1:ICQPpOr4uO46eme1Y5Jj0fnJkc9/upQ9xxt0+2AmUDQ= -github.com/lyft/protoc-gen-star v0.5.2/go.mod h1:9toiA3cC7z5uVbODF7kEQ91Xn7XNFkVUl+SrEe+ZORU= -github.com/mwitkow/go-proto-validators v0.0.0-20180403085117-0950a7990007 h1:28i1IjGcx8AofiB4N3q5Yls55VEaitzuEPkFJEVgGkA= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star v0.6.1 h1:erE0rdztuaDq3bpGifD95wfoPrSZc95nGA6tbiNYh6M= +github.com/lyft/protoc-gen-star v0.6.1/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o= +github.com/lyft/protoc-gen-star/v2 v2.0.3 h1:/3+/2sWyXeMLzKd1bX+ixWKgEMsULrIivpDsuaF441o= +github.com/lyft/protoc-gen-star/v2 v2.0.3/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8/go.mod h1:mC1jAcsrzbxHt8iiaC+zU4b1ylILSosueou12R++wfY= +github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3/go.mod h1:RagcQ7I8IeTMnF8JTXieKnO4Z6JCsikNEzj0DwauVzE= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mwitkow/go-proto-validators v0.0.0-20180403085117-0950a7990007/go.mod h1:m2XC9Qq0AlmmVksL6FktJCdTYyLk7V3fKyp0sl1yWQo= +github.com/mwitkow/go-proto-validators v0.3.2 h1:qRlmpTzm2pstMKKzTdvwPCF5QfBNURSlAgN/R+qbKos= +github.com/mwitkow/go-proto-validators v0.3.2/go.mod h1:ej0Qp0qMgHN/KtDyUt+Q1/tA7a5VarXUOUxD+oeD30w= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pierrec/lz4/v4 v4.1.15/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/pseudomuto/protoc-gen-doc v1.4.1 h1:aNTZq0dy0Pq2ag2v7bhNKFNgBBA8wMCoJSChhd7RciE= -github.com/pseudomuto/protoc-gen-doc v1.4.1/go.mod h1:exDTOVwqpp30eV/EDPFLZy3Pwr2sn6hBC1WIYH/UbIg= -github.com/pseudomuto/protokit v0.2.0 h1:hlnBDcy3YEDXH7kc9gV+NLaN0cDzhDvD1s7Y6FZ8RpM= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/pseudomuto/protoc-gen-doc v1.5.1 h1:Ah259kcrio7Ix1Rhb6u8FCaOkzf9qRBqXnvAufg061w= +github.com/pseudomuto/protoc-gen-doc v1.5.1/go.mod h1:XpMKYg6zkcpgfpCfQ8GcWBDRtRxOmMR5w7pz4Xo+dYM= github.com/pseudomuto/protokit v0.2.0/go.mod h1:2PdH30hxVHsup8KpBTOXTBeMVhJZVio3Q8ViKSAXT0Q= +github.com/pseudomuto/protokit v0.2.1 h1:kCYpE3thoR6Esm0CUvd5xbrDTOZPvQPTDeyXpZfrJdk= +github.com/pseudomuto/protokit v0.2.1/go.mod h1:gt7N5Rz2flBzYafvaxyIxMZC0TTF5jDZfRnw25hAAyo= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Unghqrcc= +github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= +github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= -github.com/spf13/afero v1.3.4/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.5.1 h1:VHu76Lk0LSP1x254maIu2bplkWpfBWI+B+6fdoZprcg= -github.com/spf13/afero v1.5.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= +github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -golang.org/x/crypto v0.0.0-20180501155221-613d6eafa307/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ= +golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= +golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -214,8 +959,10 @@ golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= @@ -223,8 +970,19 @@ golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -250,23 +1008,84 @@ golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +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-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/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/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221012135044-0b7e1fb9d458/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20210201163806-010130855d6c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221006150949-b44042a4b9c1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -280,6 +1099,7 @@ golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -291,20 +1111,94 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642 h1:B6caxRw+hozq68X2MY7jEpZh/cr4/aHLv9xU8Kkadrw= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/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-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU= +golang.org/x/sys v0.7.0/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/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -317,6 +1211,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -339,18 +1234,49 @@ golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWc golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200522201501-cb1345f3a375/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d h1:W07d4xkoAUSNOkOzdzXCdFGxT7o2rW4q8M34tB2i//k= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201124115921-2c860bdd6e78/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= +golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +golang.org/x/tools v0.8.0 h1:vSDcovVPld282ceKgDimkRSC8kpaH1dgyc9UMzlt84Y= +golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0= +gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY= +gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -367,14 +1293,57 @@ google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.58.0/go.mod h1:cAbP2FsxoGVNwtgNAmmn3y5G1TWAiVYRmg4yku3lv+E= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= +google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= +google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= +google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= +google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= +google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.99.0/go.mod h1:1YOf74vkVndF7pG6hIHuINsM7eWwpVTAfNMNiL91A08= +google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= +google.golang.org/api v0.102.0/go.mod h1:3VFl6/fzoA+qNuS1N1/VfXY4LjoXN/wzeIp7TweWwGo= +google.golang.org/api v0.103.0/go.mod h1:hGtW6nK1AC+d9si/UBhw8Xli+QMOf6xyNAyJw4qU9w0= +google.golang.org/api v0.106.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.107.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.108.0/go.mod h1:2Ts0XTHNVWxypznxWOYUeI4g3WdP9Pk2Qk58+a/O9MY= +google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.111.0/go.mod h1:qtFHvU9mhgTJegR31csQ+rwxyUTHOKFqCKWp1J0fdw0= +google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180427144745-86e600f69ee4/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20181107211654-5fc9ac540362/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -397,14 +1366,117 @@ google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210207032614-bba0dbe2a9ea h1:N98SvVh7Hdle2lgUVFuIkf0B3u29CUakMUQa7Hwz8Wc= -google.golang.org/genproto v0.0.0-20210207032614-bba0dbe2a9ea/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +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-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/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= +google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/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-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220329172620-7be39ac1afc7/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= +google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= +google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= +google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= +google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221024153911-1573dae28c9c/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c/go.mod h1:CGI5F/G+E5bKwmfYo09AXuVN4dD894kIKUFmVbP2/Fo= +google.golang.org/genproto v0.0.0-20221109142239-94d6d90a7d66/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221114212237-e4508ebdbee1/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221117204609-8f9c96812029/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201164419-0e50fba7f41c/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221201204527-e3fa12d562f3/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd/go.mod h1:cTsE614GARnxrLsqKREzmNYJACSWWpAWdNMwnD7c2BE= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230112194545-e10362b5ecf9/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230113154510-dbe35b8444a5/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230123190316-2c411cf9d197/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230124163310-31e0e69b6fc2/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230127162408-596548ed4efa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= +google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA= +google.golang.org/genproto v0.0.0-20230222225845-10f96fb3dbec/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230223222841-637eb2293923/go.mod h1:3Dl5ZL0q0isWJt+FVcfpQyirqemEuLAK/iFvg1UP1Hw= +google.golang.org/genproto v0.0.0-20230303212802-e74f57abe488/go.mod h1:TvhZT5f700eVlTNwND1xoEZQeWTB2RY/65kplwl/bFA= +google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230320184635-7606e756e683/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230323212658-478b75c54725/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230330154414-c0448cd141ea/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230331144136-dcfb400f0633/go.mod h1:UUQDJDOlWu4KYeJZffbWgBkS1YFobzKbLVfK69pe0Ak= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -417,11 +1489,37 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.35.0 h1:TwIQcH3es+MojMVojxxfQ3l3OF2KzlRxML2xZq0kRo8= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.0.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +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/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.51.0/go.mod h1:wgNDFcnuBGmxLKI/qn4T+m5BtEBYXJPvibbUPsAIPww= +google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= +google.golang.org/grpc v1.54.0 h1:EhTqbhiYeixwWQtAEZAxmV9MGqcjEU2mFx52xCzNyag= +google.golang.org/grpc v1.54.0/go.mod h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0 h1:rNBFJjBCOgVr9pWD7rs/knKL4FRTKgpZmsRfV214zcA= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.3.0/go.mod h1:Dk1tviKTvMCz5tvh7t+fh94dhmQVHuCt2OzJB3CTW9Y= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -433,18 +1531,24 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -452,6 +1556,42 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +lukechampine.com/uint128 v1.1.1/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk= +modernc.org/cc/v3 v3.36.0/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.2/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/cc/v3 v3.36.3/go.mod h1:NFUHyPn4ekoC/JHeZFfZurN6ixxawE1BnVonP/oahEI= +modernc.org/ccgo/v3 v3.0.0-20220428102840-41399a37e894/go.mod h1:eI31LL8EwEBKPpNpA4bU1/i+sKOwOrQy8D87zWUcRZc= +modernc.org/ccgo/v3 v3.0.0-20220430103911-bc99d88307be/go.mod h1:bwdAnOoaIt8Ax9YdWGjxWsdkPcZyRPHqrOvJxaKAKGw= +modernc.org/ccgo/v3 v3.16.4/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.6/go.mod h1:tGtX0gE9Jn7hdZFeU88slbTh1UtCYKusWOoCJuvkWsQ= +modernc.org/ccgo/v3 v3.16.8/go.mod h1:zNjwkizS+fIFDrDjIAgBSCLkWbJuHF+ar3QRn+Z9aws= +modernc.org/ccgo/v3 v3.16.9/go.mod h1:zNMzC9A9xeNUepy6KuZBbugn3c0Mc9TeiJO4lgvkJDo= +modernc.org/ccorpus v1.11.6/go.mod h1:2gEUTrWqdpH2pXsmTM1ZkjeSrUWDpjMu2T6m29L/ErQ= +modernc.org/httpfs v1.0.6/go.mod h1:7dosgurJGp0sPaRanU53W4xZYKh14wfzX420oZADeHM= +modernc.org/libc v0.0.0-20220428101251-2d5f3daf273b/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.16.0/go.mod h1:N4LD6DBE9cf+Dzf9buBlzVJndKr/iJHG97vGLHYnb5A= +modernc.org/libc v1.16.1/go.mod h1:JjJE0eu4yeK7tab2n4S1w8tlWd9MxXLRzheaRnAKymU= +modernc.org/libc v1.16.17/go.mod h1:hYIV5VZczAmGZAnG15Vdngn5HSF5cSkbvfz2B7GRuVU= +modernc.org/libc v1.16.19/go.mod h1:p7Mg4+koNjc8jkqwcoFBJx7tXkpj00G77X7A72jXPXA= +modernc.org/libc v1.17.0/go.mod h1:XsgLldpP4aWlPlsjqKRdHPqCxCjISdHfM/yeWC5GyW0= +modernc.org/libc v1.17.1/go.mod h1:FZ23b+8LjxZs7XtFMbSzL/EhPxNbfZbErxEHc7cbD9s= +modernc.org/mathutil v1.2.2/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.4.1/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= +modernc.org/memory v1.1.1/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.0/go.mod h1:/0wo5ibyrQiaoUoH7f9D8dnglAmILJ5/cxZlRECf+Nw= +modernc.org/memory v1.2.1/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= +modernc.org/opt v0.1.1/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= +modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4= +modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw= +modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw= +modernc.org/tcl v1.13.1/go.mod h1:XOLfOwzhkljL4itZkK6T72ckMgvj0BDsnKNdZVUOecw= +modernc.org/token v1.0.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +modernc.org/z v1.5.1/go.mod h1:eWFB510QWW5Th9YGZT81s+LwvaAs3Q2yr4sP0rmLkv8= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= From 13f6b4686a7745f4b3f2cfe8c9767a76fbb85c40 Mon Sep 17 00:00:00 2001 From: Silvan Date: Tue, 25 Apr 2023 10:12:53 +0200 Subject: [PATCH 02/11] fix(setup): smaller transactions (#5742) --- cmd/setup/10.go | 48 ++++++++++++++++++++++---------------------- cmd/setup/10.sql | 2 -- cmd/setup/config.go | 20 +++++++++--------- cmd/setup/setup.go | 4 ++-- cmd/setup/steps.yaml | 2 ++ 5 files changed, 38 insertions(+), 38 deletions(-) diff --git a/cmd/setup/10.go b/cmd/setup/10.go index 77db7c6c5..4efccc653 100644 --- a/cmd/setup/10.go +++ b/cmd/setup/10.go @@ -2,8 +2,11 @@ package setup import ( "context" + "database/sql" _ "embed" + "time" + "github.com/cockroachdb/cockroach-go/v2/crdb" "github.com/zitadel/logging" "github.com/zitadel/zitadel/internal/database" @@ -15,35 +18,32 @@ var ( ) type CorrectCreationDate struct { - dbClient *database.DB + dbClient *database.DB + FailAfter time.Duration } func (mig *CorrectCreationDate) Execute(ctx context.Context) (err error) { - tx, err := mig.dbClient.Begin() - if err != nil { - return err - } - if mig.dbClient.Type() == "cockroach" { - if _, err := tx.Exec("SET experimental_enable_temp_tables=on"); err != nil { - return err - } - } - defer func() { - if err != nil { - logging.OnError(tx.Rollback()).Debug("rollback failed") - return - } - err = tx.Commit() - }() + ctx, cancel := context.WithTimeout(ctx, mig.FailAfter) + defer cancel() + for { - res, err := tx.ExecContext(ctx, correctCreationDate10) - if err != nil { - return err - } - affected, _ := res.RowsAffected() - logging.WithFields("count", affected).Info("creation dates changed") - if affected == 0 { + var affected int64 + err = crdb.ExecuteTx(ctx, mig.dbClient.DB, nil, func(tx *sql.Tx) error { + if mig.dbClient.Type() == "cockroach" { + if _, err := tx.Exec("SET experimental_enable_temp_tables=on"); err != nil { + return err + } + } + res, err := tx.ExecContext(ctx, correctCreationDate10) + if err != nil { + return err + } + affected, _ = res.RowsAffected() + logging.WithFields("count", affected).Info("creation dates changed") return nil + }) + if affected == 0 || err != nil { + return err } } } diff --git a/cmd/setup/10.sql b/cmd/setup/10.sql index 27853f55a..591d0b3d8 100644 --- a/cmd/setup/10.sql +++ b/cmd/setup/10.sql @@ -5,8 +5,6 @@ CREATE temporary TABLE IF NOT EXISTS wrong_events ( , next_cd TIMESTAMPTZ ); -TRUNCATE wrong_events; - INSERT INTO wrong_events ( SELECT * FROM ( SELECT diff --git a/cmd/setup/config.go b/cmd/setup/config.go index eb55ba492..dc75d5404 100644 --- a/cmd/setup/config.go +++ b/cmd/setup/config.go @@ -56,16 +56,16 @@ func MustNewConfig(v *viper.Viper) *Config { } type Steps struct { - s1ProjectionTable *ProjectionTable - s2AssetsTable *AssetTable - FirstInstance *FirstInstance - s4EventstoreIndexes *EventstoreIndexesNew - s5LastFailed *LastFailed - s6OwnerRemoveColumns *OwnerRemoveColumns - s7LogstoreTables *LogstoreTables - s8AuthTokens *AuthTokenIndexes - s9EventstoreIndexes2 *EventstoreIndexesNew - s10EventstoreCreationDate *CorrectCreationDate + s1ProjectionTable *ProjectionTable + s2AssetsTable *AssetTable + FirstInstance *FirstInstance + s4EventstoreIndexes *EventstoreIndexesNew + s5LastFailed *LastFailed + s6OwnerRemoveColumns *OwnerRemoveColumns + s7LogstoreTables *LogstoreTables + s8AuthTokens *AuthTokenIndexes + s9EventstoreIndexes2 *EventstoreIndexesNew + CorrectCreationDate *CorrectCreationDate } type encryptionKeyConfig struct { diff --git a/cmd/setup/setup.go b/cmd/setup/setup.go index a7deef007..e90ad85f9 100644 --- a/cmd/setup/setup.go +++ b/cmd/setup/setup.go @@ -88,7 +88,7 @@ func Setup(config *Config, steps *Steps, masterKey string) { steps.s7LogstoreTables = &LogstoreTables{dbClient: dbClient.DB, username: config.Database.Username(), dbType: config.Database.Type()} steps.s8AuthTokens = &AuthTokenIndexes{dbClient: dbClient} steps.s9EventstoreIndexes2 = New09(dbClient) - steps.s10EventstoreCreationDate = &CorrectCreationDate{dbClient: dbClient} + steps.CorrectCreationDate.dbClient = dbClient err = projection.Create(ctx, dbClient, eventstoreClient, config.Projections, nil, nil) logging.OnError(err).Fatal("unable to start projections") @@ -124,7 +124,7 @@ func Setup(config *Config, steps *Steps, masterKey string) { logging.OnError(err).Fatal("unable to migrate step 8") err = migration.Migrate(ctx, eventstoreClient, steps.s9EventstoreIndexes2) logging.OnError(err).Fatal("unable to migrate step 9") - err = migration.Migrate(ctx, eventstoreClient, steps.s10EventstoreCreationDate) + err = migration.Migrate(ctx, eventstoreClient, steps.CorrectCreationDate) logging.OnError(err).Fatal("unable to migrate step 10") for _, repeatableStep := range repeatableSteps { diff --git a/cmd/setup/steps.yaml b/cmd/setup/steps.yaml index c362f80e8..f5cb4b0c2 100644 --- a/cmd/setup/steps.yaml +++ b/cmd/setup/steps.yaml @@ -30,3 +30,5 @@ FirstInstance: MachineKey: ExpirationDate: Type: +CorrectCreationDate: + FailAfter: 5m From 79c528a2b6ba4a816f23ba3c2477c460a8566a54 Mon Sep 17 00:00:00 2001 From: Miguel Cabrerizo <30386061+doncicuto@users.noreply.github.com> Date: Tue, 25 Apr 2023 13:53:54 +0200 Subject: [PATCH 03/11] fix: cnsl-redirect-uris ngModel & formGroup issue (#5731) Co-authored-by: Max Peintner --- .../pages/projects/apps/app-create/app-create.component.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/console/src/app/pages/projects/apps/app-create/app-create.component.html b/console/src/app/pages/projects/apps/app-create/app-create.component.html index 7bd4729e6..5e50ecb38 100644 --- a/console/src/app/pages/projects/apps/app-create/app-create.component.html +++ b/console/src/app/pages/projects/apps/app-create/app-create.component.html @@ -437,6 +437,7 @@ class="redirect-section" [disabled]="false" [(ngModel)]="redirectUris" + [ngModelOptions]="{ standalone: true }" [getValues]="requestRedirectValuesSubject$" title="{{ 'APP.OIDC.REDIRECT' | translate }}" [isNative]="appType?.value.oidcAppType === OIDCAppType.OIDC_APP_TYPE_NATIVE" @@ -447,6 +448,7 @@ class="redirect-section" [disabled]="false" [(ngModel)]="postLogoutUrisList" + [ngModelOptions]="{ standalone: true }" title="{{ 'APP.OIDC.POSTLOGOUTREDIRECT' | translate }}" [getValues]="requestRedirectValuesSubject$" [isNative]="appType?.value.oidcAppType === OIDCAppType.OIDC_APP_TYPE_NATIVE" From c12c2f09a4399ed06fa55a1bfb976aeb0553c887 Mon Sep 17 00:00:00 2001 From: Elio Bischof Date: Tue, 25 Apr 2023 19:20:59 +0200 Subject: [PATCH 04/11] fix: switch log level of failed locks to debug (#5746) --- internal/api/oidc/key.go | 2 +- internal/api/saml/certificate.go | 2 +- internal/eventstore/handler/handler_projection.go | 4 ++-- internal/eventstore/v1/spooler/spooler.go | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/api/oidc/key.go b/internal/api/oidc/key.go index 3b4f73c83..237af7db4 100644 --- a/internal/api/oidc/key.go +++ b/internal/api/oidc/key.go @@ -176,7 +176,7 @@ func (o *OPStorage) lockAndGenerateSigningKeyPair(ctx context.Context, algorithm if errors.IsErrorAlreadyExists(err) { return nil } - logging.OnError(err).Warn("initial lock failed") + logging.OnError(err).Debug("initial lock failed") return err } diff --git a/internal/api/saml/certificate.go b/internal/api/saml/certificate.go index 8d34aeb4c..9e85e5098 100644 --- a/internal/api/saml/certificate.go +++ b/internal/api/saml/certificate.go @@ -123,7 +123,7 @@ func (p *Storage) lockAndGenerateCertificateAndKey(ctx context.Context, usage do if errors.IsErrorAlreadyExists(err) { return nil } - logging.OnError(err).Warn("initial lock failed") + logging.OnError(err).Debug("initial lock failed") return err } diff --git a/internal/eventstore/handler/handler_projection.go b/internal/eventstore/handler/handler_projection.go index 2b4160586..808da1dbb 100644 --- a/internal/eventstore/handler/handler_projection.go +++ b/internal/eventstore/handler/handler_projection.go @@ -223,7 +223,7 @@ func (h *ProjectionHandler) schedule(ctx context.Context) { errs := h.lock(lockCtx, h.requeueAfter, "system") if err, ok := <-errs; err != nil || !ok { cancelLock() - logging.WithFields("projection", h.ProjectionName).OnError(err).Warn("initial lock failed for first schedule") + logging.WithFields("projection", h.ProjectionName).OnError(err).Debug("initial lock failed for first schedule") h.triggerProjection.Reset(h.requeueAfter) continue } @@ -253,7 +253,7 @@ func (h *ProjectionHandler) schedule(ctx context.Context) { //wait until projection is locked if err, ok := <-errs; err != nil || !ok { cancelInstanceLock() - logging.WithFields("projection", h.ProjectionName).OnError(err).Warn("initial lock failed") + logging.WithFields("projection", h.ProjectionName).OnError(err).Debug("initial lock failed") failed = true continue } diff --git a/internal/eventstore/v1/spooler/spooler.go b/internal/eventstore/v1/spooler/spooler.go index 24e72ce5f..c6cc15d3a 100644 --- a/internal/eventstore/v1/spooler/spooler.go +++ b/internal/eventstore/v1/spooler/spooler.go @@ -126,7 +126,7 @@ func (s *spooledHandler) load(workerID string) { var err error s.succeededOnce, err = s.hasSucceededOnce(ctx) if err != nil { - logging.WithFields("view", s.ViewModel()).OnError(err).Warn("initial lock failed for first schedule") + logging.WithFields("view", s.ViewModel()).OnError(err).Debug("initial lock failed for first schedule") errs <- err return } From 923f691d77ce047cc01a7600e280b6aa0f979de7 Mon Sep 17 00:00:00 2001 From: Elio Bischof Date: Tue, 25 Apr 2023 20:15:32 +0200 Subject: [PATCH 05/11] fix: use singleton meter provider (#5725) --- internal/telemetry/metrics/otel/open_telemetry.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/internal/telemetry/metrics/otel/open_telemetry.go b/internal/telemetry/metrics/otel/open_telemetry.go index 4a18c6171..e249f00d8 100644 --- a/internal/telemetry/metrics/otel/open_telemetry.go +++ b/internal/telemetry/metrics/otel/open_telemetry.go @@ -18,7 +18,7 @@ import ( ) type Metrics struct { - Exporter *prometheus.Exporter + Provider metric.MeterProvider Meter metric.Meter Counters sync.Map UpDownSumObserver sync.Map @@ -34,12 +34,13 @@ func NewMetrics(meterName string) (metrics.Metrics, error) { if err != nil { return &Metrics{}, err } + meterProvider := sdk_metric.NewMeterProvider( + sdk_metric.WithReader(exporter), + sdk_metric.WithResource(resource), + ) return &Metrics{ - Exporter: exporter, - Meter: sdk_metric.NewMeterProvider( - sdk_metric.WithReader(exporter), - sdk_metric.WithResource(resource), - ).Meter(meterName), + Provider: meterProvider, + Meter: meterProvider.Meter(meterName), }, nil } @@ -48,7 +49,7 @@ func (m *Metrics) GetExporter() http.Handler { } func (m *Metrics) GetMetricsProvider() metric.MeterProvider { - return sdk_metric.NewMeterProvider(sdk_metric.WithReader(m.Exporter)) + return m.Provider } func (m *Metrics) RegisterCounter(name, description string) error { From 19f2f83b6111698a907ec8959622e31fbb9a76a7 Mon Sep 17 00:00:00 2001 From: bitfactory-sem-denbroeder <92806503+bitfactory-sem-denbroeder@users.noreply.github.com> Date: Wed, 26 Apr 2023 07:17:23 +0200 Subject: [PATCH 06/11] feat: add otp name and make it configurable (#5631) * feat: add otp name and make it configurable * feat: use pre-existing otp env var * feat: use requested domain if otp issuer is empty * cleanup --------- Co-authored-by: Sem den Broeder Co-authored-by: Elio Bischof Co-authored-by: Livio Spring --- cmd/defaults.yaml | 2 ++ internal/command/user_human_otp.go | 8 ++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cmd/defaults.yaml b/cmd/defaults.yaml index 1afc617c5..85d6c0ab1 100644 --- a/cmd/defaults.yaml +++ b/cmd/defaults.yaml @@ -321,6 +321,8 @@ SystemDefaults: ApplicationKeySize: 2048 Multifactors: OTP: + # If this is empty, the issuer is the requested domain + # This is helpful in scenarios with multiple ZITADEL environments or virtual instances Issuer: "ZITADEL" DomainVerification: VerificationGenerator: diff --git a/internal/command/user_human_otp.go b/internal/command/user_human_otp.go index 02dbdae55..96db142f7 100644 --- a/internal/command/user_human_otp.go +++ b/internal/command/user_human_otp.go @@ -5,6 +5,7 @@ import ( "github.com/zitadel/logging" + "github.com/zitadel/zitadel/internal/api/authz" "github.com/zitadel/zitadel/internal/crypto" "github.com/zitadel/zitadel/internal/domain" caos_errs "github.com/zitadel/zitadel/internal/errors" @@ -71,11 +72,14 @@ func (c *Commands) AddHumanOTP(ctx context.Context, userID, resourceowner string if accountName == "" { accountName = string(human.EmailAddress) } - key, secret, err := domain.NewOTPKey(c.multifactors.OTP.Issuer, accountName, c.multifactors.OTP.CryptoMFA) + issuer := c.multifactors.OTP.Issuer + if issuer == "" { + issuer = authz.GetInstance(ctx).RequestedDomain() + } + key, secret, err := domain.NewOTPKey(issuer, accountName, c.multifactors.OTP.CryptoMFA) if err != nil { return nil, err } - _, err = c.eventstore.Push(ctx, user.NewHumanOTPAddedEvent(ctx, userAgg, secret)) if err != nil { return nil, err From e4a4b7cfbe532d302be8d922359864bb004daeb2 Mon Sep 17 00:00:00 2001 From: Livio Spring Date: Wed, 26 Apr 2023 07:47:57 +0200 Subject: [PATCH 07/11] feat(api): add user creation to user service (#5745) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(proto): update versions * change protoc plugin * some cleanups * define api for setting emails in new api * implement user.SetEmail * move SetEmail buisiness logic into command * resuse newCryptoCode * command: add ChangeEmail unit tests Not complete, was not able to mock the generator. * Revert "resuse newCryptoCode" This reverts commit c89e90ae35ae924a3f706a0a7394f933910c2e65. * undo change to crypto code generators * command: use a generator so we can test properly * command: reorganise ChangeEmail improve test coverage * implement VerifyEmail including unit tests * add URL template tests * begin user creation * change protos * implement metadata and move context * merge commands * proto: change context to object * remove old auth option * remove old auth option * fix linting errors run gci on modified files * add permission checks and fix some errors * comments * comments * update email requests * rename proto requests * cleanup and docs * simplify * simplify * fix setup * remove unused proto messages / fields --------- Co-authored-by: adlerhurst Co-authored-by: Tim Möhlmann --- docs/docusaurus.config.js | 7 + docs/sidebars.js | 16 +- internal/api/grpc/management/user.go | 11 +- .../server/middleware/auth_interceptor.go | 7 + internal/api/grpc/user/v2/email.go | 2 +- internal/api/grpc/user/v2/user.go | 107 ++++ internal/api/grpc/user/v2/user_test.go | 80 +++ internal/command/command.go | 2 + internal/command/crypto.go | 23 +- internal/command/email.go | 9 +- internal/command/instance.go | 3 +- internal/command/org.go | 2 +- internal/command/phone.go | 3 +- internal/command/user.go | 2 +- internal/command/user_human.go | 289 ++++++---- internal/command/user_human_test.go | 521 ++++++++++++++---- internal/domain/human.go | 5 - .../notification/handlers/usernotifier.go | 1 - pkg/grpc/user/v2alpha/user.go | 5 + proto/zitadel/object/v2alpha/object.proto | 6 +- proto/zitadel/user/v2alpha/email.proto | 17 + proto/zitadel/user/v2alpha/password.proto | 53 ++ proto/zitadel/user/v2alpha/user.proto | 81 +++ proto/zitadel/user/v2alpha/user_service.proto | 149 +++++ 24 files changed, 1175 insertions(+), 226 deletions(-) create mode 100644 internal/api/grpc/user/v2/user.go create mode 100644 internal/api/grpc/user/v2/user_test.go create mode 100644 pkg/grpc/user/v2alpha/user.go create mode 100644 proto/zitadel/user/v2alpha/password.proto diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 43cfb96a2..a660dae88 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -259,6 +259,13 @@ module.exports = { sidebarOptions: { groupPathsBy: "tag", }, + }, + user: { + specPath: ".artifacts/openapi/zitadel/user/v2alpha/user_service.swagger.json", + outputDir: "docs/apis/user_service", + sidebarOptions: { + groupPathsBy: "tag", + }, } } }, diff --git a/docs/sidebars.js b/docs/sidebars.js index 6c478cf38..82def05fd 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -374,6 +374,20 @@ module.exports = { }, items: require("./docs/apis/system/sidebar.js"), }, + { + type: "category", + label: "User Lifecycle (Alpha)", + link: { + type: "generated-index", + title: "User Service API (Alpha)", + slug: "/apis/user_service", + description: + "This API is intended to manage users in a ZITADEL instance.\n"+ + "\n"+ + "This project is in alpha state. It can AND will continue breaking until the services provide the same functionality as the current login.", + }, + items: require("./docs/apis/user_service/sidebar.js"), + }, { type: "category", label: "Assets", @@ -508,4 +522,4 @@ module.exports = { ], }, ], -}; \ No newline at end of file +}; diff --git a/internal/api/grpc/management/user.go b/internal/api/grpc/management/user.go index 58092dc73..4c81243fb 100644 --- a/internal/api/grpc/management/user.go +++ b/internal/api/grpc/management/user.go @@ -210,17 +210,14 @@ func (s *Server) BulkRemoveUserMetadata(ctx context.Context, req *mgmt_pb.BulkRe } func (s *Server) AddHumanUser(ctx context.Context, req *mgmt_pb.AddHumanUserRequest) (*mgmt_pb.AddHumanUserResponse, error) { - details, err := s.command.AddHuman(ctx, authz.GetCtxData(ctx).OrgID, AddHumanUserRequestToAddHuman(req)) + human := AddHumanUserRequestToAddHuman(req) + err := s.command.AddHuman(ctx, authz.GetCtxData(ctx).OrgID, human, true) if err != nil { return nil, err } return &mgmt_pb.AddHumanUserResponse{ - UserId: details.ID, - Details: obj_grpc.AddToDetailsPb( - details.Sequence, - details.EventDate, - details.ResourceOwner, - ), + UserId: human.ID, + Details: obj_grpc.DomainToAddDetailsPb(human.Details), }, nil } diff --git a/internal/api/grpc/server/middleware/auth_interceptor.go b/internal/api/grpc/server/middleware/auth_interceptor.go index e1c6e6e02..f02a822d8 100644 --- a/internal/api/grpc/server/middleware/auth_interceptor.go +++ b/internal/api/grpc/server/middleware/auth_interceptor.go @@ -34,6 +34,9 @@ func authorize(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, } orgID := grpc_util.GetHeader(authCtx, http.ZitadelOrgID) + if o, ok := req.(AuthContext); ok { + orgID = o.AuthContext() + } ctxSetter, err := authz.CheckUserAuthorization(authCtx, req, authToken, orgID, verifier, authConfig, authOpt, info.FullMethod) if err != nil { @@ -42,3 +45,7 @@ func authorize(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, span.End() return handler(ctxSetter(ctx), req) } + +type AuthContext interface { + AuthContext() string +} diff --git a/internal/api/grpc/user/v2/email.go b/internal/api/grpc/user/v2/email.go index 94530167c..95928e2e6 100644 --- a/internal/api/grpc/user/v2/email.go +++ b/internal/api/grpc/user/v2/email.go @@ -12,7 +12,7 @@ import ( ) func (s *Server) SetEmail(ctx context.Context, req *user.SetEmailRequest) (resp *user.SetEmailResponse, err error) { - resourceOwner := "" // TODO: check if still needed + var resourceOwner string // TODO: check if still needed var email *domain.Email switch v := req.GetVerification().(type) { diff --git a/internal/api/grpc/user/v2/user.go b/internal/api/grpc/user/v2/user.go new file mode 100644 index 000000000..a058e7e75 --- /dev/null +++ b/internal/api/grpc/user/v2/user.go @@ -0,0 +1,107 @@ +package user + +import ( + "context" + "io" + + "golang.org/x/text/language" + + "github.com/zitadel/zitadel/internal/api/grpc/object/v2" + "github.com/zitadel/zitadel/internal/command" + "github.com/zitadel/zitadel/internal/domain" + "github.com/zitadel/zitadel/internal/errors" + "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha" +) + +func (s *Server) AddHumanUser(ctx context.Context, req *user.AddHumanUserRequest) (_ *user.AddHumanUserResponse, err error) { + human, err := addUserRequestToAddHuman(req) + if err != nil { + return nil, err + } + err = s.command.AddHuman(ctx, req.GetOrganisation().GetOrgId(), human, false) + if err != nil { + return nil, err + } + return &user.AddHumanUserResponse{ + UserId: human.ID, + Details: object.DomainToDetailsPb(human.Details), + EmailCode: human.EmailCode, + }, nil +} + +func addUserRequestToAddHuman(req *user.AddHumanUserRequest) (*command.AddHuman, error) { + username := req.GetUsername() + if username == "" { + username = req.GetEmail().GetEmail() + } + var urlTemplate string + if req.GetEmail().GetSendCode() != nil { + urlTemplate = req.GetEmail().GetSendCode().GetUrlTemplate() + // test the template execution so the async notification will not fail because of it and the user won't realize + if err := domain.RenderConfirmURLTemplate(io.Discard, urlTemplate, req.GetUserId(), "code", "orgID"); err != nil { + return nil, err + } + } + bcryptedPassword, err := hashedPasswordToCommand(req.GetHashedPassword()) + if err != nil { + return nil, err + } + passwordChangeRequired := req.GetPassword().GetChangeRequired() || req.GetHashedPassword().GetChangeRequired() + metadata := make([]*command.AddMetadataEntry, len(req.Metadata)) + for i, metadataEntry := range req.Metadata { + metadata[i] = &command.AddMetadataEntry{ + Key: metadataEntry.GetKey(), + Value: metadataEntry.GetValue(), + } + } + return &command.AddHuman{ + ID: req.GetUserId(), + Username: username, + FirstName: req.GetProfile().GetFirstName(), + LastName: req.GetProfile().GetLastName(), + NickName: req.GetProfile().GetNickName(), + DisplayName: req.GetProfile().GetDisplayName(), + Email: command.Email{ + Address: domain.EmailAddress(req.GetEmail().GetEmail()), + Verified: req.GetEmail().GetIsVerified(), + ReturnCode: req.GetEmail().GetReturnCode() != nil, + URLTemplate: urlTemplate, + }, + PreferredLanguage: language.Make(req.GetProfile().GetPreferredLanguage()), + Gender: genderToDomain(req.GetProfile().GetGender()), + Phone: command.Phone{}, // TODO: add as soon as possible + Password: req.GetPassword().GetPassword(), + BcryptedPassword: bcryptedPassword, + PasswordChangeRequired: passwordChangeRequired, + Passwordless: false, + ExternalIDP: false, + Register: false, + Metadata: metadata, + }, nil +} + +func genderToDomain(gender user.Gender) domain.Gender { + switch gender { + case user.Gender_GENDER_UNSPECIFIED: + return domain.GenderUnspecified + case user.Gender_GENDER_FEMALE: + return domain.GenderFemale + case user.Gender_GENDER_MALE: + return domain.GenderMale + case user.Gender_GENDER_DIVERSE: + return domain.GenderDiverse + default: + return domain.GenderUnspecified + } +} + +func hashedPasswordToCommand(hashed *user.HashedPassword) (string, error) { + if hashed == nil { + return "", nil + } + // we currently only handle bcrypt + if hashed.GetAlgorithm() != "bcrypt" { + return "", errors.ThrowInvalidArgument(nil, "USER-JDk4t", "Errors.InvalidArgument") + } + return hashed.GetHash(), nil +} diff --git a/internal/api/grpc/user/v2/user_test.go b/internal/api/grpc/user/v2/user_test.go new file mode 100644 index 000000000..d697e9ae4 --- /dev/null +++ b/internal/api/grpc/user/v2/user_test.go @@ -0,0 +1,80 @@ +package user + +import ( + "errors" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + caos_errs "github.com/zitadel/zitadel/internal/errors" + user "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha" +) + +func Test_hashedPasswordToCommand(t *testing.T) { + type args struct { + hashed *user.HashedPassword + } + type res struct { + want string + err func(error) bool + } + tests := []struct { + name string + args args + res res + }{ + { + "not hashed", + args{ + hashed: nil, + }, + res{ + "", + nil, + }, + }, + { + "hashed, not bcrypt", + args{ + hashed: &user.HashedPassword{ + Hash: "hash", + Algorithm: "custom", + }, + }, + res{ + "", + func(err error) bool { + return errors.Is(err, caos_errs.ThrowInvalidArgument(nil, "USER-JDk4t", "Errors.InvalidArgument")) + }, + }, + }, + { + "hashed, bcrypt", + args{ + hashed: &user.HashedPassword{ + Hash: "hash", + Algorithm: "bcrypt", + }, + }, + res{ + "hash", + nil, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := hashedPasswordToCommand(tt.args.hashed) + if tt.res.err == nil { + require.NoError(t, err) + } + if tt.res.err != nil && !tt.res.err(err) { + t.Errorf("got wrong err: %v ", err) + } + if tt.res.err == nil { + assert.Equal(t, tt.res.want, got) + } + }) + } +} diff --git a/internal/command/command.go b/internal/command/command.go index 4499b84b5..82f2a4c45 100644 --- a/internal/command/command.go +++ b/internal/command/command.go @@ -30,6 +30,7 @@ type Commands struct { httpClient *http.Client checkPermission permissionCheck + newEmailCode func(ctx context.Context, filter preparation.FilterToQueryReducer, codeAlg crypto.EncryptionAlgorithm) (*CryptoCodeWithExpiry, error) eventstore *eventstore.Eventstore static static.Storage @@ -109,6 +110,7 @@ func StartCommands( checkPermission: func(ctx context.Context, permission, orgID, resourceID string, allowSelf bool) (err error) { return authz.CheckPermission(ctx, membershipsResolver, zitadelRoles, permission, orgID, resourceID, allowSelf) }, + newEmailCode: newEmailCode, } instance_repo.RegisterEventMappers(repo.eventstore) diff --git a/internal/command/crypto.go b/internal/command/crypto.go index 2313e86b6..404b2221f 100644 --- a/internal/command/crypto.go +++ b/internal/command/crypto.go @@ -10,24 +10,33 @@ import ( "github.com/zitadel/zitadel/internal/errors" ) -func newCryptoCodeWithExpiry(ctx context.Context, filter preparation.FilterToQueryReducer, typ domain.SecretGeneratorType, alg crypto.Crypto) (value *crypto.CryptoValue, expiry time.Duration, err error) { +type CryptoCodeWithExpiry struct { + Crypted *crypto.CryptoValue + Plain string + Expiry time.Duration +} + +func newCryptoCodeWithExpiry(ctx context.Context, filter preparation.FilterToQueryReducer, typ domain.SecretGeneratorType, alg crypto.Crypto) (*CryptoCodeWithExpiry, error) { config, err := secretGeneratorConfig(ctx, filter, typ) if err != nil { - return nil, -1, err + return nil, err } + code := new(CryptoCodeWithExpiry) switch a := alg.(type) { case crypto.HashAlgorithm: - value, _, err = crypto.NewCode(crypto.NewHashGenerator(*config, a)) + code.Crypted, code.Plain, err = crypto.NewCode(crypto.NewHashGenerator(*config, a)) case crypto.EncryptionAlgorithm: - value, _, err = crypto.NewCode(crypto.NewEncryptionGenerator(*config, a)) + code.Crypted, code.Plain, err = crypto.NewCode(crypto.NewEncryptionGenerator(*config, a)) default: - return nil, -1, errors.ThrowInternal(nil, "COMMA-RreV6", "Errors.Internal") + return nil, errors.ThrowInternal(nil, "COMMA-RreV6", "Errors.Internal") } if err != nil { - return nil, -1, err + return nil, err } - return value, config.Expiry, nil + + code.Expiry = config.Expiry + return code, nil } func newCryptoCodeWithPlain(ctx context.Context, filter preparation.FilterToQueryReducer, typ domain.SecretGeneratorType, alg crypto.Crypto) (value *crypto.CryptoValue, plain string, err error) { diff --git a/internal/command/email.go b/internal/command/email.go index 4e2c3d973..0bfbcd6af 100644 --- a/internal/command/email.go +++ b/internal/command/email.go @@ -2,7 +2,6 @@ package command import ( "context" - "time" "github.com/zitadel/zitadel/internal/command/preparation" "github.com/zitadel/zitadel/internal/crypto" @@ -12,12 +11,18 @@ import ( type Email struct { Address domain.EmailAddress Verified bool + + // ReturnCode is used if the Verified field is false + ReturnCode bool + + // URLTemplate can be used to specify a custom link to be sent in the mail verification + URLTemplate string } func (e *Email) Validate() error { return e.Address.Validate() } -func newEmailCode(ctx context.Context, filter preparation.FilterToQueryReducer, alg crypto.EncryptionAlgorithm) (value *crypto.CryptoValue, expiry time.Duration, err error) { +func newEmailCode(ctx context.Context, filter preparation.FilterToQueryReducer, alg crypto.EncryptionAlgorithm) (*CryptoCodeWithExpiry, error) { return newCryptoCodeWithExpiry(ctx, filter, domain.SecretGeneratorTypeVerifyEmailCode, alg) } diff --git a/internal/command/instance.go b/internal/command/instance.go index 436b61b2b..b8e00c1c0 100644 --- a/internal/command/instance.go +++ b/internal/command/instance.go @@ -333,8 +333,9 @@ func (c *Commands) SetUpInstance(ctx context.Context, setup *InstanceSetup) (str validations = append(validations, prepareAddUserMachineKey(machineKey, c.machineKeySize)) } } else if setup.Org.Human != nil { + setup.Org.Human.ID = userAgg.ID validations = append(validations, - AddHumanCommand(userAgg, setup.Org.Human, c.userPasswordAlg, c.userEncryption), + c.AddHumanCommand(userAgg, setup.Org.Human, c.userPasswordAlg, c.userEncryption, true), ) } diff --git a/internal/command/org.go b/internal/command/org.go index 04f38877d..71e2c3e18 100644 --- a/internal/command/org.go +++ b/internal/command/org.go @@ -51,7 +51,7 @@ func (c *Commands) setUpOrgWithIDs(ctx context.Context, o *OrgSetup, orgID, user var pat *PersonalAccessToken var machineKey *MachineKey if o.Human != nil { - validations = append(validations, AddHumanCommand(userAgg, o.Human, c.userPasswordAlg, c.userEncryption)) + validations = append(validations, c.AddHumanCommand(userAgg, o.Human, c.userPasswordAlg, c.userEncryption, true)) } else if o.Machine != nil { validations = append(validations, AddMachineCommand(userAgg, o.Machine.Machine)) if o.Machine.Pat != nil { diff --git a/internal/command/phone.go b/internal/command/phone.go index 109a60975..30cabb6fc 100644 --- a/internal/command/phone.go +++ b/internal/command/phone.go @@ -2,7 +2,6 @@ package command import ( "context" - "time" "github.com/zitadel/zitadel/internal/command/preparation" "github.com/zitadel/zitadel/internal/crypto" @@ -14,6 +13,6 @@ type Phone struct { Verified bool } -func newPhoneCode(ctx context.Context, filter preparation.FilterToQueryReducer, alg crypto.EncryptionAlgorithm) (value *crypto.CryptoValue, expiry time.Duration, err error) { +func newPhoneCode(ctx context.Context, filter preparation.FilterToQueryReducer, alg crypto.EncryptionAlgorithm) (*CryptoCodeWithExpiry, error) { return newCryptoCodeWithExpiry(ctx, filter, domain.SecretGeneratorTypeVerifyPhoneCode, alg) } diff --git a/internal/command/user.go b/internal/command/user.go index 96ca0d1e6..34ba7c521 100644 --- a/internal/command/user.go +++ b/internal/command/user.go @@ -439,7 +439,7 @@ func ExistsUser(ctx context.Context, filter preparation.FilterToQueryReducer, id return exists, nil } -func newUserInitCode(ctx context.Context, filter preparation.FilterToQueryReducer, alg crypto.EncryptionAlgorithm) (value *crypto.CryptoValue, expiry time.Duration, err error) { +func newUserInitCode(ctx context.Context, filter preparation.FilterToQueryReducer, alg crypto.EncryptionAlgorithm) (*CryptoCodeWithExpiry, error) { return newCryptoCodeWithExpiry(ctx, filter, domain.SecretGeneratorTypeInitCode, alg) } diff --git a/internal/command/user_human.go b/internal/command/user_human.go index 3d84eeb12..688beaa3f 100644 --- a/internal/command/user_human.go +++ b/internal/command/user_human.go @@ -27,6 +27,8 @@ func (c *Commands) getHuman(ctx context.Context, userID, resourceowner string) ( } type AddHuman struct { + // ID is optional + ID string // Username is required Username string // FirstName is required @@ -43,63 +45,99 @@ type AddHuman struct { PreferredLanguage language.Tag // Gender is required Gender domain.Gender - //Phone represents an international phone number + // Phone represents an international phone number Phone Phone - //Password is optional + // Password is optional Password string - //BcryptedPassword is optional + // BcryptedPassword is optional BcryptedPassword string - //PasswordChangeRequired is used if the `Password`-field is set + // PasswordChangeRequired is used if the `Password`-field is set PasswordChangeRequired bool Passwordless bool ExternalIDP bool Register bool + Metadata []*AddMetadataEntry + + // Details are set after a successful execution of the command + Details *domain.ObjectDetails + + // EmailCode is set by the command + EmailCode *string } -func (c *Commands) AddHumanWithID(ctx context.Context, resourceOwner string, userID string, human *AddHuman) (*domain.HumanDetails, error) { - existingHuman, err := c.getHumanWriteModelByID(ctx, userID, resourceOwner) - if err != nil { - return nil, err +func (h *AddHuman) Validate() (err error) { + if err := h.Email.Validate(); err != nil { + return err } - if isUserStateExists(existingHuman.UserState) { - return nil, errors.ThrowPreconditionFailed(nil, "COMMAND-k2unb", "Errors.User.AlreadyExisting") + if h.Username = strings.TrimSpace(h.Username); h.Username == "" { + return errors.ThrowInvalidArgument(nil, "V2-zzad3", "Errors.Invalid.Argument") } - return c.addHumanWithID(ctx, resourceOwner, userID, human) + if h.FirstName = strings.TrimSpace(h.FirstName); h.FirstName == "" { + return errors.ThrowInvalidArgument(nil, "USER-UCej2", "Errors.User.Profile.FirstNameEmpty") + } + if h.LastName = strings.TrimSpace(h.LastName); h.LastName == "" { + return errors.ThrowInvalidArgument(nil, "USER-4hB7d", "Errors.User.Profile.LastNameEmpty") + } + h.ensureDisplayName() + + if h.Phone.Number != "" { + if h.Phone.Number, err = h.Phone.Number.Normalize(); err != nil { + return err + } + } + + for _, metadataEntry := range h.Metadata { + if err := metadataEntry.Valid(); err != nil { + return err + } + } + return nil } -func (c *Commands) addHumanWithID(ctx context.Context, resourceOwner string, userID string, human *AddHuman) (*domain.HumanDetails, error) { - agg := user.NewAggregate(userID, resourceOwner) - cmds, err := preparation.PrepareCommands(ctx, c.eventstore.Filter, AddHumanCommand(agg, human, c.userPasswordAlg, c.userEncryption)) +type AddMetadataEntry struct { + Key string + Value []byte +} + +func (m *AddMetadataEntry) Valid() error { + if m.Key = strings.TrimSpace(m.Key); m.Key == "" { + return errors.ThrowInvalidArgument(nil, "USER-Drght", "Errors.User.Metadata.KeyEmpty") + } + if len(m.Value) == 0 { + return errors.ThrowInvalidArgument(nil, "USER-Dbgth", "Errors.User.Metadata.ValueEmpty") + } + return nil +} + +func (c *Commands) AddHuman(ctx context.Context, resourceOwner string, human *AddHuman, allowInitMail bool) (err error) { + if resourceOwner == "" { + return errors.ThrowInvalidArgument(nil, "COMMA-5Ky74", "Errors.Internal") + } + agg := user.NewAggregate(human.ID, resourceOwner) + cmds, err := preparation.PrepareCommands(ctx, c.eventstore.Filter, + c.AddHumanCommand( + agg, + human, + c.userPasswordAlg, + c.userEncryption, + allowInitMail, + )) if err != nil { - return nil, err + return err } events, err := c.eventstore.Push(ctx, cmds...) if err != nil { - return nil, err + return err + } + human.Details = &domain.ObjectDetails{ + Sequence: events[len(events)-1].Sequence(), + EventDate: events[len(events)-1].CreationDate(), + ResourceOwner: events[len(events)-1].Aggregate().ResourceOwner, } - return &domain.HumanDetails{ - ID: userID, - ObjectDetails: domain.ObjectDetails{ - Sequence: events[len(events)-1].Sequence(), - EventDate: events[len(events)-1].CreationDate(), - ResourceOwner: events[len(events)-1].Aggregate().ResourceOwner, - }, - }, nil -} - -func (c *Commands) AddHuman(ctx context.Context, resourceOwner string, human *AddHuman) (*domain.HumanDetails, error) { - if resourceOwner == "" { - return nil, errors.ThrowInvalidArgument(nil, "COMMA-5Ky74", "Errors.Internal") - } - userID, err := c.idGenerator.Next() - if err != nil { - return nil, err - } - - return c.addHumanWithID(ctx, resourceOwner, userID, human) + return nil } type humanCreationCommand interface { @@ -108,30 +146,17 @@ type humanCreationCommand interface { AddPasswordData(secret *crypto.CryptoValue, changeRequired bool) } -func AddHumanCommand(a *user.Aggregate, human *AddHuman, passwordAlg crypto.HashAlgorithm, codeAlg crypto.EncryptionAlgorithm) preparation.Validation { +func (c *Commands) AddHumanCommand(a *user.Aggregate, human *AddHuman, passwordAlg crypto.HashAlgorithm, codeAlg crypto.EncryptionAlgorithm, allowInitMail bool) preparation.Validation { return func() (_ preparation.CreateCommands, err error) { - if err := human.Email.Validate(); err != nil { + if err := human.Validate(); err != nil { return nil, err } - if human.Username = strings.TrimSpace(human.Username); human.Username == "" { - return nil, errors.ThrowInvalidArgument(nil, "V2-zzad3", "Errors.Invalid.Argument") - } - - if human.FirstName = strings.TrimSpace(human.FirstName); human.FirstName == "" { - return nil, errors.ThrowInvalidArgument(nil, "USER-UCej2", "Errors.User.Profile.FirstNameEmpty") - } - if human.LastName = strings.TrimSpace(human.LastName); human.LastName == "" { - return nil, errors.ThrowInvalidArgument(nil, "USER-4hB7d", "Errors.User.Profile.LastNameEmpty") - } - human.ensureDisplayName() - - if human.Phone.Number != "" { - if human.Phone.Number, err = human.Phone.Number.Normalize(); err != nil { - return nil, err - } - } return func(ctx context.Context, filter preparation.FilterToQueryReducer) ([]eventstore.Command, error) { + if err := c.addHumanCommandCheckID(ctx, filter, a, human); err != nil { + return nil, err + } + domainPolicy, err := domainPolicyWriteModel(ctx, filter, a.ResourceOwner) if err != nil { return nil, err @@ -176,55 +201,30 @@ func AddHumanCommand(a *user.Aggregate, human *AddHuman, passwordAlg crypto.Hash createCmd.AddPhoneData(human.Phone.Number) } - if human.Password != "" { - if err = humanValidatePassword(ctx, filter, human.Password); err != nil { - return nil, err - } - - secret, err := crypto.Hash([]byte(human.Password), passwordAlg) - if err != nil { - return nil, err - } - createCmd.AddPasswordData(secret, human.PasswordChangeRequired) - } - - if human.BcryptedPassword != "" { - createCmd.AddPasswordData(crypto.FillHash([]byte(human.BcryptedPassword), passwordAlg), human.PasswordChangeRequired) + if err := addHumanCommandPassword(ctx, filter, createCmd, human, passwordAlg); err != nil { + return nil, err } cmds := make([]eventstore.Command, 0, 3) cmds = append(cmds, createCmd) - if human.Email.Verified { - cmds = append(cmds, user.NewHumanEmailVerifiedEvent(ctx, &a.Aggregate)) - } - //add init code if - // email not verified or - // user not registered and password set - if human.shouldAddInitCode() { - value, expiry, err := newUserInitCode(ctx, filter, codeAlg) - if err != nil { - return nil, err - } - cmds = append(cmds, user.NewHumanInitialCodeAddedEvent(ctx, &a.Aggregate, value, expiry)) - } else { - if !human.Email.Verified { - value, expiry, err := newEmailCode(ctx, filter, codeAlg) - if err != nil { - return nil, err - } - cmds = append(cmds, user.NewHumanEmailCodeAddedEvent(ctx, &a.Aggregate, value, expiry)) - } + cmds, err = c.addHumanCommandEmail(ctx, filter, cmds, a, human, codeAlg, allowInitMail) + if err != nil { + return nil, err } - if human.Phone.Verified { - cmds = append(cmds, user.NewHumanPhoneVerifiedEvent(ctx, &a.Aggregate)) - } else if human.Phone.Number != "" { - value, expiry, err := newPhoneCode(ctx, filter, codeAlg) - if err != nil { - return nil, err - } - cmds = append(cmds, user.NewHumanPhoneCodeAddedEvent(ctx, &a.Aggregate, value, expiry)) + cmds, err = c.addHumanCommandPhone(ctx, filter, cmds, a, human, codeAlg) + if err != nil { + return nil, err + } + + for _, metadataEntry := range human.Metadata { + cmds = append(cmds, user.NewMetadataSetEvent( + ctx, + &a.Aggregate, + metadataEntry.Key, + metadataEntry.Value, + )) } return cmds, nil @@ -232,6 +232,87 @@ func AddHumanCommand(a *user.Aggregate, human *AddHuman, passwordAlg crypto.Hash } } +func (c *Commands) addHumanCommandEmail(ctx context.Context, filter preparation.FilterToQueryReducer, cmds []eventstore.Command, a *user.Aggregate, human *AddHuman, codeAlg crypto.EncryptionAlgorithm, allowInitMail bool) ([]eventstore.Command, error) { + if human.Email.Verified { + cmds = append(cmds, user.NewHumanEmailVerifiedEvent(ctx, &a.Aggregate)) + } + + // if allowInitMail, used for v1 api (system, admin, mgmt, auth): + // add init code if + // email not verified or + // user not registered and password set + if allowInitMail && human.shouldAddInitCode() { + initCode, err := newUserInitCode(ctx, filter, codeAlg) + if err != nil { + return nil, err + } + return append(cmds, user.NewHumanInitialCodeAddedEvent(ctx, &a.Aggregate, initCode.Crypted, initCode.Expiry)), nil + } + if !human.Email.Verified { + emailCode, err := c.newEmailCode(ctx, filter, codeAlg) + if err != nil { + return nil, err + } + if human.Email.ReturnCode { + human.EmailCode = &emailCode.Plain + } + return append(cmds, user.NewHumanEmailCodeAddedEventV2(ctx, &a.Aggregate, emailCode.Crypted, emailCode.Expiry, human.Email.URLTemplate, human.Email.ReturnCode)), nil + } + return cmds, nil +} +func (c *Commands) addHumanCommandPhone(ctx context.Context, filter preparation.FilterToQueryReducer, cmds []eventstore.Command, a *user.Aggregate, human *AddHuman, codeAlg crypto.EncryptionAlgorithm) ([]eventstore.Command, error) { + if human.Phone.Number == "" { + return cmds, nil + } + if human.Phone.Verified { + return append(cmds, user.NewHumanPhoneVerifiedEvent(ctx, &a.Aggregate)), nil + } + phoneCode, err := newPhoneCode(ctx, filter, codeAlg) + if err != nil { + return nil, err + } + return append(cmds, user.NewHumanPhoneCodeAddedEvent(ctx, &a.Aggregate, phoneCode.Crypted, phoneCode.Expiry)), nil +} + +func (c *Commands) addHumanCommandCheckID(ctx context.Context, filter preparation.FilterToQueryReducer, a *user.Aggregate, human *AddHuman) (err error) { + if human.ID != "" { + existingHuman, err := humanWriteModelByID(ctx, filter, human.ID, a.ResourceOwner) + if err != nil { + return err + } + if isUserStateExists(existingHuman.UserState) { + return errors.ThrowPreconditionFailed(nil, "COMMAND-k2unb", "Errors.User.AlreadyExisting") + } + return nil + } + human.ID, err = c.idGenerator.Next() + if err != nil { + return err + } + a.ID = human.ID + return nil +} + +func addHumanCommandPassword(ctx context.Context, filter preparation.FilterToQueryReducer, createCmd humanCreationCommand, human *AddHuman, passwordAlg crypto.HashAlgorithm) (err error) { + if human.Password != "" { + if err = humanValidatePassword(ctx, filter, human.Password); err != nil { + return err + } + + secret, err := crypto.Hash([]byte(human.Password), passwordAlg) + if err != nil { + return err + } + createCmd.AddPasswordData(secret, human.PasswordChangeRequired) + return nil + } + + if human.BcryptedPassword != "" { + createCmd.AddPasswordData(crypto.FillHash([]byte(human.BcryptedPassword), passwordAlg), human.PasswordChangeRequired) + } + return nil +} + func userValidateDomain(ctx context.Context, a *user.Aggregate, username string, mustBeDomain bool, filter preparation.FilterToQueryReducer) error { if mustBeDomain { return nil @@ -651,3 +732,17 @@ func (c *Commands) getHumanWriteModelByID(ctx context.Context, userID, resourceo } return humanWriteModel, nil } + +func humanWriteModelByID(ctx context.Context, filter preparation.FilterToQueryReducer, userID, resourceowner string) (*HumanWriteModel, error) { + humanWriteModel := NewHumanWriteModel(userID, resourceowner) + events, err := filter(ctx, humanWriteModel.Query()) + if err != nil { + return nil, err + } + if len(events) == 0 { + return humanWriteModel, nil + } + humanWriteModel.AppendEvents(events...) + err = humanWriteModel.Reduce() + return humanWriteModel, err +} diff --git a/internal/command/user_human_test.go b/internal/command/user_human_test.go index b56ed01c1..7e408ed9b 100644 --- a/internal/command/user_human_test.go +++ b/internal/command/user_human_test.go @@ -2,17 +2,19 @@ package command import ( "context" + "errors" "testing" "time" "github.com/golang/mock/gomock" + "github.com/muhlemmer/gu" "github.com/stretchr/testify/assert" "golang.org/x/text/language" "github.com/zitadel/zitadel/internal/command/preparation" "github.com/zitadel/zitadel/internal/crypto" "github.com/zitadel/zitadel/internal/domain" - "github.com/zitadel/zitadel/internal/errors" + caos_errs "github.com/zitadel/zitadel/internal/errors" "github.com/zitadel/zitadel/internal/eventstore" "github.com/zitadel/zitadel/internal/eventstore/repository" "github.com/zitadel/zitadel/internal/eventstore/v1/models" @@ -29,16 +31,20 @@ func TestCommandSide_AddHuman(t *testing.T) { idGenerator id.Generator userPasswordAlg crypto.HashAlgorithm codeAlg crypto.EncryptionAlgorithm + newEmailCode func(ctx context.Context, filter preparation.FilterToQueryReducer, alg crypto.EncryptionAlgorithm) (*CryptoCodeWithExpiry, error) } type args struct { ctx context.Context orgID string human *AddHuman secretGenerator crypto.Generator + allowInitMail bool } type res struct { - want *domain.HumanDetails - err func(error) bool + want *domain.ObjectDetails + wantID string + wantEmailCode string + err func(error) bool } userAgg := user.NewAggregate("user1", "org1") @@ -68,9 +74,67 @@ func TestCommandSide_AddHuman(t *testing.T) { Address: "email@test.ch", }, }, + allowInitMail: true, }, res: res{ - err: errors.IsErrorInvalidArgument, + err: func(err error) bool { + return errors.Is(err, caos_errs.ThrowInvalidArgument(nil, "COMMA-5Ky74", "Errors.Internal")) + }, + }, + }, + { + name: "user invalid, invalid argument error", + fields: fields{ + eventstore: eventstoreExpect( + t, + ), + }, + args: args{ + ctx: context.Background(), + orgID: "org1", + human: &AddHuman{ + Username: "username", + FirstName: "firstname", + }, + allowInitMail: true, + }, + res: res{ + err: func(err error) bool { + return errors.Is(err, caos_errs.ThrowInvalidArgument(nil, "EMAIL-spblu", "Errors.User.Email.Empty")) + }, + }, + }, + { + name: "with id, already exists, precondition error", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + newAddHumanEvent("password", true, ""), + ), + ), + ), + }, + args: args{ + ctx: context.Background(), + orgID: "org1", + human: &AddHuman{ + ID: "user1", + Username: "username", + FirstName: "firstname", + LastName: "lastname", + Email: Email{ + Address: "email@test.ch", + }, + PreferredLanguage: language.English, + }, + allowInitMail: true, + }, + res: res{ + err: func(err error) bool { + return errors.Is(err, caos_errs.ThrowPreconditionFailed(nil, "COMMAND-k2unb", "Errors.User.AlreadyExisting")) + }, }, }, { @@ -95,9 +159,12 @@ func TestCommandSide_AddHuman(t *testing.T) { }, PreferredLanguage: language.English, }, + allowInitMail: true, }, res: res{ - err: errors.IsInternal, + err: func(err error) bool { + return errors.Is(err, caos_errs.ThrowInternal(nil, "USER-Ggk9n", "Errors.Internal")) + }, }, }, { @@ -134,30 +201,13 @@ func TestCommandSide_AddHuman(t *testing.T) { }, PreferredLanguage: language.English, }, + allowInitMail: true, }, res: res{ - err: errors.IsInternal, - }, - }, - { - name: "user invalid, invalid argument error", - fields: fields{ - idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), - eventstore: eventstoreExpect( - t, - ), - }, - args: args{ - ctx: context.Background(), - orgID: "org1", - human: &AddHuman{ - Username: "username", - FirstName: "firstname", + err: func(err error) bool { + return errors.Is(err, caos_errs.ThrowInternal(nil, "USER-uQ96e", "Errors.Internal")) }, }, - res: res{ - err: errors.IsErrorInvalidArgument, - }, }, { name: "add human (with initial code), ok", @@ -237,16 +287,15 @@ func TestCommandSide_AddHuman(t *testing.T) { PreferredLanguage: language.English, }, secretGenerator: GetMockSecretGenerator(t), + allowInitMail: true, }, res: res{ - want: &domain.HumanDetails{ - ID: "user1", - ObjectDetails: domain.ObjectDetails{ - Sequence: 0, - EventDate: time.Time{}, - ResourceOwner: "org1", - }, + want: &domain.ObjectDetails{ + Sequence: 0, + EventDate: time.Time{}, + ResourceOwner: "org1", }, + wantID: "user1", }, }, { @@ -330,14 +379,172 @@ func TestCommandSide_AddHuman(t *testing.T) { PreferredLanguage: language.English, }, secretGenerator: GetMockSecretGenerator(t), + allowInitMail: true, }, res: res{ - want: &domain.HumanDetails{ - ID: "user1", - ObjectDetails: domain.ObjectDetails{ - ResourceOwner: "org1", - }, + want: &domain.ObjectDetails{ + ResourceOwner: "org1", }, + wantID: "user1", + }, + }, + { + name: "add human (with password and email code custom template), ok", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + org.NewDomainPolicyAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + true, + true, + true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + org.NewPasswordComplexityPolicyAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + 1, + false, + false, + false, + false, + ), + ), + ), + expectPush( + []*repository.Event{ + eventFromEventPusher( + newAddHumanEvent("password", false, ""), + ), + eventFromEventPusher( + user.NewHumanEmailCodeAddedEventV2(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + &crypto.CryptoValue{ + CryptoType: crypto.TypeEncryption, + Algorithm: "enc", + KeyID: "id", + Crypted: []byte("emailCode"), + }, + 1*time.Hour, + "https://example.com/email/verify?userID={{.UserID}}&code={{.Code}}", + false, + ), + ), + }, + uniqueConstraintsFromEventConstraint(user.NewAddUsernameUniqueConstraint("username", "org1", true)), + ), + ), + idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), + userPasswordAlg: crypto.CreateMockHashAlg(gomock.NewController(t)), + codeAlg: crypto.CreateMockEncryptionAlg(gomock.NewController(t)), + newEmailCode: mockEmailCode("emailCode", time.Hour), + }, + args: args{ + ctx: context.Background(), + orgID: "org1", + human: &AddHuman{ + Username: "username", + Password: "password", + FirstName: "firstname", + LastName: "lastname", + Email: Email{ + Address: "email@test.ch", + URLTemplate: "https://example.com/email/verify?userID={{.UserID}}&code={{.Code}}", + }, + PreferredLanguage: language.English, + }, + secretGenerator: GetMockSecretGenerator(t), + allowInitMail: false, + }, + res: res{ + want: &domain.ObjectDetails{ + ResourceOwner: "org1", + }, + wantID: "user1", + }, + }, + { + name: "add human (with password and return email code), ok", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + org.NewDomainPolicyAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + true, + true, + true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + org.NewPasswordComplexityPolicyAddedEvent(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + 1, + false, + false, + false, + false, + ), + ), + ), + expectPush( + []*repository.Event{ + eventFromEventPusher( + newAddHumanEvent("password", false, ""), + ), + eventFromEventPusher( + user.NewHumanEmailCodeAddedEventV2(context.Background(), + &user.NewAggregate("user1", "org1").Aggregate, + &crypto.CryptoValue{ + CryptoType: crypto.TypeEncryption, + Algorithm: "enc", + KeyID: "id", + Crypted: []byte("emailCode"), + }, + 1*time.Hour, + "", + true, + ), + ), + }, + uniqueConstraintsFromEventConstraint(user.NewAddUsernameUniqueConstraint("username", "org1", true)), + ), + ), + idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), + userPasswordAlg: crypto.CreateMockHashAlg(gomock.NewController(t)), + codeAlg: crypto.CreateMockEncryptionAlg(gomock.NewController(t)), + newEmailCode: mockEmailCode("emailCode", time.Hour), + }, + args: args{ + ctx: context.Background(), + orgID: "org1", + human: &AddHuman{ + Username: "username", + Password: "password", + FirstName: "firstname", + LastName: "lastname", + Email: Email{ + Address: "email@test.ch", + ReturnCode: true, + }, + PreferredLanguage: language.English, + }, + secretGenerator: GetMockSecretGenerator(t), + allowInitMail: false, + }, + res: res{ + want: &domain.ObjectDetails{ + ResourceOwner: "org1", + }, + wantID: "user1", + wantEmailCode: "emailCode", }, }, { @@ -400,14 +607,13 @@ func TestCommandSide_AddHuman(t *testing.T) { PasswordChangeRequired: true, }, secretGenerator: GetMockSecretGenerator(t), + allowInitMail: true, }, res: res{ - want: &domain.HumanDetails{ - ID: "user1", - ObjectDetails: domain.ObjectDetails{ - ResourceOwner: "org1", - }, + want: &domain.ObjectDetails{ + ResourceOwner: "org1", }, + wantID: "user1", }, }, { @@ -470,14 +676,13 @@ func TestCommandSide_AddHuman(t *testing.T) { PasswordChangeRequired: true, }, secretGenerator: GetMockSecretGenerator(t), + allowInitMail: true, }, res: res{ - want: &domain.HumanDetails{ - ID: "user1", - ObjectDetails: domain.ObjectDetails{ - ResourceOwner: "org1", - }, + want: &domain.ObjectDetails{ + ResourceOwner: "org1", }, + wantID: "user1", }, }, { @@ -540,14 +745,13 @@ func TestCommandSide_AddHuman(t *testing.T) { PasswordChangeRequired: true, }, secretGenerator: GetMockSecretGenerator(t), + allowInitMail: true, }, res: res{ - want: &domain.HumanDetails{ - ID: "user1", - ObjectDetails: domain.ObjectDetails{ - ResourceOwner: "org1", - }, + want: &domain.ObjectDetails{ + ResourceOwner: "org1", }, + wantID: "user1", }, }, { @@ -594,9 +798,12 @@ func TestCommandSide_AddHuman(t *testing.T) { PasswordChangeRequired: true, }, secretGenerator: GetMockSecretGenerator(t), + allowInitMail: true, }, res: res{ - err: errors.IsErrorInvalidArgument, + err: func(err error) bool { + return errors.Is(err, caos_errs.ThrowInvalidArgument(nil, "COMMAND-SFd21", "Errors.User.DomainNotAllowedAsUsername")) + }, }, }, { @@ -687,15 +894,14 @@ func TestCommandSide_AddHuman(t *testing.T) { PasswordChangeRequired: true, }, secretGenerator: GetMockSecretGenerator(t), + allowInitMail: true, }, res: res{ - want: &domain.HumanDetails{ - ID: "user1", - ObjectDetails: domain.ObjectDetails{ - ResourceOwner: "org1", - }, + want: &domain.ObjectDetails{ + ResourceOwner: "org1", }, + wantID: "user1", }, }, { @@ -787,14 +993,13 @@ func TestCommandSide_AddHuman(t *testing.T) { PreferredLanguage: language.English, }, secretGenerator: GetMockSecretGenerator(t), + allowInitMail: true, }, res: res{ - want: &domain.HumanDetails{ - ID: "user1", - ObjectDetails: domain.ObjectDetails{ - ResourceOwner: "org1", - }, + want: &domain.ObjectDetails{ + ResourceOwner: "org1", }, + wantID: "user1", }, }, { @@ -875,14 +1080,104 @@ func TestCommandSide_AddHuman(t *testing.T) { PreferredLanguage: language.English, }, secretGenerator: GetMockSecretGenerator(t), + allowInitMail: true, }, res: res{ - want: &domain.HumanDetails{ - ID: "user1", - ObjectDetails: domain.ObjectDetails{ - ResourceOwner: "org1", + want: &domain.ObjectDetails{ + ResourceOwner: "org1", + }, + wantID: "user1", + }, + }, + { + name: "add human with metadata, ok", + fields: fields{ + eventstore: eventstoreExpect( + t, + expectFilter( + eventFromEventPusher( + org.NewDomainPolicyAddedEvent(context.Background(), + &userAgg.Aggregate, + true, + true, + true, + ), + ), + ), + expectFilter( + eventFromEventPusher( + instance.NewSecretGeneratorAddedEvent( + context.Background(), + &instanceAgg.Aggregate, + domain.SecretGeneratorTypeInitCode, + 0, + 1*time.Hour, + true, + true, + true, + true, + ), + ), + ), + expectPush( + []*repository.Event{ + eventFromEventPusher( + newAddHumanEvent("", false, ""), + ), + eventFromEventPusher( + user.NewHumanInitialCodeAddedEvent( + context.Background(), + &userAgg.Aggregate, + &crypto.CryptoValue{ + CryptoType: crypto.TypeEncryption, + Algorithm: "enc", + KeyID: "id", + Crypted: []byte(""), + }, + 1*time.Hour, + ), + ), + eventFromEventPusher( + user.NewMetadataSetEvent( + context.Background(), + &userAgg.Aggregate, + "testKey", + []byte("testValue"), + ), + ), + }, + uniqueConstraintsFromEventConstraint(user.NewAddUsernameUniqueConstraint("username", "org1", true)), + ), + ), + idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), + codeAlg: crypto.CreateMockEncryptionAlg(gomock.NewController(t)), + }, + args: args{ + ctx: context.Background(), + orgID: "org1", + human: &AddHuman{ + Username: "username", + FirstName: "firstname", + LastName: "lastname", + Email: Email{ + Address: "email@test.ch", + }, + PreferredLanguage: language.English, + Metadata: []*AddMetadataEntry{ + { + Key: "testKey", + Value: []byte("testValue"), + }, }, }, + secretGenerator: GetMockSecretGenerator(t), + allowInitMail: true, + }, + res: res{ + want: &domain.ObjectDetails{ + ResourceOwner: "org1", + }, + wantID: "user1", }, }, } @@ -893,8 +1188,9 @@ func TestCommandSide_AddHuman(t *testing.T) { userPasswordAlg: tt.fields.userPasswordAlg, userEncryption: tt.fields.codeAlg, idGenerator: tt.fields.idGenerator, + newEmailCode: tt.fields.newEmailCode, } - got, err := r.AddHuman(tt.args.ctx, tt.args.orgID, tt.args.human) + err := r.AddHuman(tt.args.ctx, tt.args.orgID, tt.args.human, tt.args.allowInitMail) if tt.res.err == nil { if !assert.NoError(t, err) { t.FailNow() @@ -904,7 +1200,9 @@ func TestCommandSide_AddHuman(t *testing.T) { t.Errorf("got wrong err: %v ", err) } if tt.res.err == nil { - assert.Equal(t, tt.res.want, got) + assert.Equal(t, tt.res.want, tt.args.human.Details) + assert.Equal(t, tt.res.wantID, tt.args.human.ID) + assert.Equal(t, tt.res.wantEmailCode, gu.Value(tt.args.human.EmailCode)) } }) } @@ -958,7 +1256,7 @@ func TestCommandSide_ImportHuman(t *testing.T) { }, }, res: res{ - err: errors.IsErrorInvalidArgument, + err: caos_errs.IsErrorInvalidArgument, }, }, { @@ -985,7 +1283,7 @@ func TestCommandSide_ImportHuman(t *testing.T) { }, }, res: res{ - err: errors.IsPreconditionFailed, + err: caos_errs.IsPreconditionFailed, }, }, { @@ -1022,7 +1320,7 @@ func TestCommandSide_ImportHuman(t *testing.T) { }, }, res: res{ - err: errors.IsPreconditionFailed, + err: caos_errs.IsPreconditionFailed, }, }, { @@ -1065,7 +1363,7 @@ func TestCommandSide_ImportHuman(t *testing.T) { }, }, res: res{ - err: errors.IsErrorInvalidArgument, + err: caos_errs.IsErrorInvalidArgument, }, }, { @@ -1869,7 +2167,7 @@ func TestCommandSide_RegisterHuman(t *testing.T) { }, }, res: res{ - err: errors.IsErrorInvalidArgument, + err: caos_errs.IsErrorInvalidArgument, }, }, { @@ -1899,7 +2197,7 @@ func TestCommandSide_RegisterHuman(t *testing.T) { }, }, res: res{ - err: errors.IsPreconditionFailed, + err: caos_errs.IsPreconditionFailed, }, }, { @@ -1939,7 +2237,7 @@ func TestCommandSide_RegisterHuman(t *testing.T) { }, }, res: res{ - err: errors.IsPreconditionFailed, + err: caos_errs.IsPreconditionFailed, }, }, { @@ -1987,7 +2285,7 @@ func TestCommandSide_RegisterHuman(t *testing.T) { }, }, res: res{ - err: errors.IsPreconditionFailed, + err: caos_errs.IsPreconditionFailed, }, }, { @@ -2056,7 +2354,7 @@ func TestCommandSide_RegisterHuman(t *testing.T) { }, }, res: res{ - err: errors.IsPreconditionFailed, + err: caos_errs.IsPreconditionFailed, }, }, { @@ -2125,7 +2423,7 @@ func TestCommandSide_RegisterHuman(t *testing.T) { }, }, res: res{ - err: errors.IsErrorInvalidArgument, + err: caos_errs.IsErrorInvalidArgument, }, }, { @@ -2211,7 +2509,7 @@ func TestCommandSide_RegisterHuman(t *testing.T) { }, }, res: res{ - err: errors.IsErrorInvalidArgument, + err: caos_errs.IsErrorInvalidArgument, }, }, { @@ -3147,7 +3445,7 @@ func TestCommandSide_HumanMFASkip(t *testing.T) { userID: "", }, res: res{ - err: errors.IsErrorInvalidArgument, + err: caos_errs.IsErrorInvalidArgument, }, }, { @@ -3164,7 +3462,7 @@ func TestCommandSide_HumanMFASkip(t *testing.T) { userID: "user1", }, res: res{ - err: errors.IsNotFound, + err: caos_errs.IsNotFound, }, }, { @@ -3261,7 +3559,7 @@ func TestCommandSide_HumanSignOut(t *testing.T) { userIDs: []string{"user1"}, }, res: res{ - err: errors.IsErrorInvalidArgument, + err: caos_errs.IsErrorInvalidArgument, }, }, { @@ -3277,7 +3575,7 @@ func TestCommandSide_HumanSignOut(t *testing.T) { userIDs: []string{}, }, res: res{ - err: errors.IsErrorInvalidArgument, + err: caos_errs.IsErrorInvalidArgument, }, }, { @@ -3479,18 +3777,23 @@ func newRegisterHumanEvent(username, password string, changeRequired bool, phone } func TestAddHumanCommand(t *testing.T) { + type fields struct { + idGenerator id.Generator + } type args struct { - a *user.Aggregate - human *AddHuman - passwordAlg crypto.HashAlgorithm - filter preparation.FilterToQueryReducer - codeAlg crypto.EncryptionAlgorithm + a *user.Aggregate + human *AddHuman + passwordAlg crypto.HashAlgorithm + filter preparation.FilterToQueryReducer + codeAlg crypto.EncryptionAlgorithm + allowInitMail bool } agg := user.NewAggregate("id", "ro") tests := []struct { - name string - args args - want Want + name string + fields fields + args args + want Want }{ { name: "invalid email", @@ -3503,7 +3806,7 @@ func TestAddHumanCommand(t *testing.T) { }, }, want: Want{ - ValidationErr: errors.ThrowInvalidArgument(nil, "EMAIL-599BI", "Errors.User.Email.Invalid"), + ValidationErr: caos_errs.ThrowInvalidArgument(nil, "EMAIL-599BI", "Errors.User.Email.Invalid"), }, }, { @@ -3519,7 +3822,7 @@ func TestAddHumanCommand(t *testing.T) { }, }, want: Want{ - ValidationErr: errors.ThrowInvalidArgument(nil, "USER-UCej2", "Errors.User.Profile.FirstNameEmpty"), + ValidationErr: caos_errs.ThrowInvalidArgument(nil, "USER-UCej2", "Errors.User.Profile.FirstNameEmpty"), }, }, { @@ -3534,11 +3837,14 @@ func TestAddHumanCommand(t *testing.T) { }, }, want: Want{ - ValidationErr: errors.ThrowInvalidArgument(nil, "USER-4hB7d", "Errors.User.Profile.LastNameEmpty"), + ValidationErr: caos_errs.ThrowInvalidArgument(nil, "USER-4hB7d", "Errors.User.Profile.LastNameEmpty"), }, }, { name: "invalid password", + fields: fields{ + idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "id"), + }, args: args{ a: agg, human: &AddHuman{ @@ -3578,11 +3884,14 @@ func TestAddHumanCommand(t *testing.T) { Filter(), }, want: Want{ - CreateErr: errors.ThrowInvalidArgument(nil, "COMMA-HuJf6", "Errors.User.PasswordComplexityPolicy.MinLength"), + CreateErr: caos_errs.ThrowInvalidArgument(nil, "COMMA-HuJf6", "Errors.User.PasswordComplexityPolicy.MinLength"), }, }, { name: "correct", + fields: fields{ + idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "id"), + }, args: args{ a: agg, human: &AddHuman{ @@ -3654,7 +3963,25 @@ func TestAddHumanCommand(t *testing.T) { } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - AssertValidation(t, context.Background(), AddHumanCommand(tt.args.a, tt.args.human, tt.args.passwordAlg, tt.args.codeAlg), tt.args.filter, tt.want) + c := &Commands{ + idGenerator: tt.fields.idGenerator, + } + AssertValidation(t, context.Background(), c.AddHumanCommand(tt.args.a, tt.args.human, tt.args.passwordAlg, tt.args.codeAlg, tt.args.allowInitMail), tt.args.filter, tt.want) }) } } + +func mockEmailCode(code string, exp time.Duration) func(ctx context.Context, filter preparation.FilterToQueryReducer, alg crypto.EncryptionAlgorithm) (*CryptoCodeWithExpiry, error) { + return func(ctx context.Context, filter preparation.FilterToQueryReducer, alg crypto.EncryptionAlgorithm) (*CryptoCodeWithExpiry, error) { + return &CryptoCodeWithExpiry{ + Crypted: &crypto.CryptoValue{ + CryptoType: crypto.TypeEncryption, + Algorithm: "enc", + KeyID: "id", + Crypted: []byte(code), + }, + Plain: code, + Expiry: exp, + }, nil + } +} diff --git a/internal/domain/human.go b/internal/domain/human.go index 05e56ace6..619eaf480 100644 --- a/internal/domain/human.go +++ b/internal/domain/human.go @@ -10,11 +10,6 @@ import ( es_models "github.com/zitadel/zitadel/internal/eventstore/v1/models" ) -type HumanDetails struct { - ID string - ObjectDetails -} - type Human struct { es_models.ObjectRoot diff --git a/internal/notification/handlers/usernotifier.go b/internal/notification/handlers/usernotifier.go index 9a779c6cd..10b0952ce 100644 --- a/internal/notification/handlers/usernotifier.go +++ b/internal/notification/handlers/usernotifier.go @@ -185,7 +185,6 @@ func (u *userNotifier) reduceEmailCodeAdded(event eventstore.Event) (*handler.St if e.CodeReturned { return crdb.NewNoOpStatement(e), nil } - ctx := HandlerContext(event.Aggregate()) alreadyHandled, err := u.checkIfCodeAlreadyHandledOrExpired(ctx, event, e.Expiry, nil, user.UserV1EmailCodeAddedType, user.UserV1EmailCodeSentType, diff --git a/pkg/grpc/user/v2alpha/user.go b/pkg/grpc/user/v2alpha/user.go new file mode 100644 index 000000000..f419594df --- /dev/null +++ b/pkg/grpc/user/v2alpha/user.go @@ -0,0 +1,5 @@ +package user + +func (r *AddHumanUserRequest) AuthContext() string { + return r.GetOrganisation().GetOrgId() +} diff --git a/proto/zitadel/object/v2alpha/object.proto b/proto/zitadel/object/v2alpha/object.proto index c11b12257..3a209b637 100644 --- a/proto/zitadel/object/v2alpha/object.proto +++ b/proto/zitadel/object/v2alpha/object.proto @@ -6,11 +6,11 @@ option go_package = "github.com/zitadel/zitadel/pkg/grpc/object/v2alpha;object"; import "google/protobuf/timestamp.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; +import "validate/validate.proto"; -message OrgContext { - oneof ctx { +message Organisation { + oneof org { string org_id = 1; - string org_domain = 2; } } diff --git a/proto/zitadel/user/v2alpha/email.proto b/proto/zitadel/user/v2alpha/email.proto index daa744fe1..151348b55 100644 --- a/proto/zitadel/user/v2alpha/email.proto +++ b/proto/zitadel/user/v2alpha/email.proto @@ -9,6 +9,23 @@ import "google/api/field_behavior.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "validate/validate.proto"; +message SetHumanEmail { + string email = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200, email: true}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"mini@mouse.com\""; + } + ]; + // if no verification is specified, an email is sent with the default url + oneof verification { + SendEmailVerificationCode send_code = 2; + ReturnEmailVerificationCode return_code = 3; + bool is_verified = 4 [(validate.rules).bool.const = true]; + } +} message SendEmailVerificationCode { optional string url_template = 1 [ diff --git a/proto/zitadel/user/v2alpha/password.proto b/proto/zitadel/user/v2alpha/password.proto new file mode 100644 index 000000000..eb168f043 --- /dev/null +++ b/proto/zitadel/user/v2alpha/password.proto @@ -0,0 +1,53 @@ +syntax = "proto3"; + +package zitadel.user.v2alpha; + +option go_package = "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha;user"; + +import "google/api/field_behavior.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; +import "validate/validate.proto"; + +message SetUserPassword { + oneof type { + Password password = 1; + HashedPassword hashed_password = 2; + } +} + +message Password { + string password = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + example: "\"Secr3tP4ssw0rd!\""; + min_length: 1, + max_length: 200; + } + ]; + bool change_required = 2; +} + +message HashedPassword { + string hash = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + example: "\"$2a$12$lJ08fqVr8bFJilRVnDT9QeULI7YW.nT3iwUv6dyg0aCrfm3UY8XR2\""; + description: "\"hashed password\""; + min_length: 1, + max_length: 200; + } + ]; + string algorithm = 2 [ + (validate.rules).string = {min_len: 1, max_len: 200, const: "bcrypt"}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + example: "\"bcrypt\""; + description: "\"algorithm used for the hash. currently only bcrypt is supported\""; + min_length: 1, + max_length: 200; + } + ]; + bool change_required = 3; +} diff --git a/proto/zitadel/user/v2alpha/user.proto b/proto/zitadel/user/v2alpha/user.proto index 9b8426f51..d6312eb3e 100644 --- a/proto/zitadel/user/v2alpha/user.proto +++ b/proto/zitadel/user/v2alpha/user.proto @@ -4,6 +4,87 @@ package zitadel.user.v2alpha; option go_package = "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha;user"; +import "google/api/field_behavior.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; +import "validate/validate.proto"; + message User { string id = 1; } + +enum Gender { + GENDER_UNSPECIFIED = 0; + GENDER_FEMALE = 1; + GENDER_MALE = 2; + GENDER_DIVERSE = 3; +} + +message SetHumanProfile { + string first_name = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"Minnie\""; + } + ]; + string last_name = 2 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"Mouse\""; + } + ]; + optional string nick_name = 3 [ + (validate.rules).string = {max_len: 200}, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + max_length: 200; + example: "\"Mini\""; + } + ]; + optional string display_name = 4 [ + (validate.rules).string = {max_len: 200}, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + max_length: 200; + example: "\"Minnie Mouse\""; + } + ]; + optional string preferred_language = 5 [ + (validate.rules).string = {max_len: 10}, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + max_length: 10; + example: "\"en\""; + } + ]; + optional zitadel.user.v2alpha.Gender gender = 6 [ + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + example: "\"GENDER_FEMALE\""; + } + ]; +} + + +message SetMetadataEntry { + string key = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + example: "\"my-key\""; + min_length: 1, + max_length: 200; + } + ]; + bytes value = 2 [ + (validate.rules).bytes = {min_len: 1, max_len: 500000}, + (google.api.field_behavior) = REQUIRED, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + description: "The value has to be base64 encoded."; + example: "\"VGhpcyBpcyBteSB0ZXN0IHZhbHVl\""; + min_length: 1, + max_length: 500000; + } + ]; +} diff --git a/proto/zitadel/user/v2alpha/user_service.proto b/proto/zitadel/user/v2alpha/user_service.proto index a9a1f26d4..2a4629779 100644 --- a/proto/zitadel/user/v2alpha/user_service.proto +++ b/proto/zitadel/user/v2alpha/user_service.proto @@ -5,6 +5,8 @@ package zitadel.user.v2alpha; import "zitadel/options.proto"; import "zitadel/object/v2alpha/object.proto"; import "zitadel/user/v2alpha/email.proto"; +import "zitadel/user/v2alpha/password.proto"; +import "zitadel/user/v2alpha/user.proto"; import "google/api/annotations.proto"; import "google/api/field_behavior.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; @@ -12,8 +14,91 @@ import "validate/validate.proto"; option go_package = "github.com/zitadel/zitadel/pkg/grpc/user/v2alpha;user"; +option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { + info: { + title: "User Service"; + version: "2.0-alpha"; + description: "This API is intended to manage users in a ZITADEL instance. This project is in alpha state. It can AND will continue breaking until the services provide the same functionality as the current login."; + contact:{ + name: "ZITADEL" + url: "https://zitadel.com" + email: "hi@zitadel.com" + } + license: { + name: "Apache 2.0", + url: "https://github.com/zitadel/zitadel/blob/main/LICENSE"; + }; + }; + schemes: HTTPS; + schemes: HTTP; + + consumes: "application/json"; + consumes: "application/grpc"; + + produces: "application/json"; + produces: "application/grpc"; + + consumes: "application/grpc-web+proto"; + produces: "application/grpc-web+proto"; + + host: "$ZITADEL_DOMAIN"; + base_path: "/"; + + external_docs: { + description: "Detailed information about ZITADEL", + url: "https://zitadel.com/docs" + } + + responses: { + key: "403"; + value: { + description: "Returned when the user does not have permission to access the resource."; + schema: { + json_schema: { + ref: "#/definitions/rpcStatus"; + } + } + } + } + responses: { + key: "404"; + value: { + description: "Returned when the resource does not exist."; + schema: { + json_schema: { + ref: "#/definitions/rpcStatus"; + } + } + } + } +}; + service UserService { + // Create a new human user + rpc AddHumanUser (AddHumanUserRequest) returns (AddHumanUserResponse) { + option (google.api.http) = { + post: "/v2alpha/users/human" + body: "*" + }; + + option (zitadel.v1.auth_option) = { + permission: "user.write" + }; + + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "Create a user (Human)"; + description: "Create/import a new user with the type human. The newly created user will get a verification email if either the email address is not marked as verified and you did not request the verification to be returned." + responses: { + key: "200" + value: { + description: "OK"; + } + }; + }; + } + + // Change the email of a user rpc SetEmail (SetEmailRequest) returns (SetEmailResponse) { option (google.api.http) = { post: "/v2alpha/users/{user_id}/email" @@ -23,8 +108,20 @@ service UserService { option (zitadel.v1.auth_option) = { permission: "authenticated" }; + + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "Change the user email"; + description: "Change the email address of a user. If the state is set to not verified, a verification code will be generated, which can be either returned or sent to the user by email." + responses: { + key: "200" + value: { + description: "OK"; + } + }; + }; } + // Verify the email with the provided code rpc VerifyEmail (VerifyEmailRequest) returns (VerifyEmailResponse) { option (google.api.http) = { post: "/v2alpha/users/{user_id}/email/_verify" @@ -34,9 +131,61 @@ service UserService { option (zitadel.v1.auth_option) = { permission: "authenticated" }; + + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { + summary: "Verify the email"; + description: "Verify the email with the generated code." + responses: { + key: "200" + value: { + description: "OK"; + } + }; + }; } } +message AddHumanUserRequest{ + // optionally set your own id unique for the user + optional string user_id = 1 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"d654e6ba-70a3-48ef-a95d-37c8d8a7901a\""; + } + ]; + // optionally set a unique username, if none is provided the email will be used + optional string username = 2 [ + (validate.rules).string = {min_len: 1, max_len: 200}, + (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = { + min_length: 1; + max_length: 200; + example: "\"minnie-mouse\""; + } + ]; + zitadel.object.v2alpha.Organisation organisation = 3; + SetHumanProfile profile = 4 [ + (validate.rules).message.required = true, + (google.api.field_behavior) = REQUIRED + ]; + SetHumanEmail email = 5 [ + (validate.rules).message.required = true, + (google.api.field_behavior) = REQUIRED + ]; + repeated SetMetadataEntry metadata = 6; + oneof password_type { + Password password = 7; + HashedPassword hashed_password = 8; + } +} + +message AddHumanUserResponse { + string user_id = 1; + zitadel.object.v2alpha.Details details = 2; + optional string email_code = 3; +} + message SetEmailRequest{ string user_id = 1 [ (validate.rules).string = {min_len: 1, max_len: 200}, From 6774e7f44471d606cd1e6f5db3a000fd3a5b1cf4 Mon Sep 17 00:00:00 2001 From: Livio Spring Date: Wed, 26 Apr 2023 16:19:32 +0200 Subject: [PATCH 08/11] fix: handle userID and context correctly (#5755) * fix: handle userID and context correctly * fix linting --- internal/api/grpc/user/v2/user.go | 7 ++- internal/command/instance.go | 4 +- internal/command/org.go | 67 ++++++++++--------------- internal/command/user_human.go | 26 +++++----- internal/command/user_human_test.go | 76 +++++++++++++++++++---------- 5 files changed, 95 insertions(+), 85 deletions(-) diff --git a/internal/api/grpc/user/v2/user.go b/internal/api/grpc/user/v2/user.go index a058e7e75..02b7e0628 100644 --- a/internal/api/grpc/user/v2/user.go +++ b/internal/api/grpc/user/v2/user.go @@ -6,6 +6,7 @@ import ( "golang.org/x/text/language" + "github.com/zitadel/zitadel/internal/api/authz" "github.com/zitadel/zitadel/internal/api/grpc/object/v2" "github.com/zitadel/zitadel/internal/command" "github.com/zitadel/zitadel/internal/domain" @@ -18,7 +19,11 @@ func (s *Server) AddHumanUser(ctx context.Context, req *user.AddHumanUserRequest if err != nil { return nil, err } - err = s.command.AddHuman(ctx, req.GetOrganisation().GetOrgId(), human, false) + orgID := req.GetOrganisation().GetOrgId() + if orgID == "" { + orgID = authz.GetCtxData(ctx).OrgID + } + err = s.command.AddHuman(ctx, orgID, human, false) if err != nil { return nil, err } diff --git a/internal/command/instance.go b/internal/command/instance.go index b8e00c1c0..415fae3a2 100644 --- a/internal/command/instance.go +++ b/internal/command/instance.go @@ -333,9 +333,9 @@ func (c *Commands) SetUpInstance(ctx context.Context, setup *InstanceSetup) (str validations = append(validations, prepareAddUserMachineKey(machineKey, c.machineKeySize)) } } else if setup.Org.Human != nil { - setup.Org.Human.ID = userAgg.ID + setup.Org.Human.ID = userID validations = append(validations, - c.AddHumanCommand(userAgg, setup.Org.Human, c.userPasswordAlg, c.userEncryption, true), + c.AddHumanCommand(setup.Org.Human, orgID, c.userPasswordAlg, c.userEncryption, true), ) } diff --git a/internal/command/org.go b/internal/command/org.go index 71e2c3e18..c9fd3dbd4 100644 --- a/internal/command/org.go +++ b/internal/command/org.go @@ -11,7 +11,7 @@ import ( "github.com/zitadel/zitadel/internal/eventstore" "github.com/zitadel/zitadel/internal/repository/org" "github.com/zitadel/zitadel/internal/repository/project" - user_repo "github.com/zitadel/zitadel/internal/repository/user" + "github.com/zitadel/zitadel/internal/repository/user" ) type OrgSetup struct { @@ -22,22 +22,13 @@ type OrgSetup struct { Roles []string } -func (c *Commands) SetUpOrgWithIDs(ctx context.Context, o *OrgSetup, orgID, userID string, userIDs ...string) (string, *domain.ObjectDetails, error) { - existingOrg, err := c.getOrgWriteModelByID(ctx, orgID) +func (c *Commands) setUpOrgWithIDs(ctx context.Context, o *OrgSetup, orgID string, userIDs ...string) (userID string, token string, machineKey *MachineKey, details *domain.ObjectDetails, err error) { + userID, err = c.idGenerator.Next() if err != nil { - return "", nil, err + return "", "", nil, nil, err } - if existingOrg != nil { - return "", nil, errors.ThrowPreconditionFailed(nil, "COMMAND-poaj2", "Errors.Org.AlreadyExisting") - } - - userID, _, _, details, err := c.setUpOrgWithIDs(ctx, o, orgID, userID, userIDs...) - return userID, details, err -} - -func (c *Commands) setUpOrgWithIDs(ctx context.Context, o *OrgSetup, orgID, userID string, userIDs ...string) (string, string, *MachineKey, *domain.ObjectDetails, error) { orgAgg := org.NewAggregate(orgID) - userAgg := user_repo.NewAggregate(userID, orgID) + userAgg := user.NewAggregate(userID, orgID) roles := []string{domain.RoleOrgOwner} if len(o.Roles) > 0 { @@ -49,9 +40,9 @@ func (c *Commands) setUpOrgWithIDs(ctx context.Context, o *OrgSetup, orgID, user } var pat *PersonalAccessToken - var machineKey *MachineKey if o.Human != nil { - validations = append(validations, c.AddHumanCommand(userAgg, o.Human, c.userPasswordAlg, c.userEncryption, true)) + o.Human.ID = userID + validations = append(validations, c.AddHumanCommand(o.Human, orgID, c.userPasswordAlg, c.userEncryption, true)) } else if o.Machine != nil { validations = append(validations, AddMachineCommand(userAgg, o.Machine.Machine)) if o.Machine.Pat != nil { @@ -89,7 +80,6 @@ func (c *Commands) setUpOrgWithIDs(ctx context.Context, o *OrgSetup, orgID, user return "", "", nil, nil, err } - var token string if pat != nil { token = pat.Token } @@ -107,12 +97,7 @@ func (c *Commands) SetUpOrg(ctx context.Context, o *OrgSetup, userIDs ...string) return "", nil, err } - userID, err := c.idGenerator.Next() - if err != nil { - return "", nil, err - } - - userID, _, _, details, err := c.setUpOrgWithIDs(ctx, o, orgID, userID, userIDs...) + userID, _, _, details, err := c.setUpOrgWithIDs(ctx, o, orgID, userIDs...) return userID, details, err } @@ -365,9 +350,9 @@ func OrgUserIDPLinks(ctx context.Context, filter preparation.FilterToQueryReduce ResourceOwner(orgID). OrderAsc(). AddQuery(). - AggregateTypes(user_repo.AggregateType). + AggregateTypes(user.AggregateType). EventTypes( - user_repo.UserIDPLinkAddedType, user_repo.UserIDPLinkRemovedType, user_repo.UserIDPLinkCascadeRemovedType, + user.UserIDPLinkAddedType, user.UserIDPLinkRemovedType, user.UserIDPLinkCascadeRemovedType, ).Builder()) if err != nil { return nil, err @@ -375,13 +360,13 @@ func OrgUserIDPLinks(ctx context.Context, filter preparation.FilterToQueryReduce links := make([]*domain.UserIDPLink, 0) for _, event := range events { switch eventTyped := event.(type) { - case *user_repo.UserIDPLinkAddedEvent: + case *user.UserIDPLinkAddedEvent: links = append(links, &domain.UserIDPLink{ IDPConfigID: eventTyped.IDPConfigID, ExternalUserID: eventTyped.ExternalUserID, DisplayName: eventTyped.DisplayName, }) - case *user_repo.UserIDPLinkRemovedEvent: + case *user.UserIDPLinkRemovedEvent: for i := range links { if links[i].ExternalUserID == eventTyped.ExternalUserID && links[i].IDPConfigID == eventTyped.IDPConfigID { @@ -392,7 +377,7 @@ func OrgUserIDPLinks(ctx context.Context, filter preparation.FilterToQueryReduce } } - case *user_repo.UserIDPLinkCascadeRemovedEvent: + case *user.UserIDPLinkCascadeRemovedEvent: for i := range links { if links[i].ExternalUserID == eventTyped.ExternalUserID && links[i].IDPConfigID == eventTyped.IDPConfigID { @@ -495,14 +480,14 @@ func OrgUsers(ctx context.Context, filter preparation.FilterToQueryReducer, orgI ResourceOwner(orgID). OrderAsc(). AddQuery(). - AggregateTypes(user_repo.AggregateType). + AggregateTypes(user.AggregateType). EventTypes( - user_repo.HumanAddedType, - user_repo.MachineAddedEventType, - user_repo.HumanRegisteredType, - user_repo.UserDomainClaimedType, - user_repo.UserUserNameChangedType, - user_repo.UserRemovedType, + user.HumanAddedType, + user.MachineAddedEventType, + user.HumanRegisteredType, + user.UserDomainClaimedType, + user.UserUserNameChangedType, + user.UserRemovedType, ).Builder()) if err != nil { return nil, err @@ -511,25 +496,25 @@ func OrgUsers(ctx context.Context, filter preparation.FilterToQueryReducer, orgI users := make([]userIDName, 0) for _, event := range events { switch eventTyped := event.(type) { - case *user_repo.HumanAddedEvent: + case *user.HumanAddedEvent: users = append(users, userIDName{eventTyped.UserName, eventTyped.Aggregate().ID}) - case *user_repo.MachineAddedEvent: + case *user.MachineAddedEvent: users = append(users, userIDName{eventTyped.UserName, eventTyped.Aggregate().ID}) - case *user_repo.HumanRegisteredEvent: + case *user.HumanRegisteredEvent: users = append(users, userIDName{eventTyped.UserName, eventTyped.Aggregate().ID}) - case *user_repo.DomainClaimedEvent: + case *user.DomainClaimedEvent: for i := range users { if users[i].id == eventTyped.Aggregate().ID { users[i].name = eventTyped.UserName } } - case *user_repo.UsernameChangedEvent: + case *user.UsernameChangedEvent: for i := range users { if users[i].id == eventTyped.Aggregate().ID { users[i].name = eventTyped.UserName } } - case *user_repo.UserRemovedEvent: + case *user.UserRemovedEvent: for i := range users { if users[i].id == eventTyped.Aggregate().ID { users[i] = users[len(users)-1] diff --git a/internal/command/user_human.go b/internal/command/user_human.go index 688beaa3f..0bb075a34 100644 --- a/internal/command/user_human.go +++ b/internal/command/user_human.go @@ -27,7 +27,7 @@ func (c *Commands) getHuman(ctx context.Context, userID, resourceowner string) ( } type AddHuman struct { - // ID is optional + // ID is optional, if empty it will be generated ID string // Username is required Username string @@ -114,11 +114,10 @@ func (c *Commands) AddHuman(ctx context.Context, resourceOwner string, human *Ad if resourceOwner == "" { return errors.ThrowInvalidArgument(nil, "COMMA-5Ky74", "Errors.Internal") } - agg := user.NewAggregate(human.ID, resourceOwner) cmds, err := preparation.PrepareCommands(ctx, c.eventstore.Filter, c.AddHumanCommand( - agg, human, + resourceOwner, c.userPasswordAlg, c.userEncryption, allowInitMail, @@ -146,16 +145,17 @@ type humanCreationCommand interface { AddPasswordData(secret *crypto.CryptoValue, changeRequired bool) } -func (c *Commands) AddHumanCommand(a *user.Aggregate, human *AddHuman, passwordAlg crypto.HashAlgorithm, codeAlg crypto.EncryptionAlgorithm, allowInitMail bool) preparation.Validation { +func (c *Commands) AddHumanCommand(human *AddHuman, orgID string, passwordAlg crypto.HashAlgorithm, codeAlg crypto.EncryptionAlgorithm, allowInitMail bool) preparation.Validation { return func() (_ preparation.CreateCommands, err error) { if err := human.Validate(); err != nil { return nil, err } return func(ctx context.Context, filter preparation.FilterToQueryReducer) ([]eventstore.Command, error) { - if err := c.addHumanCommandCheckID(ctx, filter, a, human); err != nil { + if err := c.addHumanCommandCheckID(ctx, filter, human, orgID); err != nil { return nil, err } + a := user.NewAggregate(human.ID, orgID) domainPolicy, err := domainPolicyWriteModel(ctx, filter, a.ResourceOwner) if err != nil { @@ -274,22 +274,20 @@ func (c *Commands) addHumanCommandPhone(ctx context.Context, filter preparation. return append(cmds, user.NewHumanPhoneCodeAddedEvent(ctx, &a.Aggregate, phoneCode.Crypted, phoneCode.Expiry)), nil } -func (c *Commands) addHumanCommandCheckID(ctx context.Context, filter preparation.FilterToQueryReducer, a *user.Aggregate, human *AddHuman) (err error) { - if human.ID != "" { - existingHuman, err := humanWriteModelByID(ctx, filter, human.ID, a.ResourceOwner) +func (c *Commands) addHumanCommandCheckID(ctx context.Context, filter preparation.FilterToQueryReducer, human *AddHuman, orgID string) (err error) { + if human.ID == "" { + human.ID, err = c.idGenerator.Next() if err != nil { return err } - if isUserStateExists(existingHuman.UserState) { - return errors.ThrowPreconditionFailed(nil, "COMMAND-k2unb", "Errors.User.AlreadyExisting") - } - return nil } - human.ID, err = c.idGenerator.Next() + existingHuman, err := humanWriteModelByID(ctx, filter, human.ID, orgID) if err != nil { return err } - a.ID = human.ID + if isUserStateExists(existingHuman.UserState) { + return errors.ThrowPreconditionFailed(nil, "COMMAND-k2unb", "Errors.User.AlreadyExisting") + } return nil } diff --git a/internal/command/user_human_test.go b/internal/command/user_human_test.go index 7e408ed9b..bfbe48ad5 100644 --- a/internal/command/user_human_test.go +++ b/internal/command/user_human_test.go @@ -145,6 +145,7 @@ func TestCommandSide_AddHuman(t *testing.T) { t, expectFilter(), expectFilter(), + expectFilter(), ), }, args: args{ @@ -173,6 +174,7 @@ func TestCommandSide_AddHuman(t *testing.T) { idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "user1"), eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -214,6 +216,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -303,6 +306,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -393,6 +397,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -472,6 +477,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -552,6 +558,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -621,6 +628,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -690,6 +698,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -759,6 +768,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -811,6 +821,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -909,6 +920,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -1007,6 +1019,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -1094,6 +1107,7 @@ func TestCommandSide_AddHuman(t *testing.T) { fields: fields{ eventstore: eventstoreExpect( t, + expectFilter(), expectFilter( eventFromEventPusher( org.NewDomainPolicyAddedEvent(context.Background(), @@ -3781,8 +3795,8 @@ func TestAddHumanCommand(t *testing.T) { idGenerator id.Generator } type args struct { - a *user.Aggregate human *AddHuman + orgID string passwordAlg crypto.HashAlgorithm filter preparation.FilterToQueryReducer codeAlg crypto.EncryptionAlgorithm @@ -3798,12 +3812,12 @@ func TestAddHumanCommand(t *testing.T) { { name: "invalid email", args: args{ - a: agg, human: &AddHuman{ Email: Email{ Address: "invalid", }, }, + orgID: "ro", }, want: Want{ ValidationErr: caos_errs.ThrowInvalidArgument(nil, "EMAIL-599BI", "Errors.User.Email.Invalid"), @@ -3812,7 +3826,6 @@ func TestAddHumanCommand(t *testing.T) { { name: "invalid first name", args: args{ - a: agg, human: &AddHuman{ Username: "username", PreferredLanguage: language.English, @@ -3820,6 +3833,7 @@ func TestAddHumanCommand(t *testing.T) { Address: "support@zitadel.com", }, }, + orgID: "ro", }, want: Want{ ValidationErr: caos_errs.ThrowInvalidArgument(nil, "USER-UCej2", "Errors.User.Profile.FirstNameEmpty"), @@ -3828,13 +3842,13 @@ func TestAddHumanCommand(t *testing.T) { { name: "invalid last name", args: args{ - a: agg, human: &AddHuman{ Username: "username", PreferredLanguage: language.English, FirstName: "hurst", Email: Email{Address: "support@zitadel.com"}, }, + orgID: "ro", }, want: Want{ ValidationErr: caos_errs.ThrowInvalidArgument(nil, "USER-4hB7d", "Errors.User.Profile.LastNameEmpty"), @@ -3846,7 +3860,6 @@ func TestAddHumanCommand(t *testing.T) { idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "id"), }, args: args{ - a: agg, human: &AddHuman{ Email: Email{Address: "support@zitadel.com"}, PreferredLanguage: language.English, @@ -3855,23 +3868,28 @@ func TestAddHumanCommand(t *testing.T) { Password: "short", Username: "username", }, + orgID: "ro", filter: NewMultiFilter().Append( func(ctx context.Context, queryFactory *eventstore.SearchQueryBuilder) ([]eventstore.Event, error) { - return []eventstore.Event{ - org.NewDomainPolicyAddedEvent( - context.Background(), - &org.NewAggregate("id").Aggregate, - true, - true, - true, - ), - }, nil + return []eventstore.Event{}, nil }). + Append( + func(ctx context.Context, queryFactory *eventstore.SearchQueryBuilder) ([]eventstore.Event, error) { + return []eventstore.Event{ + org.NewDomainPolicyAddedEvent( + ctx, + &org.NewAggregate("id").Aggregate, + true, + true, + true, + ), + }, nil + }). Append( func(ctx context.Context, queryFactory *eventstore.SearchQueryBuilder) ([]eventstore.Event, error) { return []eventstore.Event{ org.NewPasswordComplexityPolicyAddedEvent( - context.Background(), + ctx, &org.NewAggregate("id").Aggregate, 8, true, @@ -3893,7 +3911,6 @@ func TestAddHumanCommand(t *testing.T) { idGenerator: id_mock.NewIDGeneratorExpectIDs(t, "id"), }, args: args{ - a: agg, human: &AddHuman{ Email: Email{Address: "support@zitadel.com", Verified: true}, PreferredLanguage: language.English, @@ -3902,25 +3919,30 @@ func TestAddHumanCommand(t *testing.T) { Password: "password", Username: "username", }, + orgID: "ro", passwordAlg: crypto.CreateMockHashAlg(gomock.NewController(t)), codeAlg: crypto.CreateMockEncryptionAlg(gomock.NewController(t)), filter: NewMultiFilter().Append( func(ctx context.Context, queryFactory *eventstore.SearchQueryBuilder) ([]eventstore.Event, error) { - return []eventstore.Event{ - org.NewDomainPolicyAddedEvent( - context.Background(), - &org.NewAggregate("id").Aggregate, - true, - true, - true, - ), - }, nil + return []eventstore.Event{}, nil }). + Append( + func(ctx context.Context, queryFactory *eventstore.SearchQueryBuilder) ([]eventstore.Event, error) { + return []eventstore.Event{ + org.NewDomainPolicyAddedEvent( + ctx, + &org.NewAggregate("id").Aggregate, + true, + true, + true, + ), + }, nil + }). Append( func(ctx context.Context, queryFactory *eventstore.SearchQueryBuilder) ([]eventstore.Event, error) { return []eventstore.Event{ org.NewPasswordComplexityPolicyAddedEvent( - context.Background(), + ctx, &org.NewAggregate("id").Aggregate, 2, false, @@ -3966,7 +3988,7 @@ func TestAddHumanCommand(t *testing.T) { c := &Commands{ idGenerator: tt.fields.idGenerator, } - AssertValidation(t, context.Background(), c.AddHumanCommand(tt.args.a, tt.args.human, tt.args.passwordAlg, tt.args.codeAlg, tt.args.allowInitMail), tt.args.filter, tt.want) + AssertValidation(t, context.Background(), c.AddHumanCommand(tt.args.human, tt.args.orgID, tt.args.passwordAlg, tt.args.codeAlg, tt.args.allowInitMail), tt.args.filter, tt.want) }) } } From 7a337a8aa5c65ce6e6e2638c1a632a09b3a1d8b6 Mon Sep 17 00:00:00 2001 From: Fabi Date: Thu, 27 Apr 2023 09:26:58 +0200 Subject: [PATCH 09/11] docs: Migrate auth0 users (#5705) * docs: auth0 migration, add zitadel migration tool * docs: auth0 migration, add zitadel migration tool * use binary * fix typo --------- Co-authored-by: Livio Spring --- docs/docs/guides/migrate/sources/auth0.md | 36 +++++++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/docs/docs/guides/migrate/sources/auth0.md b/docs/docs/guides/migrate/sources/auth0.md index dca95a7c3..977385c1c 100644 --- a/docs/docs/guides/migrate/sources/auth0.md +++ b/docs/docs/guides/migrate/sources/auth0.md @@ -7,6 +7,7 @@ Migrating users from Auth0 to ZITADEL requires the following steps: - Request and download hashed passwords - Export all user data +- Run migration tool to merge Auth0 users and passwords - Import users and password hashes to ZITADEL ## Export hashed passwords @@ -34,8 +35,37 @@ See this [community post](https://community.auth0.com/t/password-hashes-export-d Create a [bulk user export](https://auth0.com/docs/manage-users/user-migration/bulk-user-exports) from the Auth0 Management API. You will receive a newline-delimited JSON with the requested user data. +This is an example request, we have included the user id, the email and the name of the user. Make sure to export the users in a json format. + +```bash +curl --request POST \ + --url $AUTH0_DOMAIN/api/v2/jobs/users-exports \ + --header 'authorization: Bearer $TOKEN' \ + --header 'content-type: application/json' \ + --data '{ + "connection_id": "$CONNECTION_ID", + "format": "json", + "fields": [ + {"name": "user_id"}, + {"name": "email"}, + {"name": "name"}, + ] +}' +``` + +## Run Migration Tool + +We have developed a tool that combines your exported user data with their corresponding passwords to generate the import request body for ZITADEL. + +1. Download the latest release of [github.com/zitadel/zitadel-tools](https://github.com/zitadel/zitadel-tools/releases) +2. Execute the binary with the following flags: + ```bash + ./zitadel-tools migrate auth0 --org= --users=./users.json --passwords=./passwords.json --output=./importBody.json + ``` + Use the Organization ID from your ZITADEL instance where you like to add the users. +3. You will now get a new file importBody.json which contains the body for the request to the import of ZITADEL + ## Import users and password hashes to ZITADEL -You will need to merge the received password hashes with the user bulk export. - -After you successfully merged the datasets, you can follow the instructions described in the [Migrate Users](../users) guide to import users to ZITADEL. +Copy the content from the importBody.json file created in the last step. +You can now follow the instructions described in the [Migrate Users](../users) guide to import users to ZITADEL. From 5207898f6004be0f84afb2bbfd91dbf45155713d Mon Sep 17 00:00:00 2001 From: mffap Date: Thu, 27 Apr 2023 09:37:25 +0200 Subject: [PATCH 10/11] docs(integrate): Google Cloud with Workforce Identity Federation (OIDC) (#5682) * simplify sidebar * initial draft * Apply suggestions from code review Co-authored-by: Livio Spring * Apply suggestions from code review --------- Co-authored-by: Livio Spring --- .../integrate/services/atlassian-saml.md | 1 + .../guides/integrate/services/auth0-oidc.mdx | 1 + .../guides/integrate/services/auth0-saml.md | 1 + .../guides/integrate/services/aws-saml.md | 1 + .../guides/integrate/services/gitlab-saml.md | 1 + .../integrate/services/google-cloud.mdx | 132 ++++++++++++++++++ .../integrate/services/pingidentity-saml.md | 1 + docs/sidebars.js | 1 + .../services/google-cloud-action-code.png | Bin 0 -> 193886 bytes .../services/google-cloud-action-flow.png | Bin 0 -> 169142 bytes .../services/google-cloud-create-app.png | Bin 0 -> 224171 bytes .../services/google-cloud-redirect-url.png | Bin 0 -> 162649 bytes .../services/google-cloud-token-settings.png | Bin 0 -> 221937 bytes 13 files changed, 139 insertions(+) create mode 100644 docs/docs/guides/integrate/services/google-cloud.mdx create mode 100644 docs/static/img/guides/integrate/services/google-cloud-action-code.png create mode 100644 docs/static/img/guides/integrate/services/google-cloud-action-flow.png create mode 100644 docs/static/img/guides/integrate/services/google-cloud-create-app.png create mode 100644 docs/static/img/guides/integrate/services/google-cloud-redirect-url.png create mode 100644 docs/static/img/guides/integrate/services/google-cloud-token-settings.png diff --git a/docs/docs/guides/integrate/services/atlassian-saml.md b/docs/docs/guides/integrate/services/atlassian-saml.md index f4e1a81d0..f6be4726f 100644 --- a/docs/docs/guides/integrate/services/atlassian-saml.md +++ b/docs/docs/guides/integrate/services/atlassian-saml.md @@ -1,5 +1,6 @@ --- title: Connect with Atlassian through SAML 2.0 +sidebar_label: Atlassian --- This guide shows how to enable login with ZITADEL on Atlassian. diff --git a/docs/docs/guides/integrate/services/auth0-oidc.mdx b/docs/docs/guides/integrate/services/auth0-oidc.mdx index 6aa17008b..628900434 100644 --- a/docs/docs/guides/integrate/services/auth0-oidc.mdx +++ b/docs/docs/guides/integrate/services/auth0-oidc.mdx @@ -1,5 +1,6 @@ --- title: Connect with Auth0 through OIDC +sidebar_label: Auth0 (OIDC) --- import CreateApp from "../application/_application.mdx"; diff --git a/docs/docs/guides/integrate/services/auth0-saml.md b/docs/docs/guides/integrate/services/auth0-saml.md index 42ba1a138..3742ccfa4 100644 --- a/docs/docs/guides/integrate/services/auth0-saml.md +++ b/docs/docs/guides/integrate/services/auth0-saml.md @@ -1,5 +1,6 @@ --- title: Connect with Auth0 through SAML 2.0 +sidebar_label: Auth0 (SAML) --- This guide shows how to enable login with ZITADEL on Auth0. diff --git a/docs/docs/guides/integrate/services/aws-saml.md b/docs/docs/guides/integrate/services/aws-saml.md index c5f762a0d..26a5c12fc 100644 --- a/docs/docs/guides/integrate/services/aws-saml.md +++ b/docs/docs/guides/integrate/services/aws-saml.md @@ -1,5 +1,6 @@ --- title: Connect with AWS through SAML 2.0 +sidebar_label: Amazon Web Services --- This guide shows how to enable login with ZITADEL on AWS SSO. diff --git a/docs/docs/guides/integrate/services/gitlab-saml.md b/docs/docs/guides/integrate/services/gitlab-saml.md index 5a15f0a22..fc9c51ca6 100644 --- a/docs/docs/guides/integrate/services/gitlab-saml.md +++ b/docs/docs/guides/integrate/services/gitlab-saml.md @@ -1,5 +1,6 @@ --- title: Connect with Gitlab through SAML 2.0 +sidebar_label: Gitlab --- This guide shows how to enable login with ZITADEL on Gitlab. diff --git a/docs/docs/guides/integrate/services/google-cloud.mdx b/docs/docs/guides/integrate/services/google-cloud.mdx new file mode 100644 index 000000000..eb75bcf97 --- /dev/null +++ b/docs/docs/guides/integrate/services/google-cloud.mdx @@ -0,0 +1,132 @@ +--- +title: Google Cloud with Workforce Identity Federation (OIDC) +sidebar_label: Google Cloud +--- + +import CreateApp from "../application/_application.mdx"; + +This guide shows how to login users and assign roles with [Workforce Identity Federation to Google Cloud](https://cloud.google.com/iam/docs/workforce-identity-federation). + +It covers how to: + +- create and configure your application in ZITADEL +- configure an Action to transform claims +- create and configure the connection to Google Cloud with Workforce Identity Federation using OpenID Connect (OIDC) + +Prerequisites: + +- existing ZITADEL Instance, if not present follow [this guide](/guides/start/quickstart) +- existing ZITADEL Organization, if not present follow [this guide](/guides/manage/console/organizations) +- existing ZITADEL project, if not present follow the first 3 steps [here](/guides/manage/console/projects) +- prerequisites on Google Cloud side [in the configuration guide](https://cloud.google.com/iam/docs/configuring-workforce-identity-federation). + +> We have to switch between ZITADEL and a Google Cloud. If the headings begin with "ZITADEL" switch to the ZITADEL Console and if +> the headings start with "Google Cloud" please refer to the configuration guide on Google Cloud. + +## **Google Cloud**: Configure + +Follow the steps **Before you begin**, **Required roles**, and **create a workforce identity pool** (OIDC) in the [in the configuration guide](https://cloud.google.com/iam/docs/configuring-workforce-identity-federation). + +Before you create the workforce identity pool provider you should create your application in ZITADEL. + +## **ZITADEL**: Create the application + +In your existing project: + +First of all we create the application in your project. + +:::info +Google Cloud requires just an ID Token as JWT including the [described required and optional scopes](https://cloud.google.com/iam/docs/workforce-identity-federation#attribute-mappings). +::: + +Create a new application and click on "I'm a pro. Skip this wizard." + +- **Application Type**: Web +- **Grant Types**: Implicit +- **Response Type**: ID Token +- **Authentication Method**: None + +:::info +You need to add the redirect URL and configure token settings after creating the application. +::: + +![Create application screen](/img/guides/integrate/services/google-cloud-create-app.png) + +## **ZITADEL**: Redirect url + +![Redirect URL](/img/guides/integrate/services/google-cloud-redirect-url.png) + +After creating, go to the application settings "Redirect settings" and add the redirect url from Googles configuration guide. +It looks something like `https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID`. + +Save the settings. + +:::caution +Make sure to replace the `WORKFORCE_POOL_ID` and `WORKFORCE_PROVIDER_ID` with your values in the redirect url +::: + +## **ZITADEL**: Token settings + +![Token settings](/img/guides/integrate/services/google-cloud-token-settings.png) + +After creating, go to the application settings "Token settings" and configure as follows: + +- **Auth Token Type**: JWT +- **Add user roles to the access token**: disabled (optional) +- **User roles inside ID Token**: enabled +- **User Info inside ID Token**: enabled + +Save the settings. + +## **ZITADEL**: Custom claims + +Go to your project and create roles according to the Groups in Google Cloud. +Authorize a test user by assigning roles in ZITADEL. + +Google Cloud expects some claims, including groups, in a specific format as [described here](https://cloud.google.com/iam/docs/workforce-identity-federation#attribute-mappings). +Claims can be transformed in ZITADEL with [Actions](/apis/actions/introduction). + +Create an Action with the following code to flatten the roles and include the claim for the users' display name. + +:::info +If you want to configure a special attribute mapping in the workforce identity pool provider, then adjust the claims accordingly. +::: + +```javascript +function googleGroups(ctx, api) { + if (ctx.v1.user.grants == undefined || ctx.v1.user.grants.count == 0) { + return; + } + + let grants = []; + ctx.v1.user.grants.grants.forEach(claim => { + claim.roles.forEach(role => { + grants.push(claim.projectId+':'+role) + }) + }) + + api.v1.claims.setClaim('google.groups', grants) + api.v1.claims.setClaim('google.display_name', ctx.v1.getUser().human.displayName) +} + +``` + +![Action Code](/img/guides/integrate/services/google-cloud-action-code.png) + + + +:::caution +Make sure that the name of the action matches the name of the function. +::: + +And add the the Action Script to the following Flow and Trigger: + +- **Flow Type**: Complement Token +- **Trigger Type**: Pre access token creation +- **Actions**: googleGroups + +![Action Flow](/img/guides/integrate/services/google-cloud-action-flow.png) + +## **Google Cloud**: Create a WIP provider + +Complete the steps in the [in the configuration guide](https://cloud.google.com/iam/docs/configuring-workforce-identity-federation) with the `ISSUER_URI` and `CLIENT_ID` from ZITADEL. diff --git a/docs/docs/guides/integrate/services/pingidentity-saml.md b/docs/docs/guides/integrate/services/pingidentity-saml.md index fe5b88859..ce827ef1b 100644 --- a/docs/docs/guides/integrate/services/pingidentity-saml.md +++ b/docs/docs/guides/integrate/services/pingidentity-saml.md @@ -1,5 +1,6 @@ --- title: Connect with Ping Identity through SAML 2.0 +sidebar_label: Ping Identity --- This guide shows how to enable login with ZITADEL on Auth0. diff --git a/docs/sidebars.js b/docs/sidebars.js index 82def05fd..2d7bc5578 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -211,6 +211,7 @@ module.exports = { items: [ "guides/integrate/services/gitlab-self-hosted", "guides/integrate/services/aws-saml", + "guides/integrate/services/google-cloud", "guides/integrate/services/atlassian-saml", "guides/integrate/services/gitlab-saml", "guides/integrate/services/auth0-oidc", diff --git a/docs/static/img/guides/integrate/services/google-cloud-action-code.png b/docs/static/img/guides/integrate/services/google-cloud-action-code.png new file mode 100644 index 0000000000000000000000000000000000000000..f88d743f1a36a5e5db8c407e7d9e990ecd413d6c GIT binary patch literal 193886 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 R?`L1hY-R?+Ly(PuX{&_EZx;g3;86izuXl~A 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

N9F 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

j5upXm0QBKM5D5Y4s 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 literal 0 HcmV?d00001 diff --git a/docs/static/img/guides/integrate/services/google-cloud-create-app.png b/docs/static/img/guides/integrate/services/google-cloud-create-app.png new file mode 100644 index 0000000000000000000000000000000000000000..35ed509b36d480d52a8b03bf525f453ad43fd94d GIT binary patch literal 224171 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

2%@7WVWV`3>j3o= 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 literal 0 HcmV?d00001 diff --git a/docs/static/img/guides/integrate/services/google-cloud-redirect-url.png b/docs/static/img/guides/integrate/services/google-cloud-redirect-url.png new file mode 100644 index 0000000000000000000000000000000000000000..74d62f21ee3416463cf50fd7ee65c98e58487600 GIT binary patch literal 162649 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
agk60Xc_#%%xlJ1NbDcRpas# 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
-0=jG>W?fc=S*v5oid8G=P<_2VekpsYk78 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 Date: Thu, 27 Apr 2023 10:28:26 +0200 Subject: [PATCH 11/11] fix(step10): separate executions (#5754) * feat: allow skip of success page for native apps (#5627) add possibility to return to callback directly after login without rendering the successful login page * build next * fix(console): disallow inline fonts, critical styles (#5714) fix: disallow inline * fix(setup): step 10 for postgres (#5717) * fix(setup): smaller transactions (#5743) * fix(step10): split statements * fix(step10): split into separate execs * chore: prerelease * add truncate before insert * fix: add truncate * Merge branch 'main' into optimise-step-10 * chore: reset release definition --------- Co-authored-by: Livio Spring Co-authored-by: Max Peintner --- .releaserc.js | 1 - cmd/setup/10.go | 20 +++++++++++++++++--- cmd/setup/10_create_temp_table.sql | 6 ++++++ cmd/setup/{10.sql => 10_fill_table.sql} | 9 +-------- cmd/setup/10_update.sql | 1 + 5 files changed, 25 insertions(+), 12 deletions(-) create mode 100644 cmd/setup/10_create_temp_table.sql rename cmd/setup/{10.sql => 10_fill_table.sql} (58%) create mode 100644 cmd/setup/10_update.sql diff --git a/.releaserc.js b/.releaserc.js index 177956a62..b8d5a8551 100644 --- a/.releaserc.js +++ b/.releaserc.js @@ -1,7 +1,6 @@ module.exports = { branches: [ {name: 'main', channel: 'next'}, - {name: '1.87.x', range: '1.87.x', channel: '1.87.x'}, {name: 'next', prerelease: true} ], plugins: [ diff --git a/cmd/setup/10.go b/cmd/setup/10.go index 4efccc653..fd8683f49 100644 --- a/cmd/setup/10.go +++ b/cmd/setup/10.go @@ -13,8 +13,12 @@ import ( ) var ( - //go:embed 10.sql - correctCreationDate10 string + //go:embed 10_create_temp_table.sql + correctCreationDate10CreateTable string + //go:embed 10_fill_table.sql + correctCreationDate10FillTable string + //go:embed 10_update.sql + correctCreationDate10Update string ) type CorrectCreationDate struct { @@ -34,7 +38,17 @@ func (mig *CorrectCreationDate) Execute(ctx context.Context) (err error) { return err } } - res, err := tx.ExecContext(ctx, correctCreationDate10) + _, err := tx.ExecContext(ctx, correctCreationDate10CreateTable) + if err != nil { + return err + } + + _, err = tx.ExecContext(ctx, correctCreationDate10FillTable) + if err != nil { + return err + } + + res, err := tx.ExecContext(ctx, correctCreationDate10Update) if err != nil { return err } diff --git a/cmd/setup/10_create_temp_table.sql b/cmd/setup/10_create_temp_table.sql new file mode 100644 index 000000000..fb823b2ec --- /dev/null +++ b/cmd/setup/10_create_temp_table.sql @@ -0,0 +1,6 @@ +CREATE temporary TABLE IF NOT EXISTS wrong_events ( + instance_id TEXT + , event_sequence BIGINT + , current_cd TIMESTAMPTZ + , next_cd TIMESTAMPTZ +); diff --git a/cmd/setup/10.sql b/cmd/setup/10_fill_table.sql similarity index 58% rename from cmd/setup/10.sql rename to cmd/setup/10_fill_table.sql index 591d0b3d8..8c23687af 100644 --- a/cmd/setup/10.sql +++ b/cmd/setup/10_fill_table.sql @@ -1,9 +1,4 @@ -CREATE temporary TABLE IF NOT EXISTS wrong_events ( - instance_id TEXT - , event_sequence BIGINT - , current_cd TIMESTAMPTZ - , next_cd TIMESTAMPTZ -); +TRUNCATE wrong_events; INSERT INTO wrong_events ( SELECT * FROM ( @@ -22,5 +17,3 @@ INSERT INTO wrong_events ( ORDER BY event_sequence DESC ); - -UPDATE eventstore.events e SET creation_date = we.next_cd FROM wrong_events we WHERE e.event_sequence = we.event_sequence and e.instance_id = we.instance_id; \ No newline at end of file diff --git a/cmd/setup/10_update.sql b/cmd/setup/10_update.sql new file mode 100644 index 000000000..5254ba8dd --- /dev/null +++ b/cmd/setup/10_update.sql @@ -0,0 +1 @@ +UPDATE eventstore.events e SET creation_date = we.next_cd FROM wrong_events we WHERE e.event_sequence = we.event_sequence and e.instance_id = we.instance_id;