diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 7edc5fd..1d8a2bb 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -1,43 +1,43 @@ name: Release docker image on: - push: - tags: - - "*" + push: + tags: + - '*' env: - REGISTRY: ghcr.io - IMAGE_NAME: datadog/hash + REGISTRY: ghcr.io + IMAGE_NAME: datadog/hash permissions: - contents: read + contents: read jobs: - docker-build-push: - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - steps: - - name: Checkout - uses: actions/checkout@v2.5.0 - with: - fetch-depth: 0 + docker-build-push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout + uses: actions/checkout@v2.5.0 + with: + fetch-depth: 0 - - name: Log into registry ${{ env.REGISTRY }} - uses: docker/login-action@v2.1.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + - name: Log into registry ${{ env.REGISTRY }} + uses: docker/login-action@v2.1.0 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and push Docker image - uses: docker/build-push-action@v3.2.0 - with: - context: . - push: true - build-args: | - VERSION=${{ github.ref_name }} - tags: | - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }} - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest \ No newline at end of file + - name: Build and push Docker image + uses: docker/build-push-action@v3.2.0 + with: + context: . + push: true + build-args: | + VERSION=${{ github.ref_name }} + tags: | + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }} + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest diff --git a/.prettierrc b/.prettierrc index b07b2dd..96e9b32 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,5 +1,5 @@ { - "useTabs": false, - "tabWidth": 4, - "singleQuote": true + "useTabs": false, + "tabWidth": 4, + "singleQuote": true } diff --git a/Examples/simple-springboot-app/README.md b/Examples/simple-springboot-app/README.md index 5b7a6c9..b275646 100644 --- a/Examples/simple-springboot-app/README.md +++ b/Examples/simple-springboot-app/README.md @@ -1,26 +1,23 @@ - -Springboot Sample Application -------- +## Springboot Sample Application Features -- Springboot Favicon, to be easily identified via `http.favicon.hash:116323821` -- Default Actuators endpoints -- Sample API endpoints -- default 404 errors +- Springboot Favicon, to be easily identified via `http.favicon.hash:116323821` +- Default Actuators endpoints +- Sample API endpoints +- default 404 errors ### Auth -| Method | Url | Decription | -| ------ | --- | ---------- | -| POST | /api/login | Log in | - +| Method | Url | Decription | +| ------ | ---------- | ---------- | +| POST | /api/login | Log in | ### Articles & Authors -| Method | Url | Description | -| ------ | --- | ----------- | -| GET | /api/articles | Get all articles | +| Method | Url | Description | +| ------ | ----------------- | ----------------- | +| GET | /api/articles | Get all articles | | GET | /api/article/{id} | Get article by id | -| GET | /api/authors | Get all authors | -| GET | /api/author/{id} | Get author info | \ No newline at end of file +| GET | /api/authors | Get all authors | +| GET | /api/author/{id} | Get author info | diff --git a/Examples/simple-springboot-app/init.yaml b/Examples/simple-springboot-app/init.yaml index 1948112..0e2f444 100644 --- a/Examples/simple-springboot-app/init.yaml +++ b/Examples/simple-springboot-app/init.yaml @@ -1,3 +1,3 @@ -name: "spring-boot" +name: 'spring-boot' port: 3000 -headers: \ No newline at end of file +headers: diff --git a/Examples/simple-springboot-app/templates/404.yaml b/Examples/simple-springboot-app/templates/404.yaml index b8937ba..c1cf371 100644 --- a/Examples/simple-springboot-app/templates/404.yaml +++ b/Examples/simple-springboot-app/templates/404.yaml @@ -1,14 +1,14 @@ id: not_found info: - title: "404 not found" + title: '404 not found' requests: - - expect: - method: GET - path: '*' - reply: - status: 404 - headers: - content-type: "text/html" - body: - cache: false - view: "404.html" \ No newline at end of file + - expect: + method: GET + path: '*' + reply: + status: 404 + headers: + content-type: 'text/html' + body: + cache: false + view: '404.html' diff --git a/Examples/simple-springboot-app/templates/actuators.yaml b/Examples/simple-springboot-app/templates/actuators.yaml index db70ebd..f008c9a 100644 --- a/Examples/simple-springboot-app/templates/actuators.yaml +++ b/Examples/simple-springboot-app/templates/actuators.yaml @@ -1,47 +1,47 @@ id: actuators info: - title: "Springboot Actuators" + title: 'Springboot Actuators' requests: - - isTrap: true - expect: - method: GET - path: '/actuator/health' - reply: - status: 200 - headers: - content-type: "application/vnd.spring-boot.actuator.v3+json" - body: - contents: '{"status":"UP"}' + - isTrap: true + expect: + method: GET + path: '/actuator/health' + reply: + status: 200 + headers: + content-type: 'application/vnd.spring-boot.actuator.v3+json' + body: + contents: '{"status":"UP"}' - - isTrap: true - expect: - method: GET - path: '/actuator/beans' - reply: - status: 200 - headers: - content-type: "application/json" - body: - view: "actuators_beans.json" + - isTrap: true + expect: + method: GET + path: '/actuator/beans' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + view: 'actuators_beans.json' - - isTrap: true - expect: - method: GET - path: '/actuator/configprops' - reply: - status: 200 - headers: - content-type: "application/vnd.spring-boot.actuator.v3+json" - body: - view: "actuators_configprops.json" + - isTrap: true + expect: + method: GET + path: '/actuator/configprops' + reply: + status: 200 + headers: + content-type: 'application/vnd.spring-boot.actuator.v3+json' + body: + view: 'actuators_configprops.json' - - isTrap: true - expect: - method: GET - path: '/actuator/env' - reply: - status: 200 - headers: - content-type: "application/vnd.spring-boot.actuator.v3+json" - body: - view: "actuators_env.json" \ No newline at end of file + - isTrap: true + expect: + method: GET + path: '/actuator/env' + reply: + status: 200 + headers: + content-type: 'application/vnd.spring-boot.actuator.v3+json' + body: + view: 'actuators_env.json' diff --git a/Examples/simple-springboot-app/templates/api_articles.yaml b/Examples/simple-springboot-app/templates/api_articles.yaml index f3aa407..36735e2 100644 --- a/Examples/simple-springboot-app/templates/api_articles.yaml +++ b/Examples/simple-springboot-app/templates/api_articles.yaml @@ -1,24 +1,24 @@ id: api_posts info: - title: "API Posts" + title: 'API Posts' requests: - - isTrap: true - expect: - method: GET - path: '/api/article/:articleId(\d+)' - reply: - status: 500 - headers: - content-type: "text/html" - body: - contents: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2" - - isTrap: true - expect: - method: GET - path: '/api/articles' - reply: - status: 200 - headers: - content-type: "application/json" - body: - view: "articles.json" + - isTrap: true + expect: + method: GET + path: '/api/article/:articleId(\d+)' + reply: + status: 500 + headers: + content-type: 'text/html' + body: + contents: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2" + - isTrap: true + expect: + method: GET + path: '/api/articles' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + view: 'articles.json' diff --git a/Examples/simple-springboot-app/templates/api_authors.yaml b/Examples/simple-springboot-app/templates/api_authors.yaml index ea7bb8d..bb5a60a 100644 --- a/Examples/simple-springboot-app/templates/api_authors.yaml +++ b/Examples/simple-springboot-app/templates/api_authors.yaml @@ -1,24 +1,24 @@ id: api_users info: - title: "API User" + title: 'API User' requests: - - isTrap: true - expect: - method: GET - path: '/api/authors' - reply: - status: 200 - headers: - content-type: "application/json" - body: - view: "users.json" - - isTrap: true - expect: - method: GET - path: '/api/author/:userId(\d+)' - reply: - status: 200 - headers: - content-type: "application/json" - body: - view: "user-api.json" \ No newline at end of file + - isTrap: true + expect: + method: GET + path: '/api/authors' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + view: 'users.json' + - isTrap: true + expect: + method: GET + path: '/api/author/:userId(\d+)' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + view: 'user-api.json' diff --git a/Examples/simple-springboot-app/templates/api_login.yaml b/Examples/simple-springboot-app/templates/api_login.yaml index 378992e..75bae77 100644 --- a/Examples/simple-springboot-app/templates/api_login.yaml +++ b/Examples/simple-springboot-app/templates/api_login.yaml @@ -1,24 +1,24 @@ id: api_auth info: - title: "API Auth" + title: 'API Auth' requests: - - isTrap: true - expect: - method: GET - path: '/api/login' - reply: - status: 200 - headers: - content-type: "application/json" - body: - contents: '{"status":"error", "message":"Please use POST request to login"}' - - isTrap: true - expect: - method: POST - path: '/api/login' - reply: - status: 200 - headers: - content-type: "application/json" - body: - contents: '{"status":"error", "message":"Invalid credentials"}' \ No newline at end of file + - isTrap: true + expect: + method: GET + path: '/api/login' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + contents: '{"status":"error", "message":"Please use POST request to login"}' + - isTrap: true + expect: + method: POST + path: '/api/login' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + contents: '{"status":"error", "message":"Invalid credentials"}' diff --git a/Examples/simple-springboot-app/templates/default.yaml b/Examples/simple-springboot-app/templates/default.yaml index d2bda6c..c203da8 100644 --- a/Examples/simple-springboot-app/templates/default.yaml +++ b/Examples/simple-springboot-app/templates/default.yaml @@ -1,22 +1,22 @@ id: default info: - title: "Default index template" + title: 'Default index template' requests: - - expect: - method: GET - path: '/' - reply: - status: 200 - headers: - content-type: "application/json" - body: - contents: '{"hello":"world", "links": ["/api/login", "/api/articles", "/api/article/{id}","/api/authors", "/api/author/{id}"]}' - - expect: - method: GET - path: '/favicon.ico' - reply: - status: 200 - headers: - content-type: "image/x-icon" - body: - static: "favicon.ico" \ No newline at end of file + - expect: + method: GET + path: '/' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + contents: '{"hello":"world", "links": ["/api/login", "/api/articles", "/api/article/{id}","/api/authors", "/api/author/{id}"]}' + - expect: + method: GET + path: '/favicon.ico' + reply: + status: 200 + headers: + content-type: 'image/x-icon' + body: + static: 'favicon.ico' diff --git a/Examples/simple-springboot-app/templates/resources/actuators_beans.json b/Examples/simple-springboot-app/templates/resources/actuators_beans.json index abdd018..1acbf3b 100644 --- a/Examples/simple-springboot-app/templates/resources/actuators_beans.json +++ b/Examples/simple-springboot-app/templates/resources/actuators_beans.json @@ -1 +1,2116 @@ -{"contexts":{"application":{"beans":{"endpointCachingOperationInvokerAdvisor":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/EndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration","environment"]},"defaultServletHandlerMapping":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.HandlerMapping","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"metricsRestTemplateCustomizer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.metrics.web.client.MetricsRestTemplateCustomizer","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsConfiguration","simpleMeterRegistry","restTemplateExchangeTagsProvider","management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties"]},"applicationTaskExecutor":{"aliases":["taskExecutor"],"scope":"singleton","type":"org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor","resource":"class path resource [org/springframework/boot/autoconfigure/task/TaskExecutionAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration","taskExecutorBuilder"]},"characterEncodingFilter":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/HttpEncodingAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration"]},"forceAutoProxyCreatorToUseClassProxying":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$ClassProxyingConfiguration$$Lambda$355/0x00000008402b8040","resource":"class path resource [org/springframework/boot/autoconfigure/aop/AopAutoConfiguration$ClassProxyingConfiguration.class]","dependencies":[]},"healthEndpointGroups":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.health.AutoConfiguredHealthEndpointGroups","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration","org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e","management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties"]},"management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties","resource":null,"dependencies":[]},"webEndpointDiscoverer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration","endpointOperationParameterMapper","endpointMediaTypes"]},"org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration","resource":null,"dependencies":["spring.servlet.multipart-org.springframework.boot.autoconfigure.web.servlet.MultipartProperties"]},"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration","resource":null,"dependencies":[]},"preserveErrorControllerTargetClassPostProcessor":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$PreserveErrorControllerTargetClassPostProcessor","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration.class]","dependencies":[]},"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration","resource":null,"dependencies":[]},"logbackMetrics":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.binder.logging.LogbackMetrics","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/LogbackMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.LogbackMetricsAutoConfiguration"]},"management.info-org.springframework.boot.actuate.autoconfigure.info.InfoContributorProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.info.InfoContributorProperties","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration","resource":null,"dependencies":["org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e","management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties"]},"webEndpointPathMapper":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.web.MappingWebEndpointPathMapper","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration"]},"org.springframework.boot.actuate.autoconfigure.trace.http.HttpTraceEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.trace.http.HttpTraceEndpointAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.cache.CachesEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.cache.CachesEndpointAutoConfiguration","resource":null,"dependencies":[]},"propertySourcesPlaceholderConfigurer":{"aliases":[],"scope":"singleton","type":"org.springframework.context.support.PropertySourcesPlaceholderConfigurer","resource":"class path resource [org/springframework/boot/autoconfigure/context/PropertyPlaceholderAutoConfiguration.class]","dependencies":[]},"beanNameViewResolver":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.view.BeanNameViewResolver","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration"]},"restTemplateExchangeTagsProvider":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.metrics.web.client.DefaultRestTemplateExchangeTagsProvider","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsConfiguration"]},"org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration","resource":null,"dependencies":[]},"viewResolver":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.view.ContentNegotiatingViewResolver","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter","org.springframework.beans.factory.support.DefaultListableBeanFactory@fdefd3f"]},"management.endpoints.web.cors-org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties","resource":null,"dependencies":[]},"mainController":{"aliases":[],"scope":"singleton","type":"com.padoo.main.MainController","resource":"URL [jar:file:/usr/local/lib/main.jar!/BOOT-INF/classes!/com/padoo/main/MainController.class]","dependencies":[]},"stringHttpMessageConverter":{"aliases":[],"scope":"singleton","type":"org.springframework.http.converter.StringHttpMessageConverter","resource":"class path resource [org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration","environment"]},"org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration","resource":null,"dependencies":[]},"tomcatServletWebServerFactoryCustomizer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.TomcatServletWebServerFactoryCustomizer","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration","server-org.springframework.boot.autoconfigure.web.ServerProperties"]},"server-org.springframework.boot.autoconfigure.web.ServerProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.ServerProperties","resource":null,"dependencies":[]},"messageConverters":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.http.HttpMessageConverters","resource":"class path resource [org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration"]},"jsonComponentModule":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.jackson.JsonComponentModule","resource":"class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration"]},"websocketServletWebServerCustomizer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.websocket.servlet.TomcatWebSocketServletWebServerCustomizer","resource":"class path resource [org/springframework/boot/autoconfigure/websocket/servlet/WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration"]},"org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration$SpringMvcConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration$SpringMvcConfiguration","resource":null,"dependencies":[]},"mainApplication":{"aliases":[],"scope":"singleton","type":"com.padoo.main.MainApplication$$EnhancerBySpringCGLIB$$cb4d3e3b","resource":null,"dependencies":[]},"configurationPropertiesReportEndpointWebExtension":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.context.properties.ConfigurationPropertiesReportEndpointWebExtension","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/context/properties/ConfigurationPropertiesReportEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointAutoConfiguration","configurationPropertiesReportEndpoint"]},"org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration","resource":null,"dependencies":[]},"mappingJackson2HttpMessageConverter":{"aliases":[],"scope":"singleton","type":"org.springframework.http.converter.json.MappingJackson2HttpMessageConverter","resource":"class path resource [org/springframework/boot/autoconfigure/http/JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration","jacksonObjectMapper"]},"org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.context.ShutdownEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.context.ShutdownEndpointAutoConfiguration","resource":null,"dependencies":[]},"meterRegistryPostProcessor":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryPostProcessor","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/MetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e"]},"endpointMediaTypes":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration"]},"org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration","resource":null,"dependencies":[]},"healthStatusAggregator":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.health.SimpleStatusAggregator","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration","management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties"]},"org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration","resource":null,"dependencies":[]},"management.server-org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties","resource":null,"dependencies":[]},"servletWebServerFactoryCustomizer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryCustomizer","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration","server-org.springframework.boot.autoconfigure.web.ServerProperties"]},"mvcUrlPathHelper":{"aliases":[],"scope":"singleton","type":"org.springframework.web.util.UrlPathHelper","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration","resource":null,"dependencies":["management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties"]},"org.springframework.boot.actuate.autoconfigure.metrics.startup.StartupTimeMetricsListenerAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.startup.StartupTimeMetricsListenerAutoConfiguration","resource":null,"dependencies":[]},"servletMappingDescriptionProvider":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.web.mappings.servlet.ServletsMappingDescriptionProvider","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/web/mappings/MappingsEndpointAutoConfiguration$ServletWebConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration"]},"webServerFactoryCustomizerBeanPostProcessor":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.web.server.WebServerFactoryCustomizerBeanPostProcessor","resource":null,"dependencies":[]},"metricsHttpClientUriTagFilter":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.config.MeterFilter$9","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/client/HttpClientMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.web.client.HttpClientMetricsAutoConfiguration","management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties"]},"org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration","resource":null,"dependencies":[]},"management.health.diskspace-org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthIndicatorProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthIndicatorProperties","resource":null,"dependencies":[]},"spring.sql.init-org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties","resource":null,"dependencies":[]},"controllerEndpointHandlerMapping":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.web.servlet.ControllerEndpointHandlerMapping","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/servlet/WebMvcEndpointManagementContextConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration","controllerEndpointDiscoverer","management.endpoints.web.cors-org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties","management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties"]},"management.endpoint.env-org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.management.ThreadDumpEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.management.ThreadDumpEndpointAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration","resource":null,"dependencies":[]},"standardJacksonObjectMapperBuilderCustomizer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration$StandardJackson2ObjectMapperBuilderCustomizer","resource":"class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration","org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e","spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties"]},"taskSchedulerBuilder":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.task.TaskSchedulerBuilder","resource":"class path resource [org/springframework/boot/autoconfigure/task/TaskSchedulingAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration","spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties"]},"metricsEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.metrics.MetricsEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/MetricsEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration","simpleMeterRegistry"]},"org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.aop.AopAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.aop.AopAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.info.InfoContributorAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.info.InfoContributorAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration","resource":null,"dependencies":[]},"simpleMeterRegistry":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.simple.SimpleMeterRegistry","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/export/simple/SimpleMetricsExportAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration","simpleConfig","micrometerClock"]},"org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration","resource":null,"dependencies":[]},"environmentEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.env.EnvironmentEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/env/EnvironmentEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration","environment","management.endpoint.env-org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties"]},"conventionErrorViewResolver":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.error.DefaultErrorViewResolver","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration"]},"startupTimeMetrics":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.metrics.startup.StartupTimeMetricsListener","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/startup/StartupTimeMetricsListenerAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.startup.StartupTimeMetricsListenerAutoConfiguration","simpleMeterRegistry"]},"org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","resource":null,"dependencies":["spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties","spring.web-org.springframework.boot.autoconfigure.web.WebProperties","org.springframework.beans.factory.support.DefaultListableBeanFactory@fdefd3f","org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter","metricsWebMvcConfigurer"]},"org.springframework.boot.actuate.autoconfigure.metrics.web.tomcat.TomcatMetricsAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.web.tomcat.TomcatMetricsAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.metrics.LogbackMetricsAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.LogbackMetricsAutoConfiguration","resource":null,"dependencies":[]},"spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties","resource":null,"dependencies":[]},"localeCharsetMappingsCustomizer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration$LocaleCharsetMappingsCustomizer","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/HttpEncodingAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration"]},"org.springframework.boot.actuate.autoconfigure.logging.LoggersEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.logging.LoggersEndpointAutoConfiguration","resource":null,"dependencies":[]},"configurationPropertiesReportEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.context.properties.ConfigurationPropertiesReportEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/context/properties/ConfigurationPropertiesReportEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointAutoConfiguration","management.endpoint.configprops-org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties"]},"formContentFilter":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.web.servlet.filter.OrderedFormContentFilter","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration"]},"multipartConfigElement":{"aliases":[],"scope":"singleton","type":"javax.servlet.MultipartConfigElement","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/MultipartAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration"]},"requestContextFilter":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]","dependencies":[]},"defaultViewResolver":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.view.InternalResourceViewResolver","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter"]},"routerFunctionMapping":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.function.support.RouterFunctionMapping","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","mvcConversionService","mvcResourceUrlProvider"]},"jacksonObjectMapperBuilder":{"aliases":[],"scope":"prototype","type":"org.springframework.http.converter.json.Jackson2ObjectMapperBuilder","resource":"class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration","org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e","standardJacksonObjectMapperBuilderCustomizer"]},"org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration","resource":null,"dependencies":[]},"beansEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.beans.BeansEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/beans/BeansEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.beans.BeansEndpointAutoConfiguration","org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e"]},"spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.task.TaskSchedulingProperties","resource":null,"dependencies":[]},"webMvcMetricsFilter":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.web.servlet.FilterRegistrationBean","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration","simpleMeterRegistry","webMvcTagsProvider"]},"healthEndpointWebExtension":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.health.HealthEndpointWebExtension","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointWebExtensionConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration","healthContributorRegistry","healthEndpointGroups","management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties"]},"multipartResolver":{"aliases":[],"scope":"singleton","type":"org.springframework.web.multipart.support.StandardServletMultipartResolver","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/MultipartAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration"]},"localeResolver":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"handlerFunctionAdapter":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.function.support.HandlerFunctionAdapter","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration$WebEndpointServletConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration$WebEndpointServletConfiguration","resource":null,"dependencies":[]},"requestMappingHandlerMapping":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","mvcContentNegotiationManager","mvcConversionService","mvcResourceUrlProvider"]},"webExposeExcludePropertyEndpointFilter":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration"]},"lifecycleProcessor":{"aliases":[],"scope":"singleton","type":"org.springframework.context.support.DefaultLifecycleProcessor","resource":"class path resource [org/springframework/boot/autoconfigure/context/LifecycleAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration","spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties"]},"org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration$SameManagementContextConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration$SameManagementContextConfiguration","resource":null,"dependencies":["environment"]},"requestMappingHandlerAdapter":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","mvcContentNegotiationManager","mvcConversionService","mvcValidator"]},"tomcatMetricsBinder":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.metrics.web.tomcat.TomcatMetricsBinder","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/tomcat/TomcatMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.web.tomcat.TomcatMetricsAutoConfiguration","simpleMeterRegistry"]},"jvmHeapPressureMetrics":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.binder.jvm.JvmHeapPressureMetrics","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration"]},"org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration","resource":null,"dependencies":["server-org.springframework.boot.autoconfigure.web.ServerProperties"]},"org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration$WebMvcServletEndpointManagementContextConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration$WebMvcServletEndpointManagementContextConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointAutoConfiguration","resource":null,"dependencies":[]},"spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.info.ProjectInfoProperties","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration","resource":null,"dependencies":[]},"endpointOperationParameterMapper":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.invoke.convert.ConversionServiceParameterValueMapper","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/EndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration"]},"infoEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.info.InfoEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/info/InfoEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration"]},"org.springframework.boot.actuate.autoconfigure.metrics.web.client.HttpClientMetricsAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.web.client.HttpClientMetricsAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration","resource":null,"dependencies":[]},"classLoaderMetrics":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration"]},"servletWebChildContextFactory":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextFactory","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementContextAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration"]},"org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory":{"aliases":[],"scope":"singleton","type":"org.springframework.core.type.classreading.CachingMetadataReaderFactory","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration","resource":null,"dependencies":[]},"mvcContentNegotiationManager":{"aliases":[],"scope":"singleton","type":"org.springframework.web.accept.ContentNegotiationManager","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.audit.AuditEventsEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.audit.AuditEventsEndpointAutoConfiguration","resource":null,"dependencies":[]},"errorAttributes":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.web.servlet.error.DefaultErrorAttributes","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration"]},"httpRequestHandlerAdapter":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration","resource":null,"dependencies":[]},"beanNameHandlerMapping":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","mvcConversionService","mvcResourceUrlProvider"]},"org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration","resource":null,"dependencies":[]},"webMvcTagsProvider":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.metrics.web.servlet.DefaultWebMvcTagsProvider","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration"]},"spring.servlet.multipart-org.springframework.boot.autoconfigure.web.servlet.MultipartProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.MultipartProperties","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration","resource":null,"dependencies":["spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties"]},"org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration$EmbeddedTomcat":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration$EmbeddedTomcat","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.management.HeapDumpWebEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.management.HeapDumpWebEndpointAutoConfiguration","resource":null,"dependencies":[]},"resourceHandlerMapping":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.handler.SimpleUrlHandlerMapping","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","mvcContentNegotiationManager","mvcConversionService","mvcResourceUrlProvider"]},"simpleControllerHandlerAdapter":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration","resource":null,"dependencies":[]},"cachesEndpointWebExtension":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.cache.CachesEndpointWebExtension","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/cache/CachesEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.cache.CachesEndpointAutoConfiguration","cachesEndpoint"]},"org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointAutoConfiguration","resource":null,"dependencies":[]},"spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.context.LifecycleProperties","resource":null,"dependencies":[]},"management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties","resource":null,"dependencies":[]},"flashMapManager":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.support.SessionFlashMapManager","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"healthContributorRegistry":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.health.AutoConfiguredHealthContributorRegistry","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration","org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e","healthEndpointGroups","diskSpaceHealthIndicator","pingHealthContributor"]},"management.endpoint.configprops-org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties","resource":null,"dependencies":[]},"parameterNamesModule":{"aliases":[],"scope":"singleton","type":"com.fasterxml.jackson.module.paramnames.ParameterNamesModule","resource":"class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$ParameterNamesModuleConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration"]},"shutdownEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.context.ShutdownEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/context/ShutdownEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.context.ShutdownEndpointAutoConfiguration"]},"micrometerClock":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.Clock$1","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/MetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration"]},"org.springframework.boot.actuate.autoconfigure.beans.BeansEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.beans.BeansEndpointAutoConfiguration","resource":null,"dependencies":[]},"propertiesMeterFilter":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.PropertiesMeterFilter","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/MetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration","management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties"]},"healthHttpCodeStatusMapper":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.health.SimpleHttpCodeStatusMapper","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration","management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties"]},"org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration","resource":null,"dependencies":[]},"uptimeMetrics":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.binder.system.UptimeMetrics","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration"]},"controllerExposeExcludePropertyEndpointFilter":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration"]},"pathMappedEndpoints":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.web.PathMappedEndpoints","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration","servletEndpointDiscoverer","webEndpointDiscoverer","controllerEndpointDiscoverer"]},"jvmThreadMetrics":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration"]},"scheduledTasksEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.scheduling.ScheduledTasksEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/scheduling/ScheduledTasksEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration"]},"diskSpaceMetrics":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.metrics.system.DiskSpaceMetricsBinder","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration","management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties"]},"heapDumpWebEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.management.HeapDumpWebEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/management/HeapDumpWebEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.management.HeapDumpWebEndpointAutoConfiguration"]},"managementServletContext":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration$$Lambda$720/0x000000084040f040","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementContextAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration","management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties"]},"fileDescriptorMetrics":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.binder.system.FileDescriptorMetrics","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration"]},"org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration","resource":null,"dependencies":["server-org.springframework.boot.autoconfigure.web.ServerProperties"]},"servletEndpointDiscoverer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointDiscoverer","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration$WebEndpointServletConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration$WebEndpointServletConfiguration","org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e"]},"environmentEndpointWebExtension":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.env.EnvironmentEndpointWebExtension","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/env/EnvironmentEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration","environmentEndpoint"]},"metricsHttpServerUriTagFilter":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.config.MeterFilter$9","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration"]},"mvcValidator":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport$NoOpValidator","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration","resource":null,"dependencies":[]},"conditionsReportEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/condition/ConditionsReportEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpointAutoConfiguration","org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e"]},"applicationAvailability":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.availability.ApplicationAvailabilityBean","resource":"class path resource [org/springframework/boot/autoconfigure/availability/ApplicationAvailabilityAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration"]},"org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration","resource":null,"dependencies":[]},"mvcResourceUrlProvider":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.resource.ResourceUrlProvider","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"healthEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.health.HealthEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration","healthContributorRegistry","healthEndpointGroups","management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties"]},"org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration$SameManagementContextConfiguration$EnableSameManagementContextConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration$SameManagementContextConfiguration$EnableSameManagementContextConfiguration","resource":null,"dependencies":[]},"spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.task.TaskExecutionProperties","resource":null,"dependencies":[]},"viewControllerHandlerMapping":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.HandlerMapping","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","mvcConversionService","mvcResourceUrlProvider"]},"themeResolver":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.theme.FixedThemeResolver","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"org.springframework.boot.actuate.autoconfigure.availability.AvailabilityHealthContributorAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.availability.AvailabilityHealthContributorAutoConfiguration","resource":null,"dependencies":[]},"mvcPatternParser":{"aliases":[],"scope":"singleton","type":"org.springframework.web.util.pattern.PathPatternParser","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration$MvcAdditionalHealthEndpointPathsConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration$MvcAdditionalHealthEndpointPathsConfiguration","resource":null,"dependencies":[]},"servletEndpointRegistrar":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.web.ServletEndpointRegistrar","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/ServletEndpointManagementContextConfiguration$WebMvcServletEndpointManagementContextConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration$WebMvcServletEndpointManagementContextConfiguration","management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties","servletEndpointDiscoverer","dispatcherServletRegistration"]},"dumpEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.management.ThreadDumpEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/management/ThreadDumpEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.management.ThreadDumpEndpointAutoConfiguration"]},"org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor","resource":null,"dependencies":[]},"dispatcherServlet":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.DispatcherServlet","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/DispatcherServletAutoConfiguration$DispatcherServletConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration","spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties"]},"org.springframework.boot.actuate.autoconfigure.metrics.task.TaskExecutorMetricsAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.task.TaskExecutorMetricsAutoConfiguration","resource":null,"dependencies":["applicationTaskExecutor","simpleMeterRegistry"]},"org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration","resource":null,"dependencies":[]},"webEndpointServletHandlerMapping":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/servlet/WebMvcEndpointManagementContextConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration","webEndpointDiscoverer","servletEndpointDiscoverer","controllerEndpointDiscoverer","endpointMediaTypes","management.endpoints.web.cors-org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties","management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties","environment"]},"processorMetrics":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.binder.system.ProcessorMetrics","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration"]},"dispatcherServletMappingDescriptionProvider":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.web.mappings.servlet.DispatcherServletsMappingDescriptionProvider","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/web/mappings/MappingsEndpointAutoConfiguration$ServletWebConfiguration$SpringMvcConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration$SpringMvcConfiguration"]},"org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.metrics.integration.IntegrationMetricsAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.integration.IntegrationMetricsAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter","resource":null,"dependencies":["spring.web-org.springframework.boot.autoconfigure.web.WebProperties","spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties","org.springframework.beans.factory.support.DefaultListableBeanFactory@fdefd3f"]},"errorPageRegistrarBeanPostProcessor":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.web.server.ErrorPageRegistrarBeanPostProcessor","resource":null,"dependencies":[]},"errorPageCustomizer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$ErrorPageCustomizer","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration","dispatcherServletRegistration"]},"mvcConversionService":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.format.WebConversionService","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"metricsWebMvcConfigurer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration$MetricsWebMvcConfigurer","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration","simpleMeterRegistry","webMvcTagsProvider"]},"loggersEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.logging.LoggersEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/logging/LoggersEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.logging.LoggersEndpointAutoConfiguration","springBootLoggingSystem"]},"org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration","resource":null,"dependencies":["org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e","spring.web-org.springframework.boot.autoconfigure.web.WebProperties"]},"controllerEndpointDiscoverer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointDiscoverer","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration"]},"diskSpaceHealthIndicator":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.system.DiskSpaceHealthIndicator","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/system/DiskSpaceHealthContributorAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthContributorAutoConfiguration","management.health.diskspace-org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthIndicatorProperties"]},"tomcatWebServerFactoryCustomizer":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.embedded.TomcatWebServerFactoryCustomizer","resource":"class path resource [org/springframework/boot/autoconfigure/web/embedded/EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration","environment","server-org.springframework.boot.autoconfigure.web.ServerProperties"]},"jvmMemoryMetrics":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration"]},"org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpointAutoConfiguration","resource":null,"dependencies":[]},"viewNameTranslator":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration","resource":null,"dependencies":[]},"mvcPathMatcher":{"aliases":[],"scope":"singleton","type":"org.springframework.util.AntPathMatcher","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration"]},"handlerExceptionResolver":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.handler.HandlerExceptionResolverComposite","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","mvcContentNegotiationManager"]},"org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthContributorAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthContributorAutoConfiguration","resource":null,"dependencies":[]},"management.metrics.export.simple-org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleProperties","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration","resource":null,"dependencies":[]},"basicErrorController":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration","errorAttributes"]},"cachesEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.cache.CachesEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/cache/CachesEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.cache.CachesEndpointAutoConfiguration"]},"pingHealthContributor":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.health.PingHealthIndicator","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthContributorAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration"]},"dispatcherServletRegistration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletRegistrationBean","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration","dispatcherServlet","spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties"]},"mappingsEndpoint":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.web.mappings.MappingsEndpoint","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/web/mappings/MappingsEndpointAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration","org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e"]},"healthEndpointGroupsBeanPostProcessor":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration$HealthEndpointGroupsBeanPostProcessor","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]","dependencies":[]},"management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties","resource":null,"dependencies":[]},"tomcatServletWebServerFactory":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfiguration$EmbeddedTomcat.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration$EmbeddedTomcat"]},"org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration","resource":null,"dependencies":[]},"spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.jackson.JacksonProperties","resource":null,"dependencies":[]},"error":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$StaticView","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration"]},"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration","resource":null,"dependencies":[]},"org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration","resource":null,"dependencies":[]},"jsonMixinModule":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.jackson.JsonMixinModule","resource":"class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration","org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e"]},"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration","resource":null,"dependencies":[]},"spring.web-org.springframework.boot.autoconfigure.web.WebProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.WebProperties","resource":null,"dependencies":[]},"jvmGcMetrics":{"aliases":[],"scope":"singleton","type":"io.micrometer.core.instrument.binder.jvm.JvmGcMetrics","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration"]},"healthEndpointWebMvcHandlerMapping":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.endpoint.web.servlet.AdditionalHealthEndpointPathsWebMvcHandlerMapping","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointWebExtensionConfiguration$MvcAdditionalHealthEndpointPathsConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration$MvcAdditionalHealthEndpointPathsConfiguration","webEndpointDiscoverer","healthEndpointGroups"]},"mvcViewResolver":{"aliases":[],"scope":"singleton","type":"org.springframework.web.servlet.view.ViewResolverComposite","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","mvcContentNegotiationManager"]},"simpleConfig":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimplePropertiesConfigAdapter","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/metrics/export/simple/SimpleMetricsExportAutoConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration","management.metrics.export.simple-org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleProperties"]},"welcomePageHandlerMapping":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.web.servlet.WelcomePageHandlerMapping","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e","mvcConversionService","mvcResourceUrlProvider"]},"servletExposeExcludePropertyEndpointFilter":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/ServletEndpointManagementContextConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration","management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties"]},"org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration","resource":null,"dependencies":[]},"mvcUriComponentsContributor":{"aliases":[],"scope":"singleton","type":"org.springframework.web.method.support.CompositeUriComponentsContributor","resource":"class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration","mvcConversionService","requestMappingHandlerAdapter"]},"filterMappingDescriptionProvider":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.web.mappings.servlet.FiltersMappingDescriptionProvider","resource":"class path resource [org/springframework/boot/actuate/autoconfigure/web/mappings/MappingsEndpointAutoConfiguration$ServletWebConfiguration.class]","dependencies":["org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration"]},"org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration","resource":null,"dependencies":[]},"jacksonObjectMapper":{"aliases":[],"scope":"singleton","type":"com.fasterxml.jackson.databind.ObjectMapper","resource":"class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration","jacksonObjectMapperBuilder"]},"org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$ClassProxyingConfiguration":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$ClassProxyingConfiguration","resource":null,"dependencies":[]},"management.endpoint.logfile-org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointProperties":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointProperties","resource":null,"dependencies":[]},"taskExecutorBuilder":{"aliases":[],"scope":"singleton","type":"org.springframework.boot.task.TaskExecutorBuilder","resource":"class path resource [org/springframework/boot/autoconfigure/task/TaskExecutionAutoConfiguration.class]","dependencies":["org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration","spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties"]}},"parentId":null}}} \ No newline at end of file +{ + "contexts": { + "application": { + "beans": { + "endpointCachingOperationInvokerAdvisor": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/EndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration", + "environment" + ] + }, + "defaultServletHandlerMapping": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.HandlerMapping", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "metricsRestTemplateCustomizer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.metrics.web.client.MetricsRestTemplateCustomizer", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsConfiguration", + "simpleMeterRegistry", + "restTemplateExchangeTagsProvider", + "management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties" + ] + }, + "applicationTaskExecutor": { + "aliases": ["taskExecutor"], + "scope": "singleton", + "type": "org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor", + "resource": "class path resource [org/springframework/boot/autoconfigure/task/TaskExecutionAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration", + "taskExecutorBuilder" + ] + }, + "characterEncodingFilter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.web.servlet.filter.OrderedCharacterEncodingFilter", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/HttpEncodingAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration" + ] + }, + "forceAutoProxyCreatorToUseClassProxying": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$ClassProxyingConfiguration$$Lambda$355/0x00000008402b8040", + "resource": "class path resource [org/springframework/boot/autoconfigure/aop/AopAutoConfiguration$ClassProxyingConfiguration.class]", + "dependencies": [] + }, + "healthEndpointGroups": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.health.AutoConfiguredHealthEndpointGroups", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration", + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e", + "management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties" + ] + }, + "management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties", + "resource": null, + "dependencies": [] + }, + "webEndpointDiscoverer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration", + "endpointOperationParameterMapper", + "endpointMediaTypes" + ] + }, + "org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration", + "resource": null, + "dependencies": [ + "spring.servlet.multipart-org.springframework.boot.autoconfigure.web.servlet.MultipartProperties" + ] + }, + "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration", + "resource": null, + "dependencies": [] + }, + "preserveErrorControllerTargetClassPostProcessor": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$PreserveErrorControllerTargetClassPostProcessor", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration.class]", + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration", + "resource": null, + "dependencies": [] + }, + "logbackMetrics": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.binder.logging.LogbackMetrics", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/LogbackMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.LogbackMetricsAutoConfiguration" + ] + }, + "management.info-org.springframework.boot.actuate.autoconfigure.info.InfoContributorProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.info.InfoContributorProperties", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration", + "resource": null, + "dependencies": [ + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e", + "management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties" + ] + }, + "webEndpointPathMapper": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.web.MappingWebEndpointPathMapper", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.trace.http.HttpTraceEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.trace.http.HttpTraceEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.cache.CachesEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.cache.CachesEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "propertySourcesPlaceholderConfigurer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.context.support.PropertySourcesPlaceholderConfigurer", + "resource": "class path resource [org/springframework/boot/autoconfigure/context/PropertyPlaceholderAutoConfiguration.class]", + "dependencies": [] + }, + "beanNameViewResolver": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.view.BeanNameViewResolver", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration" + ] + }, + "restTemplateExchangeTagsProvider": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.metrics.web.client.DefaultRestTemplateExchangeTagsProvider", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/client/RestTemplateMetricsConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration", + "resource": null, + "dependencies": [] + }, + "viewResolver": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.view.ContentNegotiatingViewResolver", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter", + "org.springframework.beans.factory.support.DefaultListableBeanFactory@fdefd3f" + ] + }, + "management.endpoints.web.cors-org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties", + "resource": null, + "dependencies": [] + }, + "mainController": { + "aliases": [], + "scope": "singleton", + "type": "com.padoo.main.MainController", + "resource": "URL [jar:file:/usr/local/lib/main.jar!/BOOT-INF/classes!/com/padoo/main/MainController.class]", + "dependencies": [] + }, + "stringHttpMessageConverter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.http.converter.StringHttpMessageConverter", + "resource": "class path resource [org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration", + "environment" + ] + }, + "org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration", + "resource": null, + "dependencies": [] + }, + "tomcatServletWebServerFactoryCustomizer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.TomcatServletWebServerFactoryCustomizer", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration", + "server-org.springframework.boot.autoconfigure.web.ServerProperties" + ] + }, + "server-org.springframework.boot.autoconfigure.web.ServerProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.ServerProperties", + "resource": null, + "dependencies": [] + }, + "messageConverters": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.http.HttpMessageConverters", + "resource": "class path resource [org/springframework/boot/autoconfigure/http/HttpMessageConvertersAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration" + ] + }, + "jsonComponentModule": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.jackson.JsonComponentModule", + "resource": "class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration" + ] + }, + "websocketServletWebServerCustomizer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.websocket.servlet.TomcatWebSocketServletWebServerCustomizer", + "resource": "class path resource [org/springframework/boot/autoconfigure/websocket/servlet/WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration$SpringMvcConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration$SpringMvcConfiguration", + "resource": null, + "dependencies": [] + }, + "mainApplication": { + "aliases": [], + "scope": "singleton", + "type": "com.padoo.main.MainApplication$$EnhancerBySpringCGLIB$$cb4d3e3b", + "resource": null, + "dependencies": [] + }, + "configurationPropertiesReportEndpointWebExtension": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.context.properties.ConfigurationPropertiesReportEndpointWebExtension", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/context/properties/ConfigurationPropertiesReportEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointAutoConfiguration", + "configurationPropertiesReportEndpoint" + ] + }, + "org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "mappingJackson2HttpMessageConverter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.http.converter.json.MappingJackson2HttpMessageConverter", + "resource": "class path resource [org/springframework/boot/autoconfigure/http/JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration", + "jacksonObjectMapper" + ] + }, + "org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.context.ShutdownEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.context.ShutdownEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "meterRegistryPostProcessor": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryPostProcessor", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/MetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e" + ] + }, + "endpointMediaTypes": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration", + "resource": null, + "dependencies": [] + }, + "healthStatusAggregator": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.health.SimpleStatusAggregator", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration", + "management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties" + ] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "management.server-org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties", + "resource": null, + "dependencies": [] + }, + "servletWebServerFactoryCustomizer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryCustomizer", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration", + "server-org.springframework.boot.autoconfigure.web.ServerProperties" + ] + }, + "mvcUrlPathHelper": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.util.UrlPathHelper", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration", + "resource": null, + "dependencies": [ + "management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties" + ] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.startup.StartupTimeMetricsListenerAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.startup.StartupTimeMetricsListenerAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "servletMappingDescriptionProvider": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.web.mappings.servlet.ServletsMappingDescriptionProvider", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/web/mappings/MappingsEndpointAutoConfiguration$ServletWebConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration" + ] + }, + "webServerFactoryCustomizerBeanPostProcessor": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.web.server.WebServerFactoryCustomizerBeanPostProcessor", + "resource": null, + "dependencies": [] + }, + "metricsHttpClientUriTagFilter": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.config.MeterFilter$9", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/client/HttpClientMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.web.client.HttpClientMetricsAutoConfiguration", + "management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties" + ] + }, + "org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "management.health.diskspace-org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthIndicatorProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthIndicatorProperties", + "resource": null, + "dependencies": [] + }, + "spring.sql.init-org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties", + "resource": null, + "dependencies": [] + }, + "controllerEndpointHandlerMapping": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.web.servlet.ControllerEndpointHandlerMapping", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/servlet/WebMvcEndpointManagementContextConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration", + "controllerEndpointDiscoverer", + "management.endpoints.web.cors-org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties", + "management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties" + ] + }, + "management.endpoint.env-org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration$StringHttpMessageConverterConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.management.ThreadDumpEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.management.ThreadDumpEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "standardJacksonObjectMapperBuilderCustomizer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration$StandardJackson2ObjectMapperBuilderCustomizer", + "resource": "class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration", + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e", + "spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties" + ] + }, + "taskSchedulerBuilder": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.task.TaskSchedulerBuilder", + "resource": "class path resource [org/springframework/boot/autoconfigure/task/TaskSchedulingAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration", + "spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties" + ] + }, + "metricsEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.metrics.MetricsEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/MetricsEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration", + "simpleMeterRegistry" + ] + }, + "org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.info.InfoContributorAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.info.InfoContributorAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "simpleMeterRegistry": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.simple.SimpleMeterRegistry", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/export/simple/SimpleMetricsExportAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration", + "simpleConfig", + "micrometerClock" + ] + }, + "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "environmentEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.env.EnvironmentEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/env/EnvironmentEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration", + "environment", + "management.endpoint.env-org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties" + ] + }, + "conventionErrorViewResolver": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.error.DefaultErrorViewResolver", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration" + ] + }, + "startupTimeMetrics": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.metrics.startup.StartupTimeMetricsListener", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/startup/StartupTimeMetricsListenerAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.startup.StartupTimeMetricsListenerAutoConfiguration", + "simpleMeterRegistry" + ] + }, + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "resource": null, + "dependencies": [ + "spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties", + "spring.web-org.springframework.boot.autoconfigure.web.WebProperties", + "org.springframework.beans.factory.support.DefaultListableBeanFactory@fdefd3f", + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter", + "metricsWebMvcConfigurer" + ] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.web.tomcat.TomcatMetricsAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.web.tomcat.TomcatMetricsAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.LogbackMetricsAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.LogbackMetricsAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties", + "resource": null, + "dependencies": [] + }, + "localeCharsetMappingsCustomizer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration$LocaleCharsetMappingsCustomizer", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/HttpEncodingAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.logging.LoggersEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.logging.LoggersEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "configurationPropertiesReportEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.context.properties.ConfigurationPropertiesReportEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/context/properties/ConfigurationPropertiesReportEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointAutoConfiguration", + "management.endpoint.configprops-org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties" + ] + }, + "formContentFilter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.web.servlet.filter.OrderedFormContentFilter", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration" + ] + }, + "multipartConfigElement": { + "aliases": [], + "scope": "singleton", + "type": "javax.servlet.MultipartConfigElement", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/MultipartAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration" + ] + }, + "requestContextFilter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]", + "dependencies": [] + }, + "defaultViewResolver": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.view.InternalResourceViewResolver", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter" + ] + }, + "routerFunctionMapping": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.function.support.RouterFunctionMapping", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "mvcConversionService", + "mvcResourceUrlProvider" + ] + }, + "jacksonObjectMapperBuilder": { + "aliases": [], + "scope": "prototype", + "type": "org.springframework.http.converter.json.Jackson2ObjectMapperBuilder", + "resource": "class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration", + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e", + "standardJacksonObjectMapperBuilderCustomizer" + ] + }, + "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration", + "resource": null, + "dependencies": [] + }, + "beansEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.beans.BeansEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/beans/BeansEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.beans.BeansEndpointAutoConfiguration", + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e" + ] + }, + "spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.task.TaskSchedulingProperties", + "resource": null, + "dependencies": [] + }, + "webMvcMetricsFilter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.web.servlet.FilterRegistrationBean", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration", + "simpleMeterRegistry", + "webMvcTagsProvider" + ] + }, + "healthEndpointWebExtension": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.health.HealthEndpointWebExtension", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointWebExtensionConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration", + "healthContributorRegistry", + "healthEndpointGroups", + "management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties" + ] + }, + "multipartResolver": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.multipart.support.StandardServletMultipartResolver", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/MultipartAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration" + ] + }, + "localeResolver": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "handlerFunctionAdapter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.function.support.HandlerFunctionAdapter", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration$WebEndpointServletConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration$WebEndpointServletConfiguration", + "resource": null, + "dependencies": [] + }, + "requestMappingHandlerMapping": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "mvcContentNegotiationManager", + "mvcConversionService", + "mvcResourceUrlProvider" + ] + }, + "webExposeExcludePropertyEndpointFilter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration" + ] + }, + "lifecycleProcessor": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.context.support.DefaultLifecycleProcessor", + "resource": "class path resource [org/springframework/boot/autoconfigure/context/LifecycleAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration", + "spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties" + ] + }, + "org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration$SameManagementContextConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration$SameManagementContextConfiguration", + "resource": null, + "dependencies": ["environment"] + }, + "requestMappingHandlerAdapter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "mvcContentNegotiationManager", + "mvcConversionService", + "mvcValidator" + ] + }, + "tomcatMetricsBinder": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.metrics.web.tomcat.TomcatMetricsBinder", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/tomcat/TomcatMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.web.tomcat.TomcatMetricsAutoConfiguration", + "simpleMeterRegistry" + ] + }, + "jvmHeapPressureMetrics": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.binder.jvm.JvmHeapPressureMetrics", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration" + ] + }, + "org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration", + "resource": null, + "dependencies": [ + "server-org.springframework.boot.autoconfigure.web.ServerProperties" + ] + }, + "org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration$WebMvcServletEndpointManagementContextConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration$WebMvcServletEndpointManagementContextConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.info.ProjectInfoProperties", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "endpointOperationParameterMapper": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.invoke.convert.ConversionServiceParameterValueMapper", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/EndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration" + ] + }, + "infoEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.info.InfoEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/info/InfoEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.web.client.HttpClientMetricsAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.web.client.HttpClientMetricsAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "classLoaderMetrics": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration" + ] + }, + "servletWebChildContextFactory": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextFactory", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementContextAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration" + ] + }, + "org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.core.type.classreading.CachingMetadataReaderFactory", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration", + "resource": null, + "dependencies": [] + }, + "mvcContentNegotiationManager": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.accept.ContentNegotiationManager", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.audit.AuditEventsEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.audit.AuditEventsEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "errorAttributes": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.web.servlet.error.DefaultErrorAttributes", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration" + ] + }, + "httpRequestHandlerAdapter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "beanNameHandlerMapping": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "mvcConversionService", + "mvcResourceUrlProvider" + ] + }, + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration", + "resource": null, + "dependencies": [] + }, + "webMvcTagsProvider": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.metrics.web.servlet.DefaultWebMvcTagsProvider", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration" + ] + }, + "spring.servlet.multipart-org.springframework.boot.autoconfigure.web.servlet.MultipartProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.MultipartProperties", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration", + "resource": null, + "dependencies": [ + "spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties" + ] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.web.client.RestTemplateMetricsConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration$EmbeddedTomcat": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration$EmbeddedTomcat", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.management.HeapDumpWebEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.management.HeapDumpWebEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "resourceHandlerMapping": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.handler.SimpleUrlHandlerMapping", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "mvcContentNegotiationManager", + "mvcConversionService", + "mvcResourceUrlProvider" + ] + }, + "simpleControllerHandlerAdapter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "cachesEndpointWebExtension": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.cache.CachesEndpointWebExtension", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/cache/CachesEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.cache.CachesEndpointAutoConfiguration", + "cachesEndpoint" + ] + }, + "org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.context.LifecycleProperties", + "resource": null, + "dependencies": [] + }, + "management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties", + "resource": null, + "dependencies": [] + }, + "flashMapManager": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.support.SessionFlashMapManager", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "healthContributorRegistry": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.health.AutoConfiguredHealthContributorRegistry", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration", + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e", + "healthEndpointGroups", + "diskSpaceHealthIndicator", + "pingHealthContributor" + ] + }, + "management.endpoint.configprops-org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties", + "resource": null, + "dependencies": [] + }, + "parameterNamesModule": { + "aliases": [], + "scope": "singleton", + "type": "com.fasterxml.jackson.module.paramnames.ParameterNamesModule", + "resource": "class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$ParameterNamesModuleConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration" + ] + }, + "shutdownEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.context.ShutdownEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/context/ShutdownEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.context.ShutdownEndpointAutoConfiguration" + ] + }, + "micrometerClock": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.Clock$1", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/MetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.beans.BeansEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.beans.BeansEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "propertiesMeterFilter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.PropertiesMeterFilter", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/MetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration", + "management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties" + ] + }, + "healthHttpCodeStatusMapper": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.health.SimpleHttpCodeStatusMapper", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration", + "management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties" + ] + }, + "org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "uptimeMetrics": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.binder.system.UptimeMetrics", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration" + ] + }, + "controllerExposeExcludePropertyEndpointFilter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration" + ] + }, + "pathMappedEndpoints": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.web.PathMappedEndpoints", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration", + "servletEndpointDiscoverer", + "webEndpointDiscoverer", + "controllerEndpointDiscoverer" + ] + }, + "jvmThreadMetrics": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration" + ] + }, + "scheduledTasksEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.scheduling.ScheduledTasksEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/scheduling/ScheduledTasksEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration" + ] + }, + "diskSpaceMetrics": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.metrics.system.DiskSpaceMetricsBinder", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration", + "management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties" + ] + }, + "heapDumpWebEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.management.HeapDumpWebEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/management/HeapDumpWebEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.management.HeapDumpWebEndpointAutoConfiguration" + ] + }, + "managementServletContext": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration$$Lambda$720/0x000000084040f040", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementContextAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration", + "management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties" + ] + }, + "fileDescriptorMetrics": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.binder.system.FileDescriptorMetrics", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration" + ] + }, + "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration", + "resource": null, + "dependencies": [ + "server-org.springframework.boot.autoconfigure.web.ServerProperties" + ] + }, + "servletEndpointDiscoverer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointDiscoverer", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration$WebEndpointServletConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration$WebEndpointServletConfiguration", + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e" + ] + }, + "environmentEndpointWebExtension": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.env.EnvironmentEndpointWebExtension", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/env/EnvironmentEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration", + "environmentEndpoint" + ] + }, + "metricsHttpServerUriTagFilter": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.config.MeterFilter$9", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration" + ] + }, + "mvcValidator": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport$NoOpValidator", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration$TomcatWebSocketConfiguration", + "resource": null, + "dependencies": [] + }, + "conditionsReportEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/condition/ConditionsReportEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpointAutoConfiguration", + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e" + ] + }, + "applicationAvailability": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.availability.ApplicationAvailabilityBean", + "resource": "class path resource [org/springframework/boot/autoconfigure/availability/ApplicationAvailabilityAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration" + ] + }, + "org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "mvcResourceUrlProvider": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.resource.ResourceUrlProvider", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "healthEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.health.HealthEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration", + "healthContributorRegistry", + "healthEndpointGroups", + "management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties" + ] + }, + "org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration$SameManagementContextConfiguration$EnableSameManagementContextConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration$SameManagementContextConfiguration$EnableSameManagementContextConfiguration", + "resource": null, + "dependencies": [] + }, + "spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.task.TaskExecutionProperties", + "resource": null, + "dependencies": [] + }, + "viewControllerHandlerMapping": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.HandlerMapping", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "mvcConversionService", + "mvcResourceUrlProvider" + ] + }, + "themeResolver": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.theme.FixedThemeResolver", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.availability.AvailabilityHealthContributorAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.availability.AvailabilityHealthContributorAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "mvcPatternParser": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.util.pattern.PathPatternParser", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration$MvcAdditionalHealthEndpointPathsConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration$MvcAdditionalHealthEndpointPathsConfiguration", + "resource": null, + "dependencies": [] + }, + "servletEndpointRegistrar": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.web.ServletEndpointRegistrar", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/ServletEndpointManagementContextConfiguration$WebMvcServletEndpointManagementContextConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration$WebMvcServletEndpointManagementContextConfiguration", + "management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties", + "servletEndpointDiscoverer", + "dispatcherServletRegistration" + ] + }, + "dumpEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.management.ThreadDumpEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/management/ThreadDumpEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.management.ThreadDumpEndpointAutoConfiguration" + ] + }, + "org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor", + "resource": null, + "dependencies": [] + }, + "dispatcherServlet": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.DispatcherServlet", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/DispatcherServletAutoConfiguration$DispatcherServletConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration", + "spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties" + ] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.task.TaskExecutorMetricsAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.task.TaskExecutorMetricsAutoConfiguration", + "resource": null, + "dependencies": [ + "applicationTaskExecutor", + "simpleMeterRegistry" + ] + }, + "org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "webEndpointServletHandlerMapping": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/servlet/WebMvcEndpointManagementContextConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration", + "webEndpointDiscoverer", + "servletEndpointDiscoverer", + "controllerEndpointDiscoverer", + "endpointMediaTypes", + "management.endpoints.web.cors-org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties", + "management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties", + "environment" + ] + }, + "processorMetrics": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.binder.system.ProcessorMetrics", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/SystemMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.SystemMetricsAutoConfiguration" + ] + }, + "dispatcherServletMappingDescriptionProvider": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.web.mappings.servlet.DispatcherServletsMappingDescriptionProvider", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/web/mappings/MappingsEndpointAutoConfiguration$ServletWebConfiguration$SpringMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration$SpringMvcConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.integration.IntegrationMetricsAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.integration.IntegrationMetricsAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$WebMvcAutoConfigurationAdapter", + "resource": null, + "dependencies": [ + "spring.web-org.springframework.boot.autoconfigure.web.WebProperties", + "spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties", + "org.springframework.beans.factory.support.DefaultListableBeanFactory@fdefd3f" + ] + }, + "errorPageRegistrarBeanPostProcessor": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.web.server.ErrorPageRegistrarBeanPostProcessor", + "resource": null, + "dependencies": [] + }, + "errorPageCustomizer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$ErrorPageCustomizer", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration", + "dispatcherServletRegistration" + ] + }, + "mvcConversionService": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.format.WebConversionService", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "metricsWebMvcConfigurer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration$MetricsWebMvcConfigurer", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/web/servlet/WebMvcMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.web.servlet.WebMvcMetricsAutoConfiguration", + "simpleMeterRegistry", + "webMvcTagsProvider" + ] + }, + "loggersEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.logging.LoggersEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/logging/LoggersEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.logging.LoggersEndpointAutoConfiguration", + "springBootLoggingSystem" + ] + }, + "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$DefaultErrorViewResolverConfiguration", + "resource": null, + "dependencies": [ + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e", + "spring.web-org.springframework.boot.autoconfigure.web.WebProperties" + ] + }, + "controllerEndpointDiscoverer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointDiscoverer", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/WebEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration" + ] + }, + "diskSpaceHealthIndicator": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.system.DiskSpaceHealthIndicator", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/system/DiskSpaceHealthContributorAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthContributorAutoConfiguration", + "management.health.diskspace-org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthIndicatorProperties" + ] + }, + "tomcatWebServerFactoryCustomizer": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.embedded.TomcatWebServerFactoryCustomizer", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/embedded/EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$TomcatWebServerFactoryCustomizerConfiguration", + "environment", + "server-org.springframework.boot.autoconfigure.web.ServerProperties" + ] + }, + "jvmMemoryMetrics": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "viewNameTranslator": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration", + "resource": null, + "dependencies": [] + }, + "mvcPathMatcher": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.util.AntPathMatcher", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration" + ] + }, + "handlerExceptionResolver": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.handler.HandlerExceptionResolverComposite", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "mvcContentNegotiationManager" + ] + }, + "org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthContributorAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthContributorAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "management.metrics.export.simple-org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleProperties", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "basicErrorController": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration", + "errorAttributes" + ] + }, + "cachesEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.cache.CachesEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/cache/CachesEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.cache.CachesEndpointAutoConfiguration" + ] + }, + "pingHealthContributor": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.health.PingHealthIndicator", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthContributorAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration" + ] + }, + "dispatcherServletRegistration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletRegistrationBean", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletRegistrationConfiguration", + "dispatcherServlet", + "spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties" + ] + }, + "mappingsEndpoint": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.web.mappings.MappingsEndpoint", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/web/mappings/MappingsEndpointAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration", + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e" + ] + }, + "healthEndpointGroupsBeanPostProcessor": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration$HealthEndpointGroupsBeanPostProcessor", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointConfiguration.class]", + "dependencies": [] + }, + "management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties", + "resource": null, + "dependencies": [] + }, + "tomcatServletWebServerFactory": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfiguration$EmbeddedTomcat.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration$EmbeddedTomcat" + ] + }, + "org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.http.JacksonHttpMessageConvertersConfiguration$MappingJackson2HttpMessageConverterConfiguration", + "resource": null, + "dependencies": [] + }, + "spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.jackson.JacksonProperties", + "resource": null, + "dependencies": [] + }, + "error": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$StaticView", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/error/ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration" + ] + }, + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration", + "resource": null, + "dependencies": [] + }, + "jsonMixinModule": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.jackson.JsonMixinModule", + "resource": "class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration", + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e" + ] + }, + "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration$DispatcherServletConfiguration", + "resource": null, + "dependencies": [] + }, + "spring.web-org.springframework.boot.autoconfigure.web.WebProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.WebProperties", + "resource": null, + "dependencies": [] + }, + "jvmGcMetrics": { + "aliases": [], + "scope": "singleton", + "type": "io.micrometer.core.instrument.binder.jvm.JvmGcMetrics", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/JvmMetricsAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.JvmMetricsAutoConfiguration" + ] + }, + "healthEndpointWebMvcHandlerMapping": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.endpoint.web.servlet.AdditionalHealthEndpointPathsWebMvcHandlerMapping", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/health/HealthEndpointWebExtensionConfiguration$MvcAdditionalHealthEndpointPathsConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.health.HealthEndpointWebExtensionConfiguration$MvcAdditionalHealthEndpointPathsConfiguration", + "webEndpointDiscoverer", + "healthEndpointGroups" + ] + }, + "mvcViewResolver": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.servlet.view.ViewResolverComposite", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "mvcContentNegotiationManager" + ] + }, + "simpleConfig": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimplePropertiesConfigAdapter", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/metrics/export/simple/SimpleMetricsExportAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration", + "management.metrics.export.simple-org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleProperties" + ] + }, + "welcomePageHandlerMapping": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.web.servlet.WelcomePageHandlerMapping", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@17baae6e", + "mvcConversionService", + "mvcResourceUrlProvider" + ] + }, + "servletExposeExcludePropertyEndpointFilter": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/web/ServletEndpointManagementContextConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.endpoint.web.ServletEndpointManagementContextConfiguration", + "management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties" + ] + }, + "org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementContextAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "mvcUriComponentsContributor": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.web.method.support.CompositeUriComponentsContributor", + "resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration", + "mvcConversionService", + "requestMappingHandlerAdapter" + ] + }, + "filterMappingDescriptionProvider": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.web.mappings.servlet.FiltersMappingDescriptionProvider", + "resource": "class path resource [org/springframework/boot/actuate/autoconfigure/web/mappings/MappingsEndpointAutoConfiguration$ServletWebConfiguration.class]", + "dependencies": [ + "org.springframework.boot.actuate.autoconfigure.web.mappings.MappingsEndpointAutoConfiguration$ServletWebConfiguration" + ] + }, + "org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.web.server.ManagementContextAutoConfiguration", + "resource": null, + "dependencies": [] + }, + "jacksonObjectMapper": { + "aliases": [], + "scope": "singleton", + "type": "com.fasterxml.jackson.databind.ObjectMapper", + "resource": "class path resource [org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration$JacksonObjectMapperConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration", + "jacksonObjectMapperBuilder" + ] + }, + "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$ClassProxyingConfiguration": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$ClassProxyingConfiguration", + "resource": null, + "dependencies": [] + }, + "management.endpoint.logfile-org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointProperties": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointProperties", + "resource": null, + "dependencies": [] + }, + "taskExecutorBuilder": { + "aliases": [], + "scope": "singleton", + "type": "org.springframework.boot.task.TaskExecutorBuilder", + "resource": "class path resource [org/springframework/boot/autoconfigure/task/TaskExecutionAutoConfiguration.class]", + "dependencies": [ + "org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration", + "spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties" + ] + } + }, + "parentId": null + } + } +} diff --git a/Examples/simple-springboot-app/templates/resources/actuators_configprops.json b/Examples/simple-springboot-app/templates/resources/actuators_configprops.json index 6a1f676..30a5f69 100644 --- a/Examples/simple-springboot-app/templates/resources/actuators_configprops.json +++ b/Examples/simple-springboot-app/templates/resources/actuators_configprops.json @@ -1 +1,631 @@ -{"contexts":{"application":{"beans":{"management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties":{"prefix":"management.endpoints.web","properties":{"pathMapping":{},"exposure":{"include":["*"],"exclude":[]},"basePath":"/actuator","discovery":{"enabled":true}},"inputs":{"pathMapping":{},"exposure":{"include":[{"value":"*","origin":"class path resource [application.properties] from main.jar - 3:43"}],"exclude":[]},"basePath":{},"discovery":{"enabled":{}}}},"management.endpoint.configprops-org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties":{"prefix":"management.endpoint.configprops","properties":{},"inputs":{}},"spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties":{"prefix":"spring.jackson","properties":{"serialization":{},"visibility":{},"parser":{},"deserialization":{},"generator":{},"mapper":{}},"inputs":{"serialization":{},"visibility":{},"parser":{},"deserialization":{},"generator":{},"mapper":{}}},"spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties":{"prefix":"spring.info","properties":{"build":{"location":{},"encoding":"UTF-8"},"git":{"location":{},"encoding":"UTF-8"}},"inputs":{"build":{"location":{},"encoding":{}},"git":{"location":{},"encoding":{}}}},"spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties":{"prefix":"spring.task.scheduling","properties":{"pool":{"size":1},"threadNamePrefix":"scheduling-","shutdown":{"awaitTermination":false}},"inputs":{"pool":{"size":{}},"threadNamePrefix":{},"shutdown":{"awaitTermination":{}}}},"management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties":{"prefix":"management.endpoint.health","properties":{"logging":{"slowIndicatorThreshold":"PT10S"},"showDetails":"NEVER","status":{"order":[],"httpMapping":{}},"roles":[],"group":{}},"inputs":{"logging":{"slowIndicatorThreshold":{}},"showDetails":{},"status":{"order":[],"httpMapping":{}},"roles":[],"group":{}}},"management.endpoints.web.cors-org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties":{"prefix":"management.endpoints.web.cors","properties":{"allowedOrigins":[],"maxAge":"PT30M","exposedHeaders":[],"allowedOriginPatterns":[],"allowedHeaders":[],"allowedMethods":[]},"inputs":{"allowedOrigins":[],"maxAge":{},"exposedHeaders":[],"allowedOriginPatterns":[],"allowedHeaders":[],"allowedMethods":[]}},"management.health.diskspace-org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthIndicatorProperties":{"prefix":"management.health.diskspace","properties":{"path":"/.","threshold":"10485760B"},"inputs":{"path":{},"threshold":{}}},"spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties":{"prefix":"spring.lifecycle","properties":{"timeoutPerShutdownPhase":"PT30S"},"inputs":{"timeoutPerShutdownPhase":{}}},"spring.sql.init-org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties":{"prefix":"spring.sql.init","properties":{"mode":"EMBEDDED","separator":";","platform":"all","continueOnError":false},"inputs":{"mode":{},"separator":{},"platform":{},"continueOnError":{}}},"spring.web-org.springframework.boot.autoconfigure.web.WebProperties":{"prefix":"spring.web","properties":{"localeResolver":"ACCEPT_HEADER","resources":{"staticLocations":["classpath:/META-INF/resources/","classpath:/resources/","classpath:/static/","classpath:/public/"],"addMappings":true,"chain":{"cache":true,"compressed":false,"strategy":{"fixed":{"enabled":false,"paths":["/**"]},"content":{"enabled":false,"paths":["/**"]}}},"cache":{"cachecontrol":{},"useLastModified":true}}},"inputs":{"localeResolver":{},"resources":{"staticLocations":[{},{},{},{}],"addMappings":{},"chain":{"cache":{},"compressed":{},"strategy":{"fixed":{"enabled":{},"paths":[{}]},"content":{"enabled":{},"paths":[{}]}}},"cache":{"cachecontrol":{},"useLastModified":{}}}}},"management.metrics.export.simple-org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleProperties":{"prefix":"management.metrics.export.simple","properties":{"mode":"CUMULATIVE","step":"PT1M","enabled":true},"inputs":{"mode":{},"step":{},"enabled":{}}},"management.endpoint.env-org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties":{"prefix":"management.endpoint.env","properties":{},"inputs":{}},"management.endpoint.logfile-org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointProperties":{"prefix":"management.endpoint.logfile","properties":{},"inputs":{}},"management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties":{"prefix":"management.metrics","properties":{"system":{"diskspace":{"paths":["/."]}},"data":{"repository":{"metricName":"spring.data.repository.invocations","autotime":{"enabled":true,"percentilesHistogram":false}}},"web":{"client":{"request":{"metricName":"http.client.requests","autotime":{"enabled":true,"percentilesHistogram":false}},"maxUriTags":100},"server":{"request":{"metricName":"http.server.requests","ignoreTrailingSlash":true,"autotime":{"enabled":true,"percentilesHistogram":false}},"maxUriTags":100}},"enable":{},"useGlobalRegistry":true,"graphql":{"autotime":{"enabled":true,"percentilesHistogram":false}},"distribution":{"percentilesHistogram":{},"percentiles":{},"slo":{},"minimumExpectedValue":{},"maximumExpectedValue":{},"expiry":{},"bufferLength":{}},"tags":{}},"inputs":{"system":{"diskspace":{"paths":[{}]}},"data":{"repository":{"metricName":{},"autotime":{"enabled":{},"percentilesHistogram":{}}}},"web":{"client":{"request":{"metricName":{},"autotime":{"enabled":{},"percentilesHistogram":{}}},"maxUriTags":{}},"server":{"request":{"metricName":{},"ignoreTrailingSlash":{},"autotime":{"enabled":{},"percentilesHistogram":{}}},"maxUriTags":{}}},"enable":{},"useGlobalRegistry":{},"graphql":{"autotime":{"enabled":{},"percentilesHistogram":{}}},"distribution":{"percentilesHistogram":{},"percentiles":{},"slo":{},"minimumExpectedValue":{},"maximumExpectedValue":{},"expiry":{},"bufferLength":{}},"tags":{}}},"spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties":{"prefix":"spring.mvc","properties":{"contentnegotiation":{"favorPathExtension":false,"favorParameter":false,"mediaTypes":{}},"servlet":{"path":"/","loadOnStartup":-1},"format":{},"staticPathPattern":"/**","dispatchOptionsRequest":true,"dispatchTraceRequest":false,"ignoreDefaultModelOnRedirect":true,"logResolvedException":false,"async":{},"view":{},"publishRequestHandledEvents":true,"logRequestDetails":false,"pathmatch":{"matchingStrategy":"PATH_PATTERN_PARSER","useSuffixPattern":false,"useRegisteredSuffixPattern":false},"throwExceptionIfNoHandlerFound":false},"inputs":{"contentnegotiation":{"favorPathExtension":{},"favorParameter":{},"mediaTypes":{}},"servlet":{"path":{},"loadOnStartup":{}},"format":{},"staticPathPattern":{},"dispatchOptionsRequest":{},"dispatchTraceRequest":{},"ignoreDefaultModelOnRedirect":{},"logResolvedException":{},"async":{},"view":{},"publishRequestHandledEvents":{},"logRequestDetails":{},"pathmatch":{"matchingStrategy":{},"useSuffixPattern":{},"useRegisteredSuffixPattern":{}},"throwExceptionIfNoHandlerFound":{}}},"management.info-org.springframework.boot.actuate.autoconfigure.info.InfoContributorProperties":{"prefix":"management.info","properties":{"git":{"mode":"SIMPLE"}},"inputs":{"git":{"mode":{}}}},"server-org.springframework.boot.autoconfigure.web.ServerProperties":{"prefix":"server","properties":{"reactive":{"session":{"timeout":"PT30M"}},"undertow":{"maxHttpPostSize":"-1B","eagerFilterInit":true,"maxHeaders":200,"maxCookies":200,"allowEncodedSlash":false,"decodeUrl":"true","urlCharset":"UTF-8","alwaysSetKeepAlive":true,"preservePathOnForward":false,"accesslog":{"enabled":false,"pattern":"common","prefix":"access_log.","suffix":"log","dir":"/logs","rotate":true},"threads":{},"options":{"socket":{},"server":{}}},"maxHttpHeaderSize":"8192B","tomcat":{"accesslog":{"enabled":false,"pattern":"common","directory":"logs","prefix":"access_log","suffix":".log","checkExists":false,"rotate":true,"renameOnRotate":false,"maxDays":-1,"fileDateFormat":".yyyy-MM-dd","ipv6Canonical":false,"requestAttributesEnabled":false,"buffered":true},"threads":{"max":200,"minSpare":10},"backgroundProcessorDelay":"PT10S","maxHttpFormPostSize":"2097152B","maxSwallowSize":"2097152B","redirectContextRoot":true,"useRelativeRedirects":false,"uriEncoding":"UTF-8","maxConnections":8192,"acceptCount":100,"processorCache":200,"maxKeepAliveRequests":100,"additionalTldSkipPatterns":[],"relaxedPathChars":[],"relaxedQueryChars":[],"rejectIllegalHeader":true,"resource":{"allowCaching":true},"mbeanregistry":{"enabled":false},"remoteip":{"internalProxies":"10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|192\\.168\\.\\d{1,3}\\.\\d{1,3}|169\\.254\\.\\d{1,3}\\.\\d{1,3}|127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|172\\.1[6-9]{1}\\.\\d{1,3}\\.\\d{1,3}|172\\.2[0-9]{1}\\.\\d{1,3}\\.\\d{1,3}|172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3}|0:0:0:0:0:0:0:1|::1","protocolHeaderHttpsValue":"https","hostHeader":"X-Forwarded-Host","portHeader":"X-Forwarded-Port"}},"servlet":{"contextParameters":{},"applicationDisplayName":"application","registerDefaultServlet":false},"jetty":{"accesslog":{"enabled":false,"format":"NCSA","retentionPeriod":31,"append":false},"threads":{"acceptors":-1,"selectors":-1,"max":200,"min":8,"idleTimeout":"PT1M"},"maxHttpFormPostSize":"200000B"},"error":{"path":"/error","includeException":false,"includeStacktrace":"NEVER","includeMessage":"NEVER","includeBindingErrors":"NEVER","whitelabel":{"enabled":true}},"shutdown":"IMMEDIATE","netty":{"h2cMaxContentLength":"0B","initialBufferSize":"128B","maxChunkSize":"8192B","maxInitialLineLength":"4096B","validateHeaders":true}},"inputs":{"reactive":{"session":{"timeout":{}}},"undertow":{"maxHttpPostSize":{},"eagerFilterInit":{},"maxHeaders":{},"maxCookies":{},"allowEncodedSlash":{},"decodeUrl":{},"urlCharset":{},"alwaysSetKeepAlive":{},"preservePathOnForward":{},"accesslog":{"enabled":{},"pattern":{},"prefix":{},"suffix":{},"dir":{},"rotate":{}},"threads":{},"options":{"socket":{},"server":{}}},"maxHttpHeaderSize":{},"tomcat":{"accesslog":{"enabled":{},"pattern":{},"directory":{},"prefix":{},"suffix":{},"checkExists":{},"rotate":{},"renameOnRotate":{},"maxDays":{},"fileDateFormat":{},"ipv6Canonical":{},"requestAttributesEnabled":{},"buffered":{}},"threads":{"max":{},"minSpare":{}},"backgroundProcessorDelay":{},"maxHttpFormPostSize":{},"maxSwallowSize":{},"redirectContextRoot":{},"useRelativeRedirects":{},"uriEncoding":{},"maxConnections":{},"acceptCount":{},"processorCache":{},"maxKeepAliveRequests":{},"additionalTldSkipPatterns":[],"relaxedPathChars":[],"relaxedQueryChars":[],"rejectIllegalHeader":{},"resource":{"allowCaching":{}},"mbeanregistry":{"enabled":{}},"remoteip":{"internalProxies":{},"protocolHeaderHttpsValue":{},"hostHeader":{},"portHeader":{}}},"servlet":{"contextParameters":{},"applicationDisplayName":{},"registerDefaultServlet":{}},"jetty":{"accesslog":{"enabled":{},"format":{},"retentionPeriod":{},"append":{}},"threads":{"acceptors":{},"selectors":{},"max":{},"min":{},"idleTimeout":{}},"maxHttpFormPostSize":{}},"error":{"path":{},"includeException":{},"includeStacktrace":{},"includeMessage":{},"includeBindingErrors":{},"whitelabel":{"enabled":{}}},"shutdown":{},"netty":{"h2cMaxContentLength":{},"initialBufferSize":{},"maxChunkSize":{},"maxInitialLineLength":{},"validateHeaders":{}}}},"spring.servlet.multipart-org.springframework.boot.autoconfigure.web.servlet.MultipartProperties":{"prefix":"spring.servlet.multipart","properties":{"fileSizeThreshold":"0B","maxFileSize":"1048576B","maxRequestSize":"10485760B","enabled":true,"resolveLazily":false},"inputs":{"fileSizeThreshold":{},"maxFileSize":{},"maxRequestSize":{},"enabled":{},"resolveLazily":{}}},"spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties":{"prefix":"spring.task.execution","properties":{"pool":{"queueCapacity":2147483647,"coreSize":8,"maxSize":2147483647,"allowCoreThreadTimeout":true,"keepAlive":"PT1M"},"threadNamePrefix":"task-","shutdown":{"awaitTermination":false}},"inputs":{"pool":{"queueCapacity":{},"coreSize":{},"maxSize":{},"allowCoreThreadTimeout":{},"keepAlive":{}},"threadNamePrefix":{},"shutdown":{"awaitTermination":{}}}},"management.server-org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties":{"prefix":"management.server","properties":{"basePath":""},"inputs":{"basePath":{}}}},"parentId":null}}} \ No newline at end of file +{ + "contexts": { + "application": { + "beans": { + "management.endpoints.web-org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties": { + "prefix": "management.endpoints.web", + "properties": { + "pathMapping": {}, + "exposure": { "include": ["*"], "exclude": [] }, + "basePath": "/actuator", + "discovery": { "enabled": true } + }, + "inputs": { + "pathMapping": {}, + "exposure": { + "include": [ + { + "value": "*", + "origin": "class path resource [application.properties] from main.jar - 3:43" + } + ], + "exclude": [] + }, + "basePath": {}, + "discovery": { "enabled": {} } + } + }, + "management.endpoint.configprops-org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointProperties": { + "prefix": "management.endpoint.configprops", + "properties": {}, + "inputs": {} + }, + "spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties": { + "prefix": "spring.jackson", + "properties": { + "serialization": {}, + "visibility": {}, + "parser": {}, + "deserialization": {}, + "generator": {}, + "mapper": {} + }, + "inputs": { + "serialization": {}, + "visibility": {}, + "parser": {}, + "deserialization": {}, + "generator": {}, + "mapper": {} + } + }, + "spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties": { + "prefix": "spring.info", + "properties": { + "build": { "location": {}, "encoding": "UTF-8" }, + "git": { "location": {}, "encoding": "UTF-8" } + }, + "inputs": { + "build": { "location": {}, "encoding": {} }, + "git": { "location": {}, "encoding": {} } + } + }, + "spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties": { + "prefix": "spring.task.scheduling", + "properties": { + "pool": { "size": 1 }, + "threadNamePrefix": "scheduling-", + "shutdown": { "awaitTermination": false } + }, + "inputs": { + "pool": { "size": {} }, + "threadNamePrefix": {}, + "shutdown": { "awaitTermination": {} } + } + }, + "management.endpoint.health-org.springframework.boot.actuate.autoconfigure.health.HealthEndpointProperties": { + "prefix": "management.endpoint.health", + "properties": { + "logging": { "slowIndicatorThreshold": "PT10S" }, + "showDetails": "NEVER", + "status": { "order": [], "httpMapping": {} }, + "roles": [], + "group": {} + }, + "inputs": { + "logging": { "slowIndicatorThreshold": {} }, + "showDetails": {}, + "status": { "order": [], "httpMapping": {} }, + "roles": [], + "group": {} + } + }, + "management.endpoints.web.cors-org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties": { + "prefix": "management.endpoints.web.cors", + "properties": { + "allowedOrigins": [], + "maxAge": "PT30M", + "exposedHeaders": [], + "allowedOriginPatterns": [], + "allowedHeaders": [], + "allowedMethods": [] + }, + "inputs": { + "allowedOrigins": [], + "maxAge": {}, + "exposedHeaders": [], + "allowedOriginPatterns": [], + "allowedHeaders": [], + "allowedMethods": [] + } + }, + "management.health.diskspace-org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthIndicatorProperties": { + "prefix": "management.health.diskspace", + "properties": { "path": "/.", "threshold": "10485760B" }, + "inputs": { "path": {}, "threshold": {} } + }, + "spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties": { + "prefix": "spring.lifecycle", + "properties": { "timeoutPerShutdownPhase": "PT30S" }, + "inputs": { "timeoutPerShutdownPhase": {} } + }, + "spring.sql.init-org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties": { + "prefix": "spring.sql.init", + "properties": { + "mode": "EMBEDDED", + "separator": ";", + "platform": "all", + "continueOnError": false + }, + "inputs": { + "mode": {}, + "separator": {}, + "platform": {}, + "continueOnError": {} + } + }, + "spring.web-org.springframework.boot.autoconfigure.web.WebProperties": { + "prefix": "spring.web", + "properties": { + "localeResolver": "ACCEPT_HEADER", + "resources": { + "staticLocations": [ + "classpath:/META-INF/resources/", + "classpath:/resources/", + "classpath:/static/", + "classpath:/public/" + ], + "addMappings": true, + "chain": { + "cache": true, + "compressed": false, + "strategy": { + "fixed": { + "enabled": false, + "paths": ["/**"] + }, + "content": { + "enabled": false, + "paths": ["/**"] + } + } + }, + "cache": { + "cachecontrol": {}, + "useLastModified": true + } + } + }, + "inputs": { + "localeResolver": {}, + "resources": { + "staticLocations": [{}, {}, {}, {}], + "addMappings": {}, + "chain": { + "cache": {}, + "compressed": {}, + "strategy": { + "fixed": { "enabled": {}, "paths": [{}] }, + "content": { "enabled": {}, "paths": [{}] } + } + }, + "cache": { + "cachecontrol": {}, + "useLastModified": {} + } + } + } + }, + "management.metrics.export.simple-org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleProperties": { + "prefix": "management.metrics.export.simple", + "properties": { + "mode": "CUMULATIVE", + "step": "PT1M", + "enabled": true + }, + "inputs": { "mode": {}, "step": {}, "enabled": {} } + }, + "management.endpoint.env-org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointProperties": { + "prefix": "management.endpoint.env", + "properties": {}, + "inputs": {} + }, + "management.endpoint.logfile-org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointProperties": { + "prefix": "management.endpoint.logfile", + "properties": {}, + "inputs": {} + }, + "management.metrics-org.springframework.boot.actuate.autoconfigure.metrics.MetricsProperties": { + "prefix": "management.metrics", + "properties": { + "system": { "diskspace": { "paths": ["/."] } }, + "data": { + "repository": { + "metricName": "spring.data.repository.invocations", + "autotime": { + "enabled": true, + "percentilesHistogram": false + } + } + }, + "web": { + "client": { + "request": { + "metricName": "http.client.requests", + "autotime": { + "enabled": true, + "percentilesHistogram": false + } + }, + "maxUriTags": 100 + }, + "server": { + "request": { + "metricName": "http.server.requests", + "ignoreTrailingSlash": true, + "autotime": { + "enabled": true, + "percentilesHistogram": false + } + }, + "maxUriTags": 100 + } + }, + "enable": {}, + "useGlobalRegistry": true, + "graphql": { + "autotime": { + "enabled": true, + "percentilesHistogram": false + } + }, + "distribution": { + "percentilesHistogram": {}, + "percentiles": {}, + "slo": {}, + "minimumExpectedValue": {}, + "maximumExpectedValue": {}, + "expiry": {}, + "bufferLength": {} + }, + "tags": {} + }, + "inputs": { + "system": { "diskspace": { "paths": [{}] } }, + "data": { + "repository": { + "metricName": {}, + "autotime": { + "enabled": {}, + "percentilesHistogram": {} + } + } + }, + "web": { + "client": { + "request": { + "metricName": {}, + "autotime": { + "enabled": {}, + "percentilesHistogram": {} + } + }, + "maxUriTags": {} + }, + "server": { + "request": { + "metricName": {}, + "ignoreTrailingSlash": {}, + "autotime": { + "enabled": {}, + "percentilesHistogram": {} + } + }, + "maxUriTags": {} + } + }, + "enable": {}, + "useGlobalRegistry": {}, + "graphql": { + "autotime": { + "enabled": {}, + "percentilesHistogram": {} + } + }, + "distribution": { + "percentilesHistogram": {}, + "percentiles": {}, + "slo": {}, + "minimumExpectedValue": {}, + "maximumExpectedValue": {}, + "expiry": {}, + "bufferLength": {} + }, + "tags": {} + } + }, + "spring.mvc-org.springframework.boot.autoconfigure.web.servlet.WebMvcProperties": { + "prefix": "spring.mvc", + "properties": { + "contentnegotiation": { + "favorPathExtension": false, + "favorParameter": false, + "mediaTypes": {} + }, + "servlet": { "path": "/", "loadOnStartup": -1 }, + "format": {}, + "staticPathPattern": "/**", + "dispatchOptionsRequest": true, + "dispatchTraceRequest": false, + "ignoreDefaultModelOnRedirect": true, + "logResolvedException": false, + "async": {}, + "view": {}, + "publishRequestHandledEvents": true, + "logRequestDetails": false, + "pathmatch": { + "matchingStrategy": "PATH_PATTERN_PARSER", + "useSuffixPattern": false, + "useRegisteredSuffixPattern": false + }, + "throwExceptionIfNoHandlerFound": false + }, + "inputs": { + "contentnegotiation": { + "favorPathExtension": {}, + "favorParameter": {}, + "mediaTypes": {} + }, + "servlet": { "path": {}, "loadOnStartup": {} }, + "format": {}, + "staticPathPattern": {}, + "dispatchOptionsRequest": {}, + "dispatchTraceRequest": {}, + "ignoreDefaultModelOnRedirect": {}, + "logResolvedException": {}, + "async": {}, + "view": {}, + "publishRequestHandledEvents": {}, + "logRequestDetails": {}, + "pathmatch": { + "matchingStrategy": {}, + "useSuffixPattern": {}, + "useRegisteredSuffixPattern": {} + }, + "throwExceptionIfNoHandlerFound": {} + } + }, + "management.info-org.springframework.boot.actuate.autoconfigure.info.InfoContributorProperties": { + "prefix": "management.info", + "properties": { "git": { "mode": "SIMPLE" } }, + "inputs": { "git": { "mode": {} } } + }, + "server-org.springframework.boot.autoconfigure.web.ServerProperties": { + "prefix": "server", + "properties": { + "reactive": { "session": { "timeout": "PT30M" } }, + "undertow": { + "maxHttpPostSize": "-1B", + "eagerFilterInit": true, + "maxHeaders": 200, + "maxCookies": 200, + "allowEncodedSlash": false, + "decodeUrl": "true", + "urlCharset": "UTF-8", + "alwaysSetKeepAlive": true, + "preservePathOnForward": false, + "accesslog": { + "enabled": false, + "pattern": "common", + "prefix": "access_log.", + "suffix": "log", + "dir": "/logs", + "rotate": true + }, + "threads": {}, + "options": { "socket": {}, "server": {} } + }, + "maxHttpHeaderSize": "8192B", + "tomcat": { + "accesslog": { + "enabled": false, + "pattern": "common", + "directory": "logs", + "prefix": "access_log", + "suffix": ".log", + "checkExists": false, + "rotate": true, + "renameOnRotate": false, + "maxDays": -1, + "fileDateFormat": ".yyyy-MM-dd", + "ipv6Canonical": false, + "requestAttributesEnabled": false, + "buffered": true + }, + "threads": { "max": 200, "minSpare": 10 }, + "backgroundProcessorDelay": "PT10S", + "maxHttpFormPostSize": "2097152B", + "maxSwallowSize": "2097152B", + "redirectContextRoot": true, + "useRelativeRedirects": false, + "uriEncoding": "UTF-8", + "maxConnections": 8192, + "acceptCount": 100, + "processorCache": 200, + "maxKeepAliveRequests": 100, + "additionalTldSkipPatterns": [], + "relaxedPathChars": [], + "relaxedQueryChars": [], + "rejectIllegalHeader": true, + "resource": { "allowCaching": true }, + "mbeanregistry": { "enabled": false }, + "remoteip": { + "internalProxies": "10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|192\\.168\\.\\d{1,3}\\.\\d{1,3}|169\\.254\\.\\d{1,3}\\.\\d{1,3}|127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|172\\.1[6-9]{1}\\.\\d{1,3}\\.\\d{1,3}|172\\.2[0-9]{1}\\.\\d{1,3}\\.\\d{1,3}|172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3}|0:0:0:0:0:0:0:1|::1", + "protocolHeaderHttpsValue": "https", + "hostHeader": "X-Forwarded-Host", + "portHeader": "X-Forwarded-Port" + } + }, + "servlet": { + "contextParameters": {}, + "applicationDisplayName": "application", + "registerDefaultServlet": false + }, + "jetty": { + "accesslog": { + "enabled": false, + "format": "NCSA", + "retentionPeriod": 31, + "append": false + }, + "threads": { + "acceptors": -1, + "selectors": -1, + "max": 200, + "min": 8, + "idleTimeout": "PT1M" + }, + "maxHttpFormPostSize": "200000B" + }, + "error": { + "path": "/error", + "includeException": false, + "includeStacktrace": "NEVER", + "includeMessage": "NEVER", + "includeBindingErrors": "NEVER", + "whitelabel": { "enabled": true } + }, + "shutdown": "IMMEDIATE", + "netty": { + "h2cMaxContentLength": "0B", + "initialBufferSize": "128B", + "maxChunkSize": "8192B", + "maxInitialLineLength": "4096B", + "validateHeaders": true + } + }, + "inputs": { + "reactive": { "session": { "timeout": {} } }, + "undertow": { + "maxHttpPostSize": {}, + "eagerFilterInit": {}, + "maxHeaders": {}, + "maxCookies": {}, + "allowEncodedSlash": {}, + "decodeUrl": {}, + "urlCharset": {}, + "alwaysSetKeepAlive": {}, + "preservePathOnForward": {}, + "accesslog": { + "enabled": {}, + "pattern": {}, + "prefix": {}, + "suffix": {}, + "dir": {}, + "rotate": {} + }, + "threads": {}, + "options": { "socket": {}, "server": {} } + }, + "maxHttpHeaderSize": {}, + "tomcat": { + "accesslog": { + "enabled": {}, + "pattern": {}, + "directory": {}, + "prefix": {}, + "suffix": {}, + "checkExists": {}, + "rotate": {}, + "renameOnRotate": {}, + "maxDays": {}, + "fileDateFormat": {}, + "ipv6Canonical": {}, + "requestAttributesEnabled": {}, + "buffered": {} + }, + "threads": { "max": {}, "minSpare": {} }, + "backgroundProcessorDelay": {}, + "maxHttpFormPostSize": {}, + "maxSwallowSize": {}, + "redirectContextRoot": {}, + "useRelativeRedirects": {}, + "uriEncoding": {}, + "maxConnections": {}, + "acceptCount": {}, + "processorCache": {}, + "maxKeepAliveRequests": {}, + "additionalTldSkipPatterns": [], + "relaxedPathChars": [], + "relaxedQueryChars": [], + "rejectIllegalHeader": {}, + "resource": { "allowCaching": {} }, + "mbeanregistry": { "enabled": {} }, + "remoteip": { + "internalProxies": {}, + "protocolHeaderHttpsValue": {}, + "hostHeader": {}, + "portHeader": {} + } + }, + "servlet": { + "contextParameters": {}, + "applicationDisplayName": {}, + "registerDefaultServlet": {} + }, + "jetty": { + "accesslog": { + "enabled": {}, + "format": {}, + "retentionPeriod": {}, + "append": {} + }, + "threads": { + "acceptors": {}, + "selectors": {}, + "max": {}, + "min": {}, + "idleTimeout": {} + }, + "maxHttpFormPostSize": {} + }, + "error": { + "path": {}, + "includeException": {}, + "includeStacktrace": {}, + "includeMessage": {}, + "includeBindingErrors": {}, + "whitelabel": { "enabled": {} } + }, + "shutdown": {}, + "netty": { + "h2cMaxContentLength": {}, + "initialBufferSize": {}, + "maxChunkSize": {}, + "maxInitialLineLength": {}, + "validateHeaders": {} + } + } + }, + "spring.servlet.multipart-org.springframework.boot.autoconfigure.web.servlet.MultipartProperties": { + "prefix": "spring.servlet.multipart", + "properties": { + "fileSizeThreshold": "0B", + "maxFileSize": "1048576B", + "maxRequestSize": "10485760B", + "enabled": true, + "resolveLazily": false + }, + "inputs": { + "fileSizeThreshold": {}, + "maxFileSize": {}, + "maxRequestSize": {}, + "enabled": {}, + "resolveLazily": {} + } + }, + "spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties": { + "prefix": "spring.task.execution", + "properties": { + "pool": { + "queueCapacity": 2147483647, + "coreSize": 8, + "maxSize": 2147483647, + "allowCoreThreadTimeout": true, + "keepAlive": "PT1M" + }, + "threadNamePrefix": "task-", + "shutdown": { "awaitTermination": false } + }, + "inputs": { + "pool": { + "queueCapacity": {}, + "coreSize": {}, + "maxSize": {}, + "allowCoreThreadTimeout": {}, + "keepAlive": {} + }, + "threadNamePrefix": {}, + "shutdown": { "awaitTermination": {} } + } + }, + "management.server-org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties": { + "prefix": "management.server", + "properties": { "basePath": "" }, + "inputs": { "basePath": {} } + } + }, + "parentId": null + } + } +} diff --git a/Examples/simple-springboot-app/templates/resources/actuators_env.json b/Examples/simple-springboot-app/templates/resources/actuators_env.json index 88319d5..c0a9a1f 100644 --- a/Examples/simple-springboot-app/templates/resources/actuators_env.json +++ b/Examples/simple-springboot-app/templates/resources/actuators_env.json @@ -1 +1,138 @@ -{"activeProfiles":[],"propertySources":[{"name":"server.ports","properties":{"local.server.port":{"value":8080}}},{"name":"servletContextInitParams","properties":{}},{"name":"systemProperties","properties":{"awt.toolkit":{"value":"sun.awt.X11.XToolkit"},"java.specification.version":{"value":"11"},"sun.cpu.isalist":{"value":""},"sun.jnu.encoding":{"value":"UTF-8"},"java.class.path":{"value":"/usr/local/lib/main.jar"},"java.vm.vendor":{"value":"Oracle Corporation"},"sun.arch.data.model":{"value":"64"},"java.vendor.url":{"value":"https://openjdk.java.net/"},"catalina.useNaming":{"value":"false"},"user.timezone":{"value":"Etc/UTC"},"os.name":{"value":"Linux"},"java.vm.specification.version":{"value":"11"},"sun.java.launcher":{"value":"SUN_STANDARD"},"sun.boot.library.path":{"value":"/usr/local/openjdk-11/lib"},"sun.java.command":{"value":"******"},"jdk.debug":{"value":"release"},"sun.cpu.endian":{"value":"little"},"user.home":{"value":"/root"},"user.language":{"value":"en"},"java.specification.vendor":{"value":"Oracle Corporation"},"java.version.date":{"value":"2022-07-19"},"java.home":{"value":"/usr/local/openjdk-11"},"file.separator":{"value":"/"},"java.vm.compressedOopsMode":{"value":"32-bit"},"line.separator":{"value":"\n"},"java.specification.name":{"value":"Java Platform API Specification"},"java.vm.specification.vendor":{"value":"Oracle Corporation"},"FILE_LOG_CHARSET":{"value":"UTF-8"},"java.awt.graphicsenv":{"value":"sun.awt.X11GraphicsEnvironment"},"java.awt.headless":{"value":"true"},"java.protocol.handler.pkgs":{"value":"org.springframework.boot.loader"},"sun.management.compiler":{"value":"HotSpot 64-Bit Tiered Compilers"},"java.runtime.version":{"value":"11.0.16+8"},"user.name":{"value":"root"},"path.separator":{"value":":"},"os.version":{"value":"5.15.49-linux"},"java.runtime.name":{"value":"OpenJDK Runtime Environment"},"file.encoding":{"value":"UTF-8"},"spring.beaninfo.ignore":{"value":"true"},"java.vm.name":{"value":"OpenJDK 64-Bit Server VM"},"java.vendor.version":{"value":"18.9"},"java.vendor.url.bug":{"value":"https://bugreport.java.com/bugreport/"},"java.io.tmpdir":{"value":"/tmp"},"catalina.home":{"value":"/tmp/tomcat.8080.203957882699930509"},"java.version":{"value":"11.0.16"},"user.dir":{"value":"/"},"os.arch":{"value":"aarch64"},"java.vm.specification.name":{"value":"Java Virtual Machine Specification"},"PID":{"value":"1"},"java.awt.printerjob":{"value":"sun.print.PSPrinterJob"},"sun.os.patch.level":{"value":"unknown"},"CONSOLE_LOG_CHARSET":{"value":"UTF-8"},"catalina.base":{"value":"/tmp/tomcat.8080.203957882699930509"},"java.library.path":{"value":"/usr/java/packages/lib:/lib:/usr/lib:/usr/lib64:/lib64"},"java.vm.info":{"value":"mixed mode, sharing"},"java.vendor":{"value":"Oracle Corporation"},"java.vm.version":{"value":"11.0.16+8"},"sun.io.unicode.encoding":{"value":"UnicodeLittle"},"java.class.version":{"value":"55.0"}}},{"name":"systemEnvironment","properties":{"PATH":{"value":"/usr/local/openjdk-11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","origin":"System Environment Property \"PATH\""},"HOSTNAME":{"value":"7381ff92eb1c","origin":"System Environment Property \"HOSTNAME\""},"JAVA_HOME":{"value":"/usr/local/openjdk-11","origin":"System Environment Property \"JAVA_HOME\""},"JAVA_VERSION":{"value":"11.0.16","origin":"System Environment Property \"JAVA_VERSION\""},"LANG":{"value":"C.UTF-8","origin":"System Environment Property \"LANG\""},"HOME":{"value":"/root","origin":"System Environment Property \"HOME\""}}},{"name":"Config resource 'class path resource [application.properties]' via location 'optional:classpath:/'","properties":{"management.endpoints.enabled-by-default":{"value":"true","origin":"class path resource [application.properties] from main.jar - 2:41"},"management.endpoints.web.exposure.include":{"value":"*","origin":"class path resource [application.properties] from main.jar - 3:43"}}}]} \ No newline at end of file +{ + "activeProfiles": [], + "propertySources": [ + { + "name": "server.ports", + "properties": { "local.server.port": { "value": 8080 } } + }, + { "name": "servletContextInitParams", "properties": {} }, + { + "name": "systemProperties", + "properties": { + "awt.toolkit": { "value": "sun.awt.X11.XToolkit" }, + "java.specification.version": { "value": "11" }, + "sun.cpu.isalist": { "value": "" }, + "sun.jnu.encoding": { "value": "UTF-8" }, + "java.class.path": { "value": "/usr/local/lib/main.jar" }, + "java.vm.vendor": { "value": "Oracle Corporation" }, + "sun.arch.data.model": { "value": "64" }, + "java.vendor.url": { "value": "https://openjdk.java.net/" }, + "catalina.useNaming": { "value": "false" }, + "user.timezone": { "value": "Etc/UTC" }, + "os.name": { "value": "Linux" }, + "java.vm.specification.version": { "value": "11" }, + "sun.java.launcher": { "value": "SUN_STANDARD" }, + "sun.boot.library.path": { + "value": "/usr/local/openjdk-11/lib" + }, + "sun.java.command": { "value": "******" }, + "jdk.debug": { "value": "release" }, + "sun.cpu.endian": { "value": "little" }, + "user.home": { "value": "/root" }, + "user.language": { "value": "en" }, + "java.specification.vendor": { "value": "Oracle Corporation" }, + "java.version.date": { "value": "2022-07-19" }, + "java.home": { "value": "/usr/local/openjdk-11" }, + "file.separator": { "value": "/" }, + "java.vm.compressedOopsMode": { "value": "32-bit" }, + "line.separator": { "value": "\n" }, + "java.specification.name": { + "value": "Java Platform API Specification" + }, + "java.vm.specification.vendor": { + "value": "Oracle Corporation" + }, + "FILE_LOG_CHARSET": { "value": "UTF-8" }, + "java.awt.graphicsenv": { + "value": "sun.awt.X11GraphicsEnvironment" + }, + "java.awt.headless": { "value": "true" }, + "java.protocol.handler.pkgs": { + "value": "org.springframework.boot.loader" + }, + "sun.management.compiler": { + "value": "HotSpot 64-Bit Tiered Compilers" + }, + "java.runtime.version": { "value": "11.0.16+8" }, + "user.name": { "value": "root" }, + "path.separator": { "value": ":" }, + "os.version": { "value": "5.15.49-linux" }, + "java.runtime.name": { "value": "OpenJDK Runtime Environment" }, + "file.encoding": { "value": "UTF-8" }, + "spring.beaninfo.ignore": { "value": "true" }, + "java.vm.name": { "value": "OpenJDK 64-Bit Server VM" }, + "java.vendor.version": { "value": "18.9" }, + "java.vendor.url.bug": { + "value": "https://bugreport.java.com/bugreport/" + }, + "java.io.tmpdir": { "value": "/tmp" }, + "catalina.home": { + "value": "/tmp/tomcat.8080.203957882699930509" + }, + "java.version": { "value": "11.0.16" }, + "user.dir": { "value": "/" }, + "os.arch": { "value": "aarch64" }, + "java.vm.specification.name": { + "value": "Java Virtual Machine Specification" + }, + "PID": { "value": "1" }, + "java.awt.printerjob": { "value": "sun.print.PSPrinterJob" }, + "sun.os.patch.level": { "value": "unknown" }, + "CONSOLE_LOG_CHARSET": { "value": "UTF-8" }, + "catalina.base": { + "value": "/tmp/tomcat.8080.203957882699930509" + }, + "java.library.path": { + "value": "/usr/java/packages/lib:/lib:/usr/lib:/usr/lib64:/lib64" + }, + "java.vm.info": { "value": "mixed mode, sharing" }, + "java.vendor": { "value": "Oracle Corporation" }, + "java.vm.version": { "value": "11.0.16+8" }, + "sun.io.unicode.encoding": { "value": "UnicodeLittle" }, + "java.class.version": { "value": "55.0" } + } + }, + { + "name": "systemEnvironment", + "properties": { + "PATH": { + "value": "/usr/local/openjdk-11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "origin": "System Environment Property \"PATH\"" + }, + "HOSTNAME": { + "value": "7381ff92eb1c", + "origin": "System Environment Property \"HOSTNAME\"" + }, + "JAVA_HOME": { + "value": "/usr/local/openjdk-11", + "origin": "System Environment Property \"JAVA_HOME\"" + }, + "JAVA_VERSION": { + "value": "11.0.16", + "origin": "System Environment Property \"JAVA_VERSION\"" + }, + "LANG": { + "value": "C.UTF-8", + "origin": "System Environment Property \"LANG\"" + }, + "HOME": { + "value": "/root", + "origin": "System Environment Property \"HOME\"" + } + } + }, + { + "name": "Config resource 'class path resource [application.properties]' via location 'optional:classpath:/'", + "properties": { + "management.endpoints.enabled-by-default": { + "value": "true", + "origin": "class path resource [application.properties] from main.jar - 2:41" + }, + "management.endpoints.web.exposure.include": { + "value": "*", + "origin": "class path resource [application.properties] from main.jar - 3:43" + } + } + } + ] +} diff --git a/Examples/simple-springboot-app/templates/resources/articles.json b/Examples/simple-springboot-app/templates/resources/articles.json index 43d725e..5cb4498 100644 --- a/Examples/simple-springboot-app/templates/resources/articles.json +++ b/Examples/simple-springboot-app/templates/resources/articles.json @@ -1,55 +1,57 @@ -[{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}] \ No newline at end of file +[ + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + } +] diff --git a/Examples/simple-springboot-app/templates/resources/users.json b/Examples/simple-springboot-app/templates/resources/users.json index 378510f..c637c6f 100644 --- a/Examples/simple-springboot-app/templates/resources/users.json +++ b/Examples/simple-springboot-app/templates/resources/users.json @@ -1,12 +1,14 @@ -[{ - "id":"$", - "link":"/api/author/$" -}, -{ - "id":"$", - "link":"/api/author/$" -}, -{ - "id":"$", - "link":"/api/author/$" -}] \ No newline at end of file +[ + { + "id": "$", + "link": "/api/author/$" + }, + { + "id": "$", + "link": "/api/author/$" + }, + { + "id": "$", + "link": "/api/author/$" + } +] diff --git a/README.md b/README.md index 5b7479d..ff4e61e 100644 --- a/README.md +++ b/README.md @@ -1,51 +1,48 @@ # HASH (HTTP Agnostic Software Honeypot) -HASH is a framework for creating and launching low interactive honeypots. - -![HASH](https://raw.githubusercontent.com/DataDog/HASH/main/docs/hash-intro.png "HASH") - - +HASH is a framework for creating and launching low interactive honeypots. +![HASH](https://raw.githubusercontent.com/DataDog/HASH/main/docs/hash-intro.png 'HASH') # 🌟 Why HASH? -The main philosophy of HASH is to be easy to configure and flexible to mimic any software running on HTTP/HTTPs. With the minimum footprint possible to avoid being detected as honeypot. +The main philosophy of HASH is to be easy to configure and flexible to mimic any software running on HTTP/HTTPs. With the minimum footprint possible to avoid being detected as honeypot. # ⚡ Features -* Single framework to deploy HTTP/HTTPs based honeypots -* Easily configurable via YAML files -* Built-in honeytraps -* Powerful randomization based on `fakerjs` to avoid honeypot detection -* Optionally, integration with Datadog to ingest and analyze honeypots logs and HTTP requests through APM - - - +- Single framework to deploy HTTP/HTTPs based honeypots +- Easily configurable via YAML files +- Built-in honeytraps +- Powerful randomization based on `fakerjs` to avoid honeypot detection +- Optionally, integration with Datadog to ingest and analyze honeypots logs and HTTP requests through APM # 🚀 Getting Started +<<<<<<< HEAD HASH is built using Node.js but it can mimic any web-based language / server based on the configuration. Read the full docs below. +======= -## Installation +HASH is built using Node.js but it can mimic any web based language / server based on the configuration. Read the full docs below. +>>>>>>> 5062f89 (lint) +## Installation -### You can Install it via NPM +### You can Install it via NPM ``` npm install -g hash-honeypot ``` - ### Or you can use it directly from docker ``` docker run --rm ghcr.io/datadog/hash help ``` - ## Usage ### Generate honeypot profile + HASH uses YAML files to configure how it simulate the desired software, The typical structure for the profile folder is the following ``` @@ -82,7 +79,6 @@ Options: hash-honeypot generate myhoneypot --name my-honey-pot --template default ``` - You can also convert swagger files to honeypot directly from the `generate` command **Example converting swagger file(s) to honeypot** @@ -91,7 +87,6 @@ You can also convert swagger files to honeypot directly from the `generate` comm hash-honeypot generate sample-swagger2 -n sample -s ./test-swagger/test-swagger.yaml ``` - ### Running the honeypot ``` @@ -108,7 +103,6 @@ Options: -h, --help display help for command ``` - **example** ``` @@ -117,54 +111,54 @@ hash-honeypot my-honeypot-profile -l file -f ./logs/hash.log > If you are using Datadog for logs make sure you export the datadog api key `export DD_API_KEY=` - - - ## Customization and configuration -You can customize the your honeypot profile as you want - +You can customize the your honeypot profile as you want **Example request template:** ```yaml id: sqli-error info: - title: "SQL error honeytrap" + title: 'SQL error honeytrap' requests: - - isTrap: false - expect: - method: GET - path: '/author/:Id([0-9]+)' - reply: - status: 200 - headers: - content-type: "text/html" - body: - view: "author.html" - - isTrap: true - expect: - method: GET - path: '/author/:Id' - reply: - status: 500 - headers: - content-type: "text/html" - body: - contents: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2" -``` - + - isTrap: false + expect: + method: GET + path: '/author/:Id([0-9]+)' + reply: + status: 200 + headers: + content-type: 'text/html' + body: + view: 'author.html' + - isTrap: true + expect: + method: GET + path: '/author/:Id' + reply: + status: 500 + headers: + content-type: 'text/html' + body: + contents: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2" +``` + +<<<<<<< HEAD Read the configuration reference [here](./docs/config.md) or see the examples [here](./Examples). +======= +Read the config documentation [here](./docs/config.md) or see the examples [here](./Examples) +>>>>>>> 5062f89 (lint) ## Future work -- [X] Create examples folder to show HASH features -- [X] Ability to import API documentation formats (swagger ..etc) -- [X] Package hash as module for easier distribution -- [ ] Add capabilities for medium interactions -- [ ] Add popular honeytraps -- [ ] Add unit & integration tests +- [x] Create examples folder to show HASH features +- [x] Ability to import API documentation formats (swagger ..etc) +- [x] Package hash as module for easier distribution +- [ ] Add capabilities for medium interactions +- [ ] Add popular honeytraps +- [ ] Add unit & integration tests ## License and Contribution diff --git a/cli/generate.js b/cli/generate.js index 20daf47..d23501b 100644 --- a/cli/generate.js +++ b/cli/generate.js @@ -1,241 +1,244 @@ // const fs = require('fs') -const fs = require('fs-extra') -const path = require('path') -const SwaggerParser = require("@apidevtools/swagger-parser"); +const fs = require('fs-extra'); +const path = require('path'); +const SwaggerParser = require('@apidevtools/swagger-parser'); const yaml = require('js-yaml'); const TemplateDirectory = __dirname + '/../profiles/'; -const generate = async(appFolder, options) => { - +const generate = async (appFolder, options) => { let template = options.template; - if(options.swagger){ - template = "empty" //overwrite the template + if (options.swagger) { + template = 'empty'; //overwrite the template } - - const availableTemplates = getAvailableTemplates(); - if(!availableTemplates.includes(template)){ - console.error("Template %s not exists, the available templates are (%s)", template, availableTemplates.join(', ')) + if (!availableTemplates.includes(template)) { + console.error( + 'Template %s not exists, the available templates are (%s)', + template, + availableTemplates.join(', ') + ); } - if(!path.isAbsolute(appFolder)){ - appFolder = "./" + appFolder; + if (!path.isAbsolute(appFolder)) { + appFolder = './' + appFolder; } //check if exists - if(fs.existsSync(appFolder)){ - console.error('Target folder: %s is already exists, please remove it or change the target folder', appFolder) + if (fs.existsSync(appFolder)) { + console.error( + 'Target folder: %s is already exists, please remove it or change the target folder', + appFolder + ); process.exit(1); } - console.log('Generating template. Target folder: %s', appFolder) - fs.copySync(TemplateDirectory + template, appFolder) - - replaceTemplateContents(appFolder, options) - + console.log('Generating template. Target folder: %s', appFolder); + fs.copySync(TemplateDirectory + template, appFolder); + replaceTemplateContents(appFolder, options); - if(options.swagger){ + if (options.swagger) { //continue work on swagger - await generateBasedOnSwagger(appFolder, options) + await generateBasedOnSwagger(appFolder, options); process.exit(1); } - -} - +}; const replaceTemplateContents = (appFolder, options) => { - let initContents = fs.readFileSync(appFolder + "/init.yaml", { encoding:"utf8"}) - - initContents = initContents.replace("{%HoneypotName%}", options.name || "default-name"); - initContents = initContents.replace("{%DefaultHome%}", " "); //replace with empty string for now, TODO: add customization - - fs.writeFileSync(appFolder + "/init.yaml", initContents); -} - + let initContents = fs.readFileSync(appFolder + '/init.yaml', { + encoding: 'utf8', + }); + initContents = initContents.replace( + '{%HoneypotName%}', + options.name || 'default-name' + ); + initContents = initContents.replace('{%DefaultHome%}', ' '); //replace with empty string for now, TODO: add customization + fs.writeFileSync(appFolder + '/init.yaml', initContents); +}; const generateBasedOnSwagger = async (appFolder, options) => { - let swaggerFile = options.swagger; - if(!path.isAbsolute(swaggerFile)){ - swaggerFile = "./" + swaggerFile; + if (!path.isAbsolute(swaggerFile)) { + swaggerFile = './' + swaggerFile; } - - if(!fs.existsSync(swaggerFile)){ - console.error('Swagger file %s is not exists', swaggerFile) - process.exit(1) + if (!fs.existsSync(swaggerFile)) { + console.error('Swagger file %s is not exists', swaggerFile); + process.exit(1); } try { let api = await SwaggerParser.validate(swaggerFile); - console.log("API name: %s, Version: %s", api.info.title, api.info.version); + console.log( + 'API name: %s, Version: %s', + api.info.title, + api.info.version + ); //console.log('paths', api.paths) for (const path in api.paths) { - const requests = api.paths[path]; - let pathJSON = generatePath(appFolder, path, requests) + let pathJSON = generatePath(appFolder, path, requests); let pathYAML = yaml.dump(pathJSON); - fs.writeFileSync(appFolder + "/templates/" + pathJSON.id + '.yaml', pathYAML); - + fs.writeFileSync( + appFolder + '/templates/' + pathJSON.id + '.yaml', + pathYAML + ); } - } - catch(err) { + } catch (err) { console.error(err); } - -} - +}; const generateSlug = (path) => { - let slug = path.replaceAll("/","-").replaceAll(/[{}]+/g, "") + let slug = path.replaceAll('/', '-').replaceAll(/[{}]+/g, ''); let randomNumericId = Math.round(Math.random() * 100000); return randomNumericId + slug; -} +}; const generatePath = (appFolder, path, requests) => { + let slug = generateSlug(path); - let slug = generateSlug(path) - - let pathObj = { id: slug, info: { - title: path + " route" + title: path + ' route', }, - requests: [] - } + requests: [], + }; for (const method in requests) { - const request = requests[method]; + const request = requests[method]; - let pathToRoute = path.replaceAll(/{([a-z0-9_-]+)}/g, ":$1") //this is to convert parameter from /{some}/ to the params which hash understand /:some/ - let DatafileName = slug + '-' + method+'.json'; + let pathToRoute = path.replaceAll(/{([a-z0-9_-]+)}/g, ':$1'); //this is to convert parameter from /{some}/ to the params which hash understand /:some/ + let DatafileName = slug + '-' + method + '.json'; pathObj.requests.push({ - expect:{ + expect: { method: method.toUpperCase(), - path: pathToRoute + path: pathToRoute, }, - reply:{ + reply: { status: Object.keys(request.responses)[0], - headers:{ - "content-type": "application/json" + headers: { + 'content-type': 'application/json', }, - body:{ - view: DatafileName - } - } - }) - - - let res = buildResponse(request.responses[Object.keys(request.responses)[0]].schema, pathToRoute) //Currently support the first response - fs.writeFileSync(appFolder + "/templates/resources/" + DatafileName, JSON.stringify(res, null, 2)); + body: { + view: DatafileName, + }, + }, + }); + let res = buildResponse( + request.responses[Object.keys(request.responses)[0]].schema, + pathToRoute + ); //Currently support the first response + fs.writeFileSync( + appFolder + '/templates/resources/' + DatafileName, + JSON.stringify(res, null, 2) + ); } return pathObj; -} - +}; const buildResponse = (schema, pathToRoute) => { - // console.log("PTR", pathToRoute) - - if(schema.type == 'object'){ + + if (schema.type == 'object') { let tmpRes = {}; //build properties for (const propertyKey in schema.properties) { const propertyVal = schema.properties[propertyKey]; - if(propertyVal.type == 'object'){ - tmpRes[propertyKey] = buildResponse(propertyVal, pathToRoute) - }else{ - tmpRes[propertyKey] = autoDiscoverRandomization(propertyKey, propertyVal.type, pathToRoute) //deal with different types + if (propertyVal.type == 'object') { + tmpRes[propertyKey] = buildResponse(propertyVal, pathToRoute); + } else { + tmpRes[propertyKey] = autoDiscoverRandomization( + propertyKey, + propertyVal.type, + pathToRoute + ); //deal with different types } } return tmpRes; } - if(schema.type == 'array'){ + if (schema.type == 'array') { let tmpRes = []; //randomize the number of the items let randomNum = Math.round(Math.random() * 10); for (let index = 0; index < randomNum; index++) { - tmpRes.push(buildResponse(schema.items, pathToRoute)) + tmpRes.push(buildResponse(schema.items, pathToRoute)); } return tmpRes; } - -} - - - +}; const autoDiscoverRandomization = (keyName, type, pathToRoute) => { - //if its used in the route parameter we should reflect this in the response - if(pathToRoute.indexOf(":" + keyName) !== -1){ - return '{{ params.'+keyName+ ' }}' + if (pathToRoute.indexOf(':' + keyName) !== -1) { + return '{{ params.' + keyName + ' }}'; } - //standaralize keyName = keyName.replaceAll(/[\s_-]+/g, ''); keyName = keyName.toLocaleLowerCase(); //now discover - if(['name', 'firstname', 'lastname', 'fullname'].includes(keyName)){ + if (['name', 'firstname', 'lastname', 'fullname'].includes(keyName)) { //its a name - return "$" + return '$'; } - if(['sex', 'gender'].includes(keyName)){ + if (['sex', 'gender'].includes(keyName)) { //its a name - return "$" + return '$'; } - if(['birthdate', 'date'].includes(keyName)){ + if (['birthdate', 'date'].includes(keyName)) { //its a name - return "$" + return '$'; } - if(['address', 'street1', 'street2', 'address1', 'address2'].includes(keyName)){ + if ( + ['address', 'street1', 'street2', 'address1', 'address2'].includes( + keyName + ) + ) { //its a name - return "$" + return '$'; } - if(['city', 'state'].includes(keyName)){ + if (['city', 'state'].includes(keyName)) { //its a name - return "$" + return '$'; } - if(['postalcode', 'postal', 'zipcode', 'zip'].includes(keyName)){ + if (['postalcode', 'postal', 'zipcode', 'zip'].includes(keyName)) { //its a name - return "$" + return '$'; } //raturn random based on type - if(type == 'string'){ - return '$' + if (type == 'string') { + return '$'; } - if(type == 'integer'){ - return '$' + if (type == 'integer') { + return '$'; } -} - +}; const getAvailableTemplates = () => { return fs.readdirSync(TemplateDirectory); -} +}; -module.exports = generate \ No newline at end of file +module.exports = generate; diff --git a/cli/run.js b/cli/run.js index 3f604c2..e6aeb52 100644 --- a/cli/run.js +++ b/cli/run.js @@ -3,7 +3,6 @@ const { newApp } = require('../libs/app'); const { newLogger } = require('../libs/log'); const run = (appFolder, options) => { - //validate the folder first const app = newApp(appFolder); @@ -43,7 +42,9 @@ const run = (appFolder, options) => { //overwrite express error handler http.use((err, req, res, next) => { - app.logger.error('HTTP -> 500 error: ' + err.message, { stack: err.stack }); + app.logger.error('HTTP -> 500 error: ' + err.message, { + stack: err.stack, + }); res.status(200).send('!!'); }); @@ -55,7 +56,6 @@ const run = (appFolder, options) => { http.listen(config.port, () => { app.logger.info(`App -> listening on port ${config.port}`); }); +}; -} - -module.exports = run \ No newline at end of file +module.exports = run; diff --git a/docker-compose.yaml b/docker-compose.yaml index 783f148..6903ef7 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,34 +1,34 @@ -version: "3.9" +version: '3.9' services: - agent: - image: datadog/agent:latest - ports: - - "8126:8126" - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - - /proc/:/host/proc/:ro - - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro - environment: - - DD_APM_ENABLED=true - - DD_APM_NON_LOCAL_TRAFFIC=true - - DD_API_KEY=${DD_API_KEY} - - DD_SITE=${DD_SITE:-datadoghq.com} - - DD_ENV=prod - default: - build: - context: . - dockerfile: Dockerfile - environment: - - DD_AGENT_HOST=agent - - DD_TRACE_AGENT_PORT=8126 - - DD_TRACER_ENABLED=true - - DD_APPSEC_ENABLED=true - - DD_SERVICE=${DD_SERVICE:-sec-research} - - DD_TRACE_DEBUG=false - - DD_ENV=prod - tty: true - depends_on: - agent: - condition: service_healthy - ports: - - 8081:3000 \ No newline at end of file + agent: + image: datadog/agent:latest + ports: + - '8126:8126' + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - /proc/:/host/proc/:ro + - /sys/fs/cgroup/:/host/sys/fs/cgroup:ro + environment: + - DD_APM_ENABLED=true + - DD_APM_NON_LOCAL_TRAFFIC=true + - DD_API_KEY=${DD_API_KEY} + - DD_SITE=${DD_SITE:-datadoghq.com} + - DD_ENV=prod + default: + build: + context: . + dockerfile: Dockerfile + environment: + - DD_AGENT_HOST=agent + - DD_TRACE_AGENT_PORT=8126 + - DD_TRACER_ENABLED=true + - DD_APPSEC_ENABLED=true + - DD_SERVICE=${DD_SERVICE:-sec-research} + - DD_TRACE_DEBUG=false + - DD_ENV=prod + tty: true + depends_on: + agent: + condition: service_healthy + ports: + - 8081:3000 diff --git a/docs/config.md b/docs/config.md index 5d993c0..36f5e07 100644 --- a/docs/config.md +++ b/docs/config.md @@ -1,4 +1,5 @@ # HASH Config + Typical honeypot profile follow the this structure ``` @@ -12,44 +13,42 @@ Typical honeypot profile follow the this structure |____init.yaml ``` - The main configurations live inside `init.yaml` and `templates/` folder ## init.yaml + The main configuration file, loaded when the framework initialized. ```yaml -name: "default" +name: 'default' port: 3000 headers: - - Server: "Apache/2.4.19" + - Server: 'Apache/2.4.19' ``` - -| Name | Description | Default -| ------------- |-------------| -----| -| name | the honeypot name | default | -| port | the application port | 3000 | -| headers | list of the headers to be exposed | none | -| disableBuiltIn | list of builtin features you want to disable | none | +| Name | Description | Default | +| -------------- | -------------------------------------------- | ------- | +| name | the honeypot name | default | +| port | the application port | 3000 | +| headers | list of the headers to be exposed | none | +| disableBuiltIn | list of builtin features you want to disable | none | ### disable builtIn features -HASH is shipped with some builtIn features like cookie tracking and traps, you can disable anyof them by defining this in your init.yaml file +HASH is shipped with some builtIn features like cookie tracking and traps, you can disable anyof them by defining this in your init.yaml file ```yaml -honeypot-name: "service" +honeypot-name: 'service' port: 5000 headers: - "Api-Version": 2.1 - "Server": "Service/5.5.5 (linux)" + 'Api-Version': 2.1 + 'Server': 'Service/5.5.5 (linux)' disableBuiltIn: - - traps + - traps ``` - - ## Request template + Thie is the main component which define the endpoints the honeypot will implement, and their behavior. Example: @@ -57,65 +56,64 @@ Example: ```yaml id: cgi-bin info: - title: "cgi-bin trap" + title: 'cgi-bin trap' requests: - - isTrap: true - expect: - method: GET - path: '/cgi-bin' - reply: - status: 500 - headers: - content-type: "text/plain" - body: - contents: "You are not allowed to access this folder" + - isTrap: true + expect: + method: GET + path: '/cgi-bin' + reply: + status: 500 + headers: + content-type: 'text/plain' + body: + contents: 'You are not allowed to access this folder' ``` -| Name | Description | Default | Optional -| ------------- |-------------| -----| -----| -| id | the request Id (must be unique) | - | No | -| info | key/value pairs for request metadata - its helpful when review the logs | - | Yes | -| requests | an array of the requests in this yaml file | - | No | -| -- isTrap | if true, any hit to this route will be marked as malicious and will be logged | false | Yes | -| -- expect | description of the route | - | No | -| -- -- method | the HTTP request method (GET/POST/HEAD/PUT/DELETE/OPTIONS) | GET | No | -| -- -- path | the route's name | - | No | -| -- reply | the response template for the request | - | No | -| -- -- status | response status code | 200 | No | -| -- -- headers | list of headers to be returned with the response | - | Yes | -| -- -- body | the response body | - | No | -| -- -- -- contents | the content of the response | - | Yes | -| -- -- -- view | the file containing the view (see: using rendered template) | - | Yes | -| -- -- -- static | static file rendering | - | Yes | - +| Name | Description | Default | Optional | +| ----------------- | ----------------------------------------------------------------------------- | ------- | -------- | +| id | the request Id (must be unique) | - | No | +| info | key/value pairs for request metadata - its helpful when review the logs | - | Yes | +| requests | an array of the requests in this yaml file | - | No | +| -- isTrap | if true, any hit to this route will be marked as malicious and will be logged | false | Yes | +| -- expect | description of the route | - | No | +| -- -- method | the HTTP request method (GET/POST/HEAD/PUT/DELETE/OPTIONS) | GET | No | +| -- -- path | the route's name | - | No | +| -- reply | the response template for the request | - | No | +| -- -- status | response status code | 200 | No | +| -- -- headers | list of headers to be returned with the response | - | Yes | +| -- -- body | the response body | - | No | +| -- -- -- contents | the content of the response | - | Yes | +| -- -- -- view | the file containing the view (see: using rendered template) | - | Yes | +| -- -- -- static | static file rendering | - | Yes | ### Using multiple requests ```yaml id: sqli-error info: - title: "SQL error honeytrap" + title: 'SQL error honeytrap' requests: - - isTrap: false - expect: - method: GET - path: '/author/:Id([0-9]+)' - reply: - status: 200 - headers: - content-type: "text/html" - body: - view: "author.html" - - isTrap: true - expect: - method: GET - path: '/author/:Id' - reply: - status: 500 - headers: - content-type: "text/html" - body: - contents: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2" + - isTrap: false + expect: + method: GET + path: '/author/:Id([0-9]+)' + reply: + status: 200 + headers: + content-type: 'text/html' + body: + view: 'author.html' + - isTrap: true + expect: + method: GET + path: '/author/:Id' + reply: + status: 500 + headers: + content-type: 'text/html' + body: + contents: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2" ``` -In the above example you can see two requests definition for the same endpoint. The first one define the legitimate call (ex: `author/1`) where the application reply with `author.html`. But if the attacker tries to manipulate the argument and provide a non-numeric value (such as `author/999 or 1=1`), it will fall in the trap and the framework will reply with a `500` error along with the standard MySQL error message `You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2` \ No newline at end of file +In the above example you can see two requests definition for the same endpoint. The first one define the legitimate call (ex: `author/1`) where the application reply with `author.html`. But if the attacker tries to manipulate the argument and provide a non-numeric value (such as `author/999 or 1=1`), it will fall in the trap and the framework will reply with a `500` error along with the standard MySQL error message `You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2` diff --git a/docs/routing.md b/docs/routing.md index 6f0a06c..1586c02 100644 --- a/docs/routing.md +++ b/docs/routing.md @@ -3,25 +3,26 @@ Because HASH is built on top of expressJS we can leverage all the power of express js routing, using named parameters and regex in the URL Here is some examples. see more [here](https://expressjs.com/en/guide/routing.html) -* `/ab?cd` match `acd` and `abcd`. -* `/.*fly$` match `butterfly` and `dragonfly`, but not `butterflyman`, `dragonflyman` + +- `/ab?cd` match `acd` and `abcd`. +- `/.*fly$` match `butterfly` and `dragonfly`, but not `butterflyman`, `dragonflyman` HASH support using the route parameters, you can leverage it in the body view. Look at the next example ```yaml id: api info: - title: "API" + title: 'API' requests: - - expect: - method: GET - path: '/user/:userId(\d+)' - reply: - status: 200 - headers: - content-type: "application/json" - body: - view: "example.html" + - expect: + method: GET + path: '/user/:userId(\d+)' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + view: 'example.html' ``` The parameter `userId` will be available to be used directly in the body view `example.html` diff --git a/docs/views.md b/docs/views.md index b69d6eb..7451c57 100644 --- a/docs/views.md +++ b/docs/views.md @@ -1,47 +1,49 @@ # Views rendering + Views are stored in `templates/resources`, you can store any kind of files there `html`, `json`, `xml` ...etc and your static assets as well `css`, `js`, `favicon` ..etc You can use it easily like this in your request templates > `templates/example1.yaml` + ```yaml id: view-example info: - title: "View Example" + title: 'View Example' requests: - - expect: - method: GET - path: '/articles' - reply: - status: 200 - headers: - content-type: "text/html" - body: - view: "articles.html" #<- the name of the file + - expect: + method: GET + path: '/articles' + reply: + status: 200 + headers: + content-type: 'text/html' + body: + view: 'articles.html' #<- the name of the file ``` -If you want to use static file (no randomization of content or any text processing) just use the property `static` +If you want to use static file (no randomization of content or any text processing) just use the property `static` > `templates/example2.yaml` + ```yaml id: favicon-example info: - title: "favicon Example" + title: 'favicon Example' requests: - - expect: - method: ALL - path: '/favicon.ico' - reply: - status: 200 - headers: - content-type: "image/x-icon" - body: - static: "favicon.ico" #<- the name of the file + - expect: + method: ALL + path: '/favicon.ico' + reply: + status: 200 + headers: + content-type: 'image/x-icon' + body: + static: 'favicon.ico' #<- the name of the file ``` > note: make sure to use the correct content-type if you want to make it work properly in the browser - ## Randomization via FakerJS In order to make it realistic enough and avoid being detected as honeypot, HASH support content randomization using [fakerJs](https://fakerjs.dev) @@ -49,6 +51,7 @@ In order to make it realistic enough and avoid being detected as honeypot, HASH Example template > `templates/resources/user-api.json` + ```json { "login": "$", @@ -70,69 +73,70 @@ Example template } ``` - - For any fakerJS api just use the following conversion `$`. -So for example if you want to generate 5 paragraphs, You can use `$` which is equilivant to `faker.lorem.paragraph(5)` - -Check [FakerJs documentation](https://fakerjs.dev/api/) for the full list of APIs you can use +So for example if you want to generate 5 paragraphs, You can use `$` which is equilivant to `faker.lorem.paragraph(5)` +Check [FakerJs documentation](https://fakerjs.dev/api/) for the full list of APIs you can use ## Template via Mustache + HASH is using [Mustache](https://mustache.github.io) to handle the view rendering, So basically you can use Mustache capabilities to render the views -For Mustache syntax use the standard `{{` `}}` to wrap the dynamic contents. And you can set the template variable inside request templates in `reply.body.vars` +For Mustache syntax use the standard `{{` `}}` to wrap the dynamic contents. And you can set the template variable inside request templates in `reply.body.vars` Example: > `templates/articles.yaml` + ```yaml id: view-example info: - title: "View Example" + title: 'View Example' requests: - - expect: - method: GET - path: '/articles' - reply: - status: 200 - headers: - content-type: "text/html" - body: - view: "articles.html" - vars: - links: - - title: home - link: "/" - - title: about - link: "/about" - - title: contact - link: "/contact" + - expect: + method: GET + path: '/articles' + reply: + status: 200 + headers: + content-type: 'text/html' + body: + view: 'articles.html' + vars: + links: + - title: home + link: '/' + - title: about + link: '/about' + - title: contact + link: '/contact' ``` -And in the template +And in the template > `templates/resources/articles.html` + ```html {{#links}} {{title}} {{/links}} ``` -Mustache will take care of rendering your content. See the full documentation [here](https://mustache.github.io/mustache.5.html) - +Mustache will take care of rendering your content. See the full documentation [here](https://mustache.github.io/mustache.5.html) ## dates + Dates is special componenet, because sometimes it needs to be refreshed with every request and sometime it needs to be static (eg. date in the past) -* static dates +- static dates ```js $ //2050-05-15T16:19:19.092Z $ //2013-10-25T21:34:19.488Z ``` -* live date +- live date + ```js $ //2023-02-09T14:24:04.243442922Z $ //4102444800 diff --git a/index.js b/index.js index f3b5134..79ef020 100644 --- a/index.js +++ b/index.js @@ -1,34 +1,40 @@ 'use strict'; -const run = require('./cli/run') -const generate = require('./cli/generate') +const run = require('./cli/run'); +const generate = require('./cli/generate'); //setup the cli //hash ./laravel const { Command } = require('commander'); const program = new Command(); program - .name('HASH') - .description('HTTP Agnostic Software Honeypot') - .version('1.0.2'); + .name('HASH') + .description('HTTP Agnostic Software Honeypot') + .version('1.0.2'); -program.command('run') +program + .command('run') .description('Run HASH') .argument('', 'path/to the template folder') - .option('-l, --log ', 'logging transport', 'console,file,datadog') + .option( + '-l, --log ', + 'logging transport', + 'console,file,datadog' + ) .option('-f, --log_file ', 'logging filename', 'hash.log') .action((appFolder, options) => { - run(appFolder, options) + run(appFolder, options); }); -program.command('generate') +program + .command('generate') .description('Generate honeypot profile') .argument('', 'path/to the app') .option('-t --template ', 'base template', 'default') .option('-n --name ', 'Honeypot name') .option('-s --swagger ', 'Path to swagger file to convert') .action(async (appFolder, options) => { - await generate(appFolder, options) + await generate(appFolder, options); }); program.parse(); diff --git a/libs/app.js b/libs/app.js index 8dd6813..4dc38cc 100644 --- a/libs/app.js +++ b/libs/app.js @@ -1,6 +1,5 @@ const fs = require('fs'); - module.exports.newApp = (appDir) => { const initFile = appDir + '/init.yaml'; const templatesDir = appDir + '/templates'; diff --git a/libs/config.js b/libs/config.js index 9bae636..c1d2f60 100644 --- a/libs/config.js +++ b/libs/config.js @@ -2,7 +2,7 @@ const fs = require('fs'); const yaml = require('js-yaml'); const defaultConfig = { - name: "hash-default-name", + name: 'hash-default-name', port: 3000, headers: {}, }; diff --git a/libs/log.js b/libs/log.js index b752f5e..e961e86 100644 --- a/libs/log.js +++ b/libs/log.js @@ -1,12 +1,10 @@ const winston = require('winston'); -const path = require('path') +const path = require('path'); const MAX_FILE_SIZE = 1000000; const MAX_FILES = 100; - module.exports.newLogger = (config) => { - const availableTransports = { console: () => { return new winston.transports.Console({ @@ -18,15 +16,17 @@ module.exports.newLogger = (config) => { }, file: () => { if (!config.options.log_file) { - config.options.log_file = path.resolve(process.cwd(), 'hash.log') + config.options.log_file = path.resolve( + process.cwd(), + 'hash.log' + ); } return new winston.transports.File({ - tailable:true, + tailable: true, filename: config.options.log_file, maxsize: MAX_FILE_SIZE, - maxFiles: MAX_FILES + maxFiles: MAX_FILES, }); - }, datadog: () => { const datadogServiceName = @@ -34,12 +34,14 @@ module.exports.newLogger = (config) => { config.name || 'hash-deafult-service'; const datadogApiKey = process.env.DD_API_KEY; - + if (!datadogApiKey) { - console.error('Missing Datadog API key - specify DD_API_KEY to activate the \'datadog\' log transport') + console.error( + "Missing Datadog API key - specify DD_API_KEY to activate the 'datadog' log transport" + ); return false; } - + require('dd-trace').init({ appsec: true, logInjection: true, @@ -49,39 +51,40 @@ module.exports.newLogger = (config) => { host: 'http-intake.logs.datadoghq.com', path: encodeURIComponent( '/api/v2/logs?dd-api-key=' + - process.env.DD_API_KEY + - '&ddsource=nodejs&service=' + - datadogServiceName + process.env.DD_API_KEY + + '&ddsource=nodejs&service=' + + datadogServiceName ), ssl: true, }); }, }; - + const logger = winston.createLogger({ level: 'info', exitOnError: false, format: winston.format.json(), }); - + //parse the logs transports let transports = config.options.log ? config.options.log.split(',') : ['console']; //default is console - + for (const transport of transports) { if (availableTransports[transport]) { let logTransport = availableTransports[transport](); - if(logTransport){ + if (logTransport) { logger.add(logTransport); logger.info('Log -> Enable log transport: ' + transport); - }else{ + } else { logger.error('Error enabling log transport: ' + transport); } - } else { - throw new Error('Log -> log transport "' + transport + '" not found.'); + throw new Error( + 'Log -> log transport "' + transport + '" not found.' + ); } } return logger; -} \ No newline at end of file +}; diff --git a/libs/simulator.js b/libs/simulator.js index ad59de7..2398246 100644 --- a/libs/simulator.js +++ b/libs/simulator.js @@ -134,7 +134,6 @@ class Simulator { ); } - res.set(reply.headers); if (reply.body.static) { diff --git a/profiles/default/init.yaml b/profiles/default/init.yaml index 64ec90e..0ca4308 100644 --- a/profiles/default/init.yaml +++ b/profiles/default/init.yaml @@ -1,4 +1,4 @@ -honeypot-name: "{%HoneypotName%}" +honeypot-name: '{%HoneypotName%}' port: 3000 headers: - "Server": "nginx" \ No newline at end of file + 'Server': 'nginx' diff --git a/profiles/default/templates/404.yaml b/profiles/default/templates/404.yaml index b3a30c8..07333f9 100644 --- a/profiles/default/templates/404.yaml +++ b/profiles/default/templates/404.yaml @@ -1,13 +1,13 @@ id: not_found info: - title: "404 not found" + title: '404 not found' requests: - - expect: - method: GET - path: '*' - reply: - status: 404 - headers: - content-type: "text/html" - body: - contents: "404 not found" \ No newline at end of file + - expect: + method: GET + path: '*' + reply: + status: 404 + headers: + content-type: 'text/html' + body: + contents: '404 not found' diff --git a/profiles/default/templates/api.yaml b/profiles/default/templates/api.yaml index 52aae0b..68b079f 100644 --- a/profiles/default/templates/api.yaml +++ b/profiles/default/templates/api.yaml @@ -1,13 +1,13 @@ id: api info: - title: "API" + title: 'API' requests: - - expect: - method: GET - path: '/user/:userId(\d+)' - reply: - status: 200 - headers: - content-type: "application/json" - body: - view: "user-api.json" \ No newline at end of file + - expect: + method: GET + path: '/user/:userId(\d+)' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + view: 'user-api.json' diff --git a/profiles/default/templates/articles.yaml b/profiles/default/templates/articles.yaml index d6aefd3..e1db988 100644 --- a/profiles/default/templates/articles.yaml +++ b/profiles/default/templates/articles.yaml @@ -1,21 +1,21 @@ id: view-example info: - title: "View Example" + title: 'View Example' requests: - - expect: - method: GET - path: '/articles' - reply: - status: 200 - headers: - content-type: "text/html" - body: - view: "articles.html" - vars: - links: - - title: home - link: "/" - - title: about - link: "/about" - - title: contact - link: "/contact" \ No newline at end of file + - expect: + method: GET + path: '/articles' + reply: + status: 200 + headers: + content-type: 'text/html' + body: + view: 'articles.html' + vars: + links: + - title: home + link: '/' + - title: about + link: '/about' + - title: contact + link: '/contact' diff --git a/profiles/default/templates/cgi-bin.yaml b/profiles/default/templates/cgi-bin.yaml index cfcad38..f64768e 100644 --- a/profiles/default/templates/cgi-bin.yaml +++ b/profiles/default/templates/cgi-bin.yaml @@ -1,14 +1,14 @@ id: cgi-bin info: - title: "cgi-bin trap" + title: 'cgi-bin trap' requests: - - isTrap: true - expect: - method: GET - path: '/cgi-bin' - reply: - status: 500 - headers: - content-type: "text/plain" - body: - contents: "You are not allowed to access this folder" \ No newline at end of file + - isTrap: true + expect: + method: GET + path: '/cgi-bin' + reply: + status: 500 + headers: + content-type: 'text/plain' + body: + contents: 'You are not allowed to access this folder' diff --git a/profiles/default/templates/default.yaml b/profiles/default/templates/default.yaml index 8d55e8a..fa68527 100644 --- a/profiles/default/templates/default.yaml +++ b/profiles/default/templates/default.yaml @@ -1,13 +1,13 @@ id: default info: - title: "Default" + title: 'Default' requests: - - expect: - method: GET - path: '/' - reply: - status: 200 - headers: - content-type: "text/html" - body: - view: "index.html" \ No newline at end of file + - expect: + method: GET + path: '/' + reply: + status: 200 + headers: + content-type: 'text/html' + body: + view: 'index.html' diff --git a/profiles/default/templates/resources/articles.html b/profiles/default/templates/resources/articles.html index 5a3941b..e020eb0 100644 --- a/profiles/default/templates/resources/articles.html +++ b/profiles/default/templates/resources/articles.html @@ -1,3 +1,3 @@ {{#links}} {{title}} -{{/links}} \ No newline at end of file +{{/links}} diff --git a/profiles/empty/init.yaml b/profiles/empty/init.yaml index 64ec90e..0ca4308 100644 --- a/profiles/empty/init.yaml +++ b/profiles/empty/init.yaml @@ -1,4 +1,4 @@ -honeypot-name: "{%HoneypotName%}" +honeypot-name: '{%HoneypotName%}' port: 3000 headers: - "Server": "nginx" \ No newline at end of file + 'Server': 'nginx' diff --git a/profiles/empty/templates/default.yaml b/profiles/empty/templates/default.yaml index 7565939..0cab14f 100644 --- a/profiles/empty/templates/default.yaml +++ b/profiles/empty/templates/default.yaml @@ -1,13 +1,13 @@ id: default info: - title: "Default" + title: 'Default' requests: - - expect: - method: GET - path: '/' - reply: - status: 200 - headers: - content-type: "text/html" - body: - contents: "{%DefaultHome%}" \ No newline at end of file + - expect: + method: GET + path: '/' + reply: + status: 200 + headers: + content-type: 'text/html' + body: + contents: '{%DefaultHome%}' diff --git a/profiles/spring-boot-example/README.md b/profiles/spring-boot-example/README.md index 5b7a6c9..b275646 100644 --- a/profiles/spring-boot-example/README.md +++ b/profiles/spring-boot-example/README.md @@ -1,26 +1,23 @@ - -Springboot Sample Application -------- +## Springboot Sample Application Features -- Springboot Favicon, to be easily identified via `http.favicon.hash:116323821` -- Default Actuators endpoints -- Sample API endpoints -- default 404 errors +- Springboot Favicon, to be easily identified via `http.favicon.hash:116323821` +- Default Actuators endpoints +- Sample API endpoints +- default 404 errors ### Auth -| Method | Url | Decription | -| ------ | --- | ---------- | -| POST | /api/login | Log in | - +| Method | Url | Decription | +| ------ | ---------- | ---------- | +| POST | /api/login | Log in | ### Articles & Authors -| Method | Url | Description | -| ------ | --- | ----------- | -| GET | /api/articles | Get all articles | +| Method | Url | Description | +| ------ | ----------------- | ----------------- | +| GET | /api/articles | Get all articles | | GET | /api/article/{id} | Get article by id | -| GET | /api/authors | Get all authors | -| GET | /api/author/{id} | Get author info | \ No newline at end of file +| GET | /api/authors | Get all authors | +| GET | /api/author/{id} | Get author info | diff --git a/profiles/spring-boot-example/init.yaml b/profiles/spring-boot-example/init.yaml index ee7a4ab..d576327 100644 --- a/profiles/spring-boot-example/init.yaml +++ b/profiles/spring-boot-example/init.yaml @@ -1,3 +1,3 @@ -honeypot-name: "spring-boot" +honeypot-name: 'spring-boot' port: 3000 -headers: \ No newline at end of file +headers: diff --git a/profiles/spring-boot-example/templates/404.yaml b/profiles/spring-boot-example/templates/404.yaml index b8937ba..c1cf371 100644 --- a/profiles/spring-boot-example/templates/404.yaml +++ b/profiles/spring-boot-example/templates/404.yaml @@ -1,14 +1,14 @@ id: not_found info: - title: "404 not found" + title: '404 not found' requests: - - expect: - method: GET - path: '*' - reply: - status: 404 - headers: - content-type: "text/html" - body: - cache: false - view: "404.html" \ No newline at end of file + - expect: + method: GET + path: '*' + reply: + status: 404 + headers: + content-type: 'text/html' + body: + cache: false + view: '404.html' diff --git a/profiles/spring-boot-example/templates/actuators.yaml b/profiles/spring-boot-example/templates/actuators.yaml index db70ebd..f008c9a 100644 --- a/profiles/spring-boot-example/templates/actuators.yaml +++ b/profiles/spring-boot-example/templates/actuators.yaml @@ -1,47 +1,47 @@ id: actuators info: - title: "Springboot Actuators" + title: 'Springboot Actuators' requests: - - isTrap: true - expect: - method: GET - path: '/actuator/health' - reply: - status: 200 - headers: - content-type: "application/vnd.spring-boot.actuator.v3+json" - body: - contents: '{"status":"UP"}' + - isTrap: true + expect: + method: GET + path: '/actuator/health' + reply: + status: 200 + headers: + content-type: 'application/vnd.spring-boot.actuator.v3+json' + body: + contents: '{"status":"UP"}' - - isTrap: true - expect: - method: GET - path: '/actuator/beans' - reply: - status: 200 - headers: - content-type: "application/json" - body: - view: "actuators_beans.json" + - isTrap: true + expect: + method: GET + path: '/actuator/beans' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + view: 'actuators_beans.json' - - isTrap: true - expect: - method: GET - path: '/actuator/configprops' - reply: - status: 200 - headers: - content-type: "application/vnd.spring-boot.actuator.v3+json" - body: - view: "actuators_configprops.json" + - isTrap: true + expect: + method: GET + path: '/actuator/configprops' + reply: + status: 200 + headers: + content-type: 'application/vnd.spring-boot.actuator.v3+json' + body: + view: 'actuators_configprops.json' - - isTrap: true - expect: - method: GET - path: '/actuator/env' - reply: - status: 200 - headers: - content-type: "application/vnd.spring-boot.actuator.v3+json" - body: - view: "actuators_env.json" \ No newline at end of file + - isTrap: true + expect: + method: GET + path: '/actuator/env' + reply: + status: 200 + headers: + content-type: 'application/vnd.spring-boot.actuator.v3+json' + body: + view: 'actuators_env.json' diff --git a/profiles/spring-boot-example/templates/api_articles.yaml b/profiles/spring-boot-example/templates/api_articles.yaml index 301439e..b6e0a4d 100644 --- a/profiles/spring-boot-example/templates/api_articles.yaml +++ b/profiles/spring-boot-example/templates/api_articles.yaml @@ -1,24 +1,24 @@ id: api_posts info: - title: "API Posts" + title: 'API Posts' requests: - - isTrap: true - expect: - method: GET - path: '/api/article/:userId(\d+)' - reply: - status: 500 - headers: - content-type: "text/html" - body: - contents: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2" - - isTrap: true - expect: - method: GET - path: '/api/articles' - reply: - status: 200 - headers: - content-type: "application/json" - body: - view: "articles.json" + - isTrap: true + expect: + method: GET + path: '/api/article/:userId(\d+)' + reply: + status: 500 + headers: + content-type: 'text/html' + body: + contents: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2" + - isTrap: true + expect: + method: GET + path: '/api/articles' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + view: 'articles.json' diff --git a/profiles/spring-boot-example/templates/api_authors.yaml b/profiles/spring-boot-example/templates/api_authors.yaml index ea7bb8d..bb5a60a 100644 --- a/profiles/spring-boot-example/templates/api_authors.yaml +++ b/profiles/spring-boot-example/templates/api_authors.yaml @@ -1,24 +1,24 @@ id: api_users info: - title: "API User" + title: 'API User' requests: - - isTrap: true - expect: - method: GET - path: '/api/authors' - reply: - status: 200 - headers: - content-type: "application/json" - body: - view: "users.json" - - isTrap: true - expect: - method: GET - path: '/api/author/:userId(\d+)' - reply: - status: 200 - headers: - content-type: "application/json" - body: - view: "user-api.json" \ No newline at end of file + - isTrap: true + expect: + method: GET + path: '/api/authors' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + view: 'users.json' + - isTrap: true + expect: + method: GET + path: '/api/author/:userId(\d+)' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + view: 'user-api.json' diff --git a/profiles/spring-boot-example/templates/api_login.yaml b/profiles/spring-boot-example/templates/api_login.yaml index 378992e..75bae77 100644 --- a/profiles/spring-boot-example/templates/api_login.yaml +++ b/profiles/spring-boot-example/templates/api_login.yaml @@ -1,24 +1,24 @@ id: api_auth info: - title: "API Auth" + title: 'API Auth' requests: - - isTrap: true - expect: - method: GET - path: '/api/login' - reply: - status: 200 - headers: - content-type: "application/json" - body: - contents: '{"status":"error", "message":"Please use POST request to login"}' - - isTrap: true - expect: - method: POST - path: '/api/login' - reply: - status: 200 - headers: - content-type: "application/json" - body: - contents: '{"status":"error", "message":"Invalid credentials"}' \ No newline at end of file + - isTrap: true + expect: + method: GET + path: '/api/login' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + contents: '{"status":"error", "message":"Please use POST request to login"}' + - isTrap: true + expect: + method: POST + path: '/api/login' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + contents: '{"status":"error", "message":"Invalid credentials"}' diff --git a/profiles/spring-boot-example/templates/default.yaml b/profiles/spring-boot-example/templates/default.yaml index d2bda6c..c203da8 100644 --- a/profiles/spring-boot-example/templates/default.yaml +++ b/profiles/spring-boot-example/templates/default.yaml @@ -1,22 +1,22 @@ id: default info: - title: "Default index template" + title: 'Default index template' requests: - - expect: - method: GET - path: '/' - reply: - status: 200 - headers: - content-type: "application/json" - body: - contents: '{"hello":"world", "links": ["/api/login", "/api/articles", "/api/article/{id}","/api/authors", "/api/author/{id}"]}' - - expect: - method: GET - path: '/favicon.ico' - reply: - status: 200 - headers: - content-type: "image/x-icon" - body: - static: "favicon.ico" \ No newline at end of file + - expect: + method: GET + path: '/' + reply: + status: 200 + headers: + content-type: 'application/json' + body: + contents: '{"hello":"world", "links": ["/api/login", "/api/articles", "/api/article/{id}","/api/authors", "/api/author/{id}"]}' + - expect: + method: GET + path: '/favicon.ico' + reply: + status: 200 + headers: + content-type: 'image/x-icon' + body: + static: 'favicon.ico' diff --git a/profiles/spring-boot-example/templates/resources/articles.json b/profiles/spring-boot-example/templates/resources/articles.json index 43d725e..5cb4498 100644 --- a/profiles/spring-boot-example/templates/resources/articles.json +++ b/profiles/spring-boot-example/templates/resources/articles.json @@ -1,55 +1,57 @@ -[{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}, -{ - "id":"$", - "title":"$", - "link":"/api/article/$" -}] \ No newline at end of file +[ + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + }, + { + "id": "$", + "title": "$", + "link": "/api/article/$" + } +] diff --git a/profiles/spring-boot-example/templates/resources/users.json b/profiles/spring-boot-example/templates/resources/users.json index 378510f..c637c6f 100644 --- a/profiles/spring-boot-example/templates/resources/users.json +++ b/profiles/spring-boot-example/templates/resources/users.json @@ -1,12 +1,14 @@ -[{ - "id":"$", - "link":"/api/author/$" -}, -{ - "id":"$", - "link":"/api/author/$" -}, -{ - "id":"$", - "link":"/api/author/$" -}] \ No newline at end of file +[ + { + "id": "$", + "link": "/api/author/$" + }, + { + "id": "$", + "link": "/api/author/$" + }, + { + "id": "$", + "link": "/api/author/$" + } +]