mirror of
https://github.com/azaion/satellite-provider.git
synced 2026-06-26 07:21:13 +00:00
[AZ-1074] [AZ-1075] Cycle 9 closeout: security, tests, metrics
Resolve F-AZ1074-1/2 (collection caps, generic gRPC internal errors). Standalone integration compose stack, docs, security audit, perf and retro. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+25
@@ -214,6 +214,10 @@ public sealed class RouteTileDeliveryOrchestrator
|
||||
await sink.WriteCompleteAsync(delivered, skippedByClient, serverFiltered, cancellationToken);
|
||||
}
|
||||
|
||||
private const int MaxWaypoints = 500;
|
||||
private const int MaxGeofencePolygons = 50;
|
||||
private const int MaxClientTiles = 5000;
|
||||
|
||||
private void ValidateJob(RouteTileDeliveryJob job)
|
||||
{
|
||||
if (job.RouteId == Guid.Empty)
|
||||
@@ -226,6 +230,27 @@ public sealed class RouteTileDeliveryOrchestrator
|
||||
throw new ArgumentException("Route must have at least 2 waypoints", nameof(job));
|
||||
}
|
||||
|
||||
if (job.Waypoints.Count > MaxWaypoints)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"waypoints must contain at most {MaxWaypoints} entries",
|
||||
nameof(job));
|
||||
}
|
||||
|
||||
if (job.GeofenceVertices.Count > MaxGeofencePolygons)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"geofences must contain at most {MaxGeofencePolygons} polygons",
|
||||
nameof(job));
|
||||
}
|
||||
|
||||
if (job.ClientTiles.Count > MaxClientTiles)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
$"client_tiles must contain at most {MaxClientTiles} entries",
|
||||
nameof(job));
|
||||
}
|
||||
|
||||
for (var i = 0; i < job.Waypoints.Count; i++)
|
||||
{
|
||||
var (lat, lon) = job.Waypoints[i];
|
||||
|
||||
Reference in New Issue
Block a user