Files
junhong_cmp_fiber/openspec/changes/add-audit-integration-write-switches/proposal.md
break 370fd3e67f
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 10m49s
update
2026-09-03 09:28:28 +08:00

2.3 KiB
Raw Blame History

Why

生产环境在异常重启恢复后Worker 对审计与外部交互记录执行的大量读写和留存扫描使 PostgreSQL 出现严重磁盘 I/O 等待。维护者需要能在不修改代码的情况下临时停止新增统一审计记录和外部交互记录,并停止其归档、留存任务,以保护核心业务数据库可用性。

What Changes

  • 新增默认启用的运行时配置开关,分别控制统一审计事件及资源快照、外部交互日志的新增持久化;关闭后不再向 tb_audit_eventtb_audit_event_resourcetb_integration_log 写入新记录。
  • 关闭记录开关时,业务操作、外部调用、回调处理和既有领域状态处理继续执行;审计调查和外部交互日志查询仅返回已有历史记录。
  • BREAKING 关闭开关期间不产生审计事实、资源快照或外部交互记录,也不建立新的审计与外部交互关联;依赖 Integration Log 作为内部重试或幂等辅助信息的调用必须在不落库时保持既有业务正确性。
  • 新增默认启用的 Worker 开关,关闭后不注册、不调度且不消费 Audit 日归档、Integration Log 日归档和日志日留存任务;已入队的对应任务必须安全跳过,不扫描或修改三张表。
  • 保持现有归档和留存开关的语义不变;新的任务总开关独立于“是否物理清理”的开关。

Capabilities

New Capabilities

  • observability-write-controls: 审计、外部交互记录和其后台归档/留存任务的运行时启停控制。

Modified Capabilities

  • operations-audit: 允许维护者在运行时关闭新增审计事实及审计相关后台任务,并定义关闭期间的查询与任务行为。
  • external-integration: 允许维护者在运行时关闭新增外部交互日志及其归档/留存任务,并定义外部调用与回调的降级边界。

Impact

  • 配置:pkg/config 默认配置、环境变量映射和生产运行说明。
  • 运行装配:cmd/apicmd/workerinternal/bootstrap、任务注册与处理。
  • 基础设施:统一审计 Writer、Integration Log Repository 及其调用方的无记录降级路径。
  • 任务Audit 日归档、Integration 日归档、日志日留存任务及其 Asynq 队列处理。
  • 文档OpenSpec 契约、生产运维说明与配置说明。