28 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # Policy Schema Export Automation
 | |
| 
 | |
| This utility generates JSON Schema documents for the Policy Engine run contracts.
 | |
| 
 | |
| ## Command
 | |
| 
 | |
| ```
 | |
| scripts/export-policy-schemas.sh [output-directory]
 | |
| ```
 | |
| 
 | |
| When no output directory is supplied, schemas are written to `docs/schemas/`.
 | |
| 
 | |
| The exporter builds against `StellaOps.Scheduler.Models` and emits:
 | |
| 
 | |
| - `policy-run-request.schema.json`
 | |
| - `policy-run-status.schema.json`
 | |
| - `policy-diff-summary.schema.json`
 | |
| - `policy-explain-trace.schema.json`
 | |
| 
 | |
| The build pipeline (`.gitea/workflows/build-test-deploy.yml`, job **Export policy run schemas**) runs this script on every push and pull request. Exports land under `artifacts/policy-schemas/<commit>/`, are published as the `policy-schema-exports` artifact, and changes trigger a Slack post to `#policy-engine` via the `POLICY_ENGINE_SCHEMA_WEBHOOK` secret. A unified diff is stored alongside the exports for downstream consumers.
 | |
| 
 | |
| ## CI integration checklist
 | |
| 
 | |
| - [x] Invoke the script in the DevOps pipeline (see `DEVOPS-POLICY-20-004`).
 | |
| - [x] Publish the generated schemas as pipeline artifacts.
 | |
| - [x] Notify downstream consumers when schemas change (Slack `#policy-engine`, changelog snippet).
 | |
| - [ ] Gate CLI validation once schema artifacts are available.
 |