chenxing
|
d0af9d481c
|
[ysch-flow] S3.1~S3.2 接入 ysch-flow starter 并声明 yh.flow-biz 语义块
依赖不写版本(BOM 托管);存量 callback 件显式声明保留(回退绳类仍需其 SPI 类型)。
yaml 增 biz-type=notice、四态码 10/20/30/40(取 FlowAuditStatusEnum,0=待提交是本应用
特有暂态不入映射)、variables=[deptId,deptName]、detail-route=/list/detail?serid={bizId}
(与迁移前 JumpTarget 产物逐字节相同)。密钥段一字未动。
另修一处与本次无关的环境断点:appearance 件只由 feat/appearance-sdk 分支的 BOM 托管,
本分支 BOM 无该条目,notice/svc-hall/UserBase 均解析失败;给 notice 自己的依赖补显式
1.0.0-SNAPSHOT(jar 已在本地仓库),合流后应删本行回落 BOM。
|
2026-10-17 23:44:18 +08:00 |
|
chenxing
|
d99ce81cc0
|
refactor(file): 附件根目录对齐平台标准 FILE_PATH——优先级 FILE_PATH(共享 application-platform.yml 一份)>FILE_UPLOAD_PATH(notice 过渡键)>file.upload-path(本地开发)
build / build-push (push) Successful in 2m31s
其他子应用(userhome/userbase/flow-center)代码即读 FILE_PATH,各子应用值相同
(/data/upload),收敛到共享 application-platform.yml 一份后子应用无需再各自维护;
notice 的 FILE_WEB_PATH/UPLOAD_WEB_PATH_HTTP 为 projman 模板键,代码无消费点。
|
2026-10-10 16:04:31 +08:00 |
|
chenxing
|
b96de59b6d
|
docs(file): FILE_UPLOAD_PATH 注释改为配置文件顶层键口径(与 flow-center 的 FILE_PATH 同玩法,环境变量亦可)
build / build-push (push) Successful in 2m38s
|
2026-10-10 15:54:07 +08:00 |
|
chenxing
|
a4e8702dc0
|
fix(file): 附件存储根目录优先读平台标准环境变量 FILE_UPLOAD_PATH——修复生产附件随容器重建丢失
build / build-push (push) Successful in 1m27s
生产容器 env 只有旧 dotnet 风格 FILE_PATH 顶层键(Spring 不识别),@Value(${file.upload-path})
回落到打包默认 D:/data/upload,Linux 下被锚定为 /app/D:/data/upload 写进容器可写层,
每次 projman 重新部署附件全部丢失(2026-10 事故,卷里仅剩 9/1 前的 3 个文件)。
新优先级:FILE_UPLOAD_PATH 环境变量(子应用平台新标准,projman 注入 /data/upload)
> file.upload-path(application.yml,仅本地 Windows 开发)> /data/upload 兜底。
deploy/notice.yaml 与 docker-compose.notice.yml 文档块同步更新。
|
2026-10-10 15:46:07 +08:00 |
|
chenxing
|
0216d0655c
|
feat(msg): JumpTarget 标准化接入——两处跳转换 SDK 结构化门面(app+jump 链式/setBizJump),jumpPath 与 bizUrl 输出逐字节零差异;随车自指地址 Phase2 镜像收口(front-base-url 与 callback-* 键删除、裸相对路径、jumpApp 归属声明,测试同步);application.yml 服务目录键 flowcenter→flow-center 归一(D1 P3 尾巴)
build / build-push (push) Successful in 2m15s
|
2026-09-29 11:00:05 +08:00 |
|
chenxing
|
a7e93cb22d
|
refactor(flow): 回调端点收敛为 starter 默认 /oapi/flow/callback + 开漂移自动核对
build / build-push (push) Successful in 1m5s
网关契约 /{target}/oapi/** 的首段已由 target 承担,应用内端点再加一段
<target> 是冗余(Notice 的 /oapi/notice/flow/callback 属历史遗留:其 oapi
Controller 统一建在 /oapi/notice/** 下)。
- application.yml: notice.flow.callback-path 与 yh.flow-callback.path
由 /oapi/notice/flow/callback 收敛为 /oapi/flow/callback
- application.yml: 摘除显式 callback-url,注册地址改由 starter 推导
(open-host ?: yh.open.base-host) + /{target ?: base-path} + path
⇒ 生产 = http://open-gateway-service:10013/notice/oapi/flow/callback
回滚绳:把全地址写回 callback-url 即可,无需回滚镜像
- application.yml: 开 reconcile-on-register=true —— 端点/ctx/base-path
变更后镜像行有效但登记 URL 不一致时自动重注册,替代"删镜像行→重新保存
绑定"的手工恢复路径(注意:重注册会轮换 secret)
- NoticeFlowProperties: callbackPath 默认值同步
- 测试 4 处同步冻结字面量/硬编码路径/断言
测试:mvn -o test → 114/114 通过(含 NoticeFlowApiIT 9 例、FlowCallbackTransientIT
1 例在真实过滤链上按新端点 200)
|
2026-09-24 11:57:01 +08:00 |
|
chenxing
|
58aadaa95a
|
feat(flow): 迁 yh-flow-callback starter + 对接抄送与条件路由判断端点
build / build-push (push) Successful in 1m8s
迁 starter(2026-09-20 方案):删手写 OapiFlowCallbackController/FlowCallbackService,改 NoticeFlowCallbackHandler 实现 SPI;验签/eventId 幂等/乱序门交 starter 管线,yml 切中央密钥链(trust-registry)
抄送(2026-09-24):flow.cc.sent 落 notice_cc 表 + GET /api/notice/cc/My 应用内「抄送给我的」;未发布通知可见守卫加第 4 条「被抄送人」
条件路由(2026-09-24):POST /oapi/notice/flow/route/dept-judge(纯读幂等;formData 优先免查库;未命中 outlets 抛错绝不默认放行);apply 的 formData 带发文部门(deptId/deptName)
IT 验签确定性:NoticeFlowApiIT/FlowCallbackTransientIT 属性覆盖回落白名单(trusted-apps.100019),不再依赖本地 Redis 密钥内容
生产 DDL:deploy/sql/20260924_add_notice_cc.sql;mvn test 114 全绿
|
2026-09-24 01:19:26 +08:00 |
|
chenxing
|
5db629cfdb
|
feat(msg): 接入消息中心——NoticeUserMsgNotifier(发布/转发/催办→UserMsg WS 实时推送,afterCommit 容错+分片+幂等)+ SDK 门面客户端 + 用户目录归一(09-19 二期验收 9/9)
build / build-push (push) Successful in 57s
|
2026-09-19 18:55:17 +08:00 |
|
chenxing
|
b3c5326163
|
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 测试全绿。
|
2026-09-16 21:06:17 +08:00 |
|
chenxing
|
8852c7ab02
|
refactor(sdk)!: 适配 SDK 领域分包——流程/班级/用户中心门面切新包
build / build-push (push) Successful in 55s
- FlowModels / FlowCenterClient / FlowCenterClientTest:
openapi.dto.FlowDto → openapi.flow.model.*(按需引入 FlowApplyBody/Result、FlowCallbackRegBody/Result、
FlowInstance/FlowSummary);TargetSpec/YschCallProperties/YschOpenCall → openapi.core.*
- ClassService(+IClassService):切新班级域门面 YschClassOpenApi + clazz.model.SchTea,
替换原先用 openapi.client.YschBaseOpenApi 直连基址的写法
- ContactsService / NoticeService / UserCenterService:YschBaseOpenApi → openapi.base.*
- application.yml:随服务目录兜底去掉 open.enabled / user-center-url / userclass 三个 legacy 键
(userclass 已由 PlatformService 枚举兜底 = base-host + /userclass)
验证:clean test 全绿 64 个非 IT 用例(含本次改动的 FlowCenterClientTest 5/5)。
12 个 *IT 在本机因无 MySQL(jdbc:mysql://localhost:3306/bsch_notice_test)在
entityManagerFactory 阶段 Connection refused,属环境性失败,与本次迁移无关。
说明:这批改动是工作区在途内容(适配 SDK 领域分包所必需),不落库则 Notice 无法对
当前 nexus 上的 SDK 构建通过——即"消费方提交态编译不过"的根因。
|
2026-09-16 19:26:27 +08:00 |
|
chenxing
|
01ce87ed7a
|
feat(app-auth): Notice 入站验签由白名单改走中央密钥链(注册表模式)
- pom 显式引 spring-boot-starter-data-redis(yh-app-auth 的该依赖是 optional、不传递);
删掉原先"不引 redis"的注释
- application.yml:去掉 trusted-apps 白名单,改 trust-registry: true —— 共享 Redis
sign:app:* 单一真源,凡在 UserBase 注册过的 appKey 自动可验,新增调用方不必再改配置+重启;
并关掉 management.health.redis.enabled(防 Redis 抖动把 /actuator/health 拉成 DOWN 503)
- 配套(projman 配置,非本仓):notice 应用勾选 redis 中间件(注入 SPRING_REDIS_*)+
application-prod.yml 同步去白名单/开 trust-registry。缺任一环都会 fail-closed 到全 401
前置:UserBase 已部署 ①(密钥链落 db0,refreshAll synced=10),flow-center 生产身份 100009 已在
application_info 注册,故回调验签可从注册表解析。
|
2026-09-16 18:56:30 +08:00 |
|
chenxing
|
138b226ab0
|
先审后发
build / build-push (push) Successful in 2m29s
|
2026-09-15 22:09:43 +08:00 |
|
chenxing
|
5384a08475
|
接入平台 env-config:新增 PropertyEnvConfigSource 激活免登录 GET /api/env-config?target=front(线上值经 YH_ENV_CONFIG_SOURCE_FRONT / Nacos 键注入,projman 维护);新增 EnvConfigApiIT 真实端口验证匿名旁路 CAS(surefire 追加 *IT,连本地 bsch_notice_test 自动建库)
build / build-push (push) Successful in 2m30s
|
2026-09-08 22:10:56 +08:00 |
|
chenxing
|
7cf17528ef
|
班级管理地址修订
build / build-push (push) Successful in 54s
|
2026-09-08 14:18:27 +08:00 |
|
chenxing
|
41849defc9
|
通知修订
|
2026-09-01 19:55:12 +08:00 |
|
chenxing
|
6375562c8d
|
通知修订
|
2026-09-01 14:09:24 +08:00 |
|
chenxing
|
40dd7fadea
|
init local code
|
2026-08-24 17:37:10 +08:00 |
|