Skip to content

数据保留

数据保留用于清理日志、事件、临时文件记录和运行痕迹。策略定义位于 packages/server/src/lib/retention/policies.ts,执行器位于 packages/server/src/lib/retention/runner.ts

数据模型与接口

策略表为 retention_policies

字段说明
policy_key策略主键
enabled是否启用
retention_days保留天数,0 表示不清理
batch_size单批删除上限,默认 5000
last_run_at最近执行时间
last_deleted最近删除行数

接口挂载在 /api/retention-policies

方法路径权限说明
GET/system:retention:view策略列表
PUT/{key}system:retention:edit更新启用状态、保留天数、批大小
GET/{key}/previewsystem:retention:view预览待清理行数
POST/{key}/runsystem:retention:run立即执行策略

策略模式

执行器支持四类模式:

  • age:按时间字段删除早于保留天数的数据;
  • ageAndCap:按时间保留,同时限制总量;
  • expiresAt:按过期时间字段删除;
  • custom:由策略提供自定义清理逻辑。

默认按 ctid 分批删除,每批默认 5000 行,最多 200 批。手动执行会调用相同 runner;传入天数覆盖时仍要求天数大于 0。

注册与同步

registerRetentionPolicies() 会把代码中的策略同步到 retention_policies

  • 新策略插入默认天数和批大小;
  • 已存在策略保留数据库中的运维配置;
  • 代码中移除的策略会清理数据库残留。

系统级任务 data-retention 每天 0 3 * * * 触发全量数据保留清理。

策略清单

代码定义 64 个策略,主要分组如下:

策略默认天数说明
operation_logs180操作日志
login_logs180管理员登录日志
ip_access_logs90IP 拦截日志
login_risk_events180登录风险事件
license_events365License 事件
identity_provider_sync_logs90身份源同步日志
directory_sync_runs90通讯录同步运行
maintenance_logs365维护模式记录
db_admin_query_history90数据库管理查询历史
app_release_events180应用发布事件
terminal_sessions180终端会话
password_reset_tokens7密码重置 token
directory_sync_conflicts180通讯录同步冲突
system_scheduler_runs30系统调度运行日志,带数量上限
cron_job_logs30定时任务日志,带数量上限
system_scheduler_nodes7调度节点心跳
system_metric_samples30系统指标样本
monitor_alert_events180监控告警事件
email_send_logs180邮件发送日志
sms_send_logs180短信发送日志
in_app_messages365站内信
notification_outbox90通知 outbox
notification_dispatches180通知投递记录
user_events180用户行为事件
analytics_sessions180行为分析会话
error_events90前端错误事件
analytics_event_quality_daily180埋点质量日报
error_alert_logs90错误告警日志
payment_notify_logs365支付通知日志
payment_events180支付事件
payment_risk_hits365支付风控命中
member_login_logs180会员登录日志
member_notifications365会员通知
open_api_call_logs90Open API 调用日志
app_webhook_deliveries180应用 Webhook 投递
oauth2_tokens30开放平台 OAuth2 token
workflow_engine_health_snapshots7工作流引擎健康快照
workflow_compensation_logs180工作流补偿日志
workflow_automation_runs90工作流自动化运行
workflow_connector_invocations90工作流连接器调用
workflow_tokens90工作流 token
rule_executions90规则执行记录
report_dataset_execution_logs90数据集执行日志
report_query_cost_logs90查询成本日志
report_share_access_logs180分享访问日志
report_dq_runs180数据质量运行
report_delivery_runs180报表投递运行
report_asset_usage_logs180报表资产使用日志
report_dq_anomalies365数据质量异常
report_sla_violations365SLA 违规
cms_visit_logs90CMS 访问日志
cms_search_logs90CMS 搜索日志
cms_ad_events180CMS 广告事件
cms_content_op_logs180CMS 内容操作日志
cms_push_logs180CMS 推送日志
cms_member_view_history180CMS 会员浏览历史
mp_template_send_logs180公众号模板消息发送
mp_messages180公众号消息
mp_kf_sessions365公众号客服会话
mp_kf_session_events90公众号客服会话事件
wiki_search_logs180Wiki 搜索日志
wiki_doc_views180Wiki 文档浏览
async_tasks30异步任务
export_jobs180导出任务
upload_sessions1上传会话

注意事项

  • 数据保留策略主要面向日志与运行痕迹,不替代业务归档。
  • 需要租户隔离的策略在代码中显式配置 per-tenant 行为。
  • 自定义清理策略应保证可重复执行,并返回删除行数。

Built with VitePress for local documentation preview.