Add Policy DSL Validator, Schema Exporter, and Simulation Smoke tools
- 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:
		@@ -35,6 +35,10 @@ public sealed class AuthorityLoginAttemptDocument
 | 
			
		||||
    [BsonIgnoreIfNull]
 | 
			
		||||
    public string? ClientId { get; set; }
 | 
			
		||||
 | 
			
		||||
    [BsonElement("tenant")]
 | 
			
		||||
    [BsonIgnoreIfNull]
 | 
			
		||||
    public string? Tenant { get; set; }
 | 
			
		||||
 | 
			
		||||
    [BsonElement("plugin")]
 | 
			
		||||
    [BsonIgnoreIfNull]
 | 
			
		||||
    public string? Plugin { get; set; }
 | 
			
		||||
 
 | 
			
		||||
@@ -74,6 +74,9 @@ public sealed class AuthorityTokenDocument
 | 
			
		||||
    [BsonIgnoreIfNull]
 | 
			
		||||
    public string? SenderNonce { get; set; }
 | 
			
		||||
 | 
			
		||||
    [BsonElement("tenant")]
 | 
			
		||||
    [BsonIgnoreIfNull]
 | 
			
		||||
    public string? Tenant { get; set; }
 | 
			
		||||
 | 
			
		||||
    [BsonElement("devices")]
 | 
			
		||||
    [BsonIgnoreIfNull]
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,12 @@ internal sealed class AuthorityLoginAttemptCollectionInitializer : IAuthorityCol
 | 
			
		||||
            new CreateIndexModel<AuthorityLoginAttemptDocument>(
 | 
			
		||||
                Builders<AuthorityLoginAttemptDocument>.IndexKeys
 | 
			
		||||
                    .Ascending(a => a.CorrelationId),
 | 
			
		||||
                new CreateIndexOptions { Name = "login_attempt_correlation", Sparse = true })
 | 
			
		||||
                new CreateIndexOptions { Name = "login_attempt_correlation", Sparse = true }),
 | 
			
		||||
            new CreateIndexModel<AuthorityLoginAttemptDocument>(
 | 
			
		||||
                Builders<AuthorityLoginAttemptDocument>.IndexKeys
 | 
			
		||||
                    .Ascending(a => a.Tenant)
 | 
			
		||||
                    .Descending(a => a.OccurredAt),
 | 
			
		||||
                new CreateIndexOptions { Name = "login_attempt_tenant_time", Sparse = true })
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        await collection.Indexes.CreateManyAsync(indexModels, cancellationToken).ConfigureAwait(false);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,18 +1,18 @@
 | 
			
		||||
<Project Sdk="Microsoft.NET.Sdk">
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <TargetFramework>net10.0</TargetFramework>
 | 
			
		||||
    <LangVersion>preview</LangVersion>
 | 
			
		||||
    <ImplicitUsings>enable</ImplicitUsings>
 | 
			
		||||
    <Nullable>enable</Nullable>
 | 
			
		||||
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <PackageReference Include="MongoDB.Driver" Version="3.5.0" />
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.0" />
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.Options" Version="8.0.0" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ProjectReference Include="..\..\StellaOps.Configuration\StellaOps.Configuration.csproj" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
<Project Sdk="Microsoft.NET.Sdk">
 | 
			
		||||
  <PropertyGroup>
 | 
			
		||||
    <TargetFramework>net10.0</TargetFramework>
 | 
			
		||||
    <LangVersion>preview</LangVersion>
 | 
			
		||||
    <ImplicitUsings>enable</ImplicitUsings>
 | 
			
		||||
    <Nullable>enable</Nullable>
 | 
			
		||||
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <PackageReference Include="MongoDB.Driver" Version="3.5.0" />
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0-rc.2.25502.107" />
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0-rc.2.25502.107" />
 | 
			
		||||
    <PackageReference Include="Microsoft.Extensions.Options" Version="10.0.0-rc.2.25502.107" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
  <ItemGroup>
 | 
			
		||||
    <ProjectReference Include="..\..\StellaOps.Configuration\StellaOps.Configuration.csproj" />
 | 
			
		||||
  </ItemGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user