feat(portal): make UEBA risk policy configurable

This commit is contained in:
igor04091968
2026-06-03 18:00:08 +03:00
parent 2cb2260bb2
commit c2e2f64c08
8 changed files with 395 additions and 43 deletions
@@ -401,6 +401,8 @@ function renderReportSections(sections) {
function renderUebaRisk(risk) {
if (!risk) return "";
const reasons = Array.isArray(risk.reasons) ? risk.reasons.slice(0, 12) : [];
const sources = Array.isArray(risk.risk_sources) ? risk.risk_sources.join(", ") : "-";
const confidence = Number.isFinite(Number(risk.confidence)) ? `${Math.round(Number(risk.confidence) * 100)}%` : "0%";
return `
<section class="card ueba-risk-card">
<div class="section-head">
@@ -408,6 +410,7 @@ function renderUebaRisk(risk) {
<h3>UEBA риск</h3>
<p class="muted">${escapeHtml(risk.note || "Read-only risk score без автоматического воздействия.")}</p>
<p class="muted small">Формула: ${escapeHtml(risk.formula || "sum(reason_points) capped at 100")}.</p>
<p class="muted small">Confidence: ${escapeHtml(confidence)} · sources: ${escapeHtml(sources)} · baseline: ${escapeHtml(risk.baseline_status || "-")} · policy: ${escapeHtml(risk.policy_version || "-")}</p>
</div>
<span class="badge ${statusClass(risk.status)}">${escapeHtml(risk.level || "unknown")} · ${escapeHtml(risk.score ?? 0)}/100</span>
</div>