failover-dashboard
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.societegenerale.failover</groupId>
<artifactId>failover-dashboard</artifactId>
<version>3.0.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>failover-dashboard</artifactId>
<packaging>jar</packaging>
<name>failover-dashboard</name>
<description>Opt-in, secure-by-default embedded observability UI and read-only JSON API</description>
<parent>
<artifactId>failover</artifactId>
<groupId>com.societegenerale.failover</groupId>
<version>3.0.0</version>
</parent>
<properties>
<automatic.module.name>com.societegenerale.failover.dashboard</automatic.module.name>
</properties>
<dependencies>
<dependency>
<groupId>com.societegenerale.failover</groupId>
<artifactId>failover-core</artifactId>
<version>${project.parent.version}</version>
</dependency>
<!-- Shared metrics data model (ApiKpis, MetricsSummary, MetricsKpis, etc.) + FailoverMetricsSnapshotService -->
<dependency>
<groupId>com.societegenerale.failover</groupId>
<artifactId>failover-observable-metrics</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<!-- Web stack: provided so the dashboard activates only in an app that already serves MVC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- Micrometer is the metrics source; provided so it activates only when the app already has it -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<scope>provided</scope>
</dependency>
<!-- Jackson — provided: parses Prometheus HTTP-API responses in cluster mode. Any Boot web app
already has it on the classpath; the cluster.mode=prometheus path activates only there. -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<scope>provided</scope>
</dependency>
<!-- Spring Security — provided: the dashboard contributes a gate only when the consumer already
has it; absent ⇒ fail-closed at startup unless allow-insecure (design doc §9 gate 4). -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<scope>provided</scope>
</dependency>
<!-- OAuth2 client — provided/optional: backs the dashboard UI's OAuth2 login gate
(dashboardOAuth2SecurityFilterChain, activated by security.oauth2-client-registration-id).
Only activates when the consumer already has spring-security-oauth2-client on the classpath. -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-client</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<!-- OAuth2 resource server — provided/optional: the dashboard ingest endpoint can be secured
with JWT Bearer tokens when the consumer has spring-security-oauth2-resource-server. -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-resource-server</artifactId>
<scope>provided</scope>
<optional>true</optional>
</dependency>
<!-- TEST -->
<!-- End-to-end IT only: the real failover runtime (aspect + autoconfigure + inmemory store) and
the Micrometer publisher, so a live @Failover call moves the meters the dashboard reads.
TEST scope only — the production artifact stays decoupled from failover-spring-boot-autoconfigure. -->
<dependency>
<groupId>com.societegenerale.failover</groupId>
<artifactId>failover-spring-boot-starter</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.societegenerale.failover</groupId>
<artifactId>failover-observable-micrometer</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc-test</artifactId>
<scope>test</scope>
</dependency>
<!-- oauth2ResourceServer().jwt() needs JwtDecoder, shipped in oauth2-jose rather than
oauth2-resource-server itself; exercises the dashboardIngestOAuth2FilterChain bean in tests. -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-jose</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>