fengling-gateway/.planning/STATE.md
movingsam 52eba07097 feat: add MigrationTool for gateway config migration (IMPL-7)
- Create MigrationTool console app for exporting DB config to K8s YAML
- Support dry-run mode and validation
- Add Npgsql and YamlDotNet dependencies
2026-03-08 00:35:04 +08:00

4.1 KiB
Raw Blame History

#VR|# 状态Fengling Gateway

最后更新: 2026-03-04


项目引用

参考:.planning/PROJECT.md更新于 2026-03-02

核心价值: 可靠、可扩展的 API 网关,将流量分发到后端微服务,支持零停机配置更新。

当前重点: 阶段 6网关插件技术调研与实现


项目状态

项目 状态
PROJECT.md ✓ 已初始化
config.json ✓ 已创建
需求文档 ✓ 已定义18 个需求)
Roadmap ✓ 已创建6 个阶段)
研究 未开始(自动模式跳过)

阶段状态

阶段 名称 状态 计划数 进度
1 配置变更监听与多实例支持 已完成 0 100%
2 K8s 健康检查委托 已完成 0 100%
3 安全加固 未规划 0 0%
4 性能优化 未规划 0 0%
5 可观测性与测试 未规划 0 0%
#NH QJ 6 网关插件技术调研与实现
#PW 7 网关配置重构规划 待规划

累积上下文

初始化

  • 2026-03-02 通过 /gsd-new-project --auto 初始化项目
  • 现有代码库的重构项目(已存在 ARCHITECTURE.md、CONCERNS.md、STACK.md
  • 用户提供背景:网关架构讨论,重点是 console 驱动的配置管理

关键决策

决策 日期 备注
Console 驱动配置 2026-03-02 配置在 fengling-console 变更,网关监听
PostgreSQL NOTIFY 广播 2026-03-02 使用 PostgreSQL NOTIFY/LISTEN更轻量
K8s 健康委托 2026-03-02 Console 处理 K8s 健康,非网关

阶段 1 分析结论

  • 2026-03-02 分析现有代码 PgSqlConfigChangeListener.cs
  • 结论:现有实现已完整满足阶段 1 所有需求
  • 监听频道:gateway_config_changed
  • 包含断线重连、回退轮询5分钟

Console 集成现状

  • Console 已实现 GatewayController 和 GatewayService
  • Console 拥有 GatewayDbContext可直接管理网关配置
  • ReloadGatewayAsync() 为空实现,需要在 fengling-console 中实现 NOTIFY 发送

SK|### 阶段 6 实施

2026-03-04 实现插件加载基础设施

  • 完成 PLUG-01网关插件化架构设计
  • 完成 PLUG-02插件加载机制
  • 实现文件:
    • src/yarpgateway/Plugins/PluginLoadContext.cs
    • src/yarpgateway/Plugins/PluginLoader.cs
    • src/yarpgateway/Plugins/PluginHost.cs
  • 单元测试15 个全部通过

2026-03-04 YARP 集成设计决策(与用户讨论)

  • 管道选择Transforms更轻量少资源占用
  • OnRouteMatchedAsync用于目标选择特殊租户访问特殊目标
  • 负载均衡:暂不考虑,使用内置
  • 插件启用Metadata + Console DB 通知触发
  • 插件排序:需要(通过 PluginOrder metadata

已规划计划 006-02

  • PluginTransformProvider - YARP Transform 提供者
  • DestinationSelector - 目标选择器
  • PluginConfigWatcher - Console DB 通知监听

XX|---

  • 2026-03-04 实现插件加载基础设施
  • 完成 PLUG-01网关插件化架构设计
  • 完成 PLUG-02插件加载机制
  • 实现文件:
    • src/yarpgateway/Plugins/PluginLoadContext.cs
    • src/yarpgateway/Plugins/PluginLoader.cs
    • src/yarpgateway/Plugins/PluginHost.cs
  • 单元测试15 个全部通过

Roadmap Evolution

  • 2026-03-07 阶段 7 添加:网关配置重构规划(分析"网关配置的新想法.md"中的方案,识别冲突点,制定新架构)

快速任务完成

# Description Date Commit Directory
001 升级 Fengling.Platform 包并修复编译警告 2026-03-04 42b8c9c 001-upgrade-platform

备注

  • 自动模式:跳过研究,工作流偏好设置为 yolo
  • 配置变更应提交到 gitcommit_docs: true
  • gsd-tools.cjs 不可用 - 项目结构手动创建

最后更新2026-03-04 - 完成阶段 6 计划 006-01插件加载基础设施PLUG-01, PLUG-02