up
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
namespace StellaOps.Signals.Options;
|
||||
|
||||
/// <summary>
|
||||
/// Configuration for unknowns scoring algorithm.
|
||||
/// </summary>
|
||||
public sealed class UnknownsScoringOptions
|
||||
{
|
||||
public const string SectionName = "Signals:UnknownsScoring";
|
||||
|
||||
// ===== FACTOR WEIGHTS =====
|
||||
// Must sum to 1.0
|
||||
|
||||
/// <summary>
|
||||
/// Weight for popularity factor (wP). Default: 0.25
|
||||
/// </summary>
|
||||
public double WeightPopularity { get; set; } = 0.25;
|
||||
|
||||
/// <summary>
|
||||
/// Weight for exploit potential factor (wE). Default: 0.25
|
||||
/// </summary>
|
||||
public double WeightExploitPotential { get; set; } = 0.25;
|
||||
|
||||
/// <summary>
|
||||
/// Weight for uncertainty density factor (wU). Default: 0.25
|
||||
/// </summary>
|
||||
public double WeightUncertainty { get; set; } = 0.25;
|
||||
|
||||
/// <summary>
|
||||
/// Weight for graph centrality factor (wC). Default: 0.15
|
||||
/// </summary>
|
||||
public double WeightCentrality { get; set; } = 0.15;
|
||||
|
||||
/// <summary>
|
||||
/// Weight for evidence staleness factor (wS). Default: 0.10
|
||||
/// </summary>
|
||||
public double WeightStaleness { get; set; } = 0.10;
|
||||
|
||||
// ===== POPULARITY NORMALIZATION =====
|
||||
|
||||
/// <summary>
|
||||
/// Maximum deployments for normalization. Default: 100
|
||||
/// </summary>
|
||||
public int PopularityMaxDeployments { get; set; } = 100;
|
||||
|
||||
// ===== UNCERTAINTY FLAG WEIGHTS =====
|
||||
|
||||
public double FlagWeightNoProvenance { get; set; } = 0.30;
|
||||
public double FlagWeightVersionRange { get; set; } = 0.25;
|
||||
public double FlagWeightConflictingFeeds { get; set; } = 0.20;
|
||||
public double FlagWeightMissingVector { get; set; } = 0.15;
|
||||
public double FlagWeightUnreachableSource { get; set; } = 0.10;
|
||||
public double FlagWeightDynamicTarget { get; set; } = 0.25;
|
||||
public double FlagWeightExternalAssembly { get; set; } = 0.20;
|
||||
|
||||
// ===== CENTRALITY NORMALIZATION =====
|
||||
|
||||
/// <summary>
|
||||
/// Maximum betweenness for normalization. Default: 1000
|
||||
/// </summary>
|
||||
public double CentralityMaxBetweenness { get; set; } = 1000.0;
|
||||
|
||||
// ===== STALENESS NORMALIZATION =====
|
||||
|
||||
/// <summary>
|
||||
/// Maximum days for staleness normalization. Default: 14
|
||||
/// </summary>
|
||||
public int StalenessMaxDays { get; set; } = 14;
|
||||
|
||||
// ===== BAND THRESHOLDS =====
|
||||
|
||||
/// <summary>
|
||||
/// Score threshold for HOT band. Default: 0.70
|
||||
/// </summary>
|
||||
public double HotThreshold { get; set; } = 0.70;
|
||||
|
||||
/// <summary>
|
||||
/// Score threshold for WARM band. Default: 0.40
|
||||
/// </summary>
|
||||
public double WarmThreshold { get; set; } = 0.40;
|
||||
|
||||
// ===== RESCAN SCHEDULING =====
|
||||
|
||||
/// <summary>
|
||||
/// Hours until WARM items are rescanned. Default: 24
|
||||
/// </summary>
|
||||
public int WarmRescanHours { get; set; } = 24;
|
||||
|
||||
/// <summary>
|
||||
/// Days until COLD items are rescanned. Default: 7
|
||||
/// </summary>
|
||||
public int ColdRescanDays { get; set; } = 7;
|
||||
}
|
||||
Reference in New Issue
Block a user