@@ -35,6 +35,7 @@ import (
3535 "google.golang.org/grpc"
3636 "google.golang.org/grpc/codes"
3737 "google.golang.org/grpc/credentials/insecure"
38+ "google.golang.org/grpc/metadata"
3839 "google.golang.org/grpc/reflection"
3940 "google.golang.org/grpc/status"
4041
@@ -43,6 +44,7 @@ import (
4344 "github.com/mindersec/minder/internal/auth"
4445 "github.com/mindersec/minder/internal/auth/jwt"
4546 "github.com/mindersec/minder/internal/authz"
47+ "github.com/mindersec/minder/internal/constants"
4648 "github.com/mindersec/minder/internal/controlplane/metrics"
4749 "github.com/mindersec/minder/internal/crypto"
4850 datasourcessvc "github.com/mindersec/minder/internal/datasources/service"
@@ -218,8 +220,7 @@ func initMetrics(r sdkmetric.Reader) *sdkmetric.MeterProvider {
218220 res := resource .NewWithAttributes (
219221 semconv .SchemaURL ,
220222 semconv .ServiceName ("minder" ),
221- // TODO: Make this auto-generated
222- semconv .ServiceVersion ("v0.1.0" ),
223+ semconv .ServiceVersion (constants .CLIVersion ),
223224 )
224225 // By default/spec (?!), otel includes net.sock.peer.{addr,port}.
225226 // See https://github.com/open-telemetry/opentelemetry-go-contrib/issues/3071
@@ -268,6 +269,7 @@ func (s *Server) StartGRPCServer(ctx context.Context) error {
268269 s .TokenValidationInterceptor ,
269270 EntityContextProjectInterceptor ,
270271 ProjectAuthorizationInterceptor ,
272+ VersionHeaderInterceptor (),
271273 recovery .UnaryServerInterceptor (recovery .WithRecoveryHandlerContext (recoveryHandler )),
272274 }
273275
@@ -545,3 +547,12 @@ func withMaxSizeMiddleware(h http.Handler) http.Handler {
545547 h .ServeHTTP (w , r )
546548 })
547549}
550+
551+ // VersionHeaderInterceptor injects the Minder version into the HTTP response headers
552+ func VersionHeaderInterceptor () grpc.UnaryServerInterceptor {
553+ return func (ctx context.Context , req interface {}, _ * grpc.UnaryServerInfo , handler grpc.UnaryHandler ) (interface {}, error ) {
554+ // SetHeader tells gRPC-Gateway to add this to the HTTP response
555+ _ = grpc .SetHeader (ctx , metadata .Pairs ("minder-version" , constants .ServerUserAgent ))
556+ return handler (ctx , req )
557+ }
558+ }
0 commit comments