本目录是前端联调用的本地接口文档快照,已与当前后端实现和内嵌 Web 页面同步。
http://localhost:8080server.publicBaseURL 配置项对外暴露Asia/Shanghai 输出,例如 2026-03-26T10:30:00+08:00queued -> pulling -> scanning -> rendering -> notifying -> completed
异常时终态:
failed
以下字段前后端可视为冻结字段,联调阶段不要自行改名:
statussourceTypetargetRefimageRefdbSourcedbLoadedAtscannersResolvedpluginProfileResolvedpluginTogglesResolvedartifacts[].downloadUrlPOST /api/v1/jobs请求重点:
sourceType 可选,默认 registrytargetRef 必填,imageRef 仅作为兼容旧客户端的别名保留
registry 模式:填写镜像地址http-download 模式:填写镜像包下载 URLfilesystem 模式:填写 /workspace 或 /data 下的目录 / 压缩包 / rootfs 路径repository 模式:填写本地仓库路径或远程 Git URLsbom 模式:填写 /workspace 或 /data 下的 SBOM 文件路径scanPaths 可选,当前仅 filesystem 模式支持
targetRef 与 scanPaths 去重合并,作为最终扫描范围excludePaths 可选,当前仅 filesystem 模式支持
/workspace、/data 下的绝对路径scanners 可选,按任务覆盖 Trivy --scanners
/api/v1/system/options 返回的 defaultScannerssbom 模式仅支持 vuln 与 licenseregistryProfile 仅 registry 模式可用pluginProfile 可选,指向后端配置中的插件组合pluginToggles 可选,按任务覆盖插件开关notificationProfile 可选,选择通知配置clientToken 可选,做幂等成功返回:
202 AcceptedGET /api/v1/jobs/{jobId}前端建议:
queued/pulling/scanning/rendering/notifying 时,每 3-5 秒轮询一次completed 后停止轮询,并展示下载清单failed 后展示 error.code、error.message、error.stageGET /api/v1/jobs/{jobId}/artifactsGET /api/v1/jobs/{jobId}/artifacts/preview/{name}Markdown / HTML 走 JitViewer,JSON 走文本模式GET /api/v1/jobs/{jobId}/artifacts/raw/{name}工件类型约定:
htmlmarkdownjsonsbomsummaryotherGET /api/v1/system/statusGET /api/v1/system/optionsGET /api/v1/jobs?limit=50返回说明:
JobResponse[]createdAt DESC 排序limit,不做复杂分页后端完成任务后,通常会返回以下工件:
compliance-report.htmlcompliance-report.mdreport.htmlscan.jsonnative.spdx.jsonsbom.spdx.jsonsummary.json前端展示建议:
compliance-report.html:合规评审与打印首选入口compliance-report.md:可审计、可版本管理的报告源文件report.html:主按钮,优先展示sbom.spdx.json:合规 / 审计下载按钮scan.json:高级模式或调试折叠区summary.json:摘要计数与自动化消费入口artifacts/preview/{name}:浏览器与企业微信预览入口artifacts/raw/{name}:预览页内部拉取原始内容,不建议直接给最终用户保留策略说明:
report.html、compliance-report.html、compliance-report.md 属于可视化报告,默认保留 30 天scan.json、summary.json、native.spdx.json、sbom.spdx.json 属于原始证据,默认保留 90 天统一结构:
{
"code": "registry_auth_failed",
"message": "Registry authentication failed",
"details": "profile prod-registry rejected by registry.example.com",
"traceId": "trace-123",
"stage": "pulling"
}
前端展示建议:
messagecodedetailsstage 作为故障步骤徽标external:完全使用 /data 下外部数据库embedded:完全回退到镜像内置数据库mixed:部分外部、部分内置registry:直接扫描镜像仓库引用http-download:先通过 HTTP/HTTPS 下载镜像包,再转离线输入给 Trivyfilesystem:扫描项目目录、压缩包或 rootfs,本地路径必须位于 /workspace 或 /datarepository:扫描本地 Git 仓库路径或远程 Git URLsbom:扫描 SPDX / CycloneDX 等 SBOM 文件scanPaths / excludePaths 目前只对 filesystem 模式生效excludePaths 适合过滤 node_modules、vendor、dist、.git、生成物目录等噪音来源/api/v1/system/options 会返回 scannerOptions 与 defaultScannersscanners 字段,让后端继承当前配置scannersGET /api/v1/jobs/{jobId} 返回的 scannersResolved 表示本次任务最终生效的 scannerssbom 模式最终只会执行 vuln 与 licenseartifacts[].downloadUrl 现在统一返回相对路径 /api/v1/jobs/{jobId}/artifacts/download/{name},前端应直接交给浏览器按当前地址栏 / 反代域名解析GET /api/v1/jobs 为准,不应只依赖浏览器本地缓存targetRef 展示扫描目标;若兼容旧返回结构,可回退到 imageRefpluginToggles 现在会显式提交 true/false,可以真正覆盖默认 profile,而不是只能“加开不能关”scanners 建议仅在用户改动后才提交;sbom 模式需限制或提示仅 vuln/license 生效