feat(telemetry): add telemetry client and services for tracking events

- Implemented TelemetryClient to handle event queuing and flushing to the telemetry endpoint.
- Created TtfsTelemetryService for emitting specific telemetry events related to TTFS.
- Added tests for TelemetryClient to ensure event queuing and flushing functionality.
- Introduced models for reachability drift detection, including DriftResult and DriftedSink.
- Developed DriftApiService for interacting with the drift detection API.
- Updated FirstSignalCardComponent to emit telemetry events on signal appearance.
- Enhanced localization support for first signal component with i18n strings.
This commit is contained in:
master
2025-12-18 16:19:16 +02:00
parent 00d2c99af9
commit 811f35cba7
114 changed files with 13702 additions and 268 deletions

View File

@@ -43,6 +43,13 @@ public static class PredicateTypes
/// </summary>
public const string StellaOpsPolicy = "stella.ops/policy@v1";
/// <summary>
/// StellaOps Policy Decision attestation predicate type.
/// Sprint: SPRINT_3801_0001_0001_policy_decision_attestation
/// Captures policy gate results with references to input evidence (SBOM, VEX, RichGraph).
/// </summary>
public const string StellaOpsPolicyDecision = "stella.ops/policy-decision@v1";
/// <summary>
/// StellaOps Evidence chain predicate type.
/// </summary>
@@ -60,6 +67,13 @@ public static class PredicateTypes
/// </summary>
public const string StellaOpsGraph = "stella.ops/graph@v1";
/// <summary>
/// StellaOps Reachability Witness predicate type for DSSE attestations.
/// Sprint: SPRINT_3620_0001_0001_reachability_witness_dsse
/// Cryptographic proof that specific reachability analysis was performed.
/// </summary>
public const string StellaOpsReachabilityWitness = "stella.ops/reachabilityWitness@v1";
/// <summary>
/// CycloneDX SBOM predicate type.
/// </summary>
@@ -108,7 +122,8 @@ public static class PredicateTypes
{
return predicateType == StellaOpsGraph
|| predicateType == StellaOpsReplay
|| predicateType == StellaOpsEvidence;
|| predicateType == StellaOpsEvidence
|| predicateType == StellaOpsReachabilityWitness;
}
/// <summary>
@@ -127,9 +142,11 @@ public static class PredicateTypes
StellaOpsVex,
StellaOpsReplay,
StellaOpsPolicy,
StellaOpsPolicyDecision,
StellaOpsEvidence,
StellaOpsVexDecision,
StellaOpsGraph,
StellaOpsReachabilityWitness,
// Third-party types
CycloneDxSbom,
SpdxSbom,