feat(flow): 回调信封升级——事件携带操作人身份(operatorUserId/operatorName)
在飞工作合入:FlowEvent 增操作人字段(可空),引擎/推进监听/回调派发全程透传, 对齐 SDK FlowCallbackEvent 的 taskId/operator 字段(规范 §6.4)。
This commit is contained in:
@@ -197,6 +197,16 @@ class CallbackDispatchIT extends FlowTestSupport {
|
||||
assertTrue(payload.get("instanceVersion").asInt() >= 1, "instanceVersion 应为办件乐观锁版本");
|
||||
assertNotNull(payload.get("eventId"));
|
||||
assertNotNull(payload.get("occurredTime"));
|
||||
// 2026-09-20 信封升级:taskId + 操作人(发起直达链路 → 操作人=发起人快照)
|
||||
assertEquals("201", payload.get("operatorUserId").asText(), "operatorUserId 应为发起人");
|
||||
assertEquals("张三", payload.get("operatorName").asText(), "operatorName 应为发起人");
|
||||
if ("flow.task.created".equals(event)) {
|
||||
assertTrue(payload.get("taskId") != null && payload.get("taskId").isNumber(),
|
||||
"task.created 必带顶层 taskId");
|
||||
} else if ("flow.submitted".equals(event)) {
|
||||
assertTrue(payload.get("taskId") == null || payload.get("taskId").isNull(),
|
||||
"办件级事件 taskId 应为 null");
|
||||
}
|
||||
// 签名断言:Base64(HmacSHA256(secret, ts.nonce.body))
|
||||
String expected = hmac(reg.getSecret(), r.timestamp, r.nonce, r.body);
|
||||
assertEquals(expected, r.signature, "推送必须带合法 X-Flw-Signature");
|
||||
|
||||
Reference in New Issue
Block a user