diff --git a/cache/wrapper_test.go b/cache/wrapper_test.go index 3f4af2ab..20066909 100644 --- a/cache/wrapper_test.go +++ b/cache/wrapper_test.go @@ -27,8 +27,8 @@ var ( Environment: strPtr("env"), Excluded: &[]rest.Target{{Identifier: "exlc1"}, {Identifier: "exlc2"}}, Included: &[]rest.Target{{Identifier: "incl1"}, {Identifier: "incl2"}}, - Rules: &[]rest.Clause{{Attribute: "attr", Id: "id", Negate: false, Op: "contains", Values: []string{"val1", "val2"}}}, - Tags: &[]rest.Tag{{Name: "tagName", Value: strPtr("tagValue")}}, + Rules: &[]rest.Clause{{Attribute: "attr", Id: strPtr("id"), Negate: false, Op: "contains", Values: []string{"val1", "val2"}}}, + Tags: &[]rest.Tag{{Name: "tagName", Identifier: "tagValue"}}, Version: int64Ptr(2), } @@ -53,9 +53,9 @@ var ( Project: "proj", Rules: &[]rest.ServingRule{ { - Clauses: []rest.Clause{{Attribute: "attr", Id: "id", Negate: false, Op: "contains", Values: []string{"val1", "val2"}}}, + Clauses: []rest.Clause{{Attribute: "attr", Id: strPtr("id"), Negate: false, Op: "contains", Values: []string{"val1", "val2"}}}, Priority: 1, - RuleId: "ID", + RuleId: strPtr("ID"), Serve: rest.Serve{ Distribution: nil, Variation: strPtr("str"), @@ -66,7 +66,7 @@ var ( VariationToTargetMap: &[]rest.VariationMap{ { TargetSegments: &[]string{"segment1", "segment2", "segment3"}, - Targets: &[]rest.TargetMap{{strPtr("target1"), "target1"}, {strPtr("target2"), "target2"}, {strPtr("target3"), "target3"}}, + Targets: &[]rest.TargetMap{{"target1", "target1"}, {"target2", "target2"}, {"target3", "target3"}}, Variation: "var", }, }, diff --git a/cmd/example-sdk/main.go b/cmd/example-sdk/main.go index aadc8c5c..b4bb159a 100644 --- a/cmd/example-sdk/main.go +++ b/cmd/example-sdk/main.go @@ -10,7 +10,6 @@ import ( "time" harness "github.com/harness/ff-golang-server-sdk/client" - "github.com/harness/ff-golang-server-sdk/logger" "github.com/harness/ff-golang-server-sdk/dto" ) @@ -35,11 +34,6 @@ func init() { } func main() { - logger, err := logger.NewZapLogger(true) - if err != nil { - log.Fatal(err) - } - target := dto.NewTargetBuilder(targetIdentifier). Name(targetIdentifier). Build() @@ -49,7 +43,6 @@ func main() { harness.WithURL(baseURL), harness.WithEventsURL(eventsURL), harness.WithTarget(target), - harness.WithLogger(logger), harness.WithPullInterval(1), ) defer func() { diff --git a/cmd/ff-proxy/main.go b/cmd/ff-proxy/main.go index 2c28d38c..0c728331 100644 --- a/cmd/ff-proxy/main.go +++ b/cmd/ff-proxy/main.go @@ -19,7 +19,7 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus/collectors" - "github.com/fanout/go-gripcontrol" + "github.com/harness-community/go-gripcontrol" "github.com/hashicorp/go-retryablehttp" "cloud.google.com/go/profiler" diff --git a/config/local_config_test.go b/config/local_config_test.go index f6ff4eed..d7655886 100644 --- a/config/local_config_test.go +++ b/config/local_config_test.go @@ -43,7 +43,7 @@ var ( Clauses: []rest.Clause{ { Attribute: "age", - Id: "79f5bca0-17ca-42c2-8934-5cee840fe2e0", + Id: strPtr("79f5bca0-17ca-42c2-8934-5cee840fe2e0"), Negate: false, Op: "equal", Values: []string{ @@ -52,7 +52,7 @@ var ( }, }, Priority: 1, - RuleId: "8756c207-abf8-4202-83fd-dedf5d27e2c2", + RuleId: strPtr("8756c207-abf8-4202-83fd-dedf5d27e2c2"), Serve: rest.Serve{ Variation: strPtr("false"), }, @@ -66,7 +66,7 @@ var ( }, Targets: &[]rest.TargetMap{ { - Identifier: strPtr("davej"), + Identifier: "davej", Name: "Dave Johnston", }, }, @@ -128,7 +128,7 @@ var ( Rules: &[]rest.Clause{ { Attribute: "ip", - Id: "31c18ee7-8051-44cc-8507-b44580467ee5", + Id: strPtr("31c18ee7-8051-44cc-8507-b44580467ee5"), Negate: false, Op: "equal", Values: []string{"2a00:23c5:b672:2401:158:f2a6:67a0:6a79"}, diff --git a/docker-compose.yml b/docker-compose.yml index f102de44..5ec3b6bf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,6 +32,8 @@ services: - ./tests/e2e/certs:/certs ports: - 7000:${PORT:-7000} + depends_on: + - redis redis: image: "redis:latest" diff --git a/go.mod b/go.mod index d1b87349..ff358467 100644 --- a/go.mod +++ b/go.mod @@ -7,24 +7,25 @@ require ( github.com/alicebob/miniredis/v2 v2.30.4 github.com/avast/retry-go v3.0.0+incompatible github.com/deepmap/oapi-codegen v1.11.0 - github.com/fanout/go-gripcontrol v1.2.0 - github.com/fanout/go-pubcontrol v1.2.0 github.com/go-kit/kit v0.12.0 github.com/go-redis/cache/v8 v8.4.4 github.com/go-redis/redis/v8 v8.11.4 github.com/golang-jwt/jwt/v4 v4.5.2 github.com/google/uuid v1.5.0 + github.com/harness-community/go-gripcontrol v1.2.1 + github.com/harness-community/go-pubcontrol v1.2.1 github.com/harness-community/sse/v3 v3.1.0 - github.com/harness/ff-golang-server-sdk v0.1.20 + github.com/harness/ff-golang-server-sdk v0.1.26 github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-retryablehttp v0.7.7 github.com/joho/godotenv v1.4.0 github.com/json-iterator/go v1.1.12 - github.com/labstack/echo/v4 v4.11.4 + github.com/labstack/echo-jwt/v4 v4.1.0 + github.com/labstack/echo/v4 v4.13.4 github.com/patrickmn/go-cache v2.1.0+incompatible github.com/prometheus/client_golang v1.11.1 github.com/sirupsen/logrus v1.8.1 - github.com/stretchr/testify v1.8.4 + github.com/stretchr/testify v1.10.0 go.uber.org/zap v1.19.1 gopkg.in/yaml.v2 v2.4.0 ) @@ -33,15 +34,16 @@ require ( cloud.google.com/go v0.110.10 // indirect cloud.google.com/go/compute/metadata v0.3.0 // indirect github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a // indirect + github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/deepmap/oapi-codegen/v2 v2.1.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/getkin/kin-openapi v0.124.0 // indirect github.com/go-openapi/jsonpointer v0.20.2 // indirect github.com/go-openapi/swag v0.22.8 // indirect - github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/pprof v0.0.0-20221103000818-d260c55eee4c // indirect @@ -56,7 +58,7 @@ require ( github.com/klauspost/compress v1.16.7 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect @@ -64,13 +66,13 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect + github.com/oapi-codegen/runtime v1.1.1 // indirect github.com/perimeterx/marshmallow v1.1.5 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.2.0 // indirect github.com/prometheus/common v0.30.0 // indirect github.com/prometheus/procfs v0.7.3 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect - github.com/ugorji/go/codec v1.2.11 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect github.com/vmihailenco/go-tinylfu v0.2.2 // indirect @@ -82,12 +84,12 @@ require ( go.uber.org/multierr v1.7.0 // indirect golang.org/x/crypto v0.38.0 // indirect golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect - golang.org/x/net v0.36.0 // indirect + golang.org/x/net v0.40.0 // indirect golang.org/x/oauth2 v0.30.0 // indirect golang.org/x/sync v0.14.0 // indirect golang.org/x/sys v0.33.0 // indirect golang.org/x/text v0.25.0 // indirect - golang.org/x/time v0.5.0 // indirect + golang.org/x/time v0.11.0 // indirect google.golang.org/api v0.149.0 // indirect google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f // indirect diff --git a/go.sum b/go.sum index 96834243..0c7ecfd9 100644 --- a/go.sum +++ b/go.sum @@ -43,6 +43,7 @@ cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7Biccwk dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= 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/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -52,6 +53,8 @@ github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a h1:HbKu58rmZp github.com/alicebob/gopher-json v0.0.0-20200520072559-a9ecdc9d1d3a/go.mod h1:SGnFV6hVsYE877CKEZ6tDNTjaSXYUk6QqoIK6PrAtcc= github.com/alicebob/miniredis/v2 v2.30.4 h1:8S4/o1/KoUArAGbGwPxcwf0krlzceva2XVOSchFS7Eo= github.com/alicebob/miniredis/v2 v2.30.4/go.mod h1:b25qWj4fCEsBeAAR2mlb0ufImGC6uH3VlUfb/HS5zKg= +github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ= +github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk= github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0= github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= @@ -60,6 +63,7 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -82,16 +86,14 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go. github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/deepmap/oapi-codegen v1.11.0 h1:f/X2NdIkaBKsSdpeuwLnY/vDI0AtPUrmB5LMgc7YD+A= github.com/deepmap/oapi-codegen v1.11.0/go.mod h1:k+ujhoQGxmQYBZBbxhOZNZf4j08qv5mC+OH+fFTnKxM= +github.com/deepmap/oapi-codegen/v2 v2.1.0 h1:I/NMVhJCtuvL9x+S2QzZKpSjGi33oDZwPRdemvOZWyQ= +github.com/deepmap/oapi-codegen/v2 v2.1.0/go.mod h1:R1wL226vc5VmCNJUvMyYr3hJMm5reyv25j952zAVXZ8= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= 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/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fanout/go-gripcontrol v1.2.0 h1:O333qhg14iDLTK7+E4zVdXqIxZrGndES95z5EKPbSbE= -github.com/fanout/go-gripcontrol v1.2.0/go.mod h1:rkGBpJpUXKkgUt/wgekSK5bf2tIzubJe6BYiwMjCapI= -github.com/fanout/go-pubcontrol v1.2.0 h1:pTQABRarHaPuUblkRtECY0jdJ/bkftHB3QN4aCLxdzM= -github.com/fanout/go-pubcontrol v1.2.0/go.mod h1:2Jp/BECC0fiLcv6CgWCc0oFiejMwlIApjeb1quBJ00c= github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -140,7 +142,6 @@ github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI= github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= @@ -219,10 +220,14 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/harness-community/go-gripcontrol v1.2.1 h1:79CGkueTzajPk2d8Wm7rA58e2wTq7OKqJWPDeFOYFUA= +github.com/harness-community/go-gripcontrol v1.2.1/go.mod h1:gB3aC+ztGY80EXeOg/s+yJREpyBf/BZKKu458sUtS6M= +github.com/harness-community/go-pubcontrol v1.2.1 h1:6BNaiFlPtnwiImXXQcBxg1jp/CNf73bvkYpE/3qI1rs= +github.com/harness-community/go-pubcontrol v1.2.1/go.mod h1:9Mi8NuTmSaShhRquC4j+IwrdmQXLEEqkC9/Nf6Xewwg= github.com/harness-community/sse/v3 v3.1.0 h1:uaLxXzC9DjpWEV/qTYU3uJV3eLMTRhMY2P6qb/3QAeY= github.com/harness-community/sse/v3 v3.1.0/go.mod h1:v4ft76Eaj+kAsUcc29zIspInWgpzsMLlHLb4x/PYVX0= -github.com/harness/ff-golang-server-sdk v0.1.20 h1:jUzWWc6PDFA8kKdFF1xNmr0639dCjzDEcyYJJRAfCbI= -github.com/harness/ff-golang-server-sdk v0.1.20/go.mod h1:rgZU38pqz49d4Gs/oF5tBmyhOWQUjiSl3ZnRd2UespA= +github.com/harness/ff-golang-server-sdk v0.1.26 h1:Ww3fJXynS5UCL+o7U/KDbEBG2AVYWdaGyeYAqalbCKY= +github.com/harness/ff-golang-server-sdk v0.1.26/go.mod h1:1LdmBc5lCtjO8eyKo8hLwEOPnQwNKLU5OpcNkNJfuGs= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= @@ -256,6 +261,7 @@ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnr github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= 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/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -274,9 +280,11 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/labstack/echo-jwt/v4 v4.1.0 h1:eYGBxauPkyzBM78KJbR5OSz5uhKMDkhJZhTTIuoH6Pg= +github.com/labstack/echo-jwt/v4 v4.1.0/go.mod h1:DHSSaL6cTgczdPXjf8qrTHRbrau2flcddV7CPMs2U/Y= github.com/labstack/echo/v4 v4.7.2/go.mod h1:xkCDAdFCIf8jsFQ5NnbK7oqaF/yU1A1X20Ltm0OvSks= -github.com/labstack/echo/v4 v4.11.4 h1:vDZmA+qNeh1pd/cCkEicDMrjtrnMGQ1QFI9gWN1zGq8= -github.com/labstack/echo/v4 v4.11.4/go.mod h1:noh7EvLwqDsmh/X/HWKPUl1AjzJrhyptRyEbQJfxen8= +github.com/labstack/echo/v4 v4.13.4 h1:oTZZW+T3s9gAu5L8vmzihV7/lkXGZuITzTQkTEhcXEA= +github.com/labstack/echo/v4 v4.13.4/go.mod h1:g63b33BZ5vZzcIUF8AtRH40DrTlXnx4UMC8rBdndmjQ= github.com/labstack/gommon v0.3.1/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= @@ -298,11 +306,10 @@ github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJ github.com/matryer/moq v0.2.7/go.mod h1:kITsx543GOENm48TUAQyJ9+SAvFSr7iGQXPoth/VUBk= github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= @@ -326,6 +333,8 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLA github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmtpMYro= +github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= @@ -380,6 +389,7 @@ github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -393,9 +403,10 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ 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/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= -github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go v1.2.7 h1:qYhyWUUd6WbiM+C6JZAUkIJt/1WrjzNHY9+KCIjVqTo= github.com/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY= @@ -525,8 +536,8 @@ golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qx 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-20220513224357-95641704303c/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= -golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= 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= @@ -602,7 +613,6 @@ golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/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-20220513210249-45d2b4557a2a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= @@ -622,8 +632,8 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220411224347-583f2d630306/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0= +golang.org/x/time v0.11.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/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-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= diff --git a/middleware/middleware.go b/middleware/middleware.go index d4a1b9af..ec371450 100644 --- a/middleware/middleware.go +++ b/middleware/middleware.go @@ -12,6 +12,7 @@ import ( "github.com/google/uuid" "github.com/harness/ff-proxy/domain" "github.com/harness/ff-proxy/log" + echojwt "github.com/labstack/echo-jwt/v4" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "github.com/prometheus/client_golang/prometheus" @@ -36,10 +37,9 @@ func NewEchoLoggingMiddleware(l log.Logger) echo.MiddlewareFunc { // NewEchoAuthMiddleware returns an echo middleware that checks if auth headers // are valid func NewEchoAuthMiddleware(secret []byte, bypassAuth bool) echo.MiddlewareFunc { - return middleware.JWTWithConfig(middleware.JWTConfig{ - AuthScheme: "Bearer", - TokenLookup: "header:Authorization", - ParseTokenFunc: func(auth string, c echo.Context) (interface{}, error) { + return echojwt.WithConfig(echojwt.Config{ + TokenLookup: "header:Authorization:Bearer ", + ParseTokenFunc: func(c echo.Context, auth string) (interface{}, error) { if auth == "" { return nil, errors.New("token was empty") } @@ -66,7 +66,7 @@ func NewEchoAuthMiddleware(secret []byte, bypassAuth bool) echo.MiddlewareFunc { return urlPath == "/client/auth" || urlPath == "/health" || prometheusRequest }, - ErrorHandlerWithContext: func(err error, c echo.Context) error { + ErrorHandler: func(c echo.Context, err error) error { return c.JSON(http.StatusUnauthorized, err) }, }) diff --git a/repository/feature_flag_repo_test.go b/repository/feature_flag_repo_test.go index 2272030a..b694e580 100644 --- a/repository/feature_flag_repo_test.go +++ b/repository/feature_flag_repo_test.go @@ -28,7 +28,7 @@ var ( Clauses: []rest.Clause{ { Attribute: "name", - Id: "79f5bca0-17ca-42c2-8934-5cee840fe2e0", + Id: strPtr("79f5bca0-17ca-42c2-8934-5cee840fe2e0"), Negate: false, Op: "equal", Values: []string{ @@ -37,7 +37,7 @@ var ( }, }, Priority: 1, - RuleId: "8756c207-abf8-4202-83fd-dedf5d27e2c2", + RuleId: strPtr("8756c207-abf8-4202-83fd-dedf5d27e2c2"), Serve: rest.Serve{ Variation: strPtr("false"), }, @@ -51,7 +51,7 @@ var ( }, Targets: &[]rest.TargetMap{ { - Identifier: strPtr("davej"), + Identifier: "davej", Name: "Dave Johnston", }, }, @@ -90,7 +90,7 @@ var ( Clauses: []rest.Clause{ { Attribute: "name", - Id: "79f5bca0-17ca-42c2-8934-5cee840fe2e0", + Id: strPtr("79f5bca0-17ca-42c2-8934-5cee840fe2e0"), Negate: false, Op: "equal", Values: []string{ @@ -99,7 +99,7 @@ var ( }, }, Priority: 1, - RuleId: "8756c207-abf8-4202-83fd-dedf5d27e2c2", + RuleId: strPtr("8756c207-abf8-4202-83fd-dedf5d27e2c2"), Serve: rest.Serve{ Variation: strPtr("false"), }, @@ -113,7 +113,7 @@ var ( }, Targets: &[]rest.TargetMap{ { - Identifier: strPtr("davej"), + Identifier: "davej", Name: "Dave Johnston", }, }, diff --git a/stream/stream_worker.go b/stream/stream_worker.go index 95c7ce6d..1b3e5bcc 100644 --- a/stream/stream_worker.go +++ b/stream/stream_worker.go @@ -5,8 +5,8 @@ import ( "errors" "fmt" - "github.com/fanout/go-gripcontrol" - "github.com/fanout/go-pubcontrol" + "github.com/harness-community/go-gripcontrol" + "github.com/harness-community/go-pubcontrol" "github.com/harness/ff-golang-server-sdk/stream" "github.com/harness/ff-proxy/token" "github.com/prometheus/client_golang/prometheus" diff --git a/transport/http_server_test.go b/transport/http_server_test.go index 86f980f8..0089bc30 100644 --- a/transport/http_server_test.go +++ b/transport/http_server_test.go @@ -18,8 +18,8 @@ import ( admingen "github.com/harness/ff-proxy/gen/admin" "github.com/alicebob/miniredis/v2" - "github.com/fanout/go-gripcontrol" "github.com/go-redis/redis/v8" + "github.com/harness-community/go-gripcontrol" "github.com/harness-community/sse/v3" sdkstream "github.com/harness/ff-golang-server-sdk/stream" "github.com/harness/ff-proxy/cache" @@ -1373,7 +1373,7 @@ func TestHTTPServer_Stream(t *testing.T) { url: fmt.Sprintf("%s/stream", testServer.URL), expectedStatusCode: http.StatusServiceUnavailable, expectedResponseHeaders: http.Header{ - "Content-Type": []string{"application/json; charset=UTF-8"}, + "Content-Type": []string{"application/json"}, }, }, }