Files
xingrin/frontend/types/scan.types.ts

127 lines
3.1 KiB
TypeScript
Raw Normal View History

2025-12-12 18:04:57 +08:00
/**
*
* ScanStatus
*/
export type ScanStatus = "cancelled" | "completed" | "failed" | "initiated" | "running"
/**
* engine_config key
*/
export type ScanStage = string
/**
*
*/
export type StageStatus = "pending" | "running" | "completed" | "failed" | "cancelled"
/**
*
*/
export interface StageProgressItem {
status: StageStatus
order: number // 执行顺序(从 0 开始)
startedAt?: string // ISO 时间字符串
duration?: number // 执行时长(秒)
detail?: string // 完成详情
error?: string // 错误信息
reason?: string // 跳过原因
}
/**
* key
*/
export type StageProgress = Record<string, StageProgressItem>
export interface ScanRecord {
id: number
target?: number // 目标ID对应后端 target
targetName: string // 目标名称(对应后端 targetName
summary: {
subdomains: number
websites: number
directories: number
endpoints: number
ips: number
vulnerabilities: {
total: number
critical: number
high: number
medium: number
low: number
}
}
engine?: number // 引擎ID对应后端 engine
engineName: string // 引擎名称(对应后端 engineName
createdAt: string // 创建时间(对应后端 createdAt
status: ScanStatus
errorMessage?: string // 错误信息(对应后端 errorMessage失败时有值
2025-12-12 18:04:57 +08:00
progress: number // 0-100
currentStage?: ScanStage // 当前扫描阶段(仅 running 状态有值)
stageProgress?: StageProgress // 各阶段进度详情
}
export interface GetScansParams {
page?: number
pageSize?: number
status?: ScanStatus
search?: string
}
export interface GetScansResponse {
results: ScanRecord[] // 对应后端 results 字段
total: number
page: number
pageSize: number
totalPages: number
}
/**
* /
*/
export interface InitiateScanRequest {
organizationId?: number // 组织ID二选一
targetId?: number // 目标ID二选一
engineId: number // 扫描引擎ID必填
}
/**
*
*/
export interface QuickScanRequest {
targets: { name: string }[] // 目标列表
engineId: number // 扫描引擎ID必填
}
/**
*
*/
export interface QuickScanResponse {
message: string
targetStats: {
created: number
failed: number
}
scans: ScanTask[]
}
/**
*
*/
export interface ScanTask {
id: number
target: number // 目标ID
engine: number // 引擎ID
status: ScanStatus
createdAt: string
updatedAt: string
}
/**
*
*/
export interface InitiateScanResponse {
message: string // 成功消息
count: number // 创建的扫描任务数量
scans: ScanTask[] // 扫描任务列表
}