tasks.md 4.0 KB

Forge AI 中枢受控流程动作实施计划

变更名:forge-ai-hub-flow-actions 状态:fixed_pending_review 原则:发布 FLOW 绑定 → 实时授权 → 任务归属 → elicitation → 幂等流程副作用 → 双审计

Task 1:固定元工具受控执行 SPI

  • 为阶段 2.1 网关增加 GovernedCapabilityExecutionAdapter,按 sourceType 解析、确认和执行;
  • 保持现有 BUSINESS_ACTION 执行路径,并通过适配 SPI 分发 FLOW_ACTION;
  • 目录 SQL 精确允许 BUSINESS_ACTION/ACTION 与 FLOW_ACTION/FLOW 两种 MEDIUM 组合;
  • search/describe 输出行为、来源和 operation,不泄露未授权能力。

Task 2:FLOW_ACTION 发布契约

  • 新建 flow-actions 模块、POM、BOM、plugin parent、Admin 聚合与自动配置;
  • 新建发布 DTO/Controller/Publisher/Mapper XML;
  • 只从启用且已发布对象与启用 FLOW binding 生成 START/APPROVE/REJECT;
  • Schema 使用 Draft 2020-12、additionalProperties=false、Long ID 字符串;
  • Control Plane 禁止通用 publish 绕过 FLOW_ACTION 专用发布入口。

Task 3:grant 与运行时策略

  • FLOW_ACTION grant 必须是 FLOW/MEDIUM 且配置非空 allowedOperations;
  • grant 只能缩小版本 operation,撤销/过期下一请求实时失效;
  • 调用时复核 resolved version 的 bindingId/modelKey/objectVersion/operation;
  • 基础设施故障使用稳定 CATALOG/AUTHORIZATION/FLOW_*_UNAVAILABLE

Task 4:START/APPROVE/REJECT 执行器

  • START 只调用 startDocumentFlow,不传 flowModelKey、variables 或客户端身份;
  • APPROVE/REJECT 先验证 A 是已签收办理人,再验证 objectCode/recordId/processDefKey;
  • 移除 completeBusinessTask 对 DTO userId 的信任;
  • REJECT comment 必填,所有 comment 不进入普通日志;
  • 不实现 claim/delegate/return/withdraw/terminate。

Task 5:幂等、确认与双审计

  • 创建流程动作日志实体/Mapper/XML/Service,先预留再副作用;
  • canonical SHA-256 digest 绑定版本、recordId、taskId、comment;
  • 唯一键预留和并发冲突路径保证相同键最多一次进入副作用;
  • elicitation 仅 ACCEPT + confirm=true 继续;
  • Capability 审计、流程动作日志、流程实例/任务用 requestId 串联。

Task 6:Flyway 与权限

  • 新增 V1.0.24 日志表、逻辑删除唯一键和 publish/invoke 权限资源;
  • CREATE IF NOT EXISTS/NOT EXISTS、tenant_id=1、显式列名;
  • placeholder、物理 DELETE、敏感数据、旧 SSE/STATELESS/stdio/ASYNC 扫描通过。

Task 7:增量验证与回填

  • Flow Actions、Secure Actions、Generator 编译、Control Plane、Identity、MCP 专项验证通过;
  • Admin JDK 17 聚合 package 通过;
  • dependency tree 无 Spring Authorization Server、Sa-Token OAuth2;
  • 未执行真实 Flyway、真实 Flowable E2E 或真实模型时明确记录条件跳过;
  • 更新 spec/test-spec/execution-log,状态置为 applied_pending_review

Task 8:Review Findings

  • 完成阶段一 Spec Compliance Review;结论 FAIL,按规则未进入 Code Quality Review;
  • R1:Flow 服务最终办理入口按可信 tenant + assignee + task status 重新授权,消除转签 TOCTOU 和内部接口绕过;
  • R2:invoke 在任何字段投影前拒绝顶层未知字段和身份/流程控制字段;
  • R3:建立远程流程副作用的幂等与可恢复回填协议;
  • R4:FLOW_ACTION START 固定业务 key,普通人工流程历史重发保持兼容;
  • R5:来源查询锚定实际 PUBLISHED 的业务对象设计版本记录;
  • R6:search/describe 补齐 sourceType/behavior/operation,并补全 P0 Red/Green 测试;
  • R7:成功幂等重放绕过任务可办理预检,活动 RUNNING 在查询任务前失败关闭;
  • R8:增加 60 秒 Sa-Token 用户委托桥、专用 delegated START 与 Session 委托标记验证;
  • 二次 Spec Compliance 与 Code Quality Review 通过,允许归档。