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-2/

{
  "context": "Tests whether the agent uses @ImportGrpcClients for automatic stub discovery, GrpcChannelBuilderCustomizer with @Order for global customizers, ChannelBuilderOptions for per-channel customization, @GlobalClientInterceptor for global interceptors, and BearerTokenAuthenticationInterceptor with RestClientClientCredentialsTokenResponseClient for OAuth2 — all as documented in the Spring gRPC client reference.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "@ImportGrpcClients used",
      "description": "Application or configuration class uses @ImportGrpcClients annotation (not manual @Bean stub declarations for both stubs)",
      "max_score": 10
    },
    {
      "name": "target/types parameters",
      "description": "@ImportGrpcClients uses target and/or types parameters to bind stubs to named channels (not just basePackageClasses alone for both)",
      "max_score": 10
    },
    {
      "name": "Global client interceptor annotation",
      "description": "Logging interceptor bean is annotated with @GlobalClientInterceptor",
      "max_score": 10
    },
    {
      "name": "Global customizer with @Order",
      "description": "At least one GrpcChannelBuilderCustomizer bean carries an @Order annotation",
      "max_score": 8
    },
    {
      "name": "Per-channel customizer via ChannelBuilderOptions",
      "description": "Per-channel retry configuration uses ChannelBuilderOptions.defaults().withCustomizer(...) rather than a global customizer",
      "max_score": 10
    },
    {
      "name": "BearerTokenAuthenticationInterceptor for OAuth2",
      "description": "OAuth2 token attachment uses BearerTokenAuthenticationInterceptor (not a custom raw interceptor or header metadata)",
      "max_score": 12
    },
    {
      "name": "RestClientClientCredentialsTokenResponseClient used",
      "description": "Token retrieval uses RestClientClientCredentialsTokenResponseClient.getTokenResponse() with OAuth2ClientCredentialsGrantRequest",
      "max_score": 12
    },
    {
      "name": "Channel addresses in properties",
      "description": "Channel addresses configured via spring.grpc.client.channels.<name>.address properties (not hardcoded in Java code)",
      "max_score": 8
    },
    {
      "name": "spring-grpc-dependencies BOM",
      "description": "pom.xml uses spring-grpc-dependencies as a BOM in dependencyManagement",
      "max_score": 10
    },
    {
      "name": "OAuth2 interceptor on per-channel basis",
      "description": "BearerTokenAuthenticationInterceptor is applied only to the fraud check channel, not globally",
      "max_score": 10
    }
  ]
}

tile.json