CtrlK
BlogDocsLog inGet started
Tessl Logo

giuseppe-trisciuoglio/developer-kit

Comprehensive developer toolkit providing reusable skills for Java/Spring Boot, TypeScript/NestJS/React/Next.js, Python, PHP, AWS CloudFormation, AI/RAG, DevOps, and more.

82

Quality

82%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Risky

Do not use without reviewing

Validation failed for skills in this tile
One or more skills have errors that need to be fixed before they can move to Implementation and Discovery review.
Overview
Quality
Evals
Security
Files

endpoint-reference.mdplugins/developer-kit-java/skills/spring-boot-actuator/references/

Endpoint Reference

This document provides a comprehensive reference for all available Spring Boot Actuator endpoints.

Built-in Endpoints

EndpointHTTP MethodDescriptionDefault Exposure
auditeventsGETAudit events for the applicationJMX
beansGETComplete list of Spring beansJMX
cachesGET, DELETEAvailable cachesJMX
conditionsGETConfiguration and auto-configuration conditionsJMX
configpropsGETConfiguration propertiesJMX
envGET, POSTEnvironment propertiesJMX
flywayGETFlyway database migrationsJMX
healthGETApplication health informationWeb, JMX
heapdumpGETHeap dumpJMX
httpexchangesGETHTTP exchange informationJMX
infoGETApplication informationWeb, JMX
integrationgraphGETSpring Integration graphJMX
logfileGETApplication log fileJMX
loggersGET, POSTLogger configurationJMX
liquibaseGETLiquibase database migrationsJMX
mappingsGETRequest mapping informationJMX
metricsGETApplication metricsJMX
prometheusGETPrometheus metricsNone
quartzGETQuartz scheduler informationJMX
scheduledtasksGETScheduled tasksJMX
sessionsGET, DELETEUser sessionsJMX
shutdownPOSTGraceful application shutdownJMX
startupGETApplication startup informationJMX
threaddumpGETThread dumpJMX

Endpoint URLs

Web Endpoints

  • Base path: /actuator
  • Example: GET /actuator/health
  • Custom base path: management.endpoints.web.base-path

JMX Endpoints

  • Domain: org.springframework.boot
  • Example: org.springframework.boot:type=Endpoint,name=Health

Endpoint Configuration

Global Configuration

management:
  endpoints:
    enabled-by-default: true
    web:
      exposure:
        include: "health,info,metrics"
        exclude: "env,beans"
      base-path: "/actuator"
      path-mapping:
        health: "status"
    jmx:
      exposure:
        include: "*"

Individual Endpoint Configuration

management:
  endpoint:
    health:
      enabled: true
      show-details: when-authorized
      show-components: always
      cache:
        time-to-live: 10s
    metrics:
      enabled: true
      cache:
        time-to-live: 0s
    info:
      enabled: true

Security Configuration

Web Security

@Configuration
public class ActuatorSecurityConfiguration {

    @Bean
    @Order(1)
    public SecurityFilterChain actuatorSecurityFilterChain(HttpSecurity http) throws Exception {
        return http
            .requestMatcher(EndpointRequest.toAnyEndpoint())
            .authorizeHttpRequests(requests -> 
                requests
                    .requestMatchers(EndpointRequest.to("health", "info")).permitAll()
                    .anyRequest().hasRole("ACTUATOR")
            )
            .httpBasic(withDefaults())
            .build();
    }
}

Method-level Security

@PreAuthorize("hasRole('ADMIN')")
@GetMapping("/actuator/shutdown")
public Object shutdown() {
    // Shutdown logic
}

Custom Endpoints

Creating Custom Endpoints

@Component
@Endpoint(id = "custom")
public class CustomEndpoint {

    @ReadOperation
    public Map<String, Object> customEndpoint() {
        return Map.of("custom", "data");
    }

    @WriteOperation
    public void writeOperation(@Selector String name, String value) {
        // Write operation
    }

    @DeleteOperation
    public void deleteOperation(@Selector String name) {
        // Delete operation
    }
}

Web-specific Endpoints

@Component
@WebEndpoint(id = "web-custom")
public class WebCustomEndpoint {

    @ReadOperation
    public WebEndpointResponse<Map<String, Object>> webCustomEndpoint() {
        Map<String, Object> data = Map.of("web", "specific");
        return new WebEndpointResponse<>(data, 200);
    }
}

Best Practices

  1. Security: Always secure actuator endpoints in production
  2. Exposure: Only expose necessary endpoints
  3. Performance: Configure appropriate caching for endpoints
  4. Monitoring: Monitor actuator endpoint usage
  5. Documentation: Document custom endpoints thoroughly

plugins

developer-kit-java

skills

README.md

tile.json