From 941a75964fc27609f38d4ba3451325828ab58dc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mustafa=20Sencer=20=C3=96zcan?= <32759850+mustafasencer@users.noreply.github.com> Date: Thu, 11 Sep 2025 16:02:56 +0200 Subject: [PATCH] fix: auhtz grpc client no org id issue (#110952) --- apps/iam/go.mod | 1 - apps/iam/go.sum | 2 -- pkg/services/authz/rbac.go | 15 +++++++++++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/apps/iam/go.mod b/apps/iam/go.mod index 6ad62e287e1..dd7ea5260e6 100644 --- a/apps/iam/go.mod +++ b/apps/iam/go.mod @@ -308,7 +308,6 @@ require ( github.com/openfga/api/proto v0.0.0-20250127102726-f9709139a369 // indirect github.com/openfga/language/pkg/go v0.2.0-beta.2.0.20250220223040-ed0cfba54336 // indirect github.com/openfga/openfga v1.8.13 // indirect - github.com/opentracing-contrib/go-grpc v0.1.1 // indirect github.com/opentracing-contrib/go-stdlib v1.0.0 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect diff --git a/apps/iam/go.sum b/apps/iam/go.sum index f86d810f3f8..63e2512ddaf 100644 --- a/apps/iam/go.sum +++ b/apps/iam/go.sum @@ -1100,8 +1100,6 @@ github.com/openfga/language/pkg/go v0.2.0-beta.2.0.20250220223040-ed0cfba54336 h github.com/openfga/language/pkg/go v0.2.0-beta.2.0.20250220223040-ed0cfba54336/go.mod h1:IWRgDIekw3UGSWINwmCALHpMmn6NEJzz6e7KZGm+xQ4= github.com/openfga/openfga v1.8.13 h1:ROURkotKhbmtyBX3188+cNElN8AOZmTl0CMkxUqwawo= github.com/openfga/openfga v1.8.13/go.mod h1:h1VGcVW81eY1YyDtFx5+gxxAIEhIiOGR9SRGgs/X/k8= -github.com/opentracing-contrib/go-grpc v0.1.1 h1:Ws7IN1zyiL1DFqKQPhRXuKe5pLYzMfdxnC1qtajE2PE= -github.com/opentracing-contrib/go-grpc v0.1.1/go.mod h1:Nu6sz+4zzgxXu8rvKfnwjBEmHsuhTigxRwV2RhELrS8= github.com/opentracing-contrib/go-stdlib v1.0.0 h1:TBS7YuVotp8myLon4Pv7BtCBzOTo1DeZCld0Z63mW2w= github.com/opentracing-contrib/go-stdlib v1.0.0/go.mod h1:qtI1ogk+2JhVPIXVc6q+NHziSmy2W5GbdQZFUHADCBU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= diff --git a/pkg/services/authz/rbac.go b/pkg/services/authz/rbac.go index e2210096976..e713ceae2be 100644 --- a/pkg/services/authz/rbac.go +++ b/pkg/services/authz/rbac.go @@ -22,7 +22,7 @@ import ( authzv1 "github.com/grafana/authlib/authz/proto/v1" "github.com/grafana/authlib/cache" authlib "github.com/grafana/authlib/types" - "github.com/grafana/dskit/grpcclient" + "github.com/grafana/dskit/middleware" "github.com/grafana/grafana/pkg/infra/db" "github.com/grafana/grafana/pkg/infra/log" "github.com/grafana/grafana/pkg/infra/tracing" @@ -169,7 +169,7 @@ func newRemoteRBACClient(clientCfg *authzClientSettings, tracer trace.Tracer, re NativeHistogramMinResetDuration: time.Hour, }, []string{"operation", "status_code"}) - unaryInterceptors, streamInterceptors := grpcclient.Instrument(authzRequestDuration) + unaryInterceptors, streamInterceptors := instrument(authzRequestDuration, middleware.ReportGRPCStatusOption) opts := []grpc.DialOption{ grpc.WithTransportCredentials(transportCreds), @@ -280,3 +280,14 @@ func (lc *NoopCache) Set(ctx context.Context, key string, data []byte, exp time. func (lc *NoopCache) Delete(ctx context.Context, key string) error { return nil } + +// instrument is the same as grpcclient.Instrument but without the middleware.ClientUserHeaderInterceptor, +// otgrpc.OpenTracingClientInterceptor, otgrpc.OpenTracingStreamClientInterceptor +// and middleware.StreamClientUserHeaderInterceptor as we don't need them. +func instrument(requestDuration *prometheus.HistogramVec, instrumentationLabelOptions ...middleware.InstrumentationOption) ([]grpc.UnaryClientInterceptor, []grpc.StreamClientInterceptor) { + return []grpc.UnaryClientInterceptor{ + middleware.UnaryClientInstrumentInterceptor(requestDuration, instrumentationLabelOptions...), + }, []grpc.StreamClientInterceptor{ + middleware.StreamClientInstrumentInterceptor(requestDuration, instrumentationLabelOptions...), + } +}