t1~t3落地+10-22精修: 消费授权v3(owner/grant/订阅/目录)+答卷投递v2(可信提交上下文/快照/幂等关联)+答卷对账v1(清单/派发/租约/结果)
build / build-push (push) Successful in 1m26s
build / build-push (push) Successful in 1m26s
含10-22精修六类修复: 续租renewRunning/结果INCOMPLETE_RESULT门/终态TASK_TERMINAL/liveGrant复用ACL/hosted幂等重放绑定/错误明细整条重序列化。 合规审计与证据: 工作区docs/tasks/REFINEMENT_AUDIT.md + evidence/refinement-20261022/(patch+指纹)。SQL未执行、测试未运行(仅-skipTests编译)。
This commit is contained in:
@@ -53,6 +53,16 @@ spring:
|
||||
# 实测把上下文启动拖到分钟级——"可选依赖"就名存实亡)。拓扑声明由 FcEventPublisher
|
||||
# 自己惰性做一次(exchangeDeclare durable topic,第一次真要发的时候),不依赖 admin。
|
||||
dynamic: false
|
||||
# ===== v2 快照投递的两把可靠性闸(契约 answer-delivery-v2 §3.4,TASK_2 B.4)=====
|
||||
# correlated:逐条 confirm 回到 AnswerDeliveryService 的回调,只有它才写 broker_accepted_at;
|
||||
# 拿不到 confirm 就不算"总线收下",行留在 PENDING/FAILED 退避。
|
||||
# 这两键对 v1 广播通道同样生效:v1 的消息没有 fc-delivery-id 头,回调按头缺席直接忽略。
|
||||
publisher-confirm-type: ${RABBITMQ_PUBLISHER_CONFIRM_TYPE:correlated}
|
||||
publisher-returns: ${RABBITMQ_PUBLISHER_RETURNS:true}
|
||||
template:
|
||||
# mandatory=true + publisher-returns:路由不到目标私有队列(消费方队列没绑上=部署契约缺项)
|
||||
# 时必须回来,静默丢弃是最坏结局
|
||||
mandatory: ${RABBITMQ_TEMPLATE_MANDATORY:true}
|
||||
|
||||
# ===== 文件上传存储路径 =====
|
||||
# 教训注释自 notice/service application.yml 原样抄入(2026-10 事故):
|
||||
@@ -119,6 +129,36 @@ form-center:
|
||||
# (CAS cookie 不隔离端口,免二次登录成立的前提);同主域生产置空即整体关闭
|
||||
cors:
|
||||
allowed-origins: http://localhost:8089
|
||||
# ===== hosted 填报(可信提交上下文,answer-delivery-v2 §6,TASK_2 A.2)=====
|
||||
# 键按**已验签的消费 appKey**取,浏览器传的任何 URL 都不采信:可嵌入 origin 决定被嵌页
|
||||
# 只允许向哪个精确 origin 发 postMessage,回调基址是消费方确认入口(签发时锁定,作审计与
|
||||
# 后续反向通知的唯一事实源)。缺键=签发直接失败(fail-closed,宁可不给入口也不给一个能被
|
||||
# 任意父页面接走的入口)。生产由 env 注入,本文件的本地值仅用于本机联调。
|
||||
# ⚠️ 本地 svc-hall 后端与 form-center 都写 8086(两应用不会同时本机起,联调时用 env 错开):
|
||||
# 跨应用联调请显式注入 FC_HOSTED_CALLBACK_URL_SVCHALL 指向 SH 后端实际端口。
|
||||
hosted-fill:
|
||||
token-ttl-minutes: ${FC_HOSTED_TOKEN_TTL_MINUTES:30}
|
||||
embed-origin:
|
||||
"100018": ${FC_HOSTED_EMBED_ORIGIN_SVCHALL:http://localhost:8087}
|
||||
callback-url:
|
||||
"100018": ${FC_HOSTED_CALLBACK_URL_SVCHALL:http://localhost:8086/api/apply/intents}
|
||||
|
||||
# ===== v2 快照投递(answer-delivery-v2 §3,TASK_2 B.1~B.6)=====
|
||||
# 持久性是 outbox 行本身(答卷事务内落库),这里只调"发送侧"的节奏与重试预算。
|
||||
# source-app-key 默认取本应用签名身份(yh.app-auth.app-key),信封里的 sourceAppKey 由服务端给,
|
||||
# 不接受消费方申报。未配 broker 时行留在 PENDING、不丢事件(B.4)。
|
||||
fc:
|
||||
answer:
|
||||
delivery:
|
||||
source-app-key: ${YH_APP_AUTH_APP_KEY:100021}
|
||||
scan-interval-ms: ${FC_DELIVERY_SCAN_INTERVAL_MS:10000}
|
||||
scan-initial-delay-ms: ${FC_DELIVERY_SCAN_INITIAL_DELAY_MS:30000}
|
||||
batch-size: ${FC_DELIVERY_BATCH_SIZE:50}
|
||||
# 有界重试:8 次×2 递增退避(30s→60s→…→封顶 1h),耗尽即 DEAD 留表待处置,不无限 requeue
|
||||
max-retries: ${FC_DELIVERY_MAX_RETRIES:8}
|
||||
backoff-base-seconds: ${FC_DELIVERY_BACKOFF_BASE_SECONDS:30}
|
||||
backoff-cap-seconds: ${FC_DELIVERY_BACKOFF_CAP_SECONDS:3600}
|
||||
|
||||
|
||||
logging:
|
||||
level:
|
||||
|
||||
Reference in New Issue
Block a user