56 lines
1.7 KiB
C#
56 lines
1.7 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace StellaOps.Zastava.Observer.Configuration;
|
|
|
|
/// <summary>
|
|
/// Configuration for emitting runtime reachability facts to Signals.
|
|
/// </summary>
|
|
public sealed class ReachabilityRuntimeOptions
|
|
{
|
|
/// <summary>
|
|
/// Enables runtime reachability fact publishing when true.
|
|
/// </summary>
|
|
public bool Enabled { get; set; }
|
|
|
|
/// <summary>
|
|
/// Signals endpoint that accepts runtime facts (JSON or NDJSON).
|
|
/// </summary>
|
|
[Required(AllowEmptyStrings = false)]
|
|
public string Endpoint { get; set; } = "https://signals.internal/signals/runtime-facts";
|
|
|
|
/// <summary>
|
|
/// Required callgraph identifier used to correlate runtime facts with static graphs.
|
|
/// </summary>
|
|
[Required(AllowEmptyStrings = false)]
|
|
public string CallgraphId { get; set; } = string.Empty;
|
|
|
|
/// <summary>
|
|
/// Optional analysis identifier forwarded as X-Analysis-Id.
|
|
/// </summary>
|
|
public string? AnalysisId { get; set; }
|
|
|
|
/// <summary>
|
|
/// Maximum number of facts sent in a single publish attempt.
|
|
/// </summary>
|
|
[Range(1, 5000)]
|
|
public int BatchSize { get; set; } = 1000;
|
|
|
|
/// <summary>
|
|
/// Maximum delay (seconds) before flushing a partially filled batch.
|
|
/// </summary>
|
|
[Range(typeof(double), "0.1", "30")]
|
|
public double FlushIntervalSeconds { get; set; } = 2;
|
|
|
|
/// <summary>
|
|
/// Optional subject fallback when image data is missing.
|
|
/// </summary>
|
|
public string? SubjectScanId { get; set; }
|
|
|
|
public string? SubjectImageDigest { get; set; }
|
|
|
|
public string? SubjectComponent { get; set; }
|
|
|
|
public string? SubjectVersion { get; set; }
|
|
}
|
|
|