feat: Enhance SBOM composition with policy findings and update CycloneDX package
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Docs CI / lint-and-preview (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Docs CI / lint-and-preview (push) Has been cancelled
				
			- 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.
This commit is contained in:
		| @@ -8,39 +8,45 @@ | ||||
|       "revisionId": "rev-1", | ||||
|       "digest": "27d2ec2b34feedc304fc564d252ecee1c8fa14ea581a5ff5c1ea8963313d5c8d" | ||||
|     }, | ||||
|     "summary": { | ||||
|       "total": 1, | ||||
|       "blocked": 1, | ||||
|       "warned": 0, | ||||
|       "ignored": 0, | ||||
|       "quieted": 0 | ||||
|     }, | ||||
|     "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 | ||||
|         }, | ||||
|         "quiet": false, | ||||
|         "sourceTrust": "NVD", | ||||
|         "reachability": "runtime" | ||||
|       } | ||||
|     "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": "eyJyZXBvcnRJZCI6InJlcG9ydC0zZGVmNWYzNjJhYTQ3NWVmMTRiNiIsImltYWdlRGlnZXN0Ijoic2hhMjU2OmRlYWRiZWVmIiwiZ2VuZXJhdGVkQXQiOiIyMDI1LTEwLTE5VDA4OjI4OjA5LjM2OTkyNjcrMDA6MDAiLCJ2ZXJkaWN0IjoiYmxvY2tlZCIsInBvbGljeSI6eyJyZXZpc2lvbklkIjoicmV2LTEiLCJkaWdlc3QiOiIyN2QyZWMyYjM0ZmVlZGMzMDRmYzU2NGQyNTJlY2VlMWM4ZmExNGVhNTgxYTVmZjVjMWVhODk2MzMxM2Q1YzhkIn0sInN1bW1hcnkiOnsidG90YWwiOjEsImJsb2NrZWQiOjEsIndhcm5lZCI6MCwiaWdub3JlZCI6MCwicXVpZXRlZCI6MH0sInZlcmRpY3RzIjpbeyJmaW5kaW5nSWQiOiJmaW5kaW5nLTEiLCJzdGF0dXMiOiJCbG9ja2VkIiwicnVsZU5hbWUiOiJCbG9jayBDcml0aWNhbCIsInJ1bGVBY3Rpb24iOiJCbG9jayIsInNjb3JlIjo0MC41LCJjb25maWdWZXJzaW9uIjoiMS4wIiwiaW5wdXRzIjp7InJlYWNoYWJpbGl0eVdlaWdodCI6MC40NSwiYmFzZVNjb3JlIjo0MC41LCJzZXZlcml0eVdlaWdodCI6OTAsInRydXN0V2VpZ2h0IjoxLCJ0cnVzdFdlaWdodC5OVkQiOjEsInJlYWNoYWJpbGl0eS5ydW50aW1lIjowLjQ1fSwicXVpZXQiOmZhbHNlLCJzb3VyY2VUcnVzdCI6Ik5WRCIsInJlYWNoYWJpbGl0eSI6InJ1bnRpbWUifV0sImlzc3VlcyI6W119", | ||||
|     "payload": "eyJyZXBvcnRJZCI6InJlcG9ydC0zZGVmNWYzNjJhYTQ3NWVmMTRiNiIsImltYWdlRGlnZXN0Ijoic2hhMjU2OmRlYWRiZWVmIiwiZ2VuZXJhdGVkQXQiOiIyMDI1LTEwLTE5VDA4OjI4OjA5LjM2OTkyNjcrMDA6MDAiLCJ2ZXJkaWN0IjoiYmxvY2tlZCIsInBvbGljeSI6eyJyZXZpc2lvbklkIjoicmV2LTEiLCJkaWdlc3QiOiIyN2QyZWMyYjM0ZmVlZGMzMDRmYzU2NGQyNTJlY2VlMWM4ZmExNGVhNTgxYTVmZjVjMWVhODk2MzMxM2Q1YzhkIn0sInN1bW1hcnkiOnsidG90YWwiOjEsImJsb2NrZWQiOjEsIndhcm5lZCI6MCwiaWdub3JlZCI6MCwicXVpZXRlZCI6MX0sInZlcmRpY3RzIjpbeyJmaW5kaW5nSWQiOiJmaW5kaW5nLTEiLCJzdGF0dXMiOiJCbG9ja2VkIiwicnVsZU5hbWUiOiJCbG9jayBDcml0aWNhbCIsInJ1bGVBY3Rpb24iOiJCbG9jayIsInNjb3JlIjo0MC41LCJjb25maWdWZXJzaW9uIjoiMS4wIiwiaW5wdXRzIjp7InJlYWNoYWJpbGl0eVdlaWdodCI6MC40NSwiYmFzZVNjb3JlIjo0MC41LCJzZXZlcml0eVdlaWdodCI6OTAsInRydXN0V2VpZ2h0IjoxLCJ0cnVzdFdlaWdodC5OVkQiOjEsInJlYWNoYWJpbGl0eS5ydW50aW1lIjowLjQ1LCJ1bmtub3duQ29uZmlkZW5jZSI6MC41MiwidW5rbm93bkFnZURheXMiOjR9LCJxdWlldGVkQnkiOiJwb2xpY3kvcXVpZXQtY3JpdGljYWwtcnVudGltZSIsInF1aWV0Ijp0cnVlLCJ1bmtub3duQ29uZmlkZW5jZSI6MC41MiwiY29uZmlkZW5jZUJhbmQiOiJtZWRpdW0iLCJ1bmtub3duQWdlRGF5cyI6NCwic291cmNlVHJ1c3QiOiJOVkQiLCJyZWFjaGFiaWxpdHkiOiJydW50aW1lIn1dLCJpc3N1ZXMiOltdfQ==", | ||||
|     "signatures": [ | ||||
|       { | ||||
|         "keyId": "scanner-report-signing", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user