29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import type { CanonicalSeverity } from '../domain/canonical-model';
|
|
import {
|
|
pingCastleSeverityFromPoints,
|
|
PINGCASTLE_SEVERITY_FROM_POINTS_RULE_ID,
|
|
PINGCASTLE_SEVERITY_FROM_POINTS_RULE_VERSION
|
|
} from '../profiles/pingcastle/pingcastle-severity';
|
|
|
|
export interface SeverityFromScoreRule {
|
|
ruleId: string;
|
|
ruleVersion: string;
|
|
derive(score: number): CanonicalSeverity;
|
|
}
|
|
|
|
// Werkzeuge ohne eigenes Severity-Feld, deren Score deterministisch auf die
|
|
// kanonische Severity abgebildet werden darf. Nur hier eintragen, wenn eine
|
|
// versionierte, dokumentierte Herleitungsregel existiert (siehe die jeweilige
|
|
// pingcastle-severity.ts-artige Regeldatei) - kein Ad-hoc-Schwellenwert.
|
|
const severityFromScoreRules = new Map<string, SeverityFromScoreRule>([
|
|
['pingcastle', {
|
|
ruleId: PINGCASTLE_SEVERITY_FROM_POINTS_RULE_ID,
|
|
ruleVersion: PINGCASTLE_SEVERITY_FROM_POINTS_RULE_VERSION,
|
|
derive: pingCastleSeverityFromPoints
|
|
}]
|
|
]);
|
|
|
|
export function severityFromScoreRuleFor(toolId: string): SeverityFromScoreRule | undefined {
|
|
return severityFromScoreRules.get(toolId);
|
|
}
|