- Added `PolicyFindings` property to `SbomCompositionRequest` to include policy findings in SBOM. - Implemented `NormalizePolicyFindings` method to process and validate policy findings. - Updated `SbomCompositionRequest.Create` method to accept policy findings as an argument. - Upgraded CycloneDX.Core package from version 5.1.0 to 10.0.1. - Marked several tasks as DONE in TASKS.md, reflecting completion of SBOM-related features. - Introduced telemetry metrics for Go analyzer to track heuristic fallbacks. - Added performance benchmarks for .NET and Go analyzers. - Created new test fixtures for .NET applications, including dependencies and runtime configurations. - Added licenses and nuspec files for logging and toolkit packages used in tests. - Implemented `SbomPolicyFinding` record to encapsulate policy finding details and normalization logic.
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
{
 | 
						|
  "report": {
 | 
						|
    "reportId": "report-3def5f362aa475ef14b6",
 | 
						|
    "imageDigest": "sha256:deadbeef",
 | 
						|
    "generatedAt": "2025-10-19T08:28:09.3699267+00:00",
 | 
						|
    "verdict": "blocked",
 | 
						|
    "policy": {
 | 
						|
      "revisionId": "rev-1",
 | 
						|
      "digest": "27d2ec2b34feedc304fc564d252ecee1c8fa14ea581a5ff5c1ea8963313d5c8d"
 | 
						|
    },
 | 
						|
    "summary": {
 | 
						|
      "total": 1,
 | 
						|
      "blocked": 1,
 | 
						|
      "warned": 0,
 | 
						|
      "ignored": 0,
 | 
						|
      "quieted": 1
 | 
						|
    },
 | 
						|
    "verdicts": [
 | 
						|
      {
 | 
						|
        "findingId": "finding-1",
 | 
						|
        "status": "Blocked",
 | 
						|
        "ruleName": "Block Critical",
 | 
						|
        "ruleAction": "Block",
 | 
						|
        "score": 40.5,
 | 
						|
        "configVersion": "1.0",
 | 
						|
        "inputs": {
 | 
						|
          "reachabilityWeight": 0.45,
 | 
						|
          "baseScore": 40.5,
 | 
						|
          "severityWeight": 90,
 | 
						|
          "trustWeight": 1,
 | 
						|
          "trustWeight.NVD": 1,
 | 
						|
          "reachability.runtime": 0.45,
 | 
						|
          "unknownConfidence": 0.52,
 | 
						|
          "unknownAgeDays": 4
 | 
						|
        },
 | 
						|
        "quietedBy": "policy/quiet-critical-runtime",
 | 
						|
        "quiet": true,
 | 
						|
        "unknownConfidence": 0.52,
 | 
						|
        "confidenceBand": "medium",
 | 
						|
        "unknownAgeDays": 4,
 | 
						|
        "sourceTrust": "NVD",
 | 
						|
        "reachability": "runtime"
 | 
						|
      }
 | 
						|
    ],
 | 
						|
    "issues": []
 | 
						|
  },
 | 
						|
  "dsse": {
 | 
						|
    "payloadType": "application/vnd.stellaops.report+json",
 | 
						|
    "payload": "eyJyZXBvcnRJZCI6InJlcG9ydC0zZGVmNWYzNjJhYTQ3NWVmMTRiNiIsImltYWdlRGlnZXN0Ijoic2hhMjU2OmRlYWRiZWVmIiwiZ2VuZXJhdGVkQXQiOiIyMDI1LTEwLTE5VDA4OjI4OjA5LjM2OTkyNjcrMDA6MDAiLCJ2ZXJkaWN0IjoiYmxvY2tlZCIsInBvbGljeSI6eyJyZXZpc2lvbklkIjoicmV2LTEiLCJkaWdlc3QiOiIyN2QyZWMyYjM0ZmVlZGMzMDRmYzU2NGQyNTJlY2VlMWM4ZmExNGVhNTgxYTVmZjVjMWVhODk2MzMxM2Q1YzhkIn0sInN1bW1hcnkiOnsidG90YWwiOjEsImJsb2NrZWQiOjEsIndhcm5lZCI6MCwiaWdub3JlZCI6MCwicXVpZXRlZCI6MX0sInZlcmRpY3RzIjpbeyJmaW5kaW5nSWQiOiJmaW5kaW5nLTEiLCJzdGF0dXMiOiJCbG9ja2VkIiwicnVsZU5hbWUiOiJCbG9jayBDcml0aWNhbCIsInJ1bGVBY3Rpb24iOiJCbG9jayIsInNjb3JlIjo0MC41LCJjb25maWdWZXJzaW9uIjoiMS4wIiwiaW5wdXRzIjp7InJlYWNoYWJpbGl0eVdlaWdodCI6MC40NSwiYmFzZVNjb3JlIjo0MC41LCJzZXZlcml0eVdlaWdodCI6OTAsInRydXN0V2VpZ2h0IjoxLCJ0cnVzdFdlaWdodC5OVkQiOjEsInJlYWNoYWJpbGl0eS5ydW50aW1lIjowLjQ1LCJ1bmtub3duQ29uZmlkZW5jZSI6MC41MiwidW5rbm93bkFnZURheXMiOjR9LCJxdWlldGVkQnkiOiJwb2xpY3kvcXVpZXQtY3JpdGljYWwtcnVudGltZSIsInF1aWV0Ijp0cnVlLCJ1bmtub3duQ29uZmlkZW5jZSI6MC41MiwiY29uZmlkZW5jZUJhbmQiOiJtZWRpdW0iLCJ1bmtub3duQWdlRGF5cyI6NCwic291cmNlVHJ1c3QiOiJOVkQiLCJyZWFjaGFiaWxpdHkiOiJydW50aW1lIn1dLCJpc3N1ZXMiOltdfQ==",
 | 
						|
    "signatures": [
 | 
						|
      {
 | 
						|
        "keyId": "scanner-report-signing",
 | 
						|
        "algorithm": "hs256",
 | 
						|
        "signature": "s3qnWeRsYs+QA/nO84Us8G2xjZcvphc2P7KnOdTVwQs="
 | 
						|
      }
 | 
						|
    ]
 | 
						|
  }
 | 
						|
}
 |