Skip to content
bitzorcas
EN

Reference

审计模块

综合审计系统 — 7 类分片存储、基于 Channel 的异步管道、实体变更跟踪、保留策略和基于 Quartz 的清理任务。

Last updated

BitzOrcas 提供7 类审计系统,包含分片存储表、异步基于 Channel 的管道、实体级变更跟踪和可配置的保留策略。

架构

请求 → RequestAuditMiddleware → IAuditLogger
ChannelAuditQueue
(无界 Channel<T>)
后台 AuditWriter
┌──────────────────┼──────────────────┐
▼ ▼ ▼
SysAuditLog SysActivityLog SysExternalRequestLogRecord
SysSpecialLog SysCommunicationLog SysEntityPropertyChangesLog
+ SysSpecialLog

7 类审计

类别用途
常规SysAuditLog一般审计跟踪条目
活动SysActivityLog用户活动跟踪
实体属性变更SysEntityPropertyChangesLog字段级变更跟踪
通信SysCommunicationLog入站/出站 API 调用
外部请求SysExternalRequestLogRecord带详情的出站 HTTP 调用
特殊SysSpecialLog特殊/敏感事件

实体变更跟踪

SqlSugarEntityChangeAuditor 跟踪任何实体的字段级变更

{
"entityType": "NoteEntity",
"entityId": "abc123",
"changes": [
{ "property": "Title", "oldValue": "旧标题", "newValue": "新标题" },
{ "property": "Content", "oldValue": "...", "newValue": "..." }
]
}

审计管道组件

组件位置用途
IAuditLoggerBitzOrcas.Infrastructure入队审计条目
ChannelAuditQueueBitzOrcas.Infrastructure后台队列处理器
AuditEntryNormalizerBitzOrcas.Infrastructure规范化/验证条目
IAuditLogStoreBitzOrcas.Infrastructure持久化端口
SqlSugarAuditLogStoreInfra.SqlSugar.AuditingSqlSugar 实现
IAuditQueryPortBitzOrcas.Infrastructure只读查询端口
IAuditRetentionPortBitzOrcas.Infrastructure保留清理端口
IAuditTableInitializerBitzOrcas.InfrastructureSchema 初始化端口

分片实体层次

审计表使用具有内置分片的独立实体层次:

AuditEntityBase (雪花 Id)
├── AuditTenantEntityBase (+ TenantId)
│ └── AuditTenantSoftDeleteEntityBase (+ IsDeleted)
│ ├── SysAuditLogEntity
│ ├── SysActivityLogEntity
│ ├── SysCommunicationLogEntity
│ ├── SysExternalRequestLogRecordEntity
│ ├── SysEntityPropertyChangesLogEntity
│ └── SysSpecialLogEntity

保留策略

通过 JobHost 中的 Quartz.NET 配置:

{
"Audit": {
"Retention": {
"Enabled": true,
"CronExpression": "0 0 2 * * ?",
"MaxAgeDays": 90
}
}
}

AuditRetentionQuartzJob 按 Cron 调度运行,调用 IAuditRetentionPort.CleanupAsync() 清除超过保留期的记录。

审计排除

使用 [AuditIgnore] 特性排除特定请求处理器或属性的审计:

[AuditIgnore]
public class PingQueryHandler : IRequestHandler<PingQuery, Pong> { }

审计端点

端点方法描述
/api/audit/logsGET分页审计日志查询
/api/audit/activityGET活动日志查询
/api/audit/entity-changesGET实体变更历史
/api/audit/external-requestsGET外部请求审计

另见