/admin/audit/anomalies/{id}/timeline
获取异常关联的用户/会话/设备事件时间线(±24h 窗口内按时间排列的审计日志)。参考:ISO 27001:2022 Annex A.12.4 (Event Logging)、PCI DSS v4.0 Req 10 (Log & Monitor)。
Request Parameters
| Name | In | Type | Required | Default | Example | Constraints | Description |
|---|---|---|---|---|---|---|---|
id |
path |
string |
Yes | 异常ID |
Responses
| Status | Description | Schema |
|---|---|---|
| 200 | 异常时间线 | dto.AnomalyTimelineDetailResponse |
| 400 | 请求参数校验失败 | dto.Problem |
| 401 | 未认证 | dto.Problem |
| 404 | 异常不存在 | dto.Problem |
| 500 | 服务内部错误 | dto.Problem |
Referenced Schemas
dto.AnomalyCommentResponse
异常调查评论
| Field | Type | Required | Example | Constraints | Description |
|---|---|---|---|---|---|
author_id |
string |
No | usr_analyst001 |
评论者ID | |
author_name |
string |
No | Zhang San |
评论者名 | |
content |
string |
No | 经调查确认为误报 |
内容 | |
created_at |
integer |
No | 1713175800 |
时间戳 | |
id |
string |
No | cmt_abc123 |
评论ID |
dto.AnomalyResponse
审计异常记录
| Field | Type | Required | Example | Constraints | Description |
|---|---|---|---|---|---|
assignee |
string |
No | usr_analyst001 |
分析师 | |
comments |
array of |
No | 评论 | ||
created_at |
integer |
No | 1713175800 |
创建时间戳 | |
description |
string |
No | 检测到连续5次登录失败 |
描述 | |
detected_at |
integer |
No | 1713175800 |
检测时间戳 | |
event_ids |
array of string |
No | 关联事件ID | ||
id |
string |
No | ano_abc123 |
异常ID | |
mitre_tactic |
string |
No | T1110 |
MITRE战术 | |
related_case_id |
string |
No | 关联案件ID | ||
resolved_at |
integer |
No | 解决时间戳 | ||
resolved_by |
string |
No | 解决者 | ||
severity |
string |
No | high |
严重程度 | |
status |
string |
No | open |
状态 | |
tenant_id |
string |
No | tnt_abc123 |
租户ID | |
type |
string |
No | brute_force |
类型 | |
updated_at |
integer |
No | 更新时间戳 | ||
user_id |
string |
No | usr_abc123 |
用户ID |
dto.AnomalyTimelineDetailResponse
| Field | Type | Required | Example | Constraints | Description |
|---|---|---|---|---|---|
code |
integer |
No | |||
data |
dto.AnomalyTimelineResponse |
No | |||
message |
string |
No | |||
timestamp |
string |
No |
dto.AnomalyTimelineResponse
异常关联的用户事件时间线,包含设备/会话上下文
| Field | Type | Required | Example | Constraints | Description |
|---|---|---|---|---|---|
anomaly |
dto.AnomalyResponse |
No | |||
context |
dto.ContextSummary |
No | |||
events |
array of |
No | |||
login_sessions |
array of |
No |
dto.AuditLogResponse
审计日志记录信息
| Field | Type | Required | Example | Constraints | Description |
|---|---|---|---|---|---|
action |
string |
No | user.login |
操作 | |
app_id |
string |
No | app_xyz |
应用ID | |
duration |
integer |
No | 150 |
耗时(ms) | |
id |
string |
No | audit_abc123 |
日志ID | |
ip |
string |
No | 192.168.1.1 |
IP | |
level |
string |
No | info |
级别 | |
message |
string |
No | 用户登录成功 |
消息 | |
metadata |
object |
No | 元数据 | ||
module |
string |
No | identity |
模块 | |
operator_id |
string |
No | usr_abc123 |
操作者ID | |
operator_type |
string |
No | user |
操作者类型 | |
request_id |
string |
No | req_xyz789 |
请求ID | |
sequence |
integer |
No | 12345 |
序列号 | |
status |
integer |
No | 0 |
状态 | |
target_id |
string |
No | usr_target |
目标ID | |
target_type |
string |
No | user |
目标类型 | |
tenant_id |
string |
No | tnt_abc123 |
租户ID | |
timestamp |
integer |
No | 1713175800 |
时间戳 | |
user_agent |
string |
No | Mozilla/5.0... |
UA |
dto.ContextSummary
异常关联事件的高层统计信息
| Field | Type | Required | Example | Constraints | Description |
|---|---|---|---|---|---|
time_span_seconds |
integer |
No | 86400 |
||
total_events |
integer |
No | 27 |
||
unique_devices |
integer |
No | 3 |
||
unique_ips |
integer |
No | 2 |
dto.DeviceSummary
异常时间线中某个设备指纹的摘要信息
| Field | Type | Required | Example | Constraints | Description |
|---|---|---|---|---|---|
event_count |
integer |
No | 5 |
||
fingerprint |
string |
No | f7a3c8e1b2d4... |
||
first_seen |
integer |
No | 1713175800 |
||
ip |
string |
No | 192.168.1.1 |
||
last_seen |
integer |
No | 1713180000 |
||
user_agent |
string |
No | Mozilla/5.0... |
dto.FieldViolation
| Field | Type | Required | Example | Constraints | Description |
|---|---|---|---|---|---|
code |
string |
No | Code 是错误代码(可选) 用于程序识别错误类型,如 "required", "format", "range" | ||
description |
string |
No | Description 是人类可读的错误描述 应该说明违反了什么规则,如 "必须是一个有效的邮箱地址" | ||
field |
string |
No | Field 是错误字段的路径 使用点号表示嵌套字段,如 "user.email" 或 "addresses[0].city" | ||
value |
object |
No | Value 是导致错误的值(可选,开发模式下使用) 生产环境可能不返回此字段以避免泄露敏感信息 |
dto.Problem
| Field | Type | Required | Example | Constraints | Description |
|---|---|---|---|---|---|
code |
integer |
No | Code 是业务错误码 用于程序处理特定错误场景 示例:30101001 | ||
detail |
string |
No | Detail 是针对此具体错误实例的人类可读解释 可以包含具体的错误细节,如"Field 'email' is required" | ||
errors |
array of |
No | Errors 是字段级验证错误列表(扩展字段) 遵循 Web API 标准实践,每个错误包含字段名和错误信息 | ||
i18n_args |
object |
No | I18nArgs 是国际化参数 用于动态填充翻译模板 | ||
i18n_key |
string |
No | I18nKey 是国际化键 用于客户端本地化错误消息 示例:"error.user_not_found" | ||
instance |
string |
No | Instance 是发生问题的具体URI引用 通常是请求的URL,可能包含查询参数 示例:"/api/v1/users?limit=invalid" | ||
request_id |
string |
No | RequestID 是请求唯一标识 用于日志关联和问题追踪 示例:"req_550e8400-e29b-41d4-a716-446655440000" | ||
retry_after |
integer |
No | RetryAfter 用于 429 Too Many Requests 响应 指示客户端应在多少秒后重试请求(RFC 6585) | ||
service |
string |
No | Service 是服务名 用于微服务架构中定位错误来源 示例:"auth-service" | ||
span_id |
string |
No | SpanID 是当前 span 标识 用于精确定位分布式链路中的当前节点 | ||
status |
integer |
No | Status 是产生的HTTP状态码 用于客户端区分问题类型,不随Accept-Language变化 示例:400, 401, 403, 404, 500 | ||
timestamp |
string |
No | Timestamp 是错误发生时间 ISO 8601 格式 示例:"2026-04-03T12:00:00Z" | ||
title |
string |
No | Title 是简短、人类可读的问题类型摘要 相同的 Type 应该始终有相同的 Title(不随实例变化) 示例:"Invalid Request Parameters" | ||
trace_id |
string |
No | TraceID 是分布式追踪标识 遵循 W3C Trace Context 标准 示例:"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01" | ||
type |
string |
No | Type 是标识问题类型的URI引用 当该URI被解引用时,应提供人类可读的文档 示例:"https://api.example.com/errors/invalid-request" |