mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
* feat: add Azure Policy alias normalization/denormalization Add normalizer and denormalizer for ARM JSON resources, enabling Azure Policy alias short names to become direct paths into a flat structure. - Normalizer: flattens properties wrappers, lowercases keys, resolves per-alias versioned ARM paths, handles sub-resource array flattening, element-level field remaps, and array base renames - Denormalizer: reverses all transformations with casing restoration - AliasRegistry: loads production alias catalogs and data policy manifests - Types: serde deserialization for ARM provider alias formats - YAML test suite: 13 test files covering normalize, denormalize, round-trip, data-plane, edge cases, malformed input, sub-resources, and registry API - Benchmark suite for normalization performance * feat: add FFI and C# bindings for alias normalization - FFI: alias_registry.rs with C-compatible API for loading catalogs, normalizing resources, and denormalizing back to ARM JSON - C#: AliasRegistry wrapper class with NativeMethods P/Invoke bindings and integration tests - Updated Cargo.lock files for new serde_json dependency
47 lines
1.0 KiB
YAML
47 lines
1.0 KiB
YAML
aliases_json: |
|
|
[
|
|
{
|
|
"namespace": "Microsoft.Network",
|
|
"resourceTypes": [
|
|
{
|
|
"resourceType": "networkSecurityGroups",
|
|
"aliases": [
|
|
{
|
|
"name": "Microsoft.Network/networkSecurityGroups/securityRules[*].protocol",
|
|
"defaultPath": "properties.securityRules[*].properties.protocol",
|
|
"paths": []
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
|
|
cases:
|
|
- note: normalize-and-wrap full pipeline
|
|
input:
|
|
name: myNsg
|
|
type: "Microsoft.Network/networkSecurityGroups"
|
|
properties:
|
|
securityRules:
|
|
- name: rule1
|
|
properties:
|
|
protocol: Tcp
|
|
context:
|
|
resourceGroup:
|
|
name: rg1
|
|
parameters:
|
|
env: prod
|
|
expected_envelope:
|
|
resource:
|
|
name: myNsg
|
|
type: "Microsoft.Network/networkSecurityGroups"
|
|
securityrules:
|
|
- name: rule1
|
|
protocol: Tcp
|
|
context:
|
|
resourceGroup:
|
|
name: rg1
|
|
parameters:
|
|
env: prod
|