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