自动化、连接器与权限边界

自动化的价值是减少重复操作;它的风险是把一次小错误稳定地重复很多次。本课不讨论“能不能连上”,而是完成一次上线前权限评审、故障演练和恢复验收。

完成后你将得到

动作清单知道流程真实读写什么
权限方案每个动作只拿必要权限
故障与恢复记录超时、重试和回滚可验证
上线门禁不满足条件就不扩大范围

开始条件:选择一项已经人工跑通、输入输出相对稳定的流程。没有人工版本和验收标准的工作,不应直接自动化。

连续案例:把文章副本整理成网站草稿

目标是减少重复整理,不是无人值守发布。自动化读取指定目录中的文章副本,生成预览并创建网站草稿;公开发布、覆盖原稿和删除文件始终由人决定。

低风险起步

允许自动执行

  • 读取“待处理”目录中的指定副本
  • 检查标题、摘要和正文是否齐全
  • 在“预览”目录创建新文件
  • 在指定测试站点创建草稿
  • 记录每一步输入、输出和状态
必须人工确认

  • 访问未授权目录或账号
  • 覆盖原始文章和图片
  • 向外发送、公开发布或群发
  • 删除本地或网站内容
  • 修改密钥、权限和连接器设置

危险目标

每天自动扫描整个电脑,优化所有文章后直接发到网站;失败就一直重试。

它同时扩大了读取范围、修改范围、发布权限和重试次数。任何一个判断错误都可能被放大成隐私泄露、内容覆盖或重复发布。

第一步:按真实影响拆动作,不按“一个自动化”打包授权

动作 对象 是否改变状态 失败后果 风险
读取 指定文章副本 读错版本或暴露无关资料 低—中
分析 副本文本 得出错误结论
创建 预览目录新文件 是,可隔离 产生错误文件
上传 指定图片副本 传错文件或泄露信息 中—高
创建草稿 指定测试站点 是,可撤销 重复草稿或错误内容
公开发布 生产站点 是,对外 错误内容公开
覆盖 原文章或现有页面 是,可能不可逆 丢失原内容
删除 文件、文章或账号数据 是,可能不可逆 数据丢失

流程名称:
动作编号:
动作:读取/分析/创建/修改/上传/发送/发布/覆盖/删除
操作对象:
对象所在位置:
读取范围:
写入范围:
是否改变外部状态:
失败后最坏结果:
能否撤销:
恢复方式:
需要人工确认吗:
日志必须记录什么:
为什么“创建草稿”和“公开发布”不能共用一个授权?

两者都写入网站,但影响范围不同。草稿通常可隔离、可检查、可删除;公开发布会直接影响用户和品牌。权限必须依据真实后果划分,而不是依据它们是否使用同一个连接器。

第二步:把最小权限、确认点和恢复方法写在同一张表

动作 最小权限范围 执行前确认 日志 恢复
读取文章 只读指定“待处理”副本目录 首次授权和目录变化时 文件名、摘要指纹、读取时间 不修改原文件
生成预览 只写独立“预览”目录 批次开始时 输入文件、输出文件、校验结果 删除预览后重新生成
创建草稿 指定测试站点,仅创建草稿 每批显示待创建清单 站点、草稿 ID、幂等键 按草稿 ID 撤销
上传图片 只上传任务清单中的图片副本 逐批确认 本地文件、远端 ID、用途 按远端 ID 移除
公开发布 不授予自动流程 每篇人工终检后手动执行 发布人、时间、最终网址 撤回并保留事故记录
删除和覆盖 不授予自动流程 单独人工操作 对象、原因、备份位置 从备份恢复

流程:
运行环境:测试/生产

允许读取:
明确禁止读取:
允许创建:
允许修改:
明确禁止覆盖:
明确禁止删除:
允许访问的站点或服务:
账号角色和权限:

以下动作每次确认:
以下动作永不自动执行:

备份位置:
日志位置:
凭据保存方式:
权限到期或撤销方式:
负责人:

第三步:先跑模拟批次,不连接真实发布动作

用三份专门编写的安全样例验证正常、缺字段和重复输入。模拟运行只输出“准备做什么”,不真正创建网站内容。

样例 A · 正常文章标题、摘要、正文和图片说明齐全

预期:通过校验,生成一份预览计划。

样例 B · 缺少摘要正文存在,摘要为空

预期:停止该文件,明确缺少字段,不自行编写。

样例 C · 重复输入与上次运行内容完全相同

预期:识别为已处理,不再创建第二份草稿。

模拟运行应留下什么

批次:DRY-20260726-01
输入目录:安全样例/待处理
发现文件:3
通过:1
停止:1(缺少摘要)
跳过:1(幂等键已存在)
外部写入:0
公开发布:0
结论:可以进入“测试站点创建草稿”演练

第四步:专门演练“操作可能成功,但响应超时”

危险重试

创建草稿请求超时后,流程认为失败,立即重新提交。第一次请求其实已经在服务器成功,于是产生两个重复草稿。

安全重试

每个任务先生成唯一幂等键;超时后先按幂等键或外部 ID 查询状态,确认未创建才允许重试。

演练场景:创建草稿后响应超时
测试对象:安全样例 A
本次幂等键:

第一次请求:
- 开始时间:
- 返回状态:超时
- 是否立即重试:否

状态检查:
- 是否找到同一幂等键:
- 是否取得草稿 ID:
- 草稿内容是否完整:

决定:
□ 已成功,不重试
□ 明确未创建,允许重试一次
□ 状态未知,停止并人工处理

最终草稿数量:
是否产生重复:
日志位置:
验收人:

幂等不是术语,而是“同一任务执行两次,结果仍只有一份”

  1. 用稳定信息生成任务标识,例如来源文件指纹、目标站点和任务类型。
  2. 写入外部系统前记录“准备执行”。
  3. 执行成功后保存外部对象 ID 和最终状态。
  4. 重试前先查询标识或对象 ID,不以“没收到响应”判断失败。
  5. 状态未知时停止,不自动扩大重试次数。

第五步:先证明能恢复,再扩大自动化范围

备份文件存在不代表恢复可用。必须用安全样例实际走一遍撤销和恢复。

恢复演练

文件恢复

原文件只读保留;预览写入独立目录。错误预览可以删除并从原副本重新生成。

网站恢复

记录每个草稿 ID。测试失败时按 ID 撤销,不用标题模糊搜索后批量删除。

权限恢复

记录连接器、账号角色和授权范围;演练撤销令牌或移除授权后流程能安全停止。

流程恢复

保存最后成功步骤和批次状态。恢复时从明确检查点继续,不从头重复外部写入。

第六步:日志要能回答“谁在何时对什么做了什么”

只有“任务成功”没有用。出现问题时,必须能定位输入、权限、动作、外部对象和恢复结果。

批次编号:
任务标识/幂等键:
开始时间:
结束时间:
执行环境:
操作者或自动化名称:
使用账号角色:

输入对象:
输入版本或指纹:
执行动作:
授权范围:
人工确认人和时间:

输出对象:
外部对象 ID:
最终状态:
错误信息:
重试次数:
是否发生外部写入:

撤销或恢复动作:
恢复结果:
仍需人工处理:
日志保存位置:

第七步:上线不是“打开开关”,而是逐级扩大范围

  1. 级别 0 · 只读检查只分析安全样例,不写文件和外部系统。
  2. 级别 1 · 本地预览只写独立预览目录,原文件只读。
  3. 级别 2 · 测试草稿只在测试站点创建草稿,逐批确认。
  4. 级别 3 · 生产草稿限定数量,仍不自动公开发布。
  5. 级别 4 · 高风险动作发布、发送、付款、删除保持人工执行。

流程名称:
计划开放级别:

□ 人工流程已经跑通并有验收标准
□ 正常、缺字段和重复输入样例均通过
□ 读取和写入范围精确到目录、站点或对象
□ 生产账号不是管理员级完全权限
□ 发送、发布、付款、删除和密钥操作单独确认
□ 超时后先查状态,不盲目重试
□ 同一任务重复运行不会产生重复外部对象
□ 每次外部写入都有对象 ID 和操作日志
□ 文件与数据库备份已经实际检查
□ 撤销权限、删除测试草稿和恢复文件已演练
□ 有明确停止条件和负责人

停止条件:
- 连续出现 ___ 次同类错误
- 状态未知或日志缺失
- 权限范围发生变化
- 输入格式不符合约定
- 发现敏感信息或未经授权资料

上线结论:通过/退回演练
批准人:
日期:
什么时候不要继续扩大权限?

只要状态查询、幂等、日志、恢复或人工确认中有一项无法证明,就停在当前级别。自动化范围越大,验证证据应越强,不能用“目前没出过问题”代替故障演练。