spec.md 1.6 KB

ADDED Requirements

Requirement: 注册源

调用方白名单 SHALL 维护于宜搭"权限表单"。mjava-com MUST 通过 com.caller.registry.formUuid 配置项动态加载调用方清单。

Scenario: 启动时全量加载

  • WHEN 应用启动 @PostConstruct
  • THENcom.caller.registry.formUuid 分页查询宜搭表单
  • AND 过滤 enabled=on 的记录转为 CallerProfile 写入内存 Map

Requirement: 加载与刷新

注册表 SHALL 支持 TTL 自动刷新与 stale-while-revalidate。

Scenario: TTL 到期触发刷新

  • WHEN 距上次加载超过 com.caller.registry.ttlSeconds(默认 300 秒)
  • THEN 异步重新拉取宜搭表单
  • AND 期间旧数据继续可用,直到新数据就绪替换

Scenario: 手动刷新入口

  • WHEN 调用 POST /api/com/_admin/reloadCallers
  • AND 当前 profile 为 dev
  • THEN 立即同步重新加载

Requirement: 密钥轮换

调用方密钥更新 SHALL 由运营在宜搭表单手动完成。本 change 不支持双密钥并存。

Scenario: 单密钥轮换

  • WHEN 运营更新宜搭表单 callerSecret
  • THEN 下次 TTL 刷新后新密钥生效
  • AND 轮换期间客户端必须同步切换(可接受短暂 401)

Requirement: 调用方停用

调用方停用 SHALL 在下次注册表刷新后立即生效。停用期间请求 MUST 返回 401。

Scenario: enabled=off

  • WHEN 宜搭表单 radioField_enabled=off
  • AND 注册表刷新完成
  • THEN 该 callerId 从内存 Map 移除
  • AND 后续请求返回 401 { code: "CALLER_DISABLED" }