Restructure solution layout by module
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Docs CI / lint-and-preview (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Docs CI / lint-and-preview (push) Has been cancelled
				
			This commit is contained in:
		| @@ -1,79 +1,79 @@ | ||||
| # Baseline Policy Example (`baseline.stella`) | ||||
|  | ||||
| This sample policy provides a balanced default for production workloads: block critical findings, require strong VEX justifications to suppress advisories, and warn on deprecated runtimes. Use it as a starting point for tenants that want guardrails without excessive noise. | ||||
|  | ||||
| ```dsl | ||||
| policy "Baseline Production Policy" syntax "stella-dsl@1" { | ||||
|   metadata { | ||||
|     description = "Block critical, escalate high, enforce VEX justifications." | ||||
|     tags = ["baseline","production"] | ||||
|   } | ||||
|  | ||||
|   profile severity { | ||||
|     map vendor_weight { | ||||
|       source "GHSA" => +0.5 | ||||
|       source "OSV" => +0.0 | ||||
|       source "VendorX" => -0.2 | ||||
|     } | ||||
|     env exposure_adjustments { | ||||
|       if env.exposure == "internet" then +0.5 | ||||
|       if env.runtime == "legacy" then +0.3 | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   rule block_critical priority 5 { | ||||
|     when severity.normalized >= "Critical" | ||||
|     then status := "blocked" | ||||
|     because "Critical severity must be remediated before deploy." | ||||
|   } | ||||
|  | ||||
|   rule escalate_high_internet { | ||||
|     when severity.normalized == "High" | ||||
|          and env.exposure == "internet" | ||||
|     then escalate to severity_band("Critical") | ||||
|     because "High severity on internet-exposed asset escalates to critical." | ||||
|   } | ||||
|  | ||||
|   rule require_vex_justification { | ||||
|     when vex.any(status in ["not_affected","fixed"]) | ||||
|          and vex.justification in ["component_not_present","vulnerable_code_not_present"] | ||||
|     then status := vex.status | ||||
|          annotate winning_statement := vex.latest().statementId | ||||
|     because "Respect strong vendor VEX claims." | ||||
|   } | ||||
|  | ||||
|   rule alert_warn_eol_runtime priority 1 { | ||||
|     when severity.normalized <= "Medium" | ||||
|          and sbom.has_tag("runtime:eol") | ||||
|     then warn message "Runtime marked as EOL; upgrade recommended." | ||||
|     because "Deprecated runtime should be upgraded." | ||||
|   } | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## Commentary | ||||
|  | ||||
| - **Severity profile** tightens vendor weights and applies exposure modifiers so internet-facing/high severity pairs escalate automatically. | ||||
| - **VEX rule** only honours strong justifications, preventing weaker claims from hiding issues. | ||||
| - **Warnings first** – The `alert_warn_eol_runtime` rule name ensures it sorts before the require-VEX rule, keeping alerts visible without flipping to `RequiresVex`. | ||||
| - Works well as shared `tenant-global` baseline; use tenant overrides for stricter tolerant environments. | ||||
|  | ||||
| ## Try it out | ||||
|  | ||||
| ```bash | ||||
| stella policy new --policy-id P-baseline --template blank --open | ||||
| stella policy lint examples/policies/baseline.stella | ||||
| stella policy simulate P-baseline --candidate 1 --sbom sbom:sample-prod | ||||
| ``` | ||||
|  | ||||
| ## Compliance checklist | ||||
|  | ||||
| - [ ] Policy compiled via `stella policy lint` without diagnostics. | ||||
| - [ ] Simulation diff reviewed against golden SBOM set. | ||||
| - [ ] Approval note documents rationale before promoting to production. | ||||
| - [ ] EOL runtime tags kept up to date in SBOM metadata. | ||||
| - [ ] VEX vendor allow-list reviewed quarterly. | ||||
|  | ||||
| --- | ||||
|  | ||||
| *Last updated: 2025-10-26.* | ||||
| # Baseline Policy Example (`baseline.stella`) | ||||
|  | ||||
| This sample policy provides a balanced default for production workloads: block critical findings, require strong VEX justifications to suppress advisories, and warn on deprecated runtimes. Use it as a starting point for tenants that want guardrails without excessive noise. | ||||
|  | ||||
| ```dsl | ||||
| policy "Baseline Production Policy" syntax "stella-dsl@1" { | ||||
|   metadata { | ||||
|     description = "Block critical, escalate high, enforce VEX justifications." | ||||
|     tags = ["baseline","production"] | ||||
|   } | ||||
|  | ||||
|   profile severity { | ||||
|     map vendor_weight { | ||||
|       source "GHSA" => +0.5 | ||||
|       source "OSV" => +0.0 | ||||
|       source "VendorX" => -0.2 | ||||
|     } | ||||
|     env exposure_adjustments { | ||||
|       if env.exposure == "internet" then +0.5 | ||||
|       if env.runtime == "legacy" then +0.3 | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   rule block_critical priority 5 { | ||||
|     when severity.normalized >= "Critical" | ||||
|     then status := "blocked" | ||||
|     because "Critical severity must be remediated before deploy." | ||||
|   } | ||||
|  | ||||
|   rule escalate_high_internet { | ||||
|     when severity.normalized == "High" | ||||
|          and env.exposure == "internet" | ||||
|     then escalate to severity_band("Critical") | ||||
|     because "High severity on internet-exposed asset escalates to critical." | ||||
|   } | ||||
|  | ||||
|   rule require_vex_justification { | ||||
|     when vex.any(status in ["not_affected","fixed"]) | ||||
|          and vex.justification in ["component_not_present","vulnerable_code_not_present"] | ||||
|     then status := vex.status | ||||
|          annotate winning_statement := vex.latest().statementId | ||||
|     because "Respect strong vendor VEX claims." | ||||
|   } | ||||
|  | ||||
|   rule alert_warn_eol_runtime priority 1 { | ||||
|     when severity.normalized <= "Medium" | ||||
|          and sbom.has_tag("runtime:eol") | ||||
|     then warn message "Runtime marked as EOL; upgrade recommended." | ||||
|     because "Deprecated runtime should be upgraded." | ||||
|   } | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## Commentary | ||||
|  | ||||
| - **Severity profile** tightens vendor weights and applies exposure modifiers so internet-facing/high severity pairs escalate automatically. | ||||
| - **VEX rule** only honours strong justifications, preventing weaker claims from hiding issues. | ||||
| - **Warnings first** – The `alert_warn_eol_runtime` rule name ensures it sorts before the require-VEX rule, keeping alerts visible without flipping to `RequiresVex`. | ||||
| - Works well as shared `tenant-global` baseline; use tenant overrides for stricter tolerant environments. | ||||
|  | ||||
| ## Try it out | ||||
|  | ||||
| ```bash | ||||
| stella policy new --policy-id P-baseline --template blank --open | ||||
| stella policy lint examples/policies/baseline.stella | ||||
| stella policy simulate P-baseline --candidate 1 --sbom sbom:sample-prod | ||||
| ``` | ||||
|  | ||||
| ## Compliance checklist | ||||
|  | ||||
| - [ ] Policy compiled via `stella policy lint` without diagnostics. | ||||
| - [ ] Simulation diff reviewed against golden SBOM set. | ||||
| - [ ] Approval note documents rationale before promoting to production. | ||||
| - [ ] EOL runtime tags kept up to date in SBOM metadata. | ||||
| - [ ] VEX vendor allow-list reviewed quarterly. | ||||
|  | ||||
| --- | ||||
|  | ||||
| *Last updated: 2025-10-26.* | ||||
|   | ||||
		Reference in New Issue
	
	Block a user