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) {