docs: update all planning docs to Chinese

This commit is contained in:
movingsam 2026-03-02 18:15:23 +08:00
parent b420ca1f1b
commit 8f7e8d3a71
7 changed files with 235 additions and 245 deletions

View File

@ -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 初始化后*

View File

@ -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 初始定义后*

View File

@ -1,106 +1,106 @@
# Roadmap: Fengling Gateway
# RoadmapFengling 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
## 阶段 1Console 驱动的配置管理与多实例支持
**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
## 阶段 2K8s 健康检查委托
**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-01RouteCache 单元测试
- TEST-02JwtTransformMiddleware 单元测试
- 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 创建后*

View File

@ -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
**当前重点:** 阶段 1Console 驱动的配置管理与多实例支持
---
## 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
- 配置变更应提交到 gitcommit_docs: true
- gsd-tools.cjs 不可用 - 项目结构手动创建
---
*Last updated: 2026-03-02 after initialization*
*最后更新2026-03-02 初始化后*

View File

@ -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)

View File

@ -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,17 +13,14 @@
<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" />
</ItemGroup>
</Project>
</Project>

View File

@ -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" />