feat(security): expand canonical asset coverage
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 4m3s
CD Pipeline / build-and-deploy (push) Failing after 10m5s
CD Pipeline / post-deploy-checks (push) Has been skipped

This commit is contained in:
ogt
2026-07-14 12:42:33 +08:00
parent 36778b35df
commit d734362768
7 changed files with 1134 additions and 130 deletions

View File

@@ -28,7 +28,7 @@ type Copy = {
title: string;
live: string;
degraded: string;
assets: string;
overall: string;
assetTypes: string;
nist: string;
siem: string;
@@ -60,7 +60,7 @@ const COPY: Record<"zh" | "en", Copy> = {
title: "AI 資安控制平面",
live: "LIVE",
degraded: "DEGRADED",
assets: "納管資產",
overall: "整體完成度",
assetTypes: "資產類型",
nist: "NIST 控制",
siem: "SIEM 閉環",
@@ -90,7 +90,7 @@ const COPY: Record<"zh" | "en", Copy> = {
title: "AI Security Control Plane",
live: "LIVE",
degraded: "DEGRADED",
assets: "Managed assets",
overall: "Overall completion",
assetTypes: "Asset types",
nist: "NIST control",
siem: "SIEM closure",
@@ -327,8 +327,12 @@ export function SecurityAssetControlPlaneCockpit({
</button>
</div>
<div className="grid gap-px bg-[#d8d3c7] sm:grid-cols-3 lg:grid-cols-6">
<MetricCell label={copy.assets} value={payload?.summary.managed_asset_count ?? "--"} icon={Boxes} />
<div className="grid grid-cols-2 gap-px bg-[#d8d3c7] sm:grid-cols-3 lg:grid-cols-6">
<MetricCell
label={copy.overall}
value={payload ? `${payload.summary.overall_security_completion_percent}%` : "--"}
icon={ShieldCheck}
/>
<MetricCell
label={copy.assetTypes}
value={payload ? `${payload.summary.asset_type_coverage_percent}%` : "--"}