Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions api/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
Expand Down
26 changes: 21 additions & 5 deletions api/src/main/java/io/kafbat/ui/config/ClustersProperties.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

import io.kafbat.ui.model.MetricsConfig;
import jakarta.annotation.PostConstruct;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
Expand All @@ -17,13 +21,15 @@
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated;

@Configuration
@ConfigurationProperties("kafka")
@Data
@Validated
public class ClustersProperties {

List<Cluster> clusters = new ArrayList<>();
List<@Valid Cluster> clusters = new ArrayList<>();

String internalTopicPrefix;

Expand All @@ -33,7 +39,9 @@ public class ClustersProperties {

@Data
public static class Cluster {
@NotBlank(message = "field name for for cluster could not be blank")
String name;
@NotBlank(message = "field bootstrapServers for for cluster could not be blank")
String bootstrapServers;

TruststoreConfig ssl;
Expand All @@ -46,9 +54,9 @@ public static class Cluster {
KsqldbServerAuth ksqldbServerAuth;
KeystoreConfig ksqldbServerSsl;

List<ConnectCluster> kafkaConnect;
List<@Valid ConnectCluster> kafkaConnect;

List<SerdeConfig> serde;
List<@Valid SerdeConfig> serde;
String defaultKeySerde;
String defaultValueSerde;

Expand All @@ -58,9 +66,9 @@ public static class Cluster {

Long pollingThrottleRate;

List<Masking> masking;
List<@Valid Masking> masking;

AuditProperties audit;
@Valid AuditProperties audit;
}

@Data
Expand Down Expand Up @@ -88,7 +96,9 @@ public static class MetricsConfigData {
@Builder(toBuilder = true)
@ToString(exclude = {"password", "keystorePassword"})
public static class ConnectCluster {
@NotBlank
String name;
@NotBlank
String address;
String username;
String password;
Expand Down Expand Up @@ -122,8 +132,11 @@ public static class KeystoreConfig {

@Data
public static class SerdeConfig {
@NotBlank
String name;
@NotBlank
String className;
@NotBlank
String filePath;
Map<String, Object> properties;
String topicKeysPattern;
Expand All @@ -139,6 +152,7 @@ public static class KsqldbServerAuth {

@Data
public static class Masking {
@NotNull
Type type;
List<String> fields;
String fieldsNamePattern;
Expand All @@ -156,10 +170,12 @@ public enum Type {
@NoArgsConstructor
@AllArgsConstructor
public static class AuditProperties {
@NotBlank
String topic;
Integer auditTopicsPartitions;
Boolean topicAuditEnabled;
Boolean consoleAuditEnabled;
@NotNull
LogLevel level;
Map<String, String> auditTopicProperties;

Expand Down
Loading