Release Notes: Issue 465 - Missing Icons in Azure Resource ID Rendering
Type
🐛 Bug Fix
Summary
Fixed missing semantic icons in Azure resource ID rendering. Resource names and resource groups now display with their appropriate icons (🆔 and 📁) when Azure resource IDs are formatted in attribute values.
Problem
When Azure resource IDs (such as routeTable.id, networkSecurityGroup.id, or key_vault_id) were rendered in attribute values, only subscription IDs displayed with their 🔑 icon. Resource names and resource group names appeared without their semantic icons, creating inconsistency in the visual presentation.
Before
| key_vault_id | Key Vault `kv-demo` in resource group `rg-demo` of subscription `🔑 12345678-...` |After
| key_vault_id | Key Vault `🆔 kv-demo` in resource group `📁 rg-demo` of subscription `🔑 12345678-...` |Changes Made
Source Code
-
src/Oocx.TfPlan2Md/Platforms/Azure/AzureScopeParser.cs- Added
ResourceGroupIcon(📁) andResourceNameIcon(🆔) constants - Added
FormatResourceGroupLabel()andFormatResourceNameLabel()helper methods - Updated
ParseScope()method to apply icon formatting to resource names and resource groups
- Added
-
src/Oocx.TfPlan2Md/Platforms/Azure/EnrichedAzureScopeFormatter.cs- Added
ResourceNameIcon(🆔) constant - Added
FormatResourceNameLabel()helper method - Updated
Format()method to apply icon formatting to resource names
- Added
Test Updates
- Updated 8 test expectations to include new icons
- Regenerated 5 snapshot baselines to reflect icon additions
Impact
Affected Scenarios
All Azure resource IDs rendered as attribute values now display with consistent semantic icons:
- Network resources: Route tables, NSGs, virtual networks, subnets, public IPs, load balancers
- Storage resources: Storage accounts, blob services, file services
- Compute resources: Virtual machines, VM scale sets, managed disks
- Key Vault resources: Key vaults
- Database resources: SQL servers, SQL databases, Cosmos DB
- Container resources: AKS clusters, container registries
- Web resources: App services, app service plans
- And all other Azure resource types referenced by resource ID
User-Facing Changes
- ✅ Improved visual consistency: All components of Azure resource IDs now have semantic icons
- ✅ Better readability: Icons help distinguish resource names from resource groups at a glance
- ✅ No breaking changes: Only adds icons to existing output format
Compatibility
- Non-breaking change: Existing reports will show additional icons but maintain the same structure
- All Azure providers affected: azurerm, azapi (any resource with Azure resource ID attributes)
- Snapshot tests updated: 5 snapshot baselines regenerated to reflect new icon formatting
Technical Details
The fix adds icon formatting helpers following the existing pattern established for subscription IDs. Both AzureScopeParser (fallback formatter) and EnrichedAzureScopeFormatter (enriched formatter with entity mapper) now consistently apply:
- 🆔 icon for resource names
- 📁 icon for resource group names
- 🔑 icon for subscription IDs (already working)
Icons are separated from text using non-breaking spaces (U+00A0) to prevent wrapping.
Related Features
- Feature 019: Universal Azure Resource ID Formatting (original implementation)
- Feature 024: Visual Report Enhancements (semantic icons for attributes)
- Feature 051: Display Enhancements (subscription icon formatting)
- Feature 063: Azure Display Enhancements (Azure display name enrichment)
Verification
Test Coverage
- ✅ All unit tests pass (10 AzureScopeParserTests, 15 ScribanHelpersTests, 10 ResourceSummaryBuilderTests)
- ✅ All snapshot tests pass with regenerated baselines
- ✅ Manual verification with route table, NSG, and Key Vault resource IDs confirms icons appear correctly
Examples
Route Table Reference:
RouteTables `🆔 deployment-rt-lv2-gwc` in resource group `📁 deploymentnet-rg-lv2-gwc` of subscription `🔑 d1828a48-...`Key Vault Reference:
Key Vault `🆔 kv-tfplan2md` in resource group `📁 rg-tfplan2md-demo` of subscription `🔑 12345678-...`Network Security Group Reference:
Network Security Group `🆔 nsg-app` in resource group `📁 rg-network` of subscription `🔑 Production (...)`Documentation Updates
- Updated
docs/features.mdto reflect icon usage in Azure resource ID examples - No changes required to README.md (high-level description remains accurate)
- No changes required to CHANGELOG.md (auto-generated by Versionize)