CtrlK
BlogDocsLog inGet started
Tessl Logo

finkel/spring-grpc

Spring gRPC reference documentation covering server, client, security, and configuration

92

2.19x
Quality

Pending

Does it follow best practices?

Impact

92%

2.19x

Average score across 3 eval scenarios

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

criteria.jsonevals/scenario-1/

{
  "context": "Tests whether the agent correctly wires global server interceptors using @GlobalServerInterceptor and @Order, configures per-service interceptors with blendWithGlobalInterceptors, and registers a GrpcExceptionHandler bean — all as specified in the Spring gRPC server documentation.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Global interceptor annotation",
      "description": "LoggingInterceptor bean is annotated with @GlobalServerInterceptor (not manually registered via factory customizer)",
      "max_score": 12
    },
    {
      "name": "Interceptor ordering with @Order",
      "description": "Both interceptor beans carry @Order annotations with distinct numeric values that place logging before rate limiting",
      "max_score": 10
    },
    {
      "name": "Per-service interceptor annotation",
      "description": "RateLimitInterceptor is applied via @GrpcService(interceptors = RateLimitInterceptor.class) on the PlaceOrder service (or its config), not as a global interceptor",
      "max_score": 12
    },
    {
      "name": "blendWithGlobalInterceptors used",
      "description": "The @GrpcService annotation for the rate-limited service includes blendWithGlobalInterceptors = true so global and per-service interceptors are merged",
      "max_score": 12
    },
    {
      "name": "GrpcExceptionHandler bean",
      "description": "A @Bean method returns a GrpcExceptionHandler (or implementation of it) — not a try/catch inside the service methods",
      "max_score": 12
    },
    {
      "name": "Service @Service annotation",
      "description": "The gRPC service implementation class is annotated with @Service",
      "max_score": 8
    },
    {
      "name": "Extends *ImplBase",
      "description": "The service implementation class extends the generated *ImplBase class",
      "max_score": 8
    },
    {
      "name": "spring-grpc-dependencies BOM",
      "description": "pom.xml uses the spring-grpc-dependencies artifact as a BOM in dependencyManagement (not individual version pins)",
      "max_score": 10
    },
    {
      "name": "grpc-services dependency",
      "description": "pom.xml includes io.grpc:grpc-services (needed for reflection/health autoconfiguration)",
      "max_score": 8
    },
    {
      "name": "Server port property",
      "description": "application.properties configures the server port under spring.grpc.server.port (not server.port)",
      "max_score": 8
    }
  ]
}

tile.json