docs(03-gateway-route-update): complete plan execution
- Add SUMMARY.md for plan 02 - Update STATE.md with completion status - Update ROADMAP.md with completed plan
This commit is contained in:
parent
3fbd9d07a6
commit
b058c3ea56
@ -44,7 +44,15 @@
|
|||||||
**Goal:** Restructure gateway cluster management - replace GwServiceInstance with GwCluster aggregate root
|
**Goal:** Restructure gateway cluster management - replace GwServiceInstance with GwCluster aggregate root
|
||||||
|
|
||||||
**Status:** ● In Progress
|
**Status:** ● In Progress
|
||||||
|
MV|**Requirements:**
|
||||||
|
- [x] GATEWAY-RESTRUCTURE-01: GwCluster aggregate root
|
||||||
|
- [x] GATEWAY-RESTRUCTURE-02: GwCluster value objects (GwDestination, GwHealthCheckConfig, GwSessionAffinityConfig)
|
||||||
|
- [x] GATEWAY-RESTRUCTURE-03: Extended GwTenantRoute with YARP fields
|
||||||
|
- [x] GATEWAY-RESTRUCTURE-04: Removed obsolete GwTenant and GwServiceInstance entities
|
||||||
|
|
||||||
|
YX|**Plans:**
|
||||||
|
- [x] 03-gateway-cluster-entities-PLAN.md — Cluster entities ✅
|
||||||
|
- [x] 03-gateway-route-update-PLAN.md — Route update ✅
|
||||||
**Requirements:**
|
**Requirements:**
|
||||||
- [x] GATEWAY-RESTRUCTURE-01: GwCluster aggregate root
|
- [x] GATEWAY-RESTRUCTURE-01: GwCluster aggregate root
|
||||||
- [x] GATEWAY-RESTRUCTURE-02: GwCluster value objects (GwDestination, GwHealthCheckConfig, GwSessionAffinityConfig)
|
- [x] GATEWAY-RESTRUCTURE-02: GwCluster value objects (GwDestination, GwHealthCheckConfig, GwSessionAffinityConfig)
|
||||||
|
|||||||
@ -4,6 +4,91 @@ milestone: v1.0
|
|||||||
milestone_name: milestone
|
milestone_name: milestone
|
||||||
status: in_progress
|
status: in_progress
|
||||||
last_updated: "2026-03-03T12:00:00.000Z"
|
last_updated: "2026-03-03T12:00:00.000Z"
|
||||||
|
progress:
|
||||||
|
total_phases: 3
|
||||||
|
completed_phases: 1
|
||||||
|
total_plans: 4
|
||||||
|
completed_plans: 5
|
||||||
|
---
|
||||||
|
|
||||||
|
# Project State
|
||||||
|
|
||||||
|
**Last Updated:** 2026-03-03
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
- **Phase:** 03-gateway-route-update
|
||||||
|
- **Plan:** 02 ✅ Completed
|
||||||
|
- **Milestone:** v1.0 - Platform Foundation
|
||||||
|
- **Position:** Completed Plan 02 of Phase 03
|
||||||
|
|
||||||
|
## Project Context
|
||||||
|
|
||||||
|
This is the Fengling.Platform project - a multi-tenant identity and authentication infrastructure.
|
||||||
|
|
||||||
|
### Current State
|
||||||
|
|
||||||
|
- Platform layer initialized with Tenant, User, Role aggregates
|
||||||
|
- **GatewayAggregate updated** - GwTenantRoute extended, GwTenant and GwServiceInstance removed
|
||||||
|
- **NEW: GwCluster aggregate** added with embedded value objects (GwDestination, GwHealthCheckConfig, GwSessionAffinityConfig)
|
||||||
|
- Manager + Store pattern established (ITenantStore, ITenantManager)
|
||||||
|
- Extensions for DI registration (AddPlatformCore<TContext>)
|
||||||
|
- PostgreSQL database with EF Core migrations
|
||||||
|
|
||||||
|
### Source for Migration
|
||||||
|
|
||||||
|
**fengling-gateway** project (parent directory):
|
||||||
|
- `GwTenant` - 租户实体 (REMOVED - use Platform.Tenant)
|
||||||
|
- `GwTenantRoute` - 路由配置实体 (EXTENDED)
|
||||||
|
- `GwServiceInstance` - 服务实例实体 (REMOVED - use GwCluster embedded)
|
||||||
|
- `GwCluster` - 集群聚合根 (NEW)
|
||||||
|
- GatewayDbContext with PostgreSQL
|
||||||
|
|
||||||
|
## Decisions
|
||||||
|
|
||||||
|
- Using Manager + Store pattern from existing Tenant implementation
|
||||||
|
- Extensions-based DI registration for quick IoC setup
|
||||||
|
- Align with existing Platform coding conventions
|
||||||
|
- **ID Strategy:** GwTenant uses `long` ID (Platform convention); GwTenantRoute, GwCluster use `string` GUID IDs (YARP-compatible)
|
||||||
|
- **Cluster Design:** GwCluster uses embedded value objects (Owned Entity pattern) for Destinations, HealthCheck, SessionAffinity
|
||||||
|
- **Route Update:** Extended GwTenantRoute with Methods, Hosts, Headers, LoadBalancingPolicy, AuthorizationPolicy, CorsPolicy, Transforms fields
|
||||||
|
|
||||||
|
## Blockers
|
||||||
|
|
||||||
|
- Infrastructure layer references to deleted entities (to be addressed in subsequent plan)
|
||||||
|
|
||||||
|
## Accumulated Context
|
||||||
|
|
||||||
|
### Roadmap Evolution
|
||||||
|
|
||||||
|
- Phase 1: Gateway routing entities ✅
|
||||||
|
- Phase 2: Platform infrastructure ✅
|
||||||
|
- Phase 3: Gateway cluster entities (current)
|
||||||
|
- Plan 01: Cluster entities ✅
|
||||||
|
- Plan 02: Route update ✅ (just completed)
|
||||||
|
- Plan 03: Infrastructure cleanup (PENDING)
|
||||||
|
|
||||||
|
### Phase 03 Progress
|
||||||
|
|
||||||
|
- **Plan 01: Gateway Cluster Entities** ✅ COMPLETED
|
||||||
|
- Created GwCluster aggregate root
|
||||||
|
- Created GwDestination value object
|
||||||
|
- Created GwHealthCheckConfig value object
|
||||||
|
- Created GwSessionAffinityConfig value object
|
||||||
|
- **Plan 02: Gateway Route Update** ✅ COMPLETED
|
||||||
|
- Extended GwTenantRoute with YARP fields
|
||||||
|
- Removed obsolete GwTenant entity
|
||||||
|
- Removed obsolete GwServiceInstance entity
|
||||||
|
- Plan 03: Infrastructure cleanup (PENDING)
|
||||||
|
|
||||||
|
## Pending
|
||||||
|
|
||||||
|
- Plan 03: Infrastructure cleanup (update PlatformDbContext, remove InstanceStore references)
|
||||||
|
gsd_state_version: 1.0
|
||||||
|
milestone: v1.0
|
||||||
|
milestone_name: milestone
|
||||||
|
status: in_progress
|
||||||
|
last_updated: "2026-03-03T12:00:00.000Z"
|
||||||
progress:
|
progress:
|
||||||
total_phases: 3
|
total_phases: 3
|
||||||
completed_phases: 1
|
completed_phases: 1
|
||||||
|
|||||||
81
.planning/phases/03-/03-gateway-route-update-SUMMARY.md
Normal file
81
.planning/phases/03-/03-gateway-route-update-SUMMARY.md
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
---
|
||||||
|
phase: "03-"
|
||||||
|
plan: 02
|
||||||
|
subsystem: Gateway
|
||||||
|
tags: [gateway, domain, yarp]
|
||||||
|
dependency_graph:
|
||||||
|
requires:
|
||||||
|
- 03-gateway-cluster-entities
|
||||||
|
provides:
|
||||||
|
- Extended GwTenantRoute entity
|
||||||
|
affects:
|
||||||
|
- PlatformDbContext (needs update to remove deleted entity DbSets)
|
||||||
|
tech_stack:
|
||||||
|
added:
|
||||||
|
- GwTenantRoute new fields (Methods, Hosts, Headers, LoadBalancingPolicy, AuthorizationPolicy, CorsPolicy, Transforms)
|
||||||
|
patterns:
|
||||||
|
- Domain-driven design entity extension
|
||||||
|
key_files:
|
||||||
|
created: []
|
||||||
|
modified:
|
||||||
|
- Fengling.Platform.Domain/AggregatesModel/GatewayAggregate/GwTenantRoute.cs
|
||||||
|
deleted:
|
||||||
|
- Fengling.Platform.Domain/AggregatesModel/GatewayAggregate/GwTenant.cs
|
||||||
|
- Fengling.Platform.Domain/AggregatesModel/GatewayAggregate/GwServiceInstance.cs
|
||||||
|
decisions:
|
||||||
|
- "GwTenant removed - use Platform.Tenant through TenantCode instead"
|
||||||
|
- "GwServiceInstance removed - use GwCluster embedded Destination instead"
|
||||||
|
- "Extended fields use nullable string types for optional YARP configuration"
|
||||||
|
metrics:
|
||||||
|
duration: ~5 minutes
|
||||||
|
completed_date: "2026-03-03"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Phase 03 Plan 02: Gateway Route Update Summary
|
||||||
|
|
||||||
|
## One-Liner
|
||||||
|
|
||||||
|
Extended GwTenantRoute with YARP matching fields and removed obsolete GwTenant/GwServiceInstance entities.
|
||||||
|
|
||||||
|
## Tasks Completed
|
||||||
|
|
||||||
|
| Task | Name | Commit | Files |
|
||||||
|
|------|------|--------|-------|
|
||||||
|
| 1 | Extend GwTenantRoute fields | 3fbd9d0 | GwTenantRoute.cs |
|
||||||
|
| 2 | Delete GwTenant entity | 3fbd9d0 | GwTenant.cs |
|
||||||
|
| 3 | Delete GwServiceInstance entity | 3fbd9d0 | GwServiceInstance.cs |
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
Successfully completed the Domain layer refactoring for Gateway route entities:
|
||||||
|
|
||||||
|
- **Extended GwTenantRoute** with new fields for full YARP routing capabilities:
|
||||||
|
- `Methods`, `Hosts`, `Headers` - Route matching
|
||||||
|
- `LoadBalancingPolicy`, `AuthorizationPolicy`, `CorsPolicy` - Policy configuration
|
||||||
|
- `Transforms` - Request/Response transformations
|
||||||
|
|
||||||
|
- **Removed obsolete entities**:
|
||||||
|
- `GwTenant` - Should use Platform.Tenant aggregate with TenantCode reference instead
|
||||||
|
- `GwServiceInstance` - Should use GwCluster embedded Destination collection instead
|
||||||
|
|
||||||
|
## Verification
|
||||||
|
|
||||||
|
- Domain layer build: **PASSED** (0 errors, 2 warnings)
|
||||||
|
- Infrastructure layer: **Requires update** - references to deleted entities need cleanup in subsequent plans
|
||||||
|
|
||||||
|
## Deviations from Plan
|
||||||
|
|
||||||
|
### Infrastructure Layer References
|
||||||
|
|
||||||
|
**Found during:** Build verification
|
||||||
|
**Issue:** Infrastructure layer (PlatformDbContext, InstanceStore, IInstanceStore) still references deleted entities GwTenant and GwServiceInstance
|
||||||
|
**Impact:** Infrastructure layer will fail to build until updated
|
||||||
|
**Decision:** Deferred to subsequent plan - the Domain layer changes are complete per plan scope
|
||||||
|
**Files affected:** PlatformDbContext.cs, IInstanceStore.cs, InstanceStore.cs
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- The deleted entities were part of the initial Gateway implementation but have been superseded by:
|
||||||
|
- Platform.Tenant aggregate for tenant information
|
||||||
|
- GwCluster aggregate's embedded Destination collection for service instances
|
||||||
|
- Infrastructure layer cleanup should be handled in the next plan that covers Infrastructure updates
|
||||||
Loading…
Reference in New Issue
Block a user