up
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Export Center CI / export-ci (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled

This commit is contained in:
StellaOps Bot
2025-12-03 00:10:19 +02:00
parent ea1d58a89b
commit 37cba83708
158 changed files with 147438 additions and 867 deletions

View File

@@ -0,0 +1,49 @@
using Microsoft.AspNetCore.Mvc;
using StellaOps.Policy.Engine.ConsoleSurface;
namespace StellaOps.Policy.Engine.Endpoints;
internal static class ConsoleSimulationEndpoint
{
public static IEndpointRouteBuilder MapConsoleSimulationDiff(this IEndpointRouteBuilder routes)
{
routes.MapPost("/policy/console/simulations/diff", HandleAsync)
.WithName("PolicyEngine.ConsoleSimulationDiff")
.Produces<ConsoleSimulationDiffResponse>(StatusCodes.Status200OK)
.ProducesValidationProblem();
return routes;
}
private static IResult HandleAsync(
[FromBody] ConsoleSimulationDiffRequest request,
ConsoleSimulationDiffService service)
{
if (request is null)
{
return Results.ValidationProblem(new Dictionary<string, string[]>
{
["request"] = new[] { "Request body is required." }
});
}
if (request.EvaluationTimestamp == default)
{
return Results.ValidationProblem(new Dictionary<string, string[]>
{
["evaluationTimestamp"] = new[] { "evaluationTimestamp is required." }
});
}
if (string.IsNullOrWhiteSpace(request.BaselinePolicyVersion) || string.IsNullOrWhiteSpace(request.CandidatePolicyVersion))
{
return Results.ValidationProblem(new Dictionary<string, string[]>
{
["policyVersion"] = new[] { "baselinePolicyVersion and candidatePolicyVersion are required." }
});
}
var response = service.Compute(request);
return Results.Json(response);
}
}