This is an automated email from the ASF dual-hosted git repository.

benjobs pushed a commit to branch dev-2.1.4
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev-2.1.4 by this push:
     new 7a4ea9038 [Improve] StreamPark open api config improvement
7a4ea9038 is described below

commit 7a4ea9038c2880e9cc980df4bd6662fc9851f237
Author: benjobs <[email protected]>
AuthorDate: Tue Apr 16 23:16:23 2024 +0800

    [Improve] StreamPark open api config improvement
---
 .../console/base/config/OpenapiConfig.java         |  6 +-
 .../console/base/config/SpringProperties.java      |  9 +--
 .../core/controller/ApplicationController.java     | 64 +++++++++++++++-------
 .../console/core/entity/ApplicationBackUp.java     |  2 +
 .../console/core/entity/ApplicationLog.java        |  2 +
 .../core/service/impl/ApplicationServiceImpl.java  |  8 ++-
 6 files changed, 58 insertions(+), 33 deletions(-)

diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/OpenapiConfig.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/OpenapiConfig.java
index 4156ad102..7d0b82736 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/OpenapiConfig.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/OpenapiConfig.java
@@ -47,8 +47,8 @@ public class OpenapiConfig implements WebMvcConfigurer {
     return new OpenAPI()
         .info(
             new Info()
-                .title("Apache StreamPark Api Docs")
-                .description("Apache StreamPark Api Docs")
+                .title("Apache StreamPark Open API")
+                .description("Apache StreamPark Open API for third-party 
system integration")
                 .contact(
                     new Contact()
                         .name("Apache StreamPark")
@@ -71,6 +71,6 @@ public class OpenapiConfig implements WebMvcConfigurer {
 
   @Bean
   public GroupedOpenApi publicApiV1() {
-    return GroupedOpenApi.builder().group("v1").pathsToMatch(paths).build();
+    return GroupedOpenApi.builder().group("Open 
API").pathsToMatch(paths).build();
   }
 }
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/SpringProperties.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/SpringProperties.java
index b5c19e250..1a53cbf12 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/SpringProperties.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/SpringProperties.java
@@ -173,14 +173,7 @@ public class SpringProperties {
     config.put("spring.servlet.multipart.max-request-size", "-1");
 
     // swagger-ui
-    config.put("knife4j.enable", "false");
-    config.put("knife4j.basic.enable", "false");
-    config.put("springdoc.api-docs.enabled", "false");
-    config.put("knife4j.basic.username", "admin");
-    config.put("knife4j.basic.password", "streampark");
-    config.put("springdoc.swagger-ui.path", "/swagger-ui.html");
-    config.put("springdoc.packages-to-scan", "org.apache.streampark.console");
-    config.put("spring.mvc.pathmatch.matching-strategy", "ant_path_matcher");
+    config.put("springdoc.api-docs.enabled", "true");
 
     // metrics
     config.put("management.health.ldap.enabled", "false");
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 ac72abe22..2f3ac0cad 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
@@ -142,10 +142,24 @@ public class ApplicationController {
     return RestResponse.success();
   }
 
+  @PermissionScope(app = "#app.id", team = "#app.teamId")
+  @PostMapping(value = "check_start")
+  @RequiresPermissions("app:start")
+  public RestResponse checkStart(Application app) {
+    AppExistsState stateEnum = applicationService.checkStart(app);
+    return RestResponse.success(stateEnum.get());
+  }
+
   @Operation(
       summary = "Start application",
       tags = {ApiDocConstant.OPENAPI_TAG})
   @Parameters({
+    @Parameter(
+        name = "Authorization",
+        description = "Access authorization token",
+        in = ParameterIn.HEADER,
+        required = true,
+        schema = @Schema(implementation = String.class)),
     @Parameter(
         name = "id",
         description = "start app id",
@@ -153,17 +167,24 @@ public class ApplicationController {
         required = true,
         example = "100000",
         schema = @Schema(implementation = Long.class)),
+    @Parameter(
+        name = "teamId",
+        description = "current user teamId",
+        in = ParameterIn.QUERY,
+        required = true,
+        example = "100000",
+        schema = @Schema(implementation = Long.class)),
     @Parameter(
         name = "savePointed",
         description = "restored app from the savepoint or latest checkpoint",
         in = ParameterIn.QUERY,
-        required = true,
         example = "false",
         schema = @Schema(implementation = boolean.class, defaultValue = 
"false")),
     @Parameter(
         name = "savePoint",
         description = "savepoint or checkpoint path",
         in = ParameterIn.QUERY,
+        required = false,
         schema = @Schema(implementation = String.class)),
     @Parameter(
         name = "allowNonRestored",
@@ -172,7 +193,7 @@ public class ApplicationController {
         schema = @Schema(implementation = boolean.class, defaultValue = 
"false"))
   })
   @ApiAccess
-  @PermissionScope(app = "#app.id")
+  @PermissionScope(app = "#app.id", team = "#app.teamId")
   @PostMapping(value = "start")
   @RequiresPermissions("app:start")
   public RestResponse start(@Parameter(hidden = true) Application app) {
@@ -185,19 +206,17 @@ public class ApplicationController {
     }
   }
 
-  @PermissionScope(app = "#app.id")
-  @PostMapping(value = "check_start")
-  @RequiresPermissions("app:start")
-  public RestResponse checkStart(Application app) {
-    AppExistsState stateEnum = applicationService.checkStart(app);
-    return RestResponse.success(stateEnum.get());
-  }
-
   @Operation(
       summary = "Cancel application",
       tags = {ApiDocConstant.OPENAPI_TAG})
   @ApiAccess
   @Parameters({
+    @Parameter(
+        name = "Authorization",
+        description = "Access authorization token",
+        in = ParameterIn.HEADER,
+        required = true,
+        schema = @Schema(implementation = String.class)),
     @Parameter(
         name = "id",
         description = "cancel app id",
@@ -205,11 +224,17 @@ public class ApplicationController {
         required = true,
         example = "100000",
         schema = @Schema(implementation = Long.class)),
+    @Parameter(
+        name = "teamId",
+        description = "current user teamId",
+        in = ParameterIn.QUERY,
+        required = true,
+        example = "100000",
+        schema = @Schema(implementation = Long.class)),
     @Parameter(
         name = "savePointed",
         description = "trigger savepoint before taking stopping",
         in = ParameterIn.QUERY,
-        required = true,
         schema = @Schema(implementation = boolean.class, defaultValue = 
"false")),
     @Parameter(
         name = "savePoint",
@@ -221,11 +246,10 @@ public class ApplicationController {
         name = "drain",
         description = "send max watermark before canceling",
         in = ParameterIn.QUERY,
-        required = true,
         example = "false",
         schema = @Schema(implementation = boolean.class, defaultValue = 
"false"))
   })
-  @PermissionScope(app = "#app.id")
+  @PermissionScope(app = "#app.id", team = "#app.teamId")
   @PostMapping(value = "cancel")
   @RequiresPermissions("app:cancel")
   public RestResponse cancel(@Parameter(hidden = true) Application app) throws 
Exception {
@@ -248,12 +272,14 @@ public class ApplicationController {
   }
 
   @PostMapping("name")
+  @PermissionScope(app = "#app.id", team = "#app.teamId")
   public RestResponse yarnName(Application app) {
     String yarnName = applicationService.getYarnName(app);
     return RestResponse.success(yarnName);
   }
 
   @PostMapping("checkName")
+  @PermissionScope(app = "#app.id", team = "#app.teamId")
   public RestResponse checkName(Application app) {
     AppExistsState exists = applicationService.checkExists(app);
     return RestResponse.success(exists.get());
@@ -266,27 +292,27 @@ public class ApplicationController {
   }
 
   @PostMapping("main")
-  @PermissionScope(app = "#app.id")
+  @PermissionScope(app = "#app.id", team = "#app.teamId")
   public RestResponse getMain(Application app) {
     String mainClass = applicationService.getMain(app);
     return RestResponse.success(mainClass);
   }
 
   @PostMapping("backups")
-  @PermissionScope(app = "#backUp.appId")
+  @PermissionScope(app = "#backUp.appId", team = "#backUp.teamId")
   public RestResponse backups(ApplicationBackUp backUp, RestRequest request) {
     IPage<ApplicationBackUp> backups = backUpService.page(backUp, request);
     return RestResponse.success(backups);
   }
 
   @PostMapping("optionlog")
-  @PermissionScope(app = "#log.appId")
+  @PermissionScope(app = "#log.appId", team = "#log.teamId")
   public RestResponse log(ApplicationLog log, RestRequest request) {
     IPage<ApplicationLog> applicationList = applicationLogService.page(log, 
request);
     return RestResponse.success(applicationList);
   }
 
-  @PermissionScope(app = "#log.appId")
+  @PermissionScope(app = "#log.appId", team = "#log.teamId")
   @PostMapping("deleteOperationLog")
   @RequiresPermissions("app:delete")
   public RestResponse deleteOperationLog(ApplicationLog log) {
@@ -294,7 +320,7 @@ public class ApplicationController {
     return RestResponse.success(deleted);
   }
 
-  @PermissionScope(app = "#app.id")
+  @PermissionScope(app = "#app.id", team = "#app.teamId")
   @PostMapping("delete")
   @RequiresPermissions("app:delete")
   public RestResponse delete(Application app) throws InternalException {
@@ -350,7 +376,7 @@ public class ApplicationController {
   }
 
   @PostMapping("checkSavepointPath")
-  @PermissionScope(app = "#app.id")
+  @PermissionScope(app = "#app.id", team = "#app.teamId")
   public RestResponse checkSavepointPath(Application app) throws Exception {
     String error = applicationService.checkSavepointPath(app);
     if (error == null) {
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/ApplicationBackUp.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/ApplicationBackUp.java
index 50f89c626..58e0aa4b5 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/ApplicationBackUp.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/ApplicationBackUp.java
@@ -49,6 +49,8 @@ public class ApplicationBackUp {
 
   private transient boolean backup;
 
+  private transient String teamId;
+
   public ApplicationBackUp() {}
 
   public ApplicationBackUp(Application application) {
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/ApplicationLog.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/ApplicationLog.java
index 1c73181d2..7ec1f0014 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/ApplicationLog.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/ApplicationLog.java
@@ -49,4 +49,6 @@ public class ApplicationLog {
 
   /** exception at the start */
   private String exception;
+
+  private transient String teamId;
 }
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 f0a2261f9..4ba413501 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
@@ -1355,7 +1355,7 @@ public class ApplicationServiceImpl extends 
ServiceImpl<ApplicationMapper, Appli
             clusterId,
             application.getJobId(),
             appParam.getSavePointed(),
-            appParam.getDrain(),
+            appParam.getDrain() == null ? false : appParam.getDrain(),
             customSavepoint,
             namespace);
 
@@ -1509,7 +1509,9 @@ public class ApplicationServiceImpl extends 
ServiceImpl<ApplicationMapper, Appli
     }
 
     starting(application);
-    application.setAllowNonRestored(appParam.getAllowNonRestored());
+
+    application.setAllowNonRestored(
+        appParam.getAllowNonRestored() == null ? false : 
appParam.getAllowNonRestored());
 
     String appConf;
     String flinkUserJar = null;
@@ -1855,7 +1857,7 @@ public class ApplicationServiceImpl extends 
ServiceImpl<ApplicationMapper, Appli
   }
 
   private String getSavePointed(Application appParam) {
-    if (appParam.getSavePointed()) {
+    if (appParam.getSavePointed() != null && appParam.getSavePointed()) {
       if (StringUtils.isBlank(appParam.getSavePoint())) {
         SavePoint savePoint = savePointService.getLatest(appParam.getId());
         if (savePoint != null) {

Reply via email to