Files
git.stella-ops.org/docs/features/checked/router/router-yaml-json-configuration-with-hot-reload.md
2026-02-14 09:11:48 +02:00

29 lines
1.7 KiB
Markdown

# Router YAML/JSON Configuration with Hot-Reload
## Module
Router
## Status
IMPLEMENTED
## Description
Centralized router configuration supporting YAML and JSON formats with `IOptionsMonitor` integration and `FileSystemWatcher`-based hot-reload. Includes validation, change event notification, and per-service routing options.
## Implementation Details
- **Modules**: `src/Router/__Libraries/StellaOps.Router.Config/`
- **Key Classes**:
- `RouterConfig` (`src/Router/__Libraries/StellaOps.Router.Config/RouterConfig.cs`) - root configuration model for router settings
- `RouterConfigProvider` (`src/Router/__Libraries/StellaOps.Router.Config/RouterConfigProvider.cs`) - watches config files and provides hot-reload via `IOptionsMonitor`
- `RouterConfigOptions` (`src/Router/__Libraries/StellaOps.Router.Config/RouterConfigOptions.cs`) - options for config file paths and reload behavior
- `GatewayOptions` (`src/Router/StellaOps.Gateway.WebService/Configuration/GatewayOptions.cs`) - gateway-specific configuration options
- `GatewayOptionsValidator` (`src/Router/StellaOps.Gateway.WebService/Configuration/GatewayOptionsValidator.cs`) - validates gateway configuration
- **Interfaces**: `IRouterConfigProvider`
- **Source**: batch_52/file_07.md
## E2E Test Plan
- [ ] Load router configuration from a YAML file and verify `RouterConfig` is populated correctly
- [ ] Load configuration from a JSON file and verify equivalent behavior
- [ ] Modify the config file at runtime and verify `RouterConfigProvider` triggers hot-reload
- [ ] Verify change event notification: subscribe to config changes and confirm notification on reload
- [ ] Verify validation: provide invalid config values and confirm `GatewayOptionsValidator` rejects them