# 定时任务告警权限审计 > status: complete > created: 2026-07-19 > complexity: 🟡中等 > parent: code-copilot/changes/定时任务优化/spec.md > version: V6 > dependency: 定时任务可靠性加固、定时任务运维日志监控 > ui-baseline: code-copilot/changes/定时任务优化/ui-reference.md ## 1. 目标 在日志和执行摘要稳定后增加最终失败通知、细粒度资源权限和管理写操作审计。本版本不包含 Webhook、任务模板或开放 API。 ## 2. 功能范围 - [x] 最终失败后通过消息中心发送站内信或邮件,重试过程中不重复告警。 - [x] 告警对象支持指定平台用户和邮件地址,配置由管理端维护。 - [x] 新增、编辑、删除、启停、立即执行、同步重试和日志清理写操作审计。 - [x] 管理接口从统一 ApiPermissionIgnore + assertAdmin 迁移到基础资源权限。 - [x] Service 对受保护任务、危险执行目标和日志敏感字段继续二次校验。 - [x] 权限区分配置查询、配置修改、启停、立即执行、同步、日志查询、导出、清理和敏感详情。 ## 3. 明确不做 - 不开放任意 Webhook;Webhook 必须等待定时任务出站安全。 - 不创建 MES 角色模板、任务模板或普通租户自助任务。 - 不开放外部 Token 或开放 API。 - 不发送任务参数、Token、完整响应或堆栈。 ## 4. 数据和资源 - sys_job_config 增加 alarm_enabled、alarm_channels、alarm_recipient_user_ids。 - 创建 system:jobConfig:* 和 system:jobLog:* 基础权限及对应 API 资源。 - 所有新增资源和字典 tenant_id=1,并使用 NOT EXISTS。 - 不创建固定业务角色,只提供可分配权限资源。 ## 5. 告警与审计规则 - 只有最终 FAILED 执行触发一次告警。 - 告警包含任务名、任务组、执行 ID、失败时间、安全摘要和详情入口。 - 消息中心不可用不得改变任务执行结果,但必须记录结构化 ERROR 和告警失败指标。 - 操作审计记录安全裁剪后的关键前后值,不记录任务参数和敏感执行结果。 ## 6. 验收标准 - 不同资源权限可以区分配置、执行、日志查看和敏感详情。 - 重试后最终成功不告警,最终失败只告警一次。 - 消息发送失败不覆盖任务执行状态。 - 所有管理写操作均能查询到操作审计。 ## 7. 确认门禁 - [x] 确认首期告警只支持站内信和邮件。 - [x] 确认只创建权限资源,不创建 MES 角色模板。 - [x] 确认本版本不开放 Webhook。