feat: Complete target system with C# bindings and resource inference - #458
Merged
Anand Krishnamoorthi (anakrish) merged 2 commits intoAug 20, 2025
Merged
Conversation
Anand Krishnamoorthi (anakrish)
force-pushed
the
regorus-targets
branch
from
August 14, 2025 20:27
8f477f8 to
8b55cc6
Compare
Anand Krishnamoorthi (anakrish)
force-pushed
the
regorus-targets
branch
6 times, most recently
from
August 17, 2025 01:21
0e7b009 to
ba707c0
Compare
Anand Krishnamoorthi (anakrish)
force-pushed
the
regorus-targets
branch
6 times, most recently
from
August 18, 2025 18:17
ddabcfe to
6cda429
Compare
This commit introduces a comprehensive schema registry and validation framework, providing schema-based validation of resources and policy effects. - Thread-safe, in-memory registry for schema storage and management - Global registry patterns for effects and resources - Concurrent access with proper error handling - Unicode schema names support - JSON Schema-compliant validation for all primitive types - Advanced constraint validation (patterns, ranges, length limits) - Discriminated union support with anyOf schemas - Detailed error reporting with nested validation paths - Discriminated subobject validation for polymorphic schemas - **Registry Tests**: All registry operations - **Effect Tests**: Policy effect validation - **Resource Tests**: Resource validation - **Validation Tests**: Core validation engine - Thread-safety, error handling, integration scenarios, edge cases - **Dependencies**: dashmap, once_cell, regex - **Thread Safety**: Minimal locking with Rc<Schema> sharing - **Error Types**: TypeMismatch, OutOfRange, PatternMismatch, etc. - Complete schema registry and validation subsystem - Comprehensive test coverage - Foundation for policy validation in Regorus Benchmarks: - Criterion benchmarks for basic types, effects and Azure resources - Performance range: 3.22ns (string) to 34.74µs (Azure VM resource schema validation) - String withs patterns validation: 30.2µs. Need to explore whether regex caching helps bring this down. - Azure policy effects: 188ns-1.4µs Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
Anand Krishnamoorthi (anakrish)
force-pushed
the
regorus-targets
branch
3 times, most recently
from
August 18, 2025 21:19
a065ded to
fbe6120
Compare
Anand Krishnamoorthi (anakrish)
force-pushed
the
regorus-targets
branch
2 times, most recently
from
August 18, 2025 22:00
65b2eac to
02076aa
Compare
Anand Krishnamoorthi (anakrish)
marked this pull request as ready for review
August 19, 2025 09:52
Anand Krishnamoorthi (anakrish)
force-pushed
the
regorus-targets
branch
from
August 19, 2025 15:03
0a91911 to
9a25314
Compare
- Add comprehensive target system with TargetRegistry and target-aware compilation - Implement resource type inference from policy equality expressions - Create modular C# bindings with separate wrapper classes for each concept - Add thread-safe CompiledPolicy with reference counting for safe disposal - Enhance FFI with detailed error propagation and target functionality - Create TargetExampleApp demonstrating Azure Policy integration - Add CI/CD pipeline testing for all C# applications - Support target definitions with schema validation and resource selectors - Implement PolicyModule struct and target-aware compilation methods - Add comprehensive test coverage for target functionality Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
Anand Krishnamoorthi (anakrish)
force-pushed
the
regorus-targets
branch
from
August 19, 2025 19:33
9a25314 to
8e012e8
Compare
Anand Krishnamoorthi (anakrish)
merged commit Aug 20, 2025
cc917ea
into
microsoft:main
33 of 34 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Signed-off-by: Anand Krishnamoorthi anakrish@microsoft.com