fix: constrain dashboard metric validation

This commit is contained in:
vince 2026-06-18 17:53:52 +02:00
parent b7c673bbd7
commit 31604ea935
3 changed files with 83 additions and 6 deletions

View file

@ -135,6 +135,14 @@ function validateSemanticRules(document: DashboardDocument): SemanticValidationI
);
});
document.statusStrips.forEach((strip, stripIndex) => {
collectDuplicateIdIssues(
`statusStrips/${stripIndex}/items`,
strip.items,
issues,
);
});
collectMissingReferenceIssues(
"layout/telemetry",
document.layout.telemetry,
@ -171,6 +179,20 @@ function validateSemanticRules(document: DashboardDocument): SemanticValidationI
);
}
if (
card.value.kind === "percent" &&
((card.thresholds?.warning !== undefined && card.thresholds.warning > 100) ||
(card.thresholds?.danger !== undefined && card.thresholds.danger > 100))
) {
issues.push(
semanticIssue(
`/telemetry/${index}/thresholds`,
"percent thresholds must be between 0 and 100",
{ id: card.id },
),
);
}
const warning = card.thresholds?.warning;
const danger = card.thresholds?.danger;
if (warning !== undefined && danger !== undefined && warning > danger) {