docs: update all planning docs to Chinese
This commit is contained in:
parent
b420ca1f1b
commit
8f7e8d3a71
@ -1,82 +1,81 @@
|
||||
# Fengling Gateway
|
||||
|
||||
## What This Is
|
||||
## 这是什么
|
||||
|
||||
API Gateway based on YARP (Yet Another Reverse Proxy) for the Fengling microservice ecosystem. Routes incoming requests to downstream services (auth-service, member-service, activity, platform, risk-control, etc.) with multi-tenant support, dynamic configuration, and distributed load balancing.
|
||||
基于 YARP (Yet Another Reverse Proxy) 的 API 网关,用于风灵微服务生态系统。支持多租户路由、动态配置和分布式负载均衡,将请求路由到下游服务(auth-service、member-service、activity、platform、risk-control 等)。
|
||||
|
||||
## Core Value
|
||||
## 核心价值
|
||||
|
||||
Reliable, scalable API gateway that distributes traffic to backend microservices with zero-downtime configuration updates.
|
||||
可靠、可扩展的 API 网关,将流量分发到后端微服务,支持零停机配置更新。
|
||||
|
||||
## Requirements
|
||||
## 需求
|
||||
|
||||
### Validated
|
||||
### 已验证(现有功能)
|
||||
|
||||
- ✓ Multi-tenant routing based on URL path — existing
|
||||
- ✓ JWT token parsing and tenant claim extraction — existing
|
||||
- ✓ Dynamic route configuration from PostgreSQL — existing
|
||||
- ✓ Service discovery integration with Kubernetes — existing
|
||||
- ✓ Weighted round-robin load balancing — existing
|
||||
- ✓ Configuration hot-reload via PostgreSQL NOTIFY — existing
|
||||
- ✓ 基于 URL 路径的多租户路由 — 已有
|
||||
- ✓ JWT Token 解析和租户声明提取 — 已有
|
||||
- ✓ PostgreSQL 动态路由配置 — 已有
|
||||
- ✓ Kubernetes 服务发现集成 — 已有
|
||||
- ✓ 加权轮询负载均衡 — 已有
|
||||
- ✓ 通过 PostgreSQL NOTIFY 实现配置热重载 — 已有
|
||||
|
||||
### Active
|
||||
### 进行中
|
||||
|
||||
- [ ] Implement console-driven configuration management (config changes in fengling-console, gateway listens and reloads)
|
||||
- [ ] Support multiple gateway instances via broadcast events (multi-instance deployment)
|
||||
- [ ] Remove K8s health monitoring from gateway (delegate to console)
|
||||
- [ ] 实现 console 驱动的配置管理(配置在 fengling-console 变更,网关监听并重载)
|
||||
- [ ] 通过广播事件支持多网关实例部署
|
||||
- [ ] 将 K8s 健康检查从网关移除(委托给 console)
|
||||
|
||||
### Out of Scope
|
||||
### 范围外
|
||||
|
||||
- [Direct gateway configuration UI] — Handled by fengling-console
|
||||
- [K8s service health checks in gateway] — Delegated to console
|
||||
- [Authentication/Authorization logic] — Handled by auth-service
|
||||
- [直接配置网关的 UI] — 由 fengling-console 负责
|
||||
- [网关中的 K8s 服务健康检查] — 委托给 console
|
||||
- [认证/授权逻辑] — 由 auth-service 负责
|
||||
|
||||
## Context
|
||||
## 背景
|
||||
|
||||
**Ecosystem Structure:**
|
||||
```
|
||||
fengling-gateway/ # Current project - API Gateway (YARP)
|
||||
↓ routes traffic to:
|
||||
fengling-console/ # Central management console - config, tenant management
|
||||
fengling-console-web/ # Web UI for console
|
||||
fengling-auth-service/ # Authentication service
|
||||
fengling-member-service/ # Member management
|
||||
fengling-activity/ # Activity service
|
||||
fengling-platform/ # Platform service
|
||||
fengling-risk-control/ # Risk control service
|
||||
fengling-service-discovery/# Service discovery
|
||||
**生态系统结构:**
|
||||
```fengling-gateway/ # 当前项目 - API 网关 (YARP)
|
||||
↓ 路由流量到:
|
||||
fengling-console/ # 中央管理控制台 - 配置、租户管理
|
||||
fengling-console-web/ # 控制台 Web UI
|
||||
fengling-auth-service/ # 认证服务
|
||||
fengling-member-service/ # 会员服务
|
||||
fengling-activity/ # 活动服务
|
||||
fengling-platform/ # 平台服务
|
||||
fengling-risk-control/ # 风控服务
|
||||
fengling-service-discovery/ # 服务发现
|
||||
```
|
||||
|
||||
**Architecture Decision (New):**
|
||||
- Gateway configuration managed by fengling-console, not directly
|
||||
- Console publishes config changes → Gateway subscribes and reloads
|
||||
- Multi-instance support via broadcast (Redis pub/sub or PostgreSQL NOTIFY)
|
||||
- Console responsible for all K8s service health monitoring
|
||||
- Gateway only handles request routing
|
||||
**架构决策(新):**
|
||||
- 网关配置由 fengling-console 管理,网关不直接配置
|
||||
- Console 发布配置变更 → 网关订阅并重载
|
||||
- 多实例支持通过广播实现(Redis pub/sub 或 PostgreSQL NOTIFY)
|
||||
- Console 负责所有 K8s 服务健康监控
|
||||
- 网关只处理请求路由
|
||||
|
||||
**Current Issues (from CONCERNS.md):**
|
||||
- Hardcoded credentials (security risk)
|
||||
- JWT token not validated (security risk)
|
||||
- API endpoints without authentication (security risk)
|
||||
- Load balancing lock contention
|
||||
- No unit tests
|
||||
**当前问题(来自 CONCERNS.md):**
|
||||
- 硬编码凭据(安全风险)
|
||||
- JWT Token 未验证(安全风险)
|
||||
- API 端点无认证(安全风险)
|
||||
- 负载均衡锁竞争
|
||||
- 缺少单元测试
|
||||
|
||||
## Constraints
|
||||
## 约束
|
||||
|
||||
- **Multi-instance**: Gateway must support running multiple instances simultaneously
|
||||
- **Hot reload**: Configuration changes without restart
|
||||
- **Tech stack**: .NET 10.0, YARP, PostgreSQL, Redis
|
||||
- **Deployment**: Docker + Kubernetes
|
||||
- **多实例**:网关必须支持同时运行多个实例
|
||||
- **热重载**:配置变更无需重启
|
||||
- **技术栈**:.NET 10.0, YARP, PostgreSQL, Redis
|
||||
- **部署**:Docker + Kubernetes
|
||||
|
||||
## Key Decisions
|
||||
## 关键决策
|
||||
|
||||
| Decision | Rationale | Outcome |
|
||||
|----------|-----------|---------|
|
||||
| Console-driven config | Centralizes management, single source of truth | ✓ Good |
|
||||
| Broadcast events for multi-instance | Enables horizontal scaling | ✓ Good |
|
||||
| Delegate K8s health to console | Reduces gateway complexity, console is ops hub | ✓ Good |
|
||||
| Keep YARP as core | Well-maintained, Microsoft-supported | ✓ Good |
|
||||
| 决策 | 理由 | 结果 |
|
||||
|------|------|------|
|
||||
| Console 驱动配置 | 集中管理,单一事实来源 | ✓ 良好 |
|
||||
| 广播事件实现多实例 | 支持水平扩展 | ✓ 良好 |
|
||||
| K8s 健康委托给 console | 降低网关复杂度,console 是运维中心 | ✓ 良好 |
|
||||
| 保持 YARP 为核心 | 微软维护,支持良好 | ✓ 良好 |
|
||||
|
||||
---
|
||||
|
||||
*Last updated: 2026-03-02 after initialization*
|
||||
*最后更新:2026-03-02 初始化后*
|
||||
|
||||
@ -1,90 +1,90 @@
|
||||
# Requirements: Fengling Gateway
|
||||
# 需求文档:Fengling Gateway
|
||||
|
||||
**Defined:** 2026-03-02
|
||||
**Core Value:** Reliable, scalable API gateway that distributes traffic to backend microservices with zero-downtime configuration updates.
|
||||
**定义日期:** 2026-03-02
|
||||
**核心价值:** 可靠、可扩展的 API 网关,将流量分发到后端微服务,支持零停机配置更新。
|
||||
|
||||
## v1 Requirements
|
||||
## v1 需求
|
||||
|
||||
Requirements for initial release. Each maps to roadmap phases.
|
||||
初始发布版本的需求。每个需求对应一个 Roadmap 阶段。
|
||||
|
||||
### Configuration Management
|
||||
### 配置管理
|
||||
|
||||
- [ ] **CFG-01**: Gateway listens to config change events from fengling-console
|
||||
- [ ] **CFG-02**: Gateway reloads configuration without restart when notified
|
||||
- [ ] **CFG-03**: Multi-instance gateway receives config updates via broadcast (Redis pub/sub or PostgreSQL NOTIFY)
|
||||
- [ ] **CFG-01**:网关监听来自 fengling-console 的配置变更事件
|
||||
- [ ] **CFG-02**:收到通知后网关无需重启即可重载配置
|
||||
- [ ] **CFG-03**:多实例网关通过广播接收配置更新(Redis pub/sub 或 PostgreSQL NOTIFY)
|
||||
|
||||
### Multi-Instance Support
|
||||
### 多实例支持
|
||||
|
||||
- [ ] **INST-01**: Multiple gateway instances can run simultaneously
|
||||
- [ ] **INST-02**: Configuration changes propagate to all instances
|
||||
- [ ] **INST-03**: Redis-based pub/sub for cross-instance communication
|
||||
- [ ] **INST-01**:多个网关实例可以同时运行
|
||||
- [ ] **INST-02**:配置变更传播到所有实例
|
||||
- [ ] **INST-03**:使用 Redis pub/sub 进行跨实例通信
|
||||
|
||||
### K8s Health Delegation
|
||||
### K8s 健康委托
|
||||
|
||||
- [ ] **K8S-01**: Remove K8s health monitoring from gateway
|
||||
- [ ] **K8S-02**: Gateway delegates service health checks to console
|
||||
- [ ] **K8S-01**:从网关注销 K8s 健康监控
|
||||
- [ ] **K8S-02**:网关将服务健康检查委托给 console
|
||||
|
||||
### Security Fixes
|
||||
### 安全修复
|
||||
|
||||
- [ ] **SEC-01**: Remove hardcoded credentials from source code
|
||||
- [ ] **SEC-02**: Implement proper JWT token validation
|
||||
- [ ] **SEC-03**: Add authentication to gateway management API endpoints
|
||||
- [ ] **SEC-01**:移除源代码中的硬编码凭据
|
||||
- [ ] **SEC-02**:实现正确的 JWT Token 验证
|
||||
- [ ] **SEC-03**:为网关管理 API 端点添加认证
|
||||
|
||||
### Performance
|
||||
### 性能优化
|
||||
|
||||
- [ ] **PERF-01**: Optimize load balancing lock contention
|
||||
- [ ] **PERF-02**: Implement incremental route cache updates
|
||||
- [ ] **PERF-01**:优化负载均衡锁竞争
|
||||
- [ ] **PERF-02**:实现增量路由缓存更新
|
||||
|
||||
## v2 Requirements
|
||||
## v2 需求
|
||||
|
||||
Deferred to future release. Tracked but not in current roadmap.
|
||||
延期到未来版本。已记录但不在当前 Roadmap 中。
|
||||
|
||||
### Observability
|
||||
### 可观测性
|
||||
|
||||
- **OBS-01**: Distributed tracing integration
|
||||
- **OBS-02**: Custom metrics for gateway performance
|
||||
- **OBS-01**:分布式追踪集成
|
||||
- **OBS-02**:网关性能自定义指标
|
||||
|
||||
### Testing
|
||||
### 测试
|
||||
|
||||
- **TEST-01**: Unit tests for RouteCache
|
||||
- **TEST-02**: Unit tests for JwtTransformMiddleware
|
||||
- **TEST-03**: Unit tests for load balancing policy
|
||||
- **TEST-01**:RouteCache 单元测试
|
||||
- **TEST-02**:JwtTransformMiddleware 单元测试
|
||||
- **TEST-03**:负载均衡策略单元测试
|
||||
|
||||
## Out of Scope
|
||||
## 范围外
|
||||
|
||||
| Feature | Reason |
|
||||
|---------|--------|
|
||||
| Direct gateway configuration UI | Handled by fengling-console |
|
||||
| K8s service health checks in gateway | Delegated to console |
|
||||
| Authentication logic in gateway | Handled by auth-service |
|
||||
| Authorization logic in gateway | Handled by downstream services |
|
||||
| 功能 | 原因 |
|
||||
|------|------|
|
||||
| 直接配置网关的 UI | 由 fengling-console 处理 |
|
||||
| 网关中的 K8s 服务健康检查 | 委托给 console |
|
||||
| 网关中的认证逻辑 | 由 auth-service 处理 |
|
||||
| 网关中的授权逻辑 | 由下游服务处理 |
|
||||
|
||||
## Traceability
|
||||
## 可追溯性
|
||||
|
||||
Which phases cover which requirements. Updated during roadmap creation.
|
||||
哪些阶段覆盖哪些需求。Roadmap 创建时更新。
|
||||
|
||||
| Requirement | Phase | Status |
|
||||
|-------------|-------|--------|
|
||||
| CFG-01 | Phase 1 | Pending |
|
||||
| CFG-02 | Phase 1 | Pending |
|
||||
| CFG-03 | Phase 1 | Pending |
|
||||
| INST-01 | Phase 1 | Pending |
|
||||
| INST-02 | Phase 1 | Pending |
|
||||
| INST-03 | Phase 1 | Pending |
|
||||
| K8S-01 | Phase 2 | Pending |
|
||||
| K8S-02 | Phase 2 | Pending |
|
||||
| SEC-01 | Phase 3 | Pending |
|
||||
| SEC-02 | Phase 3 | Pending |
|
||||
| SEC-03 | Phase 3 | Pending |
|
||||
| PERF-01 | Phase 4 | Pending |
|
||||
| PERF-02 | Phase 4 | Pending |
|
||||
| 需求 | 阶段 | 状态 |
|
||||
|------|------|------|
|
||||
| CFG-01 | 阶段 1 | 待处理 |
|
||||
| CFG-02 | 阶段 1 | 待处理 |
|
||||
| CFG-03 | 阶段 1 | 待处理 |
|
||||
| INST-01 | 阶段 1 | 待处理 |
|
||||
| INST-02 | 阶段 1 | 待处理 |
|
||||
| INST-03 | 阶段 1 | 待处理 |
|
||||
| K8S-01 | 阶段 2 | 待处理 |
|
||||
| K8S-02 | 阶段 2 | 待处理 |
|
||||
| SEC-01 | 阶段 3 | 待处理 |
|
||||
| SEC-02 | 阶段 3 | 待处理 |
|
||||
| SEC-03 | 阶段 3 | 待处理 |
|
||||
| PERF-01 | 阶段 4 | 待处理 |
|
||||
| PERF-02 | 阶段 4 | 待处理 |
|
||||
|
||||
**Coverage:**
|
||||
- v1 requirements: 12 total
|
||||
- Mapped to phases: 12
|
||||
- Unmapped: 0 ✓
|
||||
**覆盖率:**
|
||||
- v1 需求:共 12 项
|
||||
- 已映射到阶段:12 项
|
||||
- 未映射:0 ✓
|
||||
|
||||
---
|
||||
|
||||
*Requirements defined: 2026-03-02*
|
||||
*Last updated: 2026-03-02 after initial definition*
|
||||
*需求定义:2026-03-02*
|
||||
*最后更新:2026-03-02 初始定义后*
|
||||
|
||||
@ -1,106 +1,106 @@
|
||||
# Roadmap: Fengling Gateway
|
||||
# Roadmap:Fengling Gateway
|
||||
|
||||
**Created:** 2026-03-02
|
||||
**Core Value:** Reliable, scalable API gateway that distributes traffic to backend microservices with zero-downtime configuration updates.
|
||||
**创建日期:** 2026-03-02
|
||||
**核心价值:** 可靠、可扩展的 API 网关,将流量分发到后端微服务,支持零停机配置更新。
|
||||
|
||||
---
|
||||
|
||||
## Phase 1: Console-Driven Configuration & Multi-Instance Support
|
||||
## 阶段 1:Console 驱动的配置管理与多实例支持
|
||||
|
||||
**Goal:** Implement console-driven configuration management and multi-instance support.
|
||||
**目标:** 实现 console 驱动的配置管理和多实例支持。
|
||||
|
||||
**Requirements:**
|
||||
- CFG-01: Gateway listens to config change events from fengling-console
|
||||
- CFG-02: Gateway reloads configuration without restart when notified
|
||||
- CFG-03: Multi-instance gateway receives config updates via broadcast
|
||||
- INST-01: Multiple gateway instances can run simultaneously
|
||||
- INST-02: Configuration changes propagate to all instances
|
||||
- INST-03: Redis-based pub/sub for cross-instance communication
|
||||
**需求:**
|
||||
- CFG-01:网关监听来自 fengling-console 的配置变更事件
|
||||
- CFG-02:收到通知后网关无需重启即可重载配置
|
||||
- CFG-03:多实例网关通过广播接收配置更新
|
||||
- INST-01:多个网关实例可以同时运行
|
||||
- INST-02:配置变更传播到所有实例
|
||||
- INST-03:使用 Redis pub/sub 进行跨实例通信
|
||||
|
||||
**Success Criteria:**
|
||||
1. Gateway can subscribe to config change events from console
|
||||
2. Configuration reload works without gateway restart
|
||||
3. Multiple gateway instances stay synchronized
|
||||
4. Broadcast events reach all instances within 5 seconds
|
||||
**成功标准:**
|
||||
1. 网关可以订阅来自 console 的配置变更事件
|
||||
2. 配置重载无需重启网关
|
||||
3. 多个网关实例保持同步
|
||||
4. 广播事件在 5 秒内到达所有实例
|
||||
|
||||
---
|
||||
|
||||
## Phase 2: K8s Health Delegation
|
||||
## 阶段 2:K8s 健康检查委托
|
||||
|
||||
**Goal:** Remove K8s health monitoring from gateway, delegate to console.
|
||||
**目标:** 将 K8s 健康监控从网关移除,委托给 console。
|
||||
|
||||
**Requirements:**
|
||||
- K8S-01: Remove K8s health monitoring from gateway
|
||||
- K8S-02: Gateway delegates service health checks to console
|
||||
**需求:**
|
||||
- K8S-01:从网关注销 K8s 健康监控
|
||||
- K8S-02:网关将服务健康检查委托给 console
|
||||
|
||||
**Success Criteria:**
|
||||
1. KubernetesPendingSyncService is deprecated/removed from gateway
|
||||
2. Health check logic moved to console project
|
||||
3. Gateway only performs request routing, not health monitoring
|
||||
**成功标准:**
|
||||
1. KubernetesPendingSyncService 已弃用/从网关移除
|
||||
2. 健康检查逻辑移至 console 项目
|
||||
3. 网关只执行请求路由,不做健康监控
|
||||
|
||||
---
|
||||
|
||||
## Phase 3: Security Hardening
|
||||
## 阶段 3:安全加固
|
||||
|
||||
**Goal:** Fix critical security vulnerabilities.
|
||||
**目标:** 修复关键安全漏洞。
|
||||
|
||||
**Requirements:**
|
||||
- SEC-01: Remove hardcoded credentials from source code
|
||||
- SEC-02: Implement proper JWT token validation
|
||||
- SEC-03: Add authentication to gateway management API endpoints
|
||||
**需求:**
|
||||
- SEC-01:移除源代码中的硬编码凭据
|
||||
- SEC-02:实现正确的 JWT Token 验证
|
||||
- SEC-03:为网关管理 API 端点添加认证
|
||||
|
||||
**Success Criteria:**
|
||||
1. No hardcoded passwords/secrets in source code
|
||||
2. JWT tokens are validated (signature, expiration, issuer, audience)
|
||||
3. All /api/gateway/* endpoints require authentication
|
||||
**成功标准:**
|
||||
1. 源代码中无硬编码密码/密钥
|
||||
2. JWT Token 经过验证(签名、过期时间、颁发者、受众)
|
||||
3. 所有 /api/gateway/* 端点需要认证
|
||||
|
||||
---
|
||||
|
||||
## Phase 4: Performance Optimization
|
||||
## 阶段 4:性能优化
|
||||
|
||||
**Goal:** Optimize gateway performance under high load.
|
||||
**目标:** 优化高负载下的网关性能。
|
||||
|
||||
**Requirements:**
|
||||
- PERF-01: Optimize load balancing lock contention
|
||||
- PERF-02: Implement incremental route cache updates
|
||||
**需求:**
|
||||
- PERF-01:优化负载均衡锁竞争
|
||||
- PERF-02:实现增量路由缓存更新
|
||||
|
||||
**Success Criteria:**
|
||||
1. Load balancing does not require per-request Redis lock
|
||||
2. Route cache updates are incremental, not full reload
|
||||
3. Gateway handles 10x more requests per second
|
||||
**成功标准:**
|
||||
1. 负载均衡不需要每个请求都获取 Redis 锁
|
||||
2. 路由缓存更新是增量式的,而非全量重载
|
||||
3. 网关处理能力提升 10 倍
|
||||
|
||||
---
|
||||
|
||||
## Phase 5: Observability & Testing
|
||||
## 阶段 5:可观测性与测试
|
||||
|
||||
**Goal:** Add observability and test coverage.
|
||||
**目标:** 添加可观测性和测试覆盖。
|
||||
|
||||
**Requirements:**
|
||||
- OBS-01: Distributed tracing integration
|
||||
- OBS-02: Custom metrics for gateway performance
|
||||
- TEST-01: Unit tests for RouteCache
|
||||
- TEST-02: Unit tests for JwtTransformMiddleware
|
||||
- TEST-03: Unit tests for load balancing policy
|
||||
**需求:**
|
||||
- OBS-01:分布式追踪集成
|
||||
- OBS-02:网关性能自定义指标
|
||||
- TEST-01:RouteCache 单元测试
|
||||
- TEST-02:JwtTransformMiddleware 单元测试
|
||||
- TEST-03:负载均衡策略单元测试
|
||||
|
||||
**Success Criteria:**
|
||||
1. Distributed traces include gateway spans
|
||||
2. Key metrics are exported (request count, latency, error rate)
|
||||
3. Core components have >80% test coverage
|
||||
**成功标准:**
|
||||
1. 分布式追踪包含网关跨度
|
||||
2. 导出关键指标(请求数、延迟、错误率)
|
||||
3. 核心组件测试覆盖率 >80%
|
||||
|
||||
---
|
||||
|
||||
## Roadmap Summary
|
||||
## Roadmap 摘要
|
||||
|
||||
| Phase | Name | Requirements | Status |
|
||||
|-------|------|--------------|--------|
|
||||
| 1 | Console-Driven Config & Multi-Instance | 6 | Not planned |
|
||||
| 2 | K8s Health Delegation | 2 | Not planned |
|
||||
| 3 | Security Hardening | 3 | Not planned |
|
||||
| 4 | Performance Optimization | 2 | Not planned |
|
||||
| 5 | Observability & Testing | 5 | Not planned |
|
||||
| 阶段 | 名称 | 需求数 | 状态 |
|
||||
|------|------|--------|------|
|
||||
| 1 | Console 驱动配置与多实例支持 | 6 | 未规划 |
|
||||
| 2 | K8s 健康检查委托 | 2 | 未规划 |
|
||||
| 3 | 安全加固 | 3 | 未规划 |
|
||||
| 4 | 性能优化 | 2 | 未规划 |
|
||||
| 5 | 可观测性与测试 | 5 | 未规划 |
|
||||
|
||||
**Total:** 5 phases | 18 requirements | All covered ✓
|
||||
**总计:** 5 个阶段 | 18 个需求 | 全部覆盖 ✓
|
||||
|
||||
---
|
||||
|
||||
*Last updated: 2026-03-02 after roadmap creation*
|
||||
*最后更新:2026-03-02 Roadmap 创建后*
|
||||
|
||||
@ -1,75 +1,75 @@
|
||||
# State: Fengling Gateway
|
||||
# 状态:Fengling Gateway
|
||||
|
||||
**Last Updated:** 2026-03-02
|
||||
**最后更新:** 2026-03-02
|
||||
|
||||
---
|
||||
|
||||
## Project Reference
|
||||
## 项目引用
|
||||
|
||||
See: .planning/PROJECT.md (updated 2026-03-02)
|
||||
参考:.planning/PROJECT.md(更新于 2026-03-02)
|
||||
|
||||
**Core value:** Reliable, scalable API gateway that distributes traffic to backend microservices with zero-downtime configuration updates.
|
||||
**核心价值:** 可靠、可扩展的 API 网关,将流量分发到后端微服务,支持零停机配置更新。
|
||||
|
||||
**Current focus:** Phase 1: Console-Driven Configuration & Multi-Instance Support
|
||||
**当前重点:** 阶段 1:Console 驱动的配置管理与多实例支持
|
||||
|
||||
---
|
||||
|
||||
## Project State
|
||||
## 项目状态
|
||||
|
||||
| Item | Status |
|
||||
|------|--------|
|
||||
| PROJECT.md | ✓ Initialized |
|
||||
| config.json | ✓ Created |
|
||||
| Requirements | ✓ Defined (18 requirements) |
|
||||
| Roadmap | ✓ Created (5 phases) |
|
||||
| Research | Not started (auto mode skipped) |
|
||||
| 项目 | 状态 |
|
||||
|------|------|
|
||||
| PROJECT.md | ✓ 已初始化 |
|
||||
| config.json | ✓ 已创建 |
|
||||
| 需求文档 | ✓ 已定义(18 个需求) |
|
||||
| Roadmap | ✓ 已创建(5 个阶段) |
|
||||
| 研究 | 未开始(自动模式跳过) |
|
||||
|
||||
---
|
||||
|
||||
## Phase Status
|
||||
## 阶段状态
|
||||
|
||||
| Phase | Name | Status | Plans | Progress |
|
||||
|-------|------|--------|-------|----------|
|
||||
| 1 | Console-Driven Config & Multi-Instance | Not planned | 0 | 0% |
|
||||
| 2 | K8s Health Delegation | Not planned | 0 | 0% |
|
||||
| 3 | Security Hardening | Not planned | 0 | 0% |
|
||||
| 4 | Performance Optimization | Not planned | 0 | 0% |
|
||||
| 5 | Observability & Testing | Not planned | 0 | 0% |
|
||||
| 阶段 | 名称 | 状态 | 计划数 | 进度 |
|
||||
|------|------|------|--------|------|
|
||||
| 1 | Console 驱动配置与多实例支持 | 未规划 | 0 | 0% |
|
||||
| 2 | K8s 健康检查委托 | 未规划 | 0 | 0% |
|
||||
| 3 | 安全加固 | 未规划 | 0 | 0% |
|
||||
| 4 | 性能优化 | 未规划 | 0 | 0% |
|
||||
| 5 | 可观测性与测试 | 未规划 | 0 | 0% |
|
||||
|
||||
---
|
||||
|
||||
## Accumulated Context
|
||||
## 累积上下文
|
||||
|
||||
### Initialization
|
||||
### 初始化
|
||||
|
||||
- **2026-03-02:** Project initialized via /gsd-new-project --auto
|
||||
- Brownfield project with existing codebase (ARCHITECTURE.md, CONCERNS.md, STACK.md existed)
|
||||
- User provided context: gateway architecture discussion with focus on console-driven config
|
||||
- **2026-03-02:** 通过 /gsd-new-project --auto 初始化项目
|
||||
- 现有代码库的重构项目(已存在 ARCHITECTURE.md、CONCERNS.md、STACK.md)
|
||||
- 用户提供背景:网关架构讨论,重点是 console 驱动的配置管理
|
||||
|
||||
### Key Decisions
|
||||
### 关键决策
|
||||
|
||||
| Decision | Date | Notes |
|
||||
|----------|------|-------|
|
||||
| Console-driven config | 2026-03-02 | Config changes in fengling-console, gateway listens |
|
||||
| Multi-instance via broadcast | 2026-03-02 | Redis pub/sub or PostgreSQL NOTIFY |
|
||||
| K8s health delegation | 2026-03-02 | Console handles K8s health, not gateway |
|
||||
| 决策 | 日期 | 备注 |
|
||||
|------|------|------|
|
||||
| Console 驱动配置 | 2026-03-02 | 配置在 fengling-console 变更,网关监听 |
|
||||
| 多实例广播 | 2026-03-02 | Redis pub/sub 或 PostgreSQL NOTIFY |
|
||||
| K8s 健康委托 | 2026-03-02 | Console 处理 K8s 健康,非网关 |
|
||||
|
||||
### Roadmap Evolution
|
||||
### Roadmap 演进
|
||||
|
||||
- Phase 1 added: Console-Driven Configuration & Multi-Instance Support
|
||||
- Phase 2 added: K8s Health Delegation
|
||||
- Phase 3 added: Security Hardening
|
||||
- Phase 4 added: Performance Optimization
|
||||
- Phase 5 added: Observability & Testing
|
||||
- 阶段 1 已添加:Console 驱动的配置管理与多实例支持
|
||||
- 阶段 2 已添加:K8s 健康检查委托
|
||||
- 阶段 3 已添加:安全加固
|
||||
- 阶段 4 已添加:性能优化
|
||||
- 阶段 5 已添加:可观测性与测试
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
## 备注
|
||||
|
||||
- Auto mode: research skipped, workflow preferences set to yolo
|
||||
- Config changes should be committed to git (commit_docs: true)
|
||||
- gsd-tools.cjs not available - project structure created manually
|
||||
- 自动模式:跳过研究,工作流偏好设置为 yolo
|
||||
- 配置变更应提交到 git(commit_docs: true)
|
||||
- gsd-tools.cjs 不可用 - 项目结构手动创建
|
||||
|
||||
---
|
||||
|
||||
*Last updated: 2026-03-02 after initialization*
|
||||
*最后更新:2026-03-02 初始化后*
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
using Fengling.Platform.Infrastructure;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Npgsql;
|
||||
using YarpGateway.Config;
|
||||
@ -5,7 +6,7 @@ using YarpGateway.Models;
|
||||
|
||||
namespace YarpGateway.Data;
|
||||
|
||||
public class GatewayDbContext : DbContext
|
||||
public class GatewayDbContext : PlatformDbContext
|
||||
{
|
||||
public GatewayDbContext(DbContextOptions<GatewayDbContext> options)
|
||||
: base(options)
|
||||
|
||||
@ -4,10 +4,7 @@
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<!-- Fengling ServiceDiscovery Packages (from Gitea) -->
|
||||
<PackageVersion Include="Fengling.ServiceDiscovery.Core" Version="1.0.0" />
|
||||
<PackageVersion Include="Fengling.ServiceDiscovery.Kubernetes" Version="1.0.0" />
|
||||
<PackageVersion Include="Fengling.ServiceDiscovery.Static" Version="1.0.0" />
|
||||
|
||||
<PackageVersion Include="Fengling.Platform.Infrastructure" Version="1.0.11" />
|
||||
<!-- Microsoft Packages (aligned with fengling-console) -->
|
||||
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.2" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.2" />
|
||||
@ -16,15 +13,12 @@
|
||||
<PackageVersion Include="Microsoft.AspNetCore.Http.Abstractions" Version="10.0.0" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.2" />
|
||||
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="10.0.2" />
|
||||
|
||||
<!-- Database -->
|
||||
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0" />
|
||||
|
||||
<!-- Serilog -->
|
||||
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
|
||||
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
|
||||
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" />
|
||||
|
||||
<!-- Others -->
|
||||
<PackageVersion Include="StackExchange.Redis" Version="2.8.31" />
|
||||
<PackageVersion Include="Yarp.ReverseProxy" Version="2.3.0" />
|
||||
|
||||
@ -8,6 +8,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Fengling.Platform.Infrastructure" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
|
||||
<IncludeAssets>runtime; build; native; contentfiles, analyzers; buildtransitive</IncludeAssets>
|
||||
@ -21,11 +22,6 @@
|
||||
<PackageReference Include="Yarp.ReverseProxy" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Fengling.ServiceDiscovery.Core" />
|
||||
<PackageReference Include="Fengling.ServiceDiscovery.Kubernetes" />
|
||||
<PackageReference Include="Fengling.ServiceDiscovery.Static" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Fengling.Gateway.Plugin.Abstractions\Fengling.Gateway.Plugin.Abstractions.csproj" />
|
||||
|
||||
Loading…
Reference in New Issue
Block a user