Assessor_2.0/src/reporting/report-context.ts

32 lines
1.3 KiB
TypeScript

/** Published result contract only: Report Engine has no dependency on Context Engine internals. */
export interface ReportContextPublication {
version: 1;
projectId: string;
assessmentIds: string[];
scanRunIds: string[];
repositoryRevision: number;
generatedAt: string;
engineVersion: string;
catalogVersion: string;
severityCatalogVersion: string;
vocabularyVersion: string;
findingCount: number;
clusters: Array<{
id: string; label: string; description: string; severity: 'critical' | 'high' | 'medium' | 'undetermined';
hasEvidence: boolean; scanner: number; gpo: number;
confidence: { catalogued: number; recognized: number; estimated: number };
tools: string[]; resultIds: string[];
/** Unique Work counting units, distinct from multiple technical evidence rows per GPO setting. */
findingKeys?: string[];
sources: Array<{ publisher: string; title: string; url: string }>;
}>;
sharedSettingLevers: Array<{ settings: number; conditions: number; clusters: number; backups: number }>;
}
export class ReportContextRequiredError extends Error {
constructor() {
super('Für den Management Report sind Context-Ergebnisse desselben Assessment-Stands erforderlich. Bitte Context Engine aktivieren und erneut versuchen.');
this.name = 'ReportContextRequiredError';
}
}