From e497b7e1cc96ce84e419f502e976c3d84898c269 Mon Sep 17 00:00:00 2001 From: movingsam Date: Mon, 2 Mar 2026 18:19:49 +0800 Subject: [PATCH] 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 --- .planning/PROJECT.md | 83 ++++++++++++++++++++++++++++++++++++++++++++ .planning/STATE.md | 58 +++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 .planning/PROJECT.md create mode 100644 .planning/STATE.md diff --git a/.planning/PROJECT.md b/.planning/PROJECT.md new file mode 100644 index 0000000..d1f5adf --- /dev/null +++ b/.planning/PROJECT.md @@ -0,0 +1,83 @@ +# 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 初始化后* diff --git a/.planning/STATE.md b/.planning/STATE.md new file mode 100644 index 0000000..bc084a6 --- /dev/null +++ b/.planning/STATE.md @@ -0,0 +1,58 @@ +# 状态:Fengling Console + +**最后更新:** 2026-03-02 + +--- + +## 项目引用 + +参考:.planning/PROJECT.md(更新于 2026-03-02) + +**核心价值:** 统一的管理入口,负责所有运维相关的配置和操作,让其他服务专注于业务逻辑。 + +**当前重点:** 待规划 + +--- + +## 项目状态 + +| 项目 | 状态 | +|------|------| +| PROJECT.md | ✓ 已初始化 | +| CODEBASE | ✓ 已有(ARCHITECTURE.md, CONCERNS.md, STACK.md 等) | +| Roadmap | 未创建 | + +--- + +## 累积上下文 + +### 初始化 + +- **2026-03-02:** 创建 PROJECT.md,定义 Console 在生态系统中的角色 +- 现有代码库(已有 ARCHITECTURE.md、INTEGRATIONS.md 等) + +### 与 Gateway 的集成 + +| 组件 | 位置 | 现状 | +|------|------|------| +| GatewayDbContext | src/Data/ | 已实现,管理网关配置数据 | +| GatewayController | src/Controllers/ | 已实现,提供 API | +| GatewayService | src/Services/ | 已实现,业务逻辑 | +| ReloadGatewayAsync | src/Services/GatewayService.cs:340 | 空实现,需实现广播 | + +### 待完成任务 + +- 实现 ReloadGatewayAsync() 广播机制 +- 集成 Redis pub/sub +- 实现 K8s 服务健康检查 + +--- + +## 备注 + +- Console 是运维中枢,网关配置的单一管理入口 +- Gateway 监听配置变更并重载 + +--- + +*最后更新:2026-03-02 初始化后*