在 b369527 之上增量移植 FL2.0 后端能力,不改既有线级停发/指派预览/流程图入口: - 部门目录:FlowDepartmentController(/admin/department/{groups,options,resolve,members}) + UserBaseDepartmentDirectory(先按会话校域解析引用,再读成员;目录不可用 fail-closed) - 退回重提 D14:POST /oapi/flow/instance/{instanceId}/resubmit,仅原提交人 CAS 路径放行, OAPI 侧 submitterId 路径继续 fail-closed - 授权管理:/api/flow/admin/usage-grant/{schoolList,summary}(校域取管理员会话,无 schId 入参) - 来源主体:解析器派生 ub-app:{applicationInfo.id},不再读取 UserBase 的 sourcePrincipalId 字段 - 回调来源策略:SELF 身份强校验;NULL 来源不广播;复合幂等键 (event_id,reg_id) - 测试夹具:许可/主体/开通桩按新契约修正,FlowEngineIT/FormalApplyCommandIT/ CallbackDispatchIT/OapiFlowContractIT 共 117 例在真实 MySQL 8 通过 不含:FlSourceAuthorizationTest(其断言的两个 Repository 派生方法属另一实现线)
b369527
按《FL最终代码审计与上线阻断清单》194 项已审计工作树形成候选,基座 = origin/main 11e0778。 - 源码/测试/资源:沿用已审计工作树内容(96 项相对远端为新增或更新),含未跟踪实现 CallbackFactStore、CallbackSourcePolicy、VariableContract、FormalApplyCommandService、 FlowActorContextGate 等;C01 续验夹具修正一并入内。 - CI:保留远端 11e0778 的门禁强化(CI_SOURCE_SHA 核对、容器回收验证、空 schema 反向门禁、 main ref 才推镜像);ci/flow-test-schema.sql 按当前实体重新生成(14→20 表,补 6 新表与 6 新列,回调日志复合唯一键 uk_flw_log_event_reg),workflow 表数断言同步 14→20。 - 依据:docs/tasks/evidence/FL-final-audit-20261027(194 项哈希/版本核对)。
11e0778