🔮 Bastion Predictive Update Analysis

Project: ${report.projectGroupId}:${report.projectArtifactId}:${report.projectVersion}

Generated: ${formattedTimestamp}

Analysis Depth: ${report.analysisDepth}

Executive Summary

${report.analysisSummary}

${safeUpdates}

Safe Updates

${riskyUpdates}

Risky Updates

${resolvableCves}

CVEs Resolvable

${successRate}%

Success Rate

<#if report.topRecommendations?has_content>

Top Recommendations

<#list report.topRecommendations as rec>
${rec.dependencyNameShort}
${rec.recommendationType?string?replace('_', ' ')}
Version: ${rec.currentVersion} ${rec.recommendedVersion!'N/A'}
✅ ${rec.cvesResolved} CVEs Resolved <#if rec.potentialNewCves gt 0> | ⚠️ ${rec.potentialNewCves} Potential New CVEs
Risk Level: ${rec.riskLevel!'UNKNOWN'} Confidence: ${(rec.confidenceScore * 100)?string("0.0")}%
<#if rec.reason?has_content>
Recommendation: ${rec.reason}

Detailed Analysis

Total Dependencies Analyzed: ${totalDependencies} | Analysis Time: ${formatDuration(report.analysisTimeMs)}

<#if report.recommendations?has_content> <#list report.recommendations as rec>
${rec.dependencyNameShort}
${rec.recommendationType?string?replace('_', ' ')}
Current Version: ${rec.currentVersion} | Recommended: ${rec.recommendedVersion!'No safe update available'} | Type: ${rec.direct?string('Direct', 'Transitive')}
CVEs Resolved: ${rec.cvesResolved} | Potential New: ${rec.potentialNewCves} | Risk: ${rec.riskLevel!'UNKNOWN'} | Confidence: ${(rec.confidenceScore * 100)?string("0.0")}%
<#if rec.reason?has_content>
${rec.reason}
<#if rec.currentVulnerabilities?has_content>
Current Vulnerabilities: <#list rec.currentVulnerabilities as vuln>
CVE ID Severity CVSS Score Description
${vuln.cveId!'N/A'} ${vuln.severity!'UNKNOWN'} ${(vuln.cvssV3Score!0)?string("0.0")} ${truncateText(vuln.description!'No description', 80)}
<#else>

No dependencies analyzed
No vulnerable dependencies found to analyze for updates.