Files
git.stella-ops.org/docs/router
StellaOps Bot 6a299d231f
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
Add unit tests for Router configuration and transport layers
- Implemented tests for RouterConfig, RoutingOptions, StaticInstanceConfig, and RouterConfigOptions to ensure default values are set correctly.
- Added tests for RouterConfigProvider to validate configurations and ensure defaults are returned when no file is specified.
- Created tests for ConfigValidationResult to check success and error scenarios.
- Developed tests for ServiceCollectionExtensions to verify service registration for RouterConfig.
- Introduced UdpTransportTests to validate serialization, connection, request-response, and error handling in UDP transport.
- Added scripts for signing authority gaps and hashing DevPortal SDK snippets.
2025-12-05 08:01:47 +02:00
..
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00
2025-12-02 18:38:32 +02:00

StellaOps Router

The StellaOps Router is the internal communication infrastructure that enables microservices to communicate through a central gateway.

Overview

The router provides:

  • Gateway WebService (StellaOps.Gateway.WebService): HTTP ingress service that routes requests to microservices
  • Microservice SDK (StellaOps.Microservice): SDK for building microservices that connect to the router
  • Transport Plugins: Multiple transport options (TCP, TLS, UDP, RabbitMQ, InMemory for testing)
  • Claims-based Authorization: Using RequiringClaims instead of role-based access

Key Documents

Document Purpose
specs.md Canonical specification - READ FIRST
implplan.md High-level implementation plan
SPRINT_INDEX.md Sprint overview and dependency graph

Solution Structure

StellaOps.Router.slnx
├── src/__Libraries/
│   ├── StellaOps.Router.Common/     # Shared types, enums, interfaces
│   ├── StellaOps.Router.Config/     # Router configuration models
│   ├── StellaOps.Microservice/      # Microservice SDK
│   └── StellaOps.Microservice.SourceGen/  # Build-time endpoint discovery
├── src/Gateway/
│   └── StellaOps.Gateway.WebService/  # HTTP gateway service
└── tests/
    ├── StellaOps.Router.Common.Tests/
    ├── StellaOps.Gateway.WebService.Tests/
    └── StellaOps.Microservice.Tests/

Building

# Build the router solution
dotnet build StellaOps.Router.slnx

# Run tests
dotnet test StellaOps.Router.slnx

Invariants (Non-Negotiable)

From the specification, these are non-negotiable:

  • Method + Path is the endpoint identity
  • Strict semver for version matching
  • Region from GatewayNodeConfig.Region (never from headers/host)
  • No HTTP transport between gateway and microservices
  • RequiringClaims (not AllowedRoles) for authorization
  • Opaque body handling (router doesn't interpret payloads)

Status

Currently in development. See SPRINT_INDEX.md for implementation progress.