fix(flow): 回调路径过期值修正 + 地址缺失 fail-fast + 服务目录显式化
build / build-push (push) Successful in 2m10s

- application.yml:notice.flow.callback-path 由过期的 /callback/flow 改回
  /oapi/notice/flow/callback(/callback/* 已随 X-Flw-* 过滤器下线,旧值会让本地注册的
  回调地址 404);新增 yh.open.services.flowcenter,删 notice.flow.base-url。
- NoticeFlowProperties.baseUrl 默认值去掉(localhost:8085 静默回落是隐患);
  FlowCenterClient 在 enabled=true 且「目录与 legacy 键都缺」时构造期 fail-fast
  (enabled=false 不校验——显式未接入本就不需要地址)。
- 测试:新增 NoticeFlowCallbackConfigContractTest(反射拼控制器映射,冻结
  callback-path/callback-base-path 与控制器/Runtime ctx 的咬合);FlowCenterClientTest
  补 fail-fast 与 disabled 两态。68 测试全绿。
This commit is contained in:
chenxing
2026-09-16 21:06:17 +08:00
parent 8852c7ab02
commit b3c5326163
5 changed files with 141 additions and 7 deletions
@@ -58,6 +58,15 @@ public class FlowCenterClient implements FlowClient {
if (directoryResolved) {
com.yunhai.platform.openapi.flow.YschFlowOpenApi.setCall(call);
}
String legacy = properties.getBaseUrl() == null ? "" : properties.getBaseUrl().trim();
if (properties.isEnabled() && !directoryResolved && legacy.isEmpty()) {
// 目录未配且 legacy 键也空:构造期 fail-fast(本键已无默认值),
// 避免静默打 localhost 把"地址没配"伪装成"流程中心不可达"。
// enabled=false(显式未接入)时不校验——地址本就不需要。
throw new IllegalStateException("流程中心调用地址未配置:请配置服务目录 yh.open.services."
+ com.yunhai.platform.openapi.core.PlatformService.FLOWCENTER.key()
+ "(推荐,容器直连完整 URL)或回落键 notice.flow.base-url");
}
}
@Override
@@ -15,8 +15,13 @@ public class NoticeFlowProperties {
/** 是否接入流程中心(false=编辑页选择器隐藏、FlowClient 全部抛业务异常降级) */
private boolean enabled = true;
/** flow-center 基址(Tier 0 目标;本地 http://localhost:8085,生产由 projman 注入) */
private String baseUrl = "http://localhost:8085";
/**
* flow-center 基址的 <b>legacy 回落</b>(Tier 0 ad-hoc TargetSpec 路径)。
* 主路径是服务目录 {@code yh.open.services.flowcenter} → {@code YschFlowOpenApi} 门面;
* 本键仅迁移期兼容,<b>不再给默认值</b>——两者都空时 {@code FlowCenterClient} 构造期
* fail-fast,避免静默打 localhost 把"地址没配"伪装成"流程中心不可达"。
*/
private String baseUrl = "";
/**
* 本应用对外可达基址(回调注册用):flow-center 探活与事件推送都打这里。