Skip to content

Commit ee82c4b

Browse files
build(deps): bump buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go from 1.35.2-20240920164238-5a7b106cbb87.1 to 1.35.2-20241127180247-a33202765966.1 (#5070)
Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Eleftheria Stein-Kousathana <[email protected]>
1 parent 4658f74 commit ee82c4b

File tree

4 files changed

+48
-7
lines changed

4 files changed

+48
-7
lines changed

go.mod

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ module github.com/mindersec/minder
33
go 1.23.4
44

55
require (
6-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.2-20240920164238-5a7b106cbb87.1
6+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.2-20241127180247-a33202765966.1
77
github.com/ThreeDotsLabs/watermill v1.4.1
88
github.com/ThreeDotsLabs/watermill-sql/v3 v3.1.0
99
github.com/alexdrl/zerowater v0.0.3
1010
github.com/aws/aws-sdk-go-v2 v1.32.6
1111
github.com/aws/aws-sdk-go-v2/config v1.28.6
1212
github.com/aws/aws-sdk-go-v2/service/sesv2 v1.40.0
1313
github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df
14-
github.com/bufbuild/protovalidate-go v0.7.3
14+
github.com/bufbuild/protovalidate-go v0.8.0
1515
github.com/cenkalti/backoff/v4 v4.3.0
1616
github.com/charmbracelet/bubbles v0.20.0
1717
github.com/charmbracelet/bubbletea v1.2.4

go.sum

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.2-20240920164238-5a7b106cbb87.1 h1:7QIeAuTdLp173vC/9JojRMDFcpmqtoYrxPmvdHAOynw=
2-
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.2-20240920164238-5a7b106cbb87.1/go.mod h1:mnHCFccv4HwuIAOHNGdiIc5ZYbBCvbTWZcodLN5wITI=
1+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.2-20241127180247-a33202765966.1 h1:jLd96rDDNJ+zIJxvV/L855VEtrjR0G4aePVDlCpf6kw=
2+
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.35.2-20241127180247-a33202765966.1/go.mod h1:mnHCFccv4HwuIAOHNGdiIc5ZYbBCvbTWZcodLN5wITI=
33
cel.dev/expr v0.18.0 h1:CJ6drgk+Hf96lkLikr4rFf19WrU0BOWEihyZnI2TAzo=
44
cel.dev/expr v0.18.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
55
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
@@ -217,8 +217,8 @@ github.com/bmatcuk/doublestar/v4 v4.7.1 h1:fdDeAqgT47acgwd9bd9HxJRDmc9UAmPpc+2m0
217217
github.com/bmatcuk/doublestar/v4 v4.7.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc=
218218
github.com/bradleyjkemp/cupaloy/v2 v2.8.0 h1:any4BmKE+jGIaMpnU8YgH/I2LPiLBufr6oMMlVBbn9M=
219219
github.com/bradleyjkemp/cupaloy/v2 v2.8.0/go.mod h1:bm7JXdkRd4BHJk9HpwqAI8BoAY1lps46Enkdqw6aRX0=
220-
github.com/bufbuild/protovalidate-go v0.7.3 h1:kKnoSueygR3xxppvuBpm9SEwIsP359MMRfMBGmRByPg=
221-
github.com/bufbuild/protovalidate-go v0.7.3/go.mod h1:CFv34wMqiBzAHdQ4q/tWYi9ILFYKuaC3/4zh6eqdUck=
220+
github.com/bufbuild/protovalidate-go v0.8.0 h1:Xs3kCLCJ4tQiogJ0iOXm+ClKw/KviW3nLAryCGW2I3Y=
221+
github.com/bufbuild/protovalidate-go v0.8.0/go.mod h1:JPWZInGm2y2NBg3vKDKdDIkvDjyLv31J3hLH5GIFc/Q=
222222
github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
223223
github.com/bytecodealliance/wasmtime-go/v3 v3.0.2 h1:3uZCA/BLTIu+DqCfguByNMJa2HVHpXvjfy0Dy7g6fuA=
224224
github.com/bytecodealliance/wasmtime-go/v3 v3.0.2/go.mod h1:RnUjnIXxEJcL6BgCvNyzCCRzZcxCgsZCi+RNlvYor5Q=

internal/api/api.go

+27-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,33 @@ func NewValidator() (*protovalidate.Validator, error) {
6060
func formatViolations(violations *validate.Violations) string {
6161
var res []string
6262
for _, v := range violations.Violations {
63-
res = append(res, fmt.Sprintf("- Field '%s': %s", *v.FieldPath, *v.Message))
63+
res = append(res, fmt.Sprintf("- Field '%s': %s", getFullPath(v.Field), *v.Message))
6464
}
6565
return strings.Join(res, "\n")
6666
}
67+
68+
func getFullPath(field *validate.FieldPath) string {
69+
var pathElements []string
70+
for _, element := range field.GetElements() {
71+
if element.GetFieldName() != "" {
72+
pathElements = append(pathElements, element.GetFieldName())
73+
} else if element.GetFieldNumber() != 0 {
74+
pathElements = append(pathElements, fmt.Sprintf("%d", element.GetFieldNumber()))
75+
}
76+
if element.GetSubscript() != nil {
77+
switch subscript := element.GetSubscript().(type) {
78+
case *validate.FieldPathElement_Index:
79+
pathElements[len(pathElements)-1] = fmt.Sprintf("%s[%d]", pathElements[len(pathElements)-1], subscript.Index)
80+
case *validate.FieldPathElement_BoolKey:
81+
pathElements[len(pathElements)-1] = fmt.Sprintf("%s[%t]", pathElements[len(pathElements)-1], subscript.BoolKey)
82+
case *validate.FieldPathElement_IntKey:
83+
pathElements[len(pathElements)-1] = fmt.Sprintf("%s[%d]", pathElements[len(pathElements)-1], subscript.IntKey)
84+
case *validate.FieldPathElement_UintKey:
85+
pathElements[len(pathElements)-1] = fmt.Sprintf("%s[%d]", pathElements[len(pathElements)-1], subscript.UintKey)
86+
case *validate.FieldPathElement_StringKey:
87+
pathElements[len(pathElements)-1] = fmt.Sprintf("%s[%s]", pathElements[len(pathElements)-1], subscript.StringKey)
88+
}
89+
}
90+
}
91+
return strings.Join(pathElements, ".")
92+
}

internal/api/api_test.go

+15
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,21 @@ func TestProtoValidationInterceptor(t *testing.T) {
4646
errMsg: "Validation failed:\n- Field 'name': value does not match regex pattern",
4747
errCode: codes.InvalidArgument,
4848
},
49+
{
50+
name: "invalid request with nested field",
51+
req: &v1.ListEvaluationResultsRequest{
52+
Context: &v1.Context{
53+
Project: ptr.Ptr(uuid.New().String()),
54+
},
55+
Entity: []*v1.EntityTypedId{
56+
{
57+
Id: "invalid-id",
58+
},
59+
},
60+
},
61+
errMsg: "Validation failed:\n- Field 'entity[0].id': value must be a valid UUID",
62+
errCode: codes.InvalidArgument,
63+
},
4964
}
5065

5166
validator, err := NewValidator()

0 commit comments

Comments
 (0)