diff --git a/NOTICE b/NOTICE
index 944f638864..621dea7c08 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
Apache StreamPark
-Copyright 2022-2025 The Apache Software Foundation
+Copyright 2022-2026 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
diff --git a/build.sh b/build.sh
index cedca8d418..5074386c65 100755
--- a/build.sh
+++ b/build.sh
@@ -116,7 +116,7 @@ print_logo() {
printf ' %s ___/ / /_/ / / __/ /_/ / / / / / / /_/ / /_/ / / / ,< %s\n' $PRIMARY $RESET
printf ' %s /____/\__/_/ \___/\__,_/_/ /_/ /_/ ____/\__,_/_/ /_/|_| %s\n' $PRIMARY $RESET
printf ' %s /_/ %s\n\n' $PRIMARY $RESET
- printf ' %s Version: 2.1.7 %s\n' $BLUE $RESET
+ printf ' %s Version: 2.1.8 %s\n' $BLUE $RESET
printf ' %s WebSite: https://streampark.apache.org%s\n' $BLUE $RESET
printf ' %s GitHub : http://github.com/apache/streampark%s\n\n' $BLUE $RESET
printf ' %s ──────── Apache StreamPark, Make stream processing easier ô~ô!%s\n\n' $PRIMARY $RESET
diff --git a/dist-material/release-docs/NOTICE b/dist-material/release-docs/NOTICE
index 944f638864..621dea7c08 100644
--- a/dist-material/release-docs/NOTICE
+++ b/dist-material/release-docs/NOTICE
@@ -1,5 +1,5 @@
Apache StreamPark
-Copyright 2022-2025 The Apache Software Foundation
+Copyright 2022-2026 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
diff --git a/docker/README.md b/docker/README.md
index af2530f74d..df7a419f10 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -7,7 +7,7 @@ The latest image tag will be written to [docker-compose.yaml](./docker-compose.y
version: '3.8'
services:
streampark:
- image: apache/streampark:2.1.7
+ image: apache/streampark:2.1.8
```
### 2. docker-compose up
diff --git a/docker/docker-compose.yaml b/docker/docker-compose.yaml
index 3fb04a6990..fa41e98aac 100644
--- a/docker/docker-compose.yaml
+++ b/docker/docker-compose.yaml
@@ -18,7 +18,7 @@ version: '3.8'
services:
streampark:
- image: apache/streampark:2.1.7
+ image: apache/streampark:2.1.8
ports:
- "10000:10000"
environment:
diff --git a/helm/streampark/Chart.yaml b/helm/streampark/Chart.yaml
index 9849b5484a..33cb959f2d 100644
--- a/helm/streampark/Chart.yaml
+++ b/helm/streampark/Chart.yaml
@@ -20,5 +20,5 @@ description: A Helm chart for the Apache StreamPark
home: https://streampark.apache.org
icon: https://streampark.apache.org/image/logo_name.png
type: application
-version: 2.1.7
-appVersion: 2.1.7
+version: 2.1.8
+appVersion: 2.1.8
diff --git a/helm/streampark/values.yaml b/helm/streampark/values.yaml
index 7a636ced3b..801fa8ea64 100644
--- a/helm/streampark/values.yaml
+++ b/helm/streampark/values.yaml
@@ -18,7 +18,7 @@
image:
repository: "apache/streampark"
pullPolicy: "IfNotPresent"
- tag: "2.1.7"
+ tag: "2.1.8"
pullSecret: ""
rbac:
diff --git a/pom.xml b/pom.xml
index 470bccf3d2..41e88c2a38 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
org.apache.streampark
streampark
- 2.1.7
+ 2.1.8
pom
StreamPark Project Parent POM
diff --git a/streampark-common/pom.xml b/streampark-common/pom.xml
index 620b101875..725595e899 100644
--- a/streampark-common/pom.xml
+++ b/streampark-common/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark
- 2.1.7
+ 2.1.8
streampark-common_${scala.binary.version}
diff --git a/streampark-common/src/main/scala/org/apache/streampark/common/conf/ConfigConst.scala b/streampark-common/src/main/scala/org/apache/streampark/common/conf/ConfigConst.scala
index 5b7874c5b0..10b685e5d6 100644
--- a/streampark-common/src/main/scala/org/apache/streampark/common/conf/ConfigConst.scala
+++ b/streampark-common/src/main/scala/org/apache/streampark/common/conf/ConfigConst.scala
@@ -203,7 +203,7 @@ object ConfigConst {
println(" ___/ / /_/ / / __/ /_/ / / / / / / /_/ / /_/ / / / ,< ")
println(" /____/\\__/_/ \\___/\\__,_/_/ /_/ /_/ ____/\\__,_/_/ /_/|_| ")
println(" /_/ \n\n")
- println(" Version: 2.1.7 ")
+ println(" Version: 2.1.8 ")
println(" WebSite: https://streampark.apache.org ")
println(" GitHub : https://github.com/apache/streampark ")
println(s" Info : $info ")
diff --git a/streampark-console/pom.xml b/streampark-console/pom.xml
index a9405e14e3..e0afa6d11e 100644
--- a/streampark-console/pom.xml
+++ b/streampark-console/pom.xml
@@ -22,7 +22,7 @@
org.apache.streampark
streampark
- 2.1.7
+ 2.1.8
streampark-console
diff --git a/streampark-console/streampark-console-service/pom.xml b/streampark-console/streampark-console-service/pom.xml
index 782c7dfe39..821e8e085b 100644
--- a/streampark-console/streampark-console-service/pom.xml
+++ b/streampark-console/streampark-console-service/pom.xml
@@ -23,7 +23,7 @@
org.apache.streampark
streampark-console
- 2.1.7
+ 2.1.8
streampark-console-service
diff --git a/streampark-console/streampark-console-service/src/main/assembly/bin/streampark.sh b/streampark-console/streampark-console-service/src/main/assembly/bin/streampark.sh
index a5a04cfcab..d4b9038645 100755
--- a/streampark-console/streampark-console-service/src/main/assembly/bin/streampark.sh
+++ b/streampark-console/streampark-console-service/src/main/assembly/bin/streampark.sh
@@ -297,7 +297,7 @@ print_logo() {
printf ' %s ___/ / /_/ / / __/ /_/ / / / / / / /_/ / /_/ / / / ,< %s\n' $PRIMARY $RESET
printf ' %s /____/\__/_/ \___/\__,_/_/ /_/ /_/ ____/\__,_/_/ /_/|_| %s\n' $PRIMARY $RESET
printf ' %s /_/ %s\n\n' $PRIMARY $RESET
- printf ' %s Version: 2.1.7 %s\n' $BLUE $RESET
+ printf ' %s Version: 2.1.8 %s\n' $BLUE $RESET
printf ' %s WebSite: https://streampark.apache.org%s\n' $BLUE $RESET
printf ' %s GitHub : http://github.com/apache/streampark%s\n\n' $BLUE $RESET
printf ' %s ──────── Apache StreamPark, Make stream processing easier ô~ô!%s\n\n' $PRIMARY $RESET
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/mybatis/pager/MybatisPager.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/mybatis/pager/MybatisPager.java
index b5aa2b2ff0..0dcf99a6e9 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/mybatis/pager/MybatisPager.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/mybatis/pager/MybatisPager.java
@@ -28,13 +28,16 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.regex.Pattern;
@SuppressWarnings("unchecked")
public final class MybatisPager {
+ private static final Pattern SORT_FIELD_PATTERN = Pattern.compile("^[A-Za-z][A-Za-z0-9_]*$");
+
public static Page getPage(RestRequest request) {
- boolean invalid = request.getSortField().trim().split("\\s+").length > 1;
- if (invalid) {
+ String sortField = WebUtils.camelToUnderscore(StringUtils.trimToEmpty(request.getSortField()));
+ if (!SORT_FIELD_PATTERN.matcher(sortField).matches()) {
throw new IllegalArgumentException(
String.format("Invalid argument sortField: %s", request.getSortField()));
}
@@ -48,7 +51,6 @@ public static Page getPage(RestRequest request) {
page.setSize(request.getPageSize());
List orderItems = new ArrayList<>(2);
- String sortField = WebUtils.camelToUnderscore(request.getSortField());
if (StringUtils.equalsIgnoreCase(request.getSortOrder(), Constant.ORDER_DESC)) {
orderItems.add(OrderItem.desc(sortField));
} else if (StringUtils.equalsIgnoreCase(request.getSortOrder(), Constant.ORDER_ASC)) {
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/ApplicationController.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/ApplicationController.java
index 411473a3f7..5a84d7300e 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/ApplicationController.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/controller/ApplicationController.java
@@ -177,7 +177,7 @@ public RestResponse yarn() {
@PostMapping("name")
@PermissionScope(app = "#app.id", team = "#app.teamId")
- public RestResponse yarnName(Application app) {
+ public RestResponse yarnName(Application app) throws IOException {
String yarnName = applicationService.getYarnName(app);
return RestResponse.success(yarnName);
}
@@ -190,8 +190,9 @@ public RestResponse checkName(Application app) {
}
@PostMapping("readConf")
- public RestResponse readConf(String config) throws IOException {
- String content = applicationService.readConf(config);
+ @PermissionScope(team = "#app.teamId")
+ public RestResponse readConf(Application app) throws IOException {
+ String content = applicationService.readConf(app);
return RestResponse.success(content);
}
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java
index cfc887f0df..fcfe8e6b69 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java
@@ -54,7 +54,7 @@ public interface ApplicationService extends IService {
void restart(Application application) throws Exception;
- String getYarnName(Application app);
+ String getYarnName(Application app) throws IOException;
AppExistsState checkExists(Application app);
@@ -66,7 +66,7 @@ public interface ApplicationService extends IService {
void clean(Application app);
- String readConf(String config) throws IOException;
+ String readConf(Application application) throws IOException;
Application getApp(Application application);
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java
index 3dc870365a..fea28a0774 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java
@@ -699,10 +699,11 @@ public AppExistsState checkStart(Application appParam) {
}
@Override
- public String getYarnName(Application appParam) {
+ public String getYarnName(Application appParam) throws IOException {
+ File file = getReadableConfFile(appParam);
String[] args = new String[2];
args[0] = "--name";
- args[1] = appParam.getConfig();
+ args[1] = file.getAbsolutePath();
return ParameterCli.read(args);
}
@@ -1213,12 +1214,62 @@ public void clean(Application appParam) {
}
@Override
- public String readConf(String config) throws IOException {
- File file = new File(config);
+ public String readConf(Application application) throws IOException {
+ File file = getReadableConfFile(application);
String conf = FileUtils.readFileToString(file, StandardCharsets.UTF_8);
return Base64.getEncoder().encodeToString(conf.getBytes());
}
+ @VisibleForTesting
+ File getReadableConfFile(Application application) throws IOException {
+ ApiAlertException.throwIfNull(application, "Invalid application.");
+ ApiAlertException.throwIfNull(application.getProjectId(), "Invalid project.");
+ ApiAlertException.throwIfNull(application.getTeamId(), "Invalid team.");
+ ApiAlertException.throwIfTrue(StringUtils.isBlank(application.getModule()), "Invalid module.");
+ ApiAlertException.throwIfTrue(
+ StringUtils.containsAny(application.getModule(), '/', '\\'), "Invalid module.");
+ ApiAlertException.throwIfTrue(StringUtils.isBlank(application.getConfig()), "Invalid config.");
+
+ Project project = projectService.getById(application.getProjectId());
+ ApiAlertException.throwIfNull(project, "Invalid project.");
+ ApiAlertException.throwIfFalse(
+ application.getTeamId().equals(project.getTeamId()), "Invalid project.");
+
+ File projectDistHome = project.getDistHome().getCanonicalFile();
+ ApiAlertException.throwIfFalse(projectDistHome.isDirectory(), "Invalid project.");
+
+ File moduleArchive = new File(projectDistHome, application.getModule()).getCanonicalFile();
+ File moduleHome =
+ new File(StringUtils.removeEnd(moduleArchive.getAbsolutePath(), ".tar.gz"))
+ .getCanonicalFile();
+ ApiAlertException.throwIfFalse(
+ isDirectChildPath(projectDistHome, moduleArchive), "Invalid module.");
+ ApiAlertException.throwIfFalse(
+ isDirectChildPath(projectDistHome, moduleHome), "Invalid module.");
+ ApiAlertException.throwIfFalse(moduleHome.isDirectory(), "Invalid module.");
+
+ File confHome = new File(moduleHome, "conf").getCanonicalFile();
+ ApiAlertException.throwIfFalse(isDescendantPath(moduleHome, confHome), "Invalid config.");
+ ApiAlertException.throwIfFalse(confHome.isDirectory(), "Invalid config.");
+
+ File configFile = new File(application.getConfig()).getCanonicalFile();
+
+ ApiAlertException.throwIfFalse(configFile.isFile(), "Invalid config.");
+ ApiAlertException.throwIfFalse(isDescendantPath(confHome, configFile), "Invalid config.");
+ return configFile;
+ }
+
+ private boolean isDescendantPath(File parent, File child) throws IOException {
+ String parentPath = parent.getCanonicalPath();
+ String childPath = child.getCanonicalPath();
+ return childPath.startsWith(parentPath.concat(File.separator));
+ }
+
+ private boolean isDirectChildPath(File parent, File child) throws IOException {
+ File childParent = child.getCanonicalFile().getParentFile();
+ return childParent != null && parent.getCanonicalFile().equals(childParent.getCanonicalFile());
+ }
+
@Override
public Application getApp(Application appParam) {
Application application = this.baseMapper.getApp(appParam);
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/runner/StartedUpRunner.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/runner/StartedUpRunner.java
index dd06300712..681c6bc878 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/runner/StartedUpRunner.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/runner/StartedUpRunner.java
@@ -47,7 +47,7 @@ public void run(ApplicationArguments args) {
System.out.println(" ___/ / /_/ / / __/ /_/ / / / / / / /_/ / /_/ / / / ,< ");
System.out.println(" /____/\\__/_/ \\___/\\__,_/_/ /_/ /_/ ____/\\__,_/_/ /_/|_| ");
System.out.println(" /_/ \n\n");
- System.out.println(" Version: 2.1.7 ");
+ System.out.println(" Version: 2.1.8 ");
System.out.println(" WebSite: https://streampark.apache.org ");
System.out.println(" GitHub : https://github.com/apache/streampark ");
System.out.println(" Info : streampark-console start successful ");
diff --git a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/base/mybatis/pager/MybatisPagerTest.java b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/base/mybatis/pager/MybatisPagerTest.java
new file mode 100644
index 0000000000..31009d7061
--- /dev/null
+++ b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/base/mybatis/pager/MybatisPagerTest.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.streampark.console.base.mybatis.pager;
+
+import org.apache.streampark.console.base.domain.RestRequest;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.junit.jupiter.api.Test;
+
+import java.util.Arrays;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+class MybatisPagerTest {
+
+ @Test
+ void getPageShouldRejectSqlExpressionSortField() {
+ Arrays.asList(
+ "create_time,CEIL(VARIANT)--",
+ "create_time,SLEEP(10)--",
+ "create_time,PG_SLEEP(10)",
+ "create_time;select 1",
+ "create_time desc",
+ "user.name",
+ "`create_time`",
+ "create_time'--",
+ "create_time/**/desc")
+ .forEach(
+ sortField -> {
+ RestRequest request = new RestRequest();
+ request.setSortField(sortField);
+
+ assertThatThrownBy(() -> MybatisPager.getPage(request))
+ .isInstanceOf(IllegalArgumentException.class)
+ .hasMessageContaining("Invalid argument sortField");
+ });
+ }
+
+ @Test
+ void getPageShouldAcceptColumnNameSortField() {
+ RestRequest request = new RestRequest();
+ request.setSortField("createTime");
+
+ Page> page = MybatisPager.getPage(request);
+
+ assertThat(page.orders()).hasSize(1);
+ assertThat(page.orders().get(0).getColumn()).isEqualTo("create_time");
+ }
+}
diff --git a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImplTest.java b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImplTest.java
new file mode 100644
index 0000000000..b5c5d36100
--- /dev/null
+++ b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImplTest.java
@@ -0,0 +1,169 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.streampark.console.core.service.impl;
+
+import org.apache.streampark.console.base.exception.ApiAlertException;
+import org.apache.streampark.console.core.entity.Application;
+import org.apache.streampark.console.core.entity.Project;
+import org.apache.streampark.console.core.service.ProjectService;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.io.TempDir;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.test.util.ReflectionTestUtils;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import static org.mockito.Mockito.when;
+
+@ExtendWith(MockitoExtension.class)
+class ApplicationServiceImplTest {
+
+ @Mock private ProjectService projectService;
+
+ private final ApplicationServiceImpl applicationService = new ApplicationServiceImpl();
+
+ @TempDir private Path tempDir;
+
+ @BeforeEach
+ void setUp() {
+ ReflectionTestUtils.setField(applicationService, "projectService", projectService);
+ }
+
+ @Test
+ void getReadableConfFileShouldAllowConfigUnderProjectModuleConf() throws Exception {
+ Path distHome = Files.createDirectory(tempDir.resolve("dist"));
+ Path configFile =
+ Files.createDirectories(distHome.resolve("app").resolve("conf"))
+ .resolve("application.yaml");
+ Files.write(configFile, "key: value".getBytes());
+
+ when(projectService.getById(1L)).thenReturn(project(1L, 10L, distHome));
+
+ Application application = application(1L, 10L, "app.tar.gz", configFile);
+
+ assertThat(applicationService.getReadableConfFile(application))
+ .isEqualTo(configFile.toFile().getCanonicalFile());
+ }
+
+ @Test
+ void getReadableConfFileShouldRejectConfigOutsideProjectModuleConf() throws Exception {
+ Path distHome = Files.createDirectory(tempDir.resolve("dist"));
+ Files.createDirectories(distHome.resolve("app").resolve("conf"));
+ Path secretFile = Files.write(tempDir.resolve("secret.txt"), "secret".getBytes());
+
+ when(projectService.getById(1L)).thenReturn(project(1L, 10L, distHome));
+
+ Application application = application(1L, 10L, "app.tar.gz", secretFile);
+
+ assertThatThrownBy(() -> applicationService.getReadableConfFile(application))
+ .isInstanceOf(ApiAlertException.class)
+ .hasMessage("Invalid config.");
+ }
+
+ @Test
+ void getReadableConfFileShouldRejectModuleTraversal() throws Exception {
+ Path distHome = Files.createDirectory(tempDir.resolve("dist"));
+ Path outsideModule = Files.createDirectories(tempDir.resolve("outside").resolve("conf"));
+ Path configFile =
+ Files.write(outsideModule.resolve("application.yaml"), "key: value".getBytes());
+
+ Application application = application(1L, 10L, "../outside.tar.gz", configFile);
+
+ assertThatThrownBy(() -> applicationService.getReadableConfFile(application))
+ .isInstanceOf(ApiAlertException.class)
+ .hasMessage("Invalid module.");
+ }
+
+ @Test
+ void getReadableConfFileShouldRejectModulePathAlias() throws Exception {
+ Path distHome = Files.createDirectory(tempDir.resolve("dist"));
+ Path configFile =
+ Files.createDirectories(distHome.resolve("app").resolve("conf"))
+ .resolve("application.yaml");
+ Files.write(configFile, "key: value".getBytes());
+
+ Application application = application(1L, 10L, "app/conf/..", configFile);
+
+ assertThatThrownBy(() -> applicationService.getReadableConfFile(application))
+ .isInstanceOf(ApiAlertException.class)
+ .hasMessage("Invalid module.");
+ }
+
+ @Test
+ void getReadableConfFileShouldRejectProjectFromOtherTeam() throws Exception {
+ Path distHome = Files.createDirectory(tempDir.resolve("dist"));
+ Path configFile =
+ Files.createDirectories(distHome.resolve("app").resolve("conf"))
+ .resolve("application.yaml");
+ Files.write(configFile, "key: value".getBytes());
+
+ when(projectService.getById(1L)).thenReturn(project(1L, 20L, distHome));
+
+ Application application = application(1L, 10L, "app.tar.gz", configFile);
+
+ assertThatThrownBy(() -> applicationService.getReadableConfFile(application))
+ .isInstanceOf(ApiAlertException.class)
+ .hasMessage("Invalid project.");
+ }
+
+ @Test
+ void getYarnNameShouldReadOnlyValidatedConfig() throws Exception {
+ Path distHome = Files.createDirectory(tempDir.resolve("dist"));
+ Path configFile =
+ Files.createDirectories(distHome.resolve("app").resolve("conf"))
+ .resolve("application.properties");
+ Files.write(configFile, "flink.property.pipeline.name=test-app".getBytes());
+
+ when(projectService.getById(1L)).thenReturn(project(1L, 10L, distHome));
+
+ Application application = application(1L, 10L, "app.tar.gz", configFile);
+
+ assertThat(applicationService.getYarnName(application)).isEqualTo("test-app");
+ }
+
+ private Application application(Long projectId, Long teamId, String module, Path configFile) {
+ Application application = new Application();
+ application.setProjectId(projectId);
+ application.setTeamId(teamId);
+ application.setModule(module);
+ application.setConfig(configFile.toString());
+ return application;
+ }
+
+ private Project project(Long id, Long teamId, Path distHome) {
+ return new Project() {
+ {
+ setId(id);
+ setTeamId(teamId);
+ }
+
+ @Override
+ public File getDistHome() {
+ return distHome.toFile();
+ }
+ };
+ }
+}
diff --git a/streampark-console/streampark-console-webapp/package.json b/streampark-console/streampark-console-webapp/package.json
index 68ee515b52..39320b0eb5 100644
--- a/streampark-console/streampark-console-webapp/package.json
+++ b/streampark-console/streampark-console-webapp/package.json
@@ -1,6 +1,6 @@
{
"name": "streampark-webapp",
- "version": "2.1.7",
+ "version": "2.1.8",
"author": {
"name": "streampark",
"url": "https://streampark.apache.org"
diff --git a/streampark-console/streampark-console-webapp/src/api/flink/app/app.ts b/streampark-console/streampark-console-webapp/src/api/flink/app/app.ts
index 0b9259e3c6..3cdee9912c 100644
--- a/streampark-console/streampark-console-webapp/src/api/flink/app/app.ts
+++ b/streampark-console/streampark-console-webapp/src/api/flink/app/app.ts
@@ -53,7 +53,7 @@ enum APP_API {
* read configuration file
* @returns Promise
*/
-export function fetchAppConf(params?: { config: any }) {
+export function fetchAppConf(params?: { projectId?: any; module?: any; config: any }) {
return defHttp.post({
url: APP_API.READ_CONF,
params,
@@ -226,6 +226,6 @@ export function fetchCancel(data: CancelParam): Promise {
return defHttp.post({ url: APP_API.CANCEL, data });
}
-export function fetchName(data: { config: string }) {
+export function fetchName(data: { projectId?: any; module?: any; config: string }) {
return defHttp.post({ url: APP_API.NAME, data });
}
diff --git a/streampark-console/streampark-console-webapp/src/views/flink/app/Add.vue b/streampark-console/streampark-console-webapp/src/views/flink/app/Add.vue
index 974ca7dde3..0fa58193d0 100644
--- a/streampark-console/streampark-console-webapp/src/views/flink/app/Add.vue
+++ b/streampark-console/streampark-console-webapp/src/views/flink/app/Add.vue
@@ -188,6 +188,8 @@
params['format'] = getAppConfType(configVal);
if (values.configOverride == null) {
params['config'] = await fetchAppConf({
+ projectId: params.projectId,
+ module: params.module,
config: configVal,
});
} else {
diff --git a/streampark-console/streampark-console-webapp/src/views/flink/app/components/AppConf.tsx b/streampark-console/streampark-console-webapp/src/views/flink/app/components/AppConf.tsx
index 9a036cd7c4..3c970fda32 100644
--- a/streampark-console/streampark-console-webapp/src/views/flink/app/components/AppConf.tsx
+++ b/streampark-console/streampark-console-webapp/src/views/flink/app/components/AppConf.tsx
@@ -62,9 +62,13 @@ export default defineComponent({
async function handleChangeNewConfig(confFile: string) {
const appName = await fetchName({
+ projectId: unref(model).project,
+ module: unref(model).module,
config: confFile,
});
const appConf = await fetchAppConf({
+ projectId: unref(model).project,
+ module: unref(model).module,
config: confFile,
});
model.value.config = confFile;
diff --git a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateSchema.ts b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateSchema.ts
index 847d9371eb..71657702a8 100644
--- a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateSchema.ts
+++ b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useCreateSchema.ts
@@ -263,6 +263,8 @@ export const useCreateSchema = (dependencyRef: Ref) => {
fieldNames: { children: 'children', label: 'title', key: 'value', value: 'value' },
onChange: (value: string) => {
fetchName({
+ projectId: formModel.project,
+ module: formModel.module,
config: value,
}).then((resp) => {
formModel.jobName = resp;
diff --git a/streampark-flink/pom.xml b/streampark-flink/pom.xml
index b6dc1100fb..99538d66ab 100644
--- a/streampark-flink/pom.xml
+++ b/streampark-flink/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark
- 2.1.7
+ 2.1.8
streampark-flink
diff --git a/streampark-flink/streampark-flink-client/pom.xml b/streampark-flink/streampark-flink-client/pom.xml
index 61f1269925..59028598af 100644
--- a/streampark-flink/streampark-flink-client/pom.xml
+++ b/streampark-flink/streampark-flink-client/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink
- 2.1.7
+ 2.1.8
streampark-flink-client
diff --git a/streampark-flink/streampark-flink-client/streampark-flink-client-api/pom.xml b/streampark-flink/streampark-flink-client/streampark-flink-client-api/pom.xml
index c6c84ef8fe..cfe7a1605e 100644
--- a/streampark-flink/streampark-flink-client/streampark-flink-client-api/pom.xml
+++ b/streampark-flink/streampark-flink-client/streampark-flink-client-api/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink-client
- 2.1.7
+ 2.1.8
streampark-flink-client-api_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-client/streampark-flink-client-core/pom.xml b/streampark-flink/streampark-flink-client/streampark-flink-client-core/pom.xml
index 6c80e24de6..3c86c9af84 100644
--- a/streampark-flink/streampark-flink-client/streampark-flink-client-core/pom.xml
+++ b/streampark-flink/streampark-flink-client/streampark-flink-client-core/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink-client
- 2.1.7
+ 2.1.8
streampark-flink-client-core_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/pom.xml b/streampark-flink/streampark-flink-connector/pom.xml
index 4e9546c4da..27a54b6bec 100644
--- a/streampark-flink/streampark-flink-connector/pom.xml
+++ b/streampark-flink/streampark-flink-connector/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-flink
- 2.1.7
+ 2.1.8
streampark-flink-connector
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-base/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-base/pom.xml
index ff507d7d0c..7075f648c0 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-base/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-base/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-base_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-clickhouse/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-clickhouse/pom.xml
index 9e99e303d2..4eaa18a78d 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-clickhouse/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-clickhouse/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-clickhouse_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-doris/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-doris/pom.xml
index 6ee31b6116..776c74a9dd 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-doris/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-doris/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-doris_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/pom.xml
index 3b8e88b821..0d2ad1260c 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/pom.xml
@@ -22,7 +22,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-elasticsearch
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch5/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch5/pom.xml
index bdf095f9a0..c13042cfc2 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch5/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch5/pom.xml
@@ -23,7 +23,7 @@
org.apache.streampark
streampark-flink-connector-elasticsearch
- 2.1.7
+ 2.1.8
streampark-flink-connector-elasticsearch5_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch6/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch6/pom.xml
index 6c9230a361..458ccd447c 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch6/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch6/pom.xml
@@ -23,7 +23,7 @@
org.apache.streampark
streampark-flink-connector-elasticsearch
- 2.1.7
+ 2.1.8
streampark-flink-connector-elasticsearch6_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch7/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch7/pom.xml
index 87d06b5fca..b85b2ac987 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch7/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-elasticsearch/streampark-flink-connector-elasticsearch7/pom.xml
@@ -22,7 +22,7 @@
streampark-flink-connector-elasticsearch
org.apache.streampark
- 2.1.7
+ 2.1.8
streampark-flink-connector-elasticsearch7_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-hbase/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-hbase/pom.xml
index 9e7bb03730..e8e4ab7b91 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-hbase/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-hbase/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-hbase_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-hbase/src/main/scala/org/apache/streampark/flink/connector/hbase/source/HBaseSource.scala b/streampark-flink/streampark-flink-connector/streampark-flink-connector-hbase/src/main/scala/org/apache/streampark/flink/connector/hbase/source/HBaseSource.scala
index 32f8de5bbe..0a04068f71 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-hbase/src/main/scala/org/apache/streampark/flink/connector/hbase/source/HBaseSource.scala
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-hbase/src/main/scala/org/apache/streampark/flink/connector/hbase/source/HBaseSource.scala
@@ -29,6 +29,7 @@ import org.apache.hadoop.hbase.client._
import java.util.Properties
import scala.annotation.meta.param
+import scala.collection.JavaConversions._
object HBaseSource {
@@ -61,7 +62,7 @@ class HBaseSource(
}
val jdbc = ConfigUtils.getHBaseConfig(ctx.parameter.toMap)
if (property != null) {
- jdbc.putAll(property)
+ property.foreach(c => jdbc.put(c._1, c._2))
}
val hBaseFunc = new HBaseSourceFunction[R](jdbc, query, func, running)
ctx.addSource(hBaseFunc)
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-http/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-http/pom.xml
index be5c9dea1e..9960701356 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-http/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-http/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-http_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-influx/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-influx/pom.xml
index 2555140bde..b96a37bd15 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-influx/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-influx/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-influx_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-jdbc/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-jdbc/pom.xml
index 54ce6a5b6a..72b90a9d2c 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-jdbc/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-jdbc/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-jdbc_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-jdbc/src/main/scala/org/apache/streampark/flink/connector/jdbc/source/JdbcSource.scala b/streampark-flink/streampark-flink-connector/streampark-flink-connector-jdbc/src/main/scala/org/apache/streampark/flink/connector/jdbc/source/JdbcSource.scala
index 00e3d66639..8c084aeaad 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-jdbc/src/main/scala/org/apache/streampark/flink/connector/jdbc/source/JdbcSource.scala
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-jdbc/src/main/scala/org/apache/streampark/flink/connector/jdbc/source/JdbcSource.scala
@@ -27,6 +27,7 @@ import org.apache.flink.streaming.api.scala.DataStream
import java.util.Properties
import scala.annotation.meta.param
+import scala.collection.JavaConversions._
import scala.collection.Map
object JdbcSource {
@@ -53,7 +54,7 @@ class JdbcSource(
filter: R => Boolean = null): DataStream[R] = {
val jdbc = ConfigUtils.getJdbcProperties(ctx.parameter.toMap, alias)
if (property != null) {
- jdbc.putAll(property)
+ property.foreach(c => jdbc.put(c._1, c._2))
}
val mysqlFun = new JdbcSourceFunction[R](jdbc, sqlFun, func, filter)
ctx.addSource(mysqlFun)
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-kafka/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-kafka/pom.xml
index f5339e9149..b98e397f56 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-kafka/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-kafka/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-kafka_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-mongo/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-mongo/pom.xml
index ce580d10c4..95ec00b03a 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-mongo/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-mongo/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-mongo_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-connector/streampark-flink-connector-redis/pom.xml b/streampark-flink/streampark-flink-connector/streampark-flink-connector-redis/pom.xml
index 400a5d310b..22d84d3fd3 100644
--- a/streampark-flink/streampark-flink-connector/streampark-flink-connector-redis/pom.xml
+++ b/streampark-flink/streampark-flink-connector/streampark-flink-connector-redis/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-flink-connector
- 2.1.7
+ 2.1.8
streampark-flink-connector-redis_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-core/pom.xml b/streampark-flink/streampark-flink-core/pom.xml
index 2226d0d445..c55a21b5b0 100644
--- a/streampark-flink/streampark-flink-core/pom.xml
+++ b/streampark-flink/streampark-flink-core/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink
- 2.1.7
+ 2.1.8
streampark-flink-core_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-kubernetes/pom.xml b/streampark-flink/streampark-flink-kubernetes/pom.xml
index 623cd2724a..3a8b7883ba 100644
--- a/streampark-flink/streampark-flink-kubernetes/pom.xml
+++ b/streampark-flink/streampark-flink-kubernetes/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-flink
- 2.1.7
+ 2.1.8
streampark-flink-kubernetes_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-packer/pom.xml b/streampark-flink/streampark-flink-packer/pom.xml
index cccd7b8343..7d59a124b1 100644
--- a/streampark-flink/streampark-flink-packer/pom.xml
+++ b/streampark-flink/streampark-flink-packer/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink
- 2.1.7
+ 2.1.8
streampark-flink-packer_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-proxy/pom.xml b/streampark-flink/streampark-flink-proxy/pom.xml
index a73e1759b7..4c22b42524 100644
--- a/streampark-flink/streampark-flink-proxy/pom.xml
+++ b/streampark-flink/streampark-flink-proxy/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink
- 2.1.7
+ 2.1.8
streampark-flink-proxy_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/pom.xml b/streampark-flink/streampark-flink-shims/pom.xml
index 82e5d1ec6d..180468f5f9 100644
--- a/streampark-flink/streampark-flink-shims/pom.xml
+++ b/streampark-flink/streampark-flink-shims/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-flink
- 2.1.7
+ 2.1.8
streampark-flink-shims
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims-base/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims-base/pom.xml
index 51c63d6bea..9bbdd10332 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims-base/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims-base/pom.xml
@@ -22,7 +22,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims-base_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims-test/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims-test/pom.xml
index db352ec739..17bc308755 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims-test/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims-test/pom.xml
@@ -23,7 +23,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims-test_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.12/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.12/pom.xml
index 65178f5ba6..6221b43e81 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.12/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.12/pom.xml
@@ -22,7 +22,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims_flink-1.12_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.13/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.13/pom.xml
index 770c8e3ceb..21ba074df4 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.13/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.13/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims_flink-1.13_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.14/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.14/pom.xml
index 1ae06e231e..139f98da16 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.14/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.14/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims_flink-1.14_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.15/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.15/pom.xml
index 70bcbd10a3..6aa9daccf0 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.15/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.15/pom.xml
@@ -23,7 +23,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims_flink-1.15_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.16/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.16/pom.xml
index 4793aad9b4..eab99e4406 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.16/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.16/pom.xml
@@ -22,7 +22,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims_flink-1.16_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.17/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.17/pom.xml
index 3ce1812306..93c038a64c 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.17/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.17/pom.xml
@@ -22,7 +22,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims_flink-1.17_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.18/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.18/pom.xml
index 67662136d8..38317a0bcb 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.18/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.18/pom.xml
@@ -22,7 +22,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims_flink-1.18_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.19/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.19/pom.xml
index c6b6a06081..16f75ba918 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.19/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.19/pom.xml
@@ -22,7 +22,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims_flink-1.19_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.20/pom.xml b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.20/pom.xml
index a59e9f0300..b4eb1ce8a0 100644
--- a/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.20/pom.xml
+++ b/streampark-flink/streampark-flink-shims/streampark-flink-shims_flink-1.20/pom.xml
@@ -22,7 +22,7 @@
org.apache.streampark
streampark-flink-shims
- 2.1.7
+ 2.1.8
streampark-flink-shims_flink-1.20_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-sqlclient/pom.xml b/streampark-flink/streampark-flink-sqlclient/pom.xml
index 271ceaed27..4cd727c95a 100644
--- a/streampark-flink/streampark-flink-sqlclient/pom.xml
+++ b/streampark-flink/streampark-flink-sqlclient/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink
- 2.1.7
+ 2.1.8
streampark-flink-sqlclient_${scala.binary.version}
diff --git a/streampark-flink/streampark-flink-udf/pom.xml b/streampark-flink/streampark-flink-udf/pom.xml
index 0ebf481be2..b1c099e34d 100644
--- a/streampark-flink/streampark-flink-udf/pom.xml
+++ b/streampark-flink/streampark-flink-udf/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-flink
- 2.1.7
+ 2.1.8
streampark-flink-udf_${scala.binary.version}
diff --git a/streampark-shaded/pom.xml b/streampark-shaded/pom.xml
index 69d1f7d029..0aedf37279 100644
--- a/streampark-shaded/pom.xml
+++ b/streampark-shaded/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark
- 2.1.7
+ 2.1.8
streampark-shaded
diff --git a/streampark-spark/pom.xml b/streampark-spark/pom.xml
index a5c2faa12e..0081b32aa4 100644
--- a/streampark-spark/pom.xml
+++ b/streampark-spark/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark
- 2.1.7
+ 2.1.8
streampark-spark
diff --git a/streampark-spark/streampark-spark-cli/pom.xml b/streampark-spark/streampark-spark-cli/pom.xml
index 2efcef5d86..e87917a192 100644
--- a/streampark-spark/streampark-spark-cli/pom.xml
+++ b/streampark-spark/streampark-spark-cli/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-spark
- 2.1.7
+ 2.1.8
streampark-spark-cli
diff --git a/streampark-spark/streampark-spark-connector/pom.xml b/streampark-spark/streampark-spark-connector/pom.xml
index 37b22ca3f6..f1606e32af 100644
--- a/streampark-spark/streampark-spark-connector/pom.xml
+++ b/streampark-spark/streampark-spark-connector/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-spark
- 2.1.7
+ 2.1.8
streampark-spark-connector_2.12
diff --git a/streampark-spark/streampark-spark-connector/streampark-spark-connector-base/pom.xml b/streampark-spark/streampark-spark-connector/streampark-spark-connector-base/pom.xml
index 18324426e9..95fa2fde6e 100644
--- a/streampark-spark/streampark-spark-connector/streampark-spark-connector-base/pom.xml
+++ b/streampark-spark/streampark-spark-connector/streampark-spark-connector-base/pom.xml
@@ -22,7 +22,7 @@
org.apache.streampark
streampark-spark-connector_2.12
- 2.1.7
+ 2.1.8
streampark-spark-connector-base_2.12
diff --git a/streampark-spark/streampark-spark-connector/streampark-spark-connector-kafka/pom.xml b/streampark-spark/streampark-spark-connector/streampark-spark-connector-kafka/pom.xml
index ed70b8b7f7..437974092d 100644
--- a/streampark-spark/streampark-spark-connector/streampark-spark-connector-kafka/pom.xml
+++ b/streampark-spark/streampark-spark-connector/streampark-spark-connector-kafka/pom.xml
@@ -21,7 +21,7 @@
org.apache.streampark
streampark-spark-connector_2.12
- 2.1.7
+ 2.1.8
streampark-spark-connector-kafka_2.12
diff --git a/streampark-spark/streampark-spark-core/pom.xml b/streampark-spark/streampark-spark-core/pom.xml
index d245475579..3aa93c21b6 100644
--- a/streampark-spark/streampark-spark-core/pom.xml
+++ b/streampark-spark/streampark-spark-core/pom.xml
@@ -20,7 +20,7 @@
org.apache.streampark
streampark-spark
- 2.1.7
+ 2.1.8
streampark-spark-core_2.12