跳到主要内容

产品主线与双可嵌入 SDK 的架构及依赖铁律

背景

仓库同时承载一个可直接部署的授权服务器产品与可复用的协议引擎。若不约束依赖方向,Domain 代码会被框架类型渗透,SDK 消费方将被迫引入 Drogon。

决策

以产品为主线交付,同时沉淀 fulla::oauth2 与 fulla::identity 两个可嵌入 SDK。Domain 三包(common/oauth2/identity)禁止 include Drogon(允许 jsoncpp);oauth2 与 identity 互不编译依赖;跨包端口全部下沉 common;apps/server 是唯一装配点负责依赖注入;tools/arch-guard 在 CI 强制以上全部。

后果与现状对照

libs/ 下 7 个库目录(8 个 CMake 包,含 common/testing)与 include/fulla/*/ports/ 均按此落地;arch-guard(tools/arch-guard)是 CI 门禁。消费方可只用引擎 + 任意单存储后端。