github oocx/tfplan2md v1.17.3

latest releases: v1.41.0, v1.40.0, v1.39.0...
one month ago

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 (📁) and ResourceNameIcon (🆔) constants
    • Added FormatResourceGroupLabel() and FormatResourceNameLabel() helper methods
    • Updated ParseScope() method to apply icon formatting to resource names and resource groups
  • src/Oocx.TfPlan2Md/Platforms/Azure/EnrichedAzureScopeFormatter.cs

    • Added ResourceNameIcon (🆔) constant
    • Added FormatResourceNameLabel() helper method
    • Updated Format() method to apply icon formatting to resource names

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.md to 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)

Don't miss a new tfplan2md release

NewReleases is sending notifications on new releases.