search and ai stabilization work, localization stablized.
This commit is contained in:
@@ -18,6 +18,7 @@ using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using static StellaOps.Localization.T;
|
||||
|
||||
namespace StellaOps.Scanner.WebService.Endpoints;
|
||||
|
||||
@@ -129,9 +130,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid policy diagnostics request",
|
||||
_t("scanner.policy.invalid_diagnostics_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "Policy content is required for diagnostics.");
|
||||
detail: _t("scanner.policy.diagnostics_content_required"));
|
||||
}
|
||||
|
||||
var format = PolicyDtoMapper.ParsePolicyFormat(request.Policy.Format);
|
||||
@@ -167,9 +168,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid policy preview request",
|
||||
_t("scanner.policy.invalid_preview_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "imageDigest is required.");
|
||||
detail: _t("scanner.policy.preview_image_digest_required"));
|
||||
}
|
||||
|
||||
if (!request.ImageDigest.Contains(':', StringComparison.Ordinal))
|
||||
@@ -177,9 +178,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid policy preview request",
|
||||
_t("scanner.policy.invalid_preview_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "imageDigest must include algorithm prefix (e.g. sha256:...).");
|
||||
detail: _t("scanner.policy.preview_image_digest_prefix_required"));
|
||||
}
|
||||
|
||||
if (request.Findings is not null)
|
||||
@@ -190,9 +191,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid policy preview request",
|
||||
_t("scanner.policy.invalid_preview_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "All findings must include an id value.");
|
||||
detail: _t("scanner.policy.preview_findings_id_required"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,9 +217,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid runtime policy request",
|
||||
_t("scanner.policy.invalid_runtime_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "images collection must include at least one digest.");
|
||||
detail: _t("scanner.policy.runtime_images_required"));
|
||||
}
|
||||
|
||||
var normalizedImages = new List<string>();
|
||||
@@ -230,9 +231,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid runtime policy request",
|
||||
_t("scanner.policy.invalid_runtime_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "Image digests must be non-empty.");
|
||||
detail: _t("scanner.policy.runtime_image_digest_nonempty"));
|
||||
}
|
||||
|
||||
var trimmed = image.Trim();
|
||||
@@ -241,9 +242,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid runtime policy request",
|
||||
_t("scanner.policy.invalid_runtime_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "Image digests must include an algorithm prefix (e.g. sha256:...).");
|
||||
detail: _t("scanner.policy.runtime_image_digest_prefix_required"));
|
||||
}
|
||||
|
||||
if (seen.Add(trimmed))
|
||||
@@ -257,9 +258,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid runtime policy request",
|
||||
_t("scanner.policy.invalid_runtime_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "images collection must include at least one unique digest.");
|
||||
detail: _t("scanner.policy.runtime_images_unique_required"));
|
||||
}
|
||||
|
||||
var namespaceValue = string.IsNullOrWhiteSpace(request.Namespace) ? null : request.Namespace.Trim();
|
||||
@@ -306,9 +307,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid linkset request",
|
||||
_t("scanner.policy.invalid_linkset_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "advisoryIds must include at least one value.");
|
||||
detail: _t("scanner.policy.linkset_advisory_ids_required"));
|
||||
}
|
||||
|
||||
if (request.IncludePolicyOverlay && string.IsNullOrWhiteSpace(request.ImageDigest))
|
||||
@@ -316,9 +317,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid linkset request",
|
||||
_t("scanner.policy.invalid_linkset_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "imageDigest is required when includePolicyOverlay is true.");
|
||||
detail: _t("scanner.policy.linkset_image_digest_required_for_overlay"));
|
||||
}
|
||||
|
||||
var linksets = await linksetResolver.ResolveByAdvisoryIdsAsync(request.AdvisoryIds, cancellationToken).ConfigureAwait(false);
|
||||
@@ -472,9 +473,9 @@ internal static class PolicyEndpoints
|
||||
return ProblemResultFactory.Create(
|
||||
context,
|
||||
ProblemTypes.Validation,
|
||||
"Invalid policy overlay request",
|
||||
_t("scanner.policy.invalid_overlay_request"),
|
||||
StatusCodes.Status400BadRequest,
|
||||
detail: "nodes collection must include at least one node.");
|
||||
detail: _t("scanner.policy.overlay_nodes_required"));
|
||||
}
|
||||
|
||||
var tenant = !string.IsNullOrWhiteSpace(request.Tenant)
|
||||
|
||||
Reference in New Issue
Block a user