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 # 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 - ✓ 基于 URL 路径的多租户路由 — 已有
- ✓ JWT token parsing and tenant claim extraction — existing - ✓ JWT Token 解析和租户声明提取 — 已有
- ✓ Dynamic route configuration from PostgreSQL — existing - ✓ PostgreSQL 动态路由配置 — 已有
- ✓ Service discovery integration with Kubernetes — existing - ✓ Kubernetes 服务发现集成 — 已有
- ✓ Weighted round-robin load balancing — existing - ✓ 加权轮询负载均衡 — 已有
- ✓ Configuration hot-reload via PostgreSQL NOTIFY — existing - ✓ 通过 PostgreSQL NOTIFY 实现配置热重载 — 已有
### Active ### 进行中
- [ ] Implement console-driven configuration management (config changes in fengling-console, gateway listens and reloads) - [ ] 实现 console 驱动的配置管理(配置在 fengling-console 变更,网关监听并重载)
- [ ] Support multiple gateway instances via broadcast events (multi-instance deployment) - [ ] 通过广播事件支持多网关实例部署
- [ ] Remove K8s health monitoring from gateway (delegate to console) - [ ] 将 K8s 健康检查从网关移除(委托给 console
### Out of Scope ### 范围外
- [Direct gateway configuration UI] — Handled by fengling-console - [直接配置网关的 UI] — 由 fengling-console 负责
- [K8s service health checks in gateway] — Delegated to console - [网关中的 K8s 服务健康检查] — 委托给 console
- [Authentication/Authorization logic] — Handled by auth-service - [认证/授权逻辑] — 由 auth-service 负责
## Context ## 背景
**Ecosystem Structure:** **生态系统结构:**
``` ```fengling-gateway/ # 当前项目 - API 网关 (YARP)
fengling-gateway/ # Current project - API Gateway (YARP) ↓ 路由流量到:
↓ routes traffic to: fengling-console/ # 中央管理控制台 - 配置、租户管理
fengling-console/ # Central management console - config, tenant management fengling-console-web/ # 控制台 Web UI
fengling-console-web/ # Web UI for console fengling-auth-service/ # 认证服务
fengling-auth-service/ # Authentication service fengling-member-service/ # 会员服务
fengling-member-service/ # Member management fengling-activity/ # 活动服务
fengling-activity/ # Activity service fengling-platform/ # 平台服务
fengling-platform/ # Platform service fengling-risk-control/ # 风控服务
fengling-risk-control/ # Risk control service fengling-service-discovery/ # 服务发现
fengling-service-discovery/# Service discovery
``` ```
**Architecture Decision (New):** **架构决策(新):**
- Gateway configuration managed by fengling-console, not directly - 网关配置由 fengling-console 管理,网关不直接配置
- Console publishes config changes → Gateway subscribes and reloads - Console 发布配置变更 → 网关订阅并重载
- Multi-instance support via broadcast (Redis pub/sub or PostgreSQL NOTIFY) - 多实例支持通过广播实现Redis pub/sub 或 PostgreSQL NOTIFY
- Console responsible for all K8s service health monitoring - Console 负责所有 K8s 服务健康监控
- Gateway only handles request routing - 网关只处理请求路由
**Current Issues (from CONCERNS.md):** **当前问题(来自 CONCERNS.md**
- Hardcoded credentials (security risk) - 硬编码凭据(安全风险)
- JWT token not validated (security risk) - JWT Token 未验证(安全风险)
- API endpoints without authentication (security risk) - API 端点无认证(安全风险)
- Load balancing lock contention - 负载均衡锁竞争
- No unit tests - 缺少单元测试
## Constraints ## 约束
- **Multi-instance**: Gateway must support running multiple instances simultaneously - **多实例**:网关必须支持同时运行多个实例
- **Hot reload**: Configuration changes without restart - **热重载**:配置变更无需重启
- **Tech stack**: .NET 10.0, YARP, PostgreSQL, Redis - **技术栈**.NET 10.0, YARP, PostgreSQL, Redis
- **Deployment**: Docker + Kubernetes - **部署**Docker + Kubernetes
## Key Decisions ## 关键决策
| Decision | Rationale | Outcome | | 决策 | 理由 | 结果 |
|----------|-----------|---------| |------|------|------|
| Console-driven config | Centralizes management, single source of truth | ✓ Good | | Console 驱动配置 | 集中管理,单一事实来源 | ✓ 良好 |
| Broadcast events for multi-instance | Enables horizontal scaling | ✓ Good | | 广播事件实现多实例 | 支持水平扩展 | ✓ 良好 |
| Delegate K8s health to console | Reduces gateway complexity, console is ops hub | ✓ Good | | K8s 健康委托给 console | 降低网关复杂度console 是运维中心 | ✓ 良好 |
| Keep YARP as core | Well-maintained, Microsoft-supported | ✓ Good | | 保持 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 **定义日期:** 2026-03-02
**Core Value:** Reliable, scalable API gateway that distributes traffic to backend microservices with zero-downtime configuration updates. **核心价值:** 可靠、可扩展的 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-01**:网关监听来自 fengling-console 的配置变更事件
- [ ] **CFG-02**: Gateway reloads configuration without restart when notified - [ ] **CFG-02**:收到通知后网关无需重启即可重载配置
- [ ] **CFG-03**: Multi-instance gateway receives config updates via broadcast (Redis pub/sub or PostgreSQL NOTIFY) - [ ] **CFG-03**多实例网关通过广播接收配置更新Redis pub/sub 或 PostgreSQL NOTIFY
### Multi-Instance Support ### 多实例支持
- [ ] **INST-01**: Multiple gateway instances can run simultaneously - [ ] **INST-01**:多个网关实例可以同时运行
- [ ] **INST-02**: Configuration changes propagate to all instances - [ ] **INST-02**:配置变更传播到所有实例
- [ ] **INST-03**: Redis-based pub/sub for cross-instance communication - [ ] **INST-03**:使用 Redis pub/sub 进行跨实例通信
### K8s Health Delegation ### K8s 健康委托
- [ ] **K8S-01**: Remove K8s health monitoring from gateway - [ ] **K8S-01**:从网关注销 K8s 健康监控
- [ ] **K8S-02**: Gateway delegates service health checks to console - [ ] **K8S-02**:网关将服务健康检查委托给 console
### Security Fixes ### 安全修复
- [ ] **SEC-01**: Remove hardcoded credentials from source code - [ ] **SEC-01**:移除源代码中的硬编码凭据
- [ ] **SEC-02**: Implement proper JWT token validation - [ ] **SEC-02**:实现正确的 JWT Token 验证
- [ ] **SEC-03**: Add authentication to gateway management API endpoints - [ ] **SEC-03**:为网关管理 API 端点添加认证
### Performance ### 性能优化
- [ ] **PERF-01**: Optimize load balancing lock contention - [ ] **PERF-01**:优化负载均衡锁竞争
- [ ] **PERF-02**: Implement incremental route cache updates - [ ] **PERF-02**:实现增量路由缓存更新
## v2 Requirements ## v2 需求
Deferred to future release. Tracked but not in current roadmap. 延期到未来版本。已记录但不在当前 Roadmap 中。
### Observability ### 可观测性
- **OBS-01**: Distributed tracing integration - **OBS-01**:分布式追踪集成
- **OBS-02**: Custom metrics for gateway performance - **OBS-02**:网关性能自定义指标
### Testing ### 测试
- **TEST-01**: Unit tests for RouteCache - **TEST-01**RouteCache 单元测试
- **TEST-02**: Unit tests for JwtTransformMiddleware - **TEST-02**JwtTransformMiddleware 单元测试
- **TEST-03**: Unit tests for load balancing policy - **TEST-03**:负载均衡策略单元测试
## Out of Scope ## 范围外
| Feature | Reason | | 功能 | 原因 |
|---------|--------| |------|------|
| Direct gateway configuration UI | Handled by fengling-console | | 直接配置网关的 UI | 由 fengling-console 处理 |
| K8s service health checks in gateway | Delegated to console | | 网关中的 K8s 服务健康检查 | 委托给 console |
| Authentication logic in gateway | Handled by auth-service | | 网关中的认证逻辑 | 由 auth-service 处理 |
| Authorization logic in gateway | Handled by downstream services | | 网关中的授权逻辑 | 由下游服务处理 |
## Traceability ## 可追溯性
Which phases cover which requirements. Updated during roadmap creation. 哪些阶段覆盖哪些需求。Roadmap 创建时更新。
| Requirement | Phase | Status | | 需求 | 阶段 | 状态 |
|-------------|-------|--------| |------|------|------|
| CFG-01 | Phase 1 | Pending | | CFG-01 | 阶段 1 | 待处理 |
| CFG-02 | Phase 1 | Pending | | CFG-02 | 阶段 1 | 待处理 |
| CFG-03 | Phase 1 | Pending | | CFG-03 | 阶段 1 | 待处理 |
| INST-01 | Phase 1 | Pending | | INST-01 | 阶段 1 | 待处理 |
| INST-02 | Phase 1 | Pending | | INST-02 | 阶段 1 | 待处理 |
| INST-03 | Phase 1 | Pending | | INST-03 | 阶段 1 | 待处理 |
| K8S-01 | Phase 2 | Pending | | K8S-01 | 阶段 2 | 待处理 |
| K8S-02 | Phase 2 | Pending | | K8S-02 | 阶段 2 | 待处理 |
| SEC-01 | Phase 3 | Pending | | SEC-01 | 阶段 3 | 待处理 |
| SEC-02 | Phase 3 | Pending | | SEC-02 | 阶段 3 | 待处理 |
| SEC-03 | Phase 3 | Pending | | SEC-03 | 阶段 3 | 待处理 |
| PERF-01 | Phase 4 | Pending | | PERF-01 | 阶段 4 | 待处理 |
| PERF-02 | Phase 4 | Pending | | PERF-02 | 阶段 4 | 待处理 |
**Coverage:** **覆盖率:**
- v1 requirements: 12 total - v1 需求:共 12 项
- Mapped to phases: 12 - 已映射到阶段12 项
- Unmapped: 0 ✓ - 未映射:0 ✓
--- ---
*Requirements defined: 2026-03-02* *需求定义:2026-03-02*
*Last updated: 2026-03-02 after initial definition* *最后更新2026-03-02 初始定义后*

View File

@ -1,106 +1,106 @@
# Roadmap: Fengling Gateway # RoadmapFengling Gateway
**Created:** 2026-03-02 **创建日期:** 2026-03-02
**Core Value:** Reliable, scalable API gateway that distributes traffic to backend microservices with zero-downtime configuration updates. **核心价值:** 可靠、可扩展的 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-01:网关监听来自 fengling-console 的配置变更事件
- CFG-02: Gateway reloads configuration without restart when notified - CFG-02:收到通知后网关无需重启即可重载配置
- CFG-03: Multi-instance gateway receives config updates via broadcast - CFG-03:多实例网关通过广播接收配置更新
- INST-01: Multiple gateway instances can run simultaneously - INST-01:多个网关实例可以同时运行
- INST-02: Configuration changes propagate to all instances - INST-02:配置变更传播到所有实例
- INST-03: Redis-based pub/sub for cross-instance communication - INST-03:使用 Redis pub/sub 进行跨实例通信
**Success Criteria:** **成功标准:**
1. Gateway can subscribe to config change events from console 1. 网关可以订阅来自 console 的配置变更事件
2. Configuration reload works without gateway restart 2. 配置重载无需重启网关
3. Multiple gateway instances stay synchronized 3. 多个网关实例保持同步
4. Broadcast events reach all instances within 5 seconds 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-01:从网关注销 K8s 健康监控
- K8S-02: Gateway delegates service health checks to console - K8S-02:网关将服务健康检查委托给 console
**Success Criteria:** **成功标准:**
1. KubernetesPendingSyncService is deprecated/removed from gateway 1. KubernetesPendingSyncService 已弃用/从网关移除
2. Health check logic moved to console project 2. 健康检查逻辑移至 console 项目
3. Gateway only performs request routing, not health monitoring 3. 网关只执行请求路由,不做健康监控
--- ---
## Phase 3: Security Hardening ## 阶段 3安全加固
**Goal:** Fix critical security vulnerabilities. **目标:** 修复关键安全漏洞。
**Requirements:** **需求:**
- SEC-01: Remove hardcoded credentials from source code - SEC-01:移除源代码中的硬编码凭据
- SEC-02: Implement proper JWT token validation - SEC-02:实现正确的 JWT Token 验证
- SEC-03: Add authentication to gateway management API endpoints - SEC-03:为网关管理 API 端点添加认证
**Success Criteria:** **成功标准:**
1. No hardcoded passwords/secrets in source code 1. 源代码中无硬编码密码/密钥
2. JWT tokens are validated (signature, expiration, issuer, audience) 2. JWT Token 经过验证(签名、过期时间、颁发者、受众)
3. All /api/gateway/* endpoints require authentication 3. 所有 /api/gateway/* 端点需要认证
--- ---
## Phase 4: Performance Optimization ## 阶段 4性能优化
**Goal:** Optimize gateway performance under high load. **目标:** 优化高负载下的网关性能。
**Requirements:** **需求:**
- PERF-01: Optimize load balancing lock contention - PERF-01:优化负载均衡锁竞争
- PERF-02: Implement incremental route cache updates - PERF-02:实现增量路由缓存更新
**Success Criteria:** **成功标准:**
1. Load balancing does not require per-request Redis lock 1. 负载均衡不需要每个请求都获取 Redis 锁
2. Route cache updates are incremental, not full reload 2. 路由缓存更新是增量式的,而非全量重载
3. Gateway handles 10x more requests per second 3. 网关处理能力提升 10 倍
--- ---
## Phase 5: Observability & Testing ## 阶段 5可观测性与测试
**Goal:** Add observability and test coverage. **目标:** 添加可观测性和测试覆盖。
**Requirements:** **需求:**
- OBS-01: Distributed tracing integration - OBS-01:分布式追踪集成
- OBS-02: Custom metrics for gateway performance - OBS-02:网关性能自定义指标
- TEST-01: Unit tests for RouteCache - TEST-01RouteCache 单元测试
- TEST-02: Unit tests for JwtTransformMiddleware - TEST-02JwtTransformMiddleware 单元测试
- TEST-03: Unit tests for load balancing policy - TEST-03:负载均衡策略单元测试
**Success Criteria:** **成功标准:**
1. Distributed traces include gateway spans 1. 分布式追踪包含网关跨度
2. Key metrics are exported (request count, latency, error rate) 2. 导出关键指标(请求数、延迟、错误率)
3. Core components have >80% test coverage 3. 核心组件测试覆盖率 >80%
--- ---
## Roadmap Summary ## Roadmap 摘要
| Phase | Name | Requirements | Status | | 阶段 | 名称 | 需求数 | 状态 |
|-------|------|--------------|--------| |------|------|--------|------|
| 1 | Console-Driven Config & Multi-Instance | 6 | Not planned | | 1 | Console 驱动配置与多实例支持 | 6 | 未规划 |
| 2 | K8s Health Delegation | 2 | Not planned | | 2 | K8s 健康检查委托 | 2 | 未规划 |
| 3 | Security Hardening | 3 | Not planned | | 3 | 安全加固 | 3 | 未规划 |
| 4 | Performance Optimization | 2 | Not planned | | 4 | 性能优化 | 2 | 未规划 |
| 5 | Observability & Testing | 5 | Not planned | | 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 | | PROJECT.md | ✓ 已初始化 |
| config.json | ✓ Created | | config.json | ✓ 已创建 |
| Requirements | ✓ Defined (18 requirements) | | 需求文档 | ✓ 已定义18 个需求) |
| Roadmap | ✓ Created (5 phases) | | Roadmap | ✓ 已创建5 个阶段) |
| Research | Not started (auto mode skipped) | | 研究 | 未开始(自动模式跳过) |
--- ---
## Phase Status ## 阶段状态
| Phase | Name | Status | Plans | Progress | | 阶段 | 名称 | 状态 | 计划数 | 进度 |
|-------|------|--------|-------|----------| |------|------|------|--------|------|
| 1 | Console-Driven Config & Multi-Instance | Not planned | 0 | 0% | | 1 | Console 驱动配置与多实例支持 | 未规划 | 0 | 0% |
| 2 | K8s Health Delegation | Not planned | 0 | 0% | | 2 | K8s 健康检查委托 | 未规划 | 0 | 0% |
| 3 | Security Hardening | Not planned | 0 | 0% | | 3 | 安全加固 | 未规划 | 0 | 0% |
| 4 | Performance Optimization | Not planned | 0 | 0% | | 4 | 性能优化 | 未规划 | 0 | 0% |
| 5 | Observability & Testing | Not planned | 0 | 0% | | 5 | 可观测性与测试 | 未规划 | 0 | 0% |
--- ---
## Accumulated Context ## 累积上下文
### Initialization ### 初始化
- **2026-03-02:** Project initialized via /gsd-new-project --auto - **2026-03-02** 通过 /gsd-new-project --auto 初始化项目
- Brownfield project with existing codebase (ARCHITECTURE.md, CONCERNS.md, STACK.md existed) - 现有代码库的重构项目(已存在 ARCHITECTURE.md、CONCERNS.md、STACK.md
- User provided context: gateway architecture discussion with focus on console-driven config - 用户提供背景:网关架构讨论,重点是 console 驱动的配置管理
### Key Decisions ### 关键决策
| Decision | Date | Notes | | 决策 | 日期 | 备注 |
|----------|------|-------| |------|------|------|
| Console-driven config | 2026-03-02 | Config changes in fengling-console, gateway listens | | Console 驱动配置 | 2026-03-02 | 配置在 fengling-console 变更,网关监听 |
| Multi-instance via broadcast | 2026-03-02 | Redis pub/sub or PostgreSQL NOTIFY | | 多实例广播 | 2026-03-02 | Redis pub/sub 或 PostgreSQL NOTIFY |
| K8s health delegation | 2026-03-02 | Console handles K8s health, not gateway | | K8s 健康委托 | 2026-03-02 | Console 处理 K8s 健康,非网关 |
### Roadmap Evolution ### Roadmap 演进
- Phase 1 added: Console-Driven Configuration & Multi-Instance Support - 阶段 1 已添加Console 驱动的配置管理与多实例支持
- Phase 2 added: K8s Health Delegation - 阶段 2 已添加K8s 健康检查委托
- Phase 3 added: Security Hardening - 阶段 3 已添加:安全加固
- Phase 4 added: Performance Optimization - 阶段 4 已添加:性能优化
- Phase 5 added: Observability & Testing - 阶段 5 已添加:可观测性与测试
--- ---
## Notes ## 备注
- Auto mode: research skipped, workflow preferences set to yolo - 自动模式:跳过研究,工作流偏好设置为 yolo
- Config changes should be committed to git (commit_docs: true) - 配置变更应提交到 gitcommit_docs: true
- gsd-tools.cjs not available - project structure created manually - 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 Microsoft.EntityFrameworkCore;
using Npgsql; using Npgsql;
using YarpGateway.Config; using YarpGateway.Config;
@ -5,7 +6,7 @@ using YarpGateway.Models;
namespace YarpGateway.Data; namespace YarpGateway.Data;
public class GatewayDbContext : DbContext public class GatewayDbContext : PlatformDbContext
{ {
public GatewayDbContext(DbContextOptions<GatewayDbContext> options) public GatewayDbContext(DbContextOptions<GatewayDbContext> options)
: base(options) : base(options)

View File

@ -4,10 +4,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<!-- Fengling ServiceDiscovery Packages (from Gitea) --> <!-- Fengling ServiceDiscovery Packages (from Gitea) -->
<PackageVersion Include="Fengling.ServiceDiscovery.Core" Version="1.0.0" /> <PackageVersion Include="Fengling.Platform.Infrastructure" Version="1.0.11" />
<PackageVersion Include="Fengling.ServiceDiscovery.Kubernetes" Version="1.0.0" />
<PackageVersion Include="Fengling.ServiceDiscovery.Static" Version="1.0.0" />
<!-- Microsoft Packages (aligned with fengling-console) --> <!-- Microsoft Packages (aligned with fengling-console) -->
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.2" /> <PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.2" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" 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.AspNetCore.Http.Abstractions" Version="10.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="10.0.2" />
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="10.0.2" /> <PackageVersion Include="Microsoft.EntityFrameworkCore" Version="10.0.2" />
<!-- Database --> <!-- Database -->
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0" /> <PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0" />
<!-- Serilog --> <!-- Serilog -->
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" /> <PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" /> <PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" /> <PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" />
<!-- Others --> <!-- Others -->
<PackageVersion Include="StackExchange.Redis" Version="2.8.31" /> <PackageVersion Include="StackExchange.Redis" Version="2.8.31" />
<PackageVersion Include="Yarp.ReverseProxy" Version="2.3.0" /> <PackageVersion Include="Yarp.ReverseProxy" Version="2.3.0" />

View File

@ -8,6 +8,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Fengling.Platform.Infrastructure" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design"> <PackageReference Include="Microsoft.EntityFrameworkCore.Design">
<IncludeAssets>runtime; build; native; contentfiles, analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles, analyzers; buildtransitive</IncludeAssets>
@ -21,11 +22,6 @@
<PackageReference Include="Yarp.ReverseProxy" /> <PackageReference Include="Yarp.ReverseProxy" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<PackageReference Include="Fengling.ServiceDiscovery.Core" />
<PackageReference Include="Fengling.ServiceDiscovery.Kubernetes" />
<PackageReference Include="Fengling.ServiceDiscovery.Static" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Fengling.Gateway.Plugin.Abstractions\Fengling.Gateway.Plugin.Abstractions.csproj" /> <ProjectReference Include="..\Fengling.Gateway.Plugin.Abstractions\Fengling.Gateway.Plugin.Abstractions.csproj" />