Add Policy DSL Validator, Schema Exporter, and Simulation Smoke tools
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Docs CI / lint-and-preview (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Docs CI / lint-and-preview (push) Has been cancelled
				
			- Implemented PolicyDslValidator with command-line options for strict mode and JSON output. - Created PolicySchemaExporter to generate JSON schemas for policy-related models. - Developed PolicySimulationSmoke tool to validate policy simulations against expected outcomes. - Added project files and necessary dependencies for each tool. - Ensured proper error handling and usage instructions across tools.
This commit is contained in:
		
							
								
								
									
										14
									
								
								tools/PolicyDslValidator/PolicyDslValidator.csproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								tools/PolicyDslValidator/PolicyDslValidator.csproj
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| <Project Sdk="Microsoft.NET.Sdk"> | ||||
|  | ||||
|   <PropertyGroup> | ||||
|     <OutputType>Exe</OutputType> | ||||
|     <TargetFramework>net10.0</TargetFramework> | ||||
|     <Nullable>enable</Nullable> | ||||
|     <ImplicitUsings>enable</ImplicitUsings> | ||||
|   </PropertyGroup> | ||||
|  | ||||
|   <ItemGroup> | ||||
|     <ProjectReference Include="..\..\src\StellaOps.Policy\StellaOps.Policy.csproj" /> | ||||
|   </ItemGroup> | ||||
|  | ||||
| </Project> | ||||
							
								
								
									
										56
									
								
								tools/PolicyDslValidator/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								tools/PolicyDslValidator/Program.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| using StellaOps.Policy; | ||||
|  | ||||
| if (args.Length == 0) | ||||
| { | ||||
|     Console.Error.WriteLine("Usage: policy-dsl-validator [--strict] [--json] <path-or-glob> [<path-or-glob> ...]"); | ||||
|     Console.Error.WriteLine("Example: policy-dsl-validator --strict docs/examples/policies"); | ||||
|     return 64; // EX_USAGE | ||||
| } | ||||
|  | ||||
| var inputs = new List<string>(); | ||||
| var strict = false; | ||||
| var outputJson = false; | ||||
|  | ||||
| foreach (var arg in args) | ||||
| { | ||||
|     switch (arg) | ||||
|     { | ||||
|         case "--strict": | ||||
|         case "-s": | ||||
|             strict = true; | ||||
|             break; | ||||
|  | ||||
|         case "--json": | ||||
|         case "-j": | ||||
|             outputJson = true; | ||||
|             break; | ||||
|  | ||||
|         case "--help": | ||||
|         case "-h": | ||||
|         case "-?": | ||||
|             Console.WriteLine("Usage: policy-dsl-validator [--strict] [--json] <path-or-glob> [<path-or-glob> ...]"); | ||||
|             Console.WriteLine("Example: policy-dsl-validator --strict docs/examples/policies"); | ||||
|             return 0; | ||||
|  | ||||
|         default: | ||||
|             inputs.Add(arg); | ||||
|             break; | ||||
|     } | ||||
| } | ||||
|  | ||||
| if (inputs.Count == 0) | ||||
| { | ||||
|     Console.Error.WriteLine("No input files or directories provided."); | ||||
|     return 64; // EX_USAGE | ||||
| } | ||||
|  | ||||
| var options = new PolicyValidationCliOptions | ||||
| { | ||||
|     Inputs = inputs, | ||||
|     Strict = strict, | ||||
|     OutputJson = outputJson, | ||||
| }; | ||||
|  | ||||
| var cli = new PolicyValidationCli(); | ||||
| var exitCode = await cli.RunAsync(options, CancellationToken.None); | ||||
| return exitCode; | ||||
		Reference in New Issue
	
	Block a user