fengling-console/.planning/PROJECT.md

101 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Fengling Console
## 这是什么
Fengling 微服务生态系统的中央管理控制台。负责用户管理、租户管理、OAuth 客户端管理,以及**网关配置管理**。是所有运维操作的中枢后台。
## 核心价值
统一的管理入口,负责所有运维相关的配置和操作,让其他服务专注于业务逻辑。
## 需求
### 已验证(现有功能)
- ✓ 用户管理CRUD、角色分配— 已有
- ✓ 租户管理 — 已有
- ✓ OAuth 客户端管理 — 已有
- ✓ 网关服务/路由/实例管理 — 已有GatewayController
- ✓ 租户申请审批流程 — 已有
### 进行中
- [ ] 实现配置变更广播机制(通过 PostgreSQL NOTIFY 通知所有网关实例)
- [ ] 实现 K8s 服务健康检查功能
- [ ] 实现配置变更广播机制(通知所有网关实例)
- [ ] 实现 K8s 服务健康检查功能
- [ ] 集成 Redis pub/sub 用于多实例通信
### 范围外
- [业务逻辑] — 由各微服务负责
- [API 认证] — 由 auth-service 负责
- [服务发现] — 由 service-discovery 负责
## 背景
**与 Gateway 的关系:**
```
fengling-console (管理平面)
├── 用户/租户/配置管理
└── 网关配置管理
├── GatewayDbContext (直接操作数据库)
├── GatewayController (API)
└── ReloadGatewayAsync() (待实现广播)
fengling-gateway (数据平面)
└── 监听配置变更,重新加载
```
**当前问题(来自 CONCERNS.md**
- OAuth 密钥硬编码
- CORS 允许所有(开发环境)
- 缺少测试覆盖
- ReloadGatewayAsync() 为空实现
**Console 已有能力:**
- GatewayDbContext - 管理网关路由、集群、实例数据
- GatewayController - 提供 /api/console/gateway/* API
- GatewayService - 业务逻辑
- 网关已有 PgSqlConfigChangeListener 使用 NOTIFY/LISTEN可复用
- 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
## 关键决策
| 决策 | 理由 | 结果 |
|------|------|------|
| Console 作为运维中枢 | 集中管理,降低复杂度 | ✓ 良好 |
| Gateway 配置从 Console 变更 | 单一事实来源 | ✓ 良好 |
| PostgreSQL NOTIFY 广播 | 轻量方案,无需额外依赖 | ✓ 良好 |
|------|------|------|
| Console 作为运维中枢 | 集中管理,降低复杂度 | ✓ 良好 |
| Gateway 配置从 Console 变更 | 单一事实来源 | ✓ 良好 |
| Redis pub/sub 广播 | 成熟方案,易于实现 | ✓ 良好 |
---
*最后更新2026-03-02 初始化后*