Skip to content

Commit d866833

Browse files
committed
Merge remote-tracking branch 'origin/main' into issues/reload
2 parents 125a32c + 4e7767b commit d866833

File tree

332 files changed

+16395
-2167
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

332 files changed

+16395
-2167
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33

44
# BACKEND
5+
gradle/libs.versions.toml @kafbat/backend
56
/build.gradle @kafbat/backend
67
/gradle.properties @kafbat/backend
78
/settings.gradle @kafbat/backend

.github/dependabot.yml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,23 @@ updates:
77
interval: weekly
88
time: "10:00"
99
timezone: Europe/London
10-
reviewers:
11-
- "kafbat/backend"
1210
open-pull-requests-limit: 10
1311
labels:
1412
- "type/dependencies"
1513
- "scope/backend"
1614
groups:
17-
gradle-dependencies:
15+
spring-boot-dependencies:
16+
patterns:
17+
- "org.springframework.boot:*"
18+
- "io.spring.dependency-management"
19+
# We will handle major upgrades manually
20+
update-types:
21+
- "patch"
22+
- "minor"
23+
other-dependencies:
24+
exclude-patterns:
25+
- "org.springframework.boot:*"
26+
- "io.spring.dependency-management"
1827
patterns:
1928
- "*"
2029
update-types:
@@ -27,8 +36,6 @@ updates:
2736
interval: weekly
2837
time: "10:00"
2938
timezone: Europe/London
30-
reviewers:
31-
- "kafbat/backend"
3239
open-pull-requests-limit: 10
3340
ignore:
3441
- dependency-name: "azul/zulu-openjdk-alpine"
@@ -43,8 +50,6 @@ updates:
4350
interval: weekly
4451
time: "10:00"
4552
timezone: Europe/London
46-
reviewers:
47-
- "kafbat/frontend"
4853
open-pull-requests-limit: 10
4954
versioning-strategy: increase-if-necessary
5055
labels:
@@ -64,8 +69,6 @@ updates:
6469
interval: weekly
6570
time: "10:00"
6671
timezone: Europe/London
67-
reviewers:
68-
- "kafbat/devops"
6972
open-pull-requests-limit: 10
7073
labels:
7174
- "type/dependencies"

.github/workflows/cve_checks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
cache-to: type=local,dest=/tmp/.buildx-cache
6969

7070
- name: Run CVE checks
71-
uses: aquasecurity/trivy-action@18f2510ee396bbf400402947b394f2dd8c87dbb0 # infered from @v0.29.0
71+
uses: aquasecurity/trivy-action@dc5a429b52fcf669ce959baa2c2dd26090d2a6c4 # infered from @v0.32.0
7272
with:
7373
image-ref: "ghcr.io/kafbat/kafka-ui:latest"
7474
format: "table"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,4 @@ node_modules/
5151
.gradle
5252
@rerun.txt
5353
test-results
54+
frontend/test-report.xml

README.md

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,17 +43,23 @@ We extend our gratitude to Provectus for their past support in groundbreaking wo
4343
![Interface](https://raw.githubusercontent.com/kafbat/kafka-ui/images/overview.gif)
4444

4545
# Features
46-
* **Multi-Cluster Management** — monitor and manage all your clusters in one place
47-
* **Performance Monitoring with Metrics Dashboard** — track key Kafka metrics with a lightweight dashboard
48-
* **View Kafka Brokers** — view topic and partition assignments, controller status
49-
* **View Kafka Topics** — view partition count, replication status, and custom configuration
50-
* **View Consumer Groups** — view per-partition parked offsets, combined and per-partition lag
51-
* **Browse Messages** — browse messages with JSON, plain text, and Avro encoding
52-
* **Dynamic Topic Configuration** — create and configure new topics with dynamic configuration
53-
* **Configurable Authentication**[secure](https://ui.docs.kafbat.io/configuration/authentication) your installation with optional Github/Gitlab/Google OAuth 2.0
54-
* **Custom serialization/deserialization plugins** - [use](https://ui.docs.kafbat.io/configuration/serialization-serde) a ready-to-go serde for your data like AWS Glue or Smile, or code your own!
55-
* **Role based access control** - [manage permissions](https://ui.docs.kafbat.io/configuration/rbac-role-based-access-control) to access the UI with granular precision
56-
* **Data masking** - [obfuscate](https://ui.docs.kafbat.io/configuration/data-masking) sensitive data in topic messages
46+
47+
* **Topic Insights** – View essential topic details including partition count, replication status, and custom configurations.
48+
* **Configuration Wizard** – Set up and configure your Kafka clusters directly through the UI.
49+
* **Multi-Cluster Management** – Monitor and manage all your Kafka clusters in one unified interface.
50+
* **Metrics Dashboard** – Track key Kafka metrics in real time with a streamlined, lightweight dashboard.
51+
* **Kafka Brokers Overview** – Inspect brokers, including partition assignments and controller status.
52+
* **Consumer Group Details** – Analyze parked offsets per partition, and monitor both combined and partition-specific lag.
53+
* **Message Browser** – Explore messages in JSON, plain text, or Avro encoding formats. Live view is supported, enriched with user-defined CEL message filters.
54+
* **Dynamic Topic Management** – Create and configure new topics with flexible, real-time settings.
55+
* **Pluggable Authentication** – Secure your UI using OAuth 2.0 (GitHub, GitLab, Google), LDAP, or basic authentication.
56+
* **Cloud IAM Support** – Integrate with **GCP IAM**, **Azure IAM**, and **AWS IAM** for cloud-native identity and access management.
57+
* **Managed Kafka Service Support** – Full support for **Azure EventHub**, **Google Cloud Managed Service for Apache Kafka**, and **AWS Managed Streaming for Apache Kafka (MSK)**—both server-based and serverless.
58+
* **Custom SerDe Plugin Support** – Use built-in serializers/deserializers like AWS Glue and Smile, or create your own custom plugins.
59+
* **Role-Based Access Control**[Manage granular UI permissions](https://ui.docs.kafbat.io/configuration/rbac-role-based-access-control) with RBAC.
60+
* **Data Masking**[Obfuscate sensitive data](https://ui.docs.kafbat.io/configuration/data-masking) in topic messages to enhance privacy and compliance.
61+
* **MCP Server** - [Model Context Protocol](https://ui.docs.kafbat.io/faq/mcp) Server
62+
5763

5864
## Feature overview
5965

api/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# The tag is ignored when a sha is included but the reason to add it are:
22
# 1. Self Documentation: It is difficult to find out what the expected tag is given a sha alone
33
# 2. Helps dependabot during discovery of upgrades
4-
FROM azul/zulu-openjdk-alpine:21.0.6-jre-headless@sha256:75c5cc1ca1429513b56e9cbe3121bce86476cdec18b5b74b6842ab0af4b5a57f
4+
FROM azul/zulu-openjdk-alpine:21.0.8-jre-headless@sha256:9c7b4b7850bd4cdd78f91b369accc5b55beffa9a073b9a2bb94caa42606b9444
55

66
RUN apk add --no-cache \
77
# snappy codec

api/build.gradle

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,18 @@ dependencies {
1414
implementation project(":contract")
1515
implementation project(":serde-api")
1616
implementation libs.spring.starter.webflux
17-
implementation libs.spring.starter.security
17+
implementation(libs.spring.starter.security){
18+
exclude group: 'com.nimbusds', module: 'nimbus-jose-jwt' because("Temporary overwrite to fix CVE-2025-53864. See https://avd.aquasec.com/nvd/2025/cve-2025-53864/")
19+
}
20+
implementation(libs.nimbus.jose.jwt){
21+
because("Fixes CVE-2025-5386. See https://avd.aquasec.com/nvd/2025/cve-2025-53864/")
22+
}
1823
implementation libs.spring.starter.actuator
1924
implementation libs.spring.starter.logging
2025
implementation libs.spring.starter.oauth2.client
2126
implementation libs.spring.security.oauth2.resource.server
2227
implementation libs.spring.boot.actuator
28+
2329
compileOnly libs.spring.boot.devtools
2430

2531
implementation libs.spring.security.ldap
@@ -28,6 +34,7 @@ dependencies {
2834

2935
implementation libs.apache.avro
3036
implementation libs.apache.commons
37+
implementation libs.apache.commons.text
3138
implementation libs.apache.commons.pool2
3239
implementation libs.apache.datasketches
3340

@@ -43,6 +50,7 @@ dependencies {
4350

4451
implementation libs.jackson.databind.nullable
4552
implementation libs.cel
53+
implementation libs.caffeine
4654
antlr libs.antlr
4755
implementation libs.antlr.runtime
4856

@@ -53,15 +61,14 @@ dependencies {
5361
exclude group: 'io.projectreactor.ipc', module: 'reactor-netty'
5462
}
5563

56-
runtimeOnly libs.micrometer.registry.prometheus
64+
runtimeOnly(libs.micrometer.registry.prometheus) {
65+
exclude group: 'com.google.protobuf', module: 'protobuf-java' because("Micrometer uses protobuf-java 4.x, which is incompatible with protobuf-java 3.x used by various dependencies of this project. See https://github.com/prometheus/client_java/issues/1431")
66+
}
5767

5868
// CVE Fixes
5969
implementation libs.apache.commons.compress
6070
implementation libs.okhttp3.logging.intercepter
61-
implementation libs.json.smart
62-
implementation libs.netty.common
63-
implementation libs.netty.handler
64-
implementation libs.spring.context
71+
// CVE Fixes End
6572

6673
implementation libs.modelcontextprotocol.spring.webflux
6774
implementation libs.victools.jsonschema.generator
@@ -74,6 +81,13 @@ dependencies {
7481
because("CVE Fix: It is excluded above because of a vulnerability")
7582
}
7683

84+
implementation libs.prometheus.metrics.core
85+
implementation libs.prometheus.metrics.textformats
86+
implementation (libs.prometheus.metrics.exporter.pushgateway) {
87+
exclude group: 'com.google.protobuf', module: 'protobuf-java' because("PushGW lib pulls protobuf-java 4.x, which is incompatible with protobuf-java 3.x used by various dependencies of this project.")
88+
}
89+
implementation libs.snappy
90+
7791
// Annotation processors
7892
implementation libs.lombok
7993
implementation libs.mapstruct
@@ -100,11 +114,11 @@ dependencies {
100114

101115
testImplementation libs.okhttp3
102116
testImplementation libs.okhttp3.mockwebserver
117+
testImplementation libs.prometheus.metrics.core
103118
}
104119

105120
generateGrammarSource {
106121
maxHeapSize = "64m"
107-
arguments += ["-package", "ksql"]
108122
}
109123

110124
tasks.withType(JavaCompile) {
@@ -126,6 +140,7 @@ sourceSets {
126140

127141
tasks.withType(Checkstyle).configureEach {
128142
exclude '**/ksql/**'
143+
exclude '**/promql/**'
129144
}
130145

131146
checkstyle {

api/src/main/antlr/ksql/KsqlGrammar.g4

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
grammar KsqlGrammar;
22

3+
@header {package ksql;}
4+
5+
36
tokens {
47
DELIMITER
58
}

0 commit comments

Comments
 (0)