Add signal contracts for reachability, exploitability, trust, and unknown symbols
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
Signals DSSE Sign & Evidence Locker / sign-signals-artifacts (push) Has been cancelled
Signals DSSE Sign & Evidence Locker / verify-signatures (push) Has been cancelled

- Introduced `ReachabilityState`, `RuntimeHit`, `ExploitabilitySignal`, `ReachabilitySignal`, `SignalEnvelope`, `SignalType`, `TrustSignal`, and `UnknownSymbolSignal` records to define various signal types and their properties.
- Implemented JSON serialization attributes for proper data interchange.
- Created project files for the new signal contracts library and corresponding test projects.
- Added deterministic test fixtures for micro-interaction testing.
- Included cryptographic keys for secure operations with cosign.
This commit is contained in:
StellaOps Bot
2025-12-05 00:27:00 +02:00
parent b018949a8d
commit 8768c27f30
192 changed files with 27569 additions and 2552 deletions

View File

@@ -0,0 +1,25 @@
namespace StellaOps.Router.Config;
/// <summary>
/// Configuration for payload and memory limits.
/// </summary>
public sealed class PayloadLimits
{
/// <summary>
/// Gets or sets the maximum request bytes per call.
/// Default: 10 MB.
/// </summary>
public long MaxRequestBytesPerCall { get; set; } = 10 * 1024 * 1024;
/// <summary>
/// Gets or sets the maximum request bytes per connection.
/// Default: 100 MB.
/// </summary>
public long MaxRequestBytesPerConnection { get; set; } = 100 * 1024 * 1024;
/// <summary>
/// Gets or sets the maximum aggregate in-flight bytes across all requests.
/// Default: 1 GB.
/// </summary>
public long MaxAggregateInflightBytes { get; set; } = 1024 * 1024 * 1024;
}

View File

@@ -0,0 +1,17 @@
namespace StellaOps.Router.Config;
/// <summary>
/// Root configuration for the router.
/// </summary>
public sealed class RouterConfig
{
/// <summary>
/// Gets or sets the payload limits configuration.
/// </summary>
public PayloadLimits PayloadLimits { get; set; } = new();
/// <summary>
/// Gets or sets the service configurations.
/// </summary>
public List<ServiceConfig> Services { get; set; } = [];
}

View File

@@ -0,0 +1,60 @@
using StellaOps.Router.Common;
namespace StellaOps.Router.Config;
/// <summary>
/// Configuration for a service in the router.
/// </summary>
public sealed class ServiceConfig
{
/// <summary>
/// Gets or sets the service name.
/// </summary>
public required string ServiceName { get; set; }
/// <summary>
/// Gets or sets the default version for requests without explicit version.
/// </summary>
public string? DefaultVersion { get; set; }
/// <summary>
/// Gets or sets the default transport type for this service.
/// </summary>
public TransportType DefaultTransport { get; set; } = TransportType.Tcp;
/// <summary>
/// Gets or sets the endpoint configurations.
/// </summary>
public List<EndpointConfig> Endpoints { get; set; } = [];
}
/// <summary>
/// Configuration for an endpoint in a service.
/// </summary>
public sealed class EndpointConfig
{
/// <summary>
/// Gets or sets the HTTP method.
/// </summary>
public required string Method { get; set; }
/// <summary>
/// Gets or sets the path template.
/// </summary>
public required string Path { get; set; }
/// <summary>
/// Gets or sets the default timeout.
/// </summary>
public TimeSpan? DefaultTimeout { get; set; }
/// <summary>
/// Gets or sets whether streaming is supported.
/// </summary>
public bool SupportsStreaming { get; set; }
/// <summary>
/// Gets or sets the claim requirements.
/// </summary>
public List<ClaimRequirement> RequiringClaims { get; set; } = [];
}

View File

@@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<LangVersion>preview</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\StellaOps.Router.Common\StellaOps.Router.Common.csproj" />
</ItemGroup>
</Project>