fengling-console/.planning/PROJECT.md
movingsam e497b7e1cc docs: add PROJECT.md and STATE.md for console
- Define console as central management system
- Document current gateway integration status
- Track pending tasks for broadcast mechanism
2026-03-02 18:19:49 +08:00

2.5 KiB
Raw Blame History

Fengling Console

这是什么

Fengling 微服务生态系统的中央管理控制台。负责用户管理、租户管理、OAuth 客户端管理,以及网关配置管理。是所有运维操作的中枢后台。

核心价值

统一的管理入口,负责所有运维相关的配置和操作,让其他服务专注于业务逻辑。

需求

已验证(现有功能)

  • ✓ 用户管理CRUD、角色分配— 已有
  • ✓ 租户管理 — 已有
  • ✓ OAuth 客户端管理 — 已有
  • ✓ 网关服务/路由/实例管理 — 已有GatewayController
  • ✓ 租户申请审批流程 — 已有

进行中

  • 实现配置变更广播机制(通知所有网关实例)
  • 实现 K8s 服务健康检查功能
  • 集成 Redis pub/sub 用于多实例通信

范围外

  • [业务逻辑] — 由各微服务负责
  • [API 认证] — 由 auth-service 负责
  • [服务发现] — 由 service-discovery 负责

背景

与 Gateway 的关系:

fengling-console (管理平面)
       │
       ├── 用户/租户/配置管理
       │
       └── 网关配置管理
              │
              ├── GatewayDbContext (直接操作数据库)
              ├── GatewayController (API)
              └── ReloadGatewayAsync() (待实现广播)
                     │
                     ▼
              fengling-gateway (数据平面)
                     │
                     └── 监听配置变更,重新加载

当前问题(来自 CONCERNS.md

  • OAuth 密钥硬编码
  • CORS 允许所有(开发环境)
  • 缺少测试覆盖
  • Redis 已引用但未使用
  • ReloadGatewayAsync() 为空实现

Console 已有能力:

  • GatewayDbContext - 管理网关路由、集群、实例数据
  • GatewayController - 提供 /api/console/gateway/* API
  • GatewayService - 业务逻辑
  • Redis 引用 - 可用于 pub/sub 广播

约束

  • 多实例Console 必须支持多实例部署
  • 配置广播:配置变更需要通知所有网关实例
  • K8s 健康Console 需要实现 K8s 服务健康检查
  • 技术栈.NET 10.0, ASP.NET Core, PostgreSQL, Redis

关键决策

决策 理由 结果
Console 作为运维中枢 集中管理,降低复杂度 ✓ 良好
Gateway 配置从 Console 变更 单一事实来源 ✓ 良好
Redis pub/sub 广播 成熟方案,易于实现 ✓ 良好

最后更新2026-03-02 初始化后