Skip to content

移除生产运行时中的 OIDF Suite 知识和测试专用表面 #129

Description

@bymoye

Parent architecture issue: #130

背景

目标不是“让 NazoAuth 内置 OIDF 测试能力”,而是让未经测试特判的生产实现被外部 OIDF Conformance Suite 黑盒验证。当前生产代码、资源和数据库包含固定 Suite matrix、conformance lease、OIDF 专用 onboarding/trust、dynamic Suite origin、CIBA automated-decision 等内容,使 Suite 版本与 NazoAuth Release 耦合,并形成第二套运行语义的风险。

最终原则

NazoAuth 只实现 OAuth/OIDC/FAPI/CIBA/OpenID4VC 规范和有真实生产价值的管理能力。它不得知道:

  • OIDF Suite 版本
  • Suite plan/module ID
  • 固定 conformance matrix
  • WebDriver/Suite API
  • OIDF client 模板
  • dynamic Suite origin
  • OIDF 专用 decision/claim/trust 路径

协议缺陷修复必须保留。例如通用 JOSE/JWE、mTLS、PAR、CIBA、OpenID4VC 互操作修复不属于 Suite 特判。

迁移范围

  • 将固定 matrix、runner、plan config、OIDF client 模板和执行证据职责迁出 NazoAuth。
  • 以正常 client/user/trust/admin 能力替代 OIDF 专用 onboarding。
  • 删除或退役:
    • conformance_lease 生产模块与 operator operations
    • conformance repository/table/columns/functions
    • dynamic Suite origin 特判
    • CIBA automated-decision 测试端点
    • OIDF 专用 OpenID4VC trust/dataset 读取路径
    • 常驻 conformance cleanup task
  • 历史测试证据应迁移或保留为不可变归档,不能伪造删除历史结果。
  • 在删除 schema 前先枚举、撤销并清理现有 lease/client/trust,提供可恢复迁移和验证报告。

允许保留的通用能力

只有具有独立生产价值并且不包含 OIDF 语义的能力可以保留,例如:

  • tenant-scoped client/trust 管理
  • 普通资源的 expires_at、revision、owner 和 revoke
  • 原子 change-set 与批量回滚
  • 签名 operator task/receipt
  • 安全的 key/trust rotation

不得为了替代 conformance_lease 而创建换名后的测试 seam。

依赖

  • 外部控制器必须先能通过普通管理能力完成准备、运行和 finally cleanup。
  • OIDF driver/matrix 应作为独立签名 artifact 动态获取,不锁在 NazoAuth 或 ctl 版本中。
  • CIBA 测试应操作真实用户批准流程,不得依赖隐藏的自动批准接口。

验收标准

  • 生产 crates、embedded resources、routes、operator protocol 和当前 schema 中不再含 OIDF Suite 专用行为。
  • NazoAuth 不根据测试 client、origin、plan/module 或 Suite header 改变协议结果。
  • 使用同一不可变生产 Release,由外部控制器运行完整 OIDF 黑盒矩阵并通过。
  • Suite 版本/matrix 更新不需要发布 NazoAuth。
  • conformance controller 中止后,临时资源仍能被可靠枚举、撤销和清理。
  • 迁移前后全工作区测试、Clippy、安全状态机与公开协议行为无回退。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions