Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 升级swagger v3 #2883 #2939

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion src/backend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

### swagger地址

${base-path}/v2/api-docs
${base-path}/v3/api-docs

配合chrome浏览器插件`Swagger UI Console`使用

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import com.tencent.bkrepo.analyst.pojo.request.ReportResultRequest
import com.tencent.bkrepo.analyst.pojo.request.ScanRequest
import com.tencent.bkrepo.common.api.constant.SCANNER_SERVICE_NAME
import com.tencent.bkrepo.common.api.pojo.Response
import io.swagger.annotations.ApiParam
import io.swagger.v3.oas.annotations.Parameter
import org.springframework.cloud.openfeign.FeignClient
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
Expand Down Expand Up @@ -95,7 +95,7 @@ interface ScanClient {
*/
@PostMapping("/licenseIds")
fun licenseInfoByIds(
@ApiParam(value = "许可证唯一标识集合")
@Parameter(name = "许可证唯一标识集合")
@RequestBody licenseIds: List<String>
): Response<Map<String, SpdxLicenseInfo>>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@

package com.tencent.bkrepo.analyst.pojo

import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty
import io.swagger.v3.oas.annotations.media.Schema

@ApiModel("扫描报告")

@Schema(title = "扫描报告")
data class ArtifactScanReport(
@ApiModelProperty("扫描报告")
@get:Schema(title = "扫描报告")
private val report: String
)
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,15 @@

package com.tencent.bkrepo.analyst.pojo

import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty
import io.swagger.v3.oas.annotations.media.Schema

@ApiModel("文件扫描状态")

@Schema(title = "文件扫描状态")
data class ArtifactScanStatus(
@ApiModelProperty("文件sha256")
@get:Schema(title = "文件sha256")
val sha256: String,
@ApiModelProperty("文件路径")
@get:Schema(title = "文件路径")
val fullPath: String,
@ApiModelProperty("文件扫描状态")
@get:Schema(title = "文件扫描状态")
val status: String
)
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@

package com.tencent.bkrepo.analyst.pojo

import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty
import io.swagger.v3.oas.annotations.media.Schema

@ApiModel("自动扫描配置")

@Schema(title = "自动扫描配置")
data class AutoScanConfiguration(
@ApiModelProperty("自动扫描的仓库")
@get:Schema(title = "自动扫描的仓库")
val autoScanRepoNames: List<String> = emptyList(),
@ApiModelProperty("自动扫描制品匹配规则")
@get:Schema(title = "自动扫描制品匹配规则")
val autoScanMatchRule: String? = null
)
Original file line number Diff line number Diff line change
Expand Up @@ -28,30 +28,30 @@
package com.tencent.bkrepo.analyst.pojo

import com.fasterxml.jackson.annotation.JsonInclude
import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty
import io.swagger.v3.oas.annotations.media.Schema


@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("项目扫描配置")
@Schema(title = "项目扫描配置")
data class ProjectScanConfiguration(
@ApiModelProperty("项目ID")
@get:Schema(title = "项目ID")
val projectId: String,
@ApiModelProperty("项目优先级,值越小优先级越低")
@get:Schema(title = "项目优先级,值越小优先级越低")
val priority: Int? = null,
@ApiModelProperty("项目限制的扫描任务数量")
@get:Schema(title = "项目限制的扫描任务数量")
val scanTaskCountLimit: Int? = null,
@ApiModelProperty("项目扫描子任务数量限制")
@get:Schema(title = "项目扫描子任务数量限制")
val subScanTaskCountLimit: Int? = null,
@ApiModelProperty("自动扫描配置")
@get:Schema(title = "自动扫描配置")
val autoScanConfiguration: Map<String, AutoScanConfiguration>? = null,
@ApiModelProperty("子任务分发器")
@get:Schema(title = "子任务分发器")
val dispatcherConfiguration: List<DispatcherConfiguration>? = null
)

@ApiModel("分发器配置")
@Schema(title = "分发器配置")
data class DispatcherConfiguration(
@ApiModelProperty("使用的分发器")
@get:Schema(title = "使用的分发器")
val dispatcher: String,
@ApiModelProperty("扫描器")
@get:Schema(title = "扫描器")
val scanner: String
)
Original file line number Diff line number Diff line change
Expand Up @@ -29,42 +29,42 @@ package com.tencent.bkrepo.analyst.pojo

import com.fasterxml.jackson.annotation.JsonInclude
import com.tencent.bkrepo.common.query.model.Rule
import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty
import io.swagger.v3.oas.annotations.media.Schema


@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("扫描方案")
@Schema(title = "扫描方案")
data class ScanPlan(
@ApiModelProperty("方案ID")
@get:Schema(title = "方案ID")
var id: String? = null,
@ApiModelProperty("项目ID")
@get:Schema(title = "项目ID")
var projectId: String? = null,
@ApiModelProperty("方案名称")
@get:Schema(title = "方案名称")
var name: String? = null,
@ApiModelProperty("方案类型")
@get:Schema(title = "方案类型")
var type: String? = null,
@ApiModelProperty("扫描类型")
@get:Schema(title = "扫描类型")
var scanTypes: List<String>? = null,
@ApiModelProperty("使用的扫描器")
@get:Schema(title = "使用的扫描器")
var scanner: String? = null,
@ApiModelProperty("方案描述")
@get:Schema(title = "方案描述")
var description: String? = null,
@ApiModelProperty("是否有新制品上传时自动扫描")
@get:Schema(title = "是否有新制品上传时自动扫描")
var scanOnNewArtifact: Boolean? = null,
@ApiModelProperty("自动扫描仓库")
@get:Schema(title = "自动扫描仓库")
var repoNames: List<String>? = null,
@ApiModelProperty("自动扫描规则")
@get:Schema(title = "自动扫描规则")
var rule: Rule? = null,
@ApiModelProperty("质量规则")
@get:Schema(title = "质量规则")
var scanQuality: Map<String, Any>? = null,
@ApiModelProperty("创建者")
@get:Schema(title = "创建者")
var createdBy: String? = null,
@ApiModelProperty("创建时间")
@get:Schema(title = "创建时间")
var createdDate: String? = null,
@ApiModelProperty("修改者")
@get:Schema(title = "修改者")
var lastModifiedBy: String? = null,
@ApiModelProperty("修改时间")
@get:Schema(title = "修改时间")
var lastModifiedDate: String? = null,
@ApiModelProperty("是否只读")
@get:Schema(title = "是否只读")
var readOnly: Boolean? = null
)
Original file line number Diff line number Diff line change
Expand Up @@ -28,58 +28,58 @@
package com.tencent.bkrepo.analyst.pojo

import com.tencent.bkrepo.common.query.model.Rule
import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty
import io.swagger.v3.oas.annotations.media.Schema

@ApiModel("扫描任务信息")

@Schema(title = "扫描任务信息")
data class ScanTask(
@ApiModelProperty("扫描任务名")
@get:Schema(title = "扫描任务名")
val name: String? = null,
@ApiModelProperty("任务id")
@get:Schema(title = "任务id")
val taskId: String,
@ApiModelProperty("项目id,只扫描单个项目时有值")
@get:Schema(title = "项目id,只扫描单个项目时有值")
val projectId: String?,
@ApiModelProperty("项目id")
@get:Schema(title = "项目id")
val projectIds: Set<String>,
@ApiModelProperty("触发者")
@get:Schema(title = "触发者")
val createdBy: String,
@ApiModelProperty("最后修改时间")
@get:Schema(title = "最后修改时间")
val lastModifiedDateTime: String,
@ApiModelProperty("任务触发时间")
@get:Schema(title = "任务触发时间")
val triggerDateTime: String,
@ApiModelProperty("任务开始执行时间")
@get:Schema(title = "任务开始执行时间")
val startDateTime: String?,
@ApiModelProperty("任务执行结束时间")
@get:Schema(title = "任务执行结束时间")
val finishedDateTime: String?,
@ApiModelProperty("触发方式")
@get:Schema(title = "触发方式")
val triggerType: String,
@ApiModelProperty("任务状态")
@get:Schema(title = "任务状态")
val status: String,
@ApiModelProperty("扫描方案")
@get:Schema(title = "扫描方案")
val scanPlan: ScanPlan?,
@ApiModelProperty("扫描文件匹配规则")
@get:Schema(title = "扫描文件匹配规则")
val rule: Rule?,
@ApiModelProperty("计划扫描文件总数")
@get:Schema(title = "计划扫描文件总数")
val total: Long,
@ApiModelProperty("扫描中的文件总数")
@get:Schema(title = "扫描中的文件总数")
val scanning: Long,
@ApiModelProperty("扫描失败的文件总数")
@get:Schema(title = "扫描失败的文件总数")
val failed: Long,
@ApiModelProperty("已扫描文件总数")
@get:Schema(title = "已扫描文件总数")
val scanned: Long,
@ApiModelProperty("通过质量规则的文件总数")
@get:Schema(title = "通过质量规则的文件总数")
val passed: Long,
@ApiModelProperty("使用的扫描器")
@get:Schema(title = "使用的扫描器")
val scanner: String,
@ApiModelProperty("扫描器类型")
@get:Schema(title = "扫描器类型")
val scannerType: String,
@ApiModelProperty("扫描器版本")
@get:Schema(title = "扫描器版本")
val scannerVersion: String,
@ApiModelProperty("扫描结果统计数据")
@get:Schema(title = "扫描结果统计数据")
val scanResultOverview: Map<String, Long>?,
@ApiModelProperty("是否强制扫描")
@get:Schema(title = "是否强制扫描")
val force: Boolean = false,
@ApiModelProperty("扫描任务元数据")
@get:Schema(title = "扫描任务元数据")
val metadata: List<TaskMetadata>
) {
fun isGlobal() = metadata.any { it.key == TaskMetadata.TASK_METADATA_GLOBAL && it.value == "true" }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package com.tencent.bkrepo.analyst.pojo.execution

import io.swagger.annotations.ApiModelProperty
import io.swagger.v3.oas.annotations.media.Schema

@Suppress("LongParameterList", "MagicNumber")
data class DockerExecutionCluster(
override val name: String,
@ApiModelProperty("docker host")
@get:Schema(title = "docker host")
val host: String = "unix://var/run/docker.sock",
@ApiModelProperty("docker api version")
@get:Schema(title = "docker api version")
val version: String = "1.23",
@ApiModelProperty("docker api connect timeout")
@get:Schema(title = "docker api connect timeout")
val connectTimeout: Int = 5000,
@ApiModelProperty("docker api read timeout")
@get:Schema(title = "docker api read timeout")
val readTimeout: Int = 0,
@ApiModelProperty("最大可同时执行的任务数量")
@get:Schema(title = "最大可同时执行的任务数量")
val maxTaskCount: Int = 1
) : ExecutionCluster(name, type) {
companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ package com.tencent.bkrepo.analyst.pojo.execution
import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonSubTypes.Type
import com.fasterxml.jackson.annotation.JsonTypeInfo
import io.swagger.annotations.ApiModel
import io.swagger.annotations.ApiModelProperty
import io.swagger.v3.oas.annotations.media.Schema

@ApiModel("任务执行集群配置")

@Schema(title = "任务执行集群配置")
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type")
@JsonSubTypes(
Type(value = KubernetesJobExecutionCluster::class, name = KubernetesJobExecutionCluster.type),
Type(value = KubernetesDeploymentExecutionCluster::class, name = KubernetesDeploymentExecutionCluster.type),
Type(value = DockerExecutionCluster::class, name = DockerExecutionCluster.type),
)
open class ExecutionCluster(
@ApiModelProperty("执行集群名")
@get:Schema(title = "执行集群名")
open val name: String,
@ApiModelProperty("类型")
@get:Schema(title = "类型")
val type: String,
@ApiModelProperty("描述")
@get:Schema(title = "描述")
val description: String = "",
)
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
package com.tencent.bkrepo.analyst.pojo.execution

import io.swagger.annotations.ApiModelProperty
import io.swagger.v3.oas.annotations.media.Schema


data class KubernetesDeploymentExecutionCluster(
override val name: String,
@ApiModelProperty("使用的扫描器")
@get:Schema(title = "使用的扫描器")
val scanner: String,
@ApiModelProperty("k8s配置")
@get:Schema(title = "k8s配置")
val kubernetesProperties: KubernetesExecutionClusterProperties,
@ApiModelProperty("最大副本数")
@get:Schema(title = "最大副本数")
val maxReplicas: Int = 1,
@ApiModelProperty("最小副本数")
@get:Schema(title = "最小副本数")
val minReplicas: Int = 1,
@ApiModelProperty("目标副本数与当前副本数之差绝对值超过这个配置时将触发扩缩容")
@get:Schema(title = "目标副本数与当前副本数之差绝对值超过这个配置时将触发扩缩容")
val scaleThreshold: Int = 1,
@ApiModelProperty("扫描器重试拉取任务次数,-1表示一直拉取直到拉取任务成功")
@get:Schema(title = "扫描器重试拉取任务次数,-1表示一直拉取直到拉取任务成功")
val pullRetry: Int = 3,
) : ExecutionCluster(name, type) {
companion object {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
package com.tencent.bkrepo.analyst.pojo.execution

import io.swagger.annotations.ApiModelProperty
import io.swagger.v3.oas.annotations.media.Schema


data class KubernetesExecutionClusterProperties(
@ApiModelProperty("命名空间")
@get:Schema(title = "命名空间")
val namespace: String = "default",
@ApiModelProperty("k8s api server url")
@get:Schema(title = "k8s api server url")
val apiServer: String? = null,
@ApiModelProperty("certificateAuthorityData,未配置时取当前环境的~/.kube/config,或者当前部署的service account")
@get:Schema(title = "certificateAuthorityData,未配置时取当前环境的~/.kube/config,或者当前部署的service account")
val certificateAuthorityData: String? = null,
// token认证
@ApiModelProperty("用于访问apiServer时进行认证,未配置时取当前环境的~/.kube/config,或者当前部署的service account")
@get:Schema(title = "用于访问apiServer时进行认证,未配置时取当前环境的~/.kube/config,或者当前部署的service account")
val token: String? = null,
// client cert认证
@ApiModelProperty("clientCertificateData,未配置时取当前环境的~/.kube/config,或者当前部署的service account")
@get:Schema(title = "clientCertificateData,未配置时取当前环境的~/.kube/config,或者当前部署的service account")
val clientCertificateData: String? = null,
@ApiModelProperty("clientKeyData,未配置时取当前环境的~/.kube/config,或者当前部署的service account")
@get:Schema(title = "clientKeyData,未配置时取当前环境的~/.kube/config,或者当前部署的service account")
val clientKeyData: String? = null,
@ApiModelProperty("集群允许的单容器最大内存使用")
@get:Schema(title = "集群允许的单容器最大内存使用")
val limitMem: Long = 32 * GB,
@ApiModelProperty("集群允许单容器使用的最大ephemeralStorage")
@get:Schema(title = "集群允许单容器使用的最大ephemeralStorage")
val limitStorage: Long = 128 * GB,
@ApiModelProperty("集群允许单容器使用的最大cpu")
@get:Schema(title = "集群允许单容器使用的最大cpu")
val limitCpu: Double = 16.0
) {
companion object {
Expand Down
Loading
Loading