This commit is contained in:
38
internal/infrastructure/audit/retention.go
Normal file
38
internal/infrastructure/audit/retention.go
Normal file
@@ -0,0 +1,38 @@
|
||||
package audit
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"gorm.io/gorm"
|
||||
|
||||
auditarchive "github.com/break/junhong_cmp_fiber/internal/application/auditarchive"
|
||||
"github.com/break/junhong_cmp_fiber/pkg/constants"
|
||||
)
|
||||
|
||||
// WriteRetentionCleanup 将月度物理清理结果写入当前在线月份的统一审计事件。
|
||||
func (w *Writer) WriteRetentionCleanup(ctx context.Context, tx *gorm.DB, input auditarchive.RetentionAudit) error {
|
||||
return w.Append(ctx, tx, AppendInput{
|
||||
EventID: input.EventID, ActionCode: constants.AuditActionLogRetentionCleanup,
|
||||
Summary: input.Summary,
|
||||
Actor: ActorInput{
|
||||
Kind: constants.AuditActorSystemTask, ID: constants.AuditActorIDRetentionWorker, Name: "日志留存清理任务",
|
||||
},
|
||||
Source: constants.AuditSourceWorker, ScopeType: constants.AuditScopePlatform,
|
||||
Result: input.Result, ErrorSummary: input.ErrorSummary,
|
||||
CorrelationID: "retention:" + input.Month,
|
||||
Metadata: map[string]any{
|
||||
"event_count": input.EventCount, "resource_count": input.ResourceCount,
|
||||
"integration_count": input.IntegrationCount, "manifest_keys": input.ManifestKeys,
|
||||
"duration_ms": input.DurationMS,
|
||||
},
|
||||
Resources: []ResourceInput{{
|
||||
Type: constants.AuditResourceLogArchiveMonth, Key: input.Month, DisplayName: input.Month,
|
||||
Relation: constants.AuditResourceRelationPrimary, Role: constants.AuditResourceRoleRetentionMonth,
|
||||
IdentitySnapshot: map[string]any{
|
||||
"month": input.Month, "timezone": constants.AuditArchiveTimezone,
|
||||
"range_start": input.RangeStart, "range_end": input.RangeEnd,
|
||||
},
|
||||
SubjectVisibility: constants.AuditSubjectInternalOnly,
|
||||
}},
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user