duxingchen
817183062d
feat(webhook): MOM 回调的部门归属分流 —— 只放行 IRIS 与空白值
MOM 现在同时对接 IRIS 与 LICA 两个 Track 实例,按载荷里的 company_name 分流。
实现:
· MomInboundPayload / MomOutboundPayload 补 company_name 字段
(不补的话会被 Pydantic 静默丢弃,分流无从谈起)
· 新增 _is_foreign_company(),在**鉴权之后、匹配产品之前**拦截
· 拦截时返回 200 + matched=False + reason="ignored_company" —— 与「未命中」
保持同一契约,避免 MOM 侧把它当成故障反复重推
⚠️ 判定刻意做成「只排除已知的外来公司」(黑名单),而非「白名单只认 IRIS」:
MOM 在无法确定公司归属时会回落到扁平配置,该配置指向本实例 —— 这类消息的
company_name 会是空 / 缺失。若按白名单把空白也拒掉,它们就彻底丢了:MOM
那边已收到 200、认为投递成功,不会再重推。同理,未见过的新值也一律照常处理。
reason 的取值 "ignored_company" 与 LICA 实例(~/track-lica)保持一致 —— MOM 侧
不解析它,但排查时两边日志要对着看,字段名不一致会白白浪费时间。
实测:
· LICA 载荷 → {"ok":true,"matched":false,"reason":"ignored_company"}
· IRIS/空串/缺失 → 照常处理
· 无 X-API-Key 仍返回 401(鉴权未被绕过)
2026-09-22 13:43:52 +08:00
..
2026-09-21 13:05:35 +08:00
2026-09-22 13:43:52 +08:00
2026-09-15 10:57:29 +08:00
2026-09-21 01:57:20 +00:00
2026-08-04 10:05:59 +08:00
2026-08-05 14:00:13 +08:00
2026-09-01 13:53:24 +08:00
2026-08-05 14:01:08 +08:00