Specialized templates for popular Terraform providers, automatically optimizing output for provider-specific resource types.
tfplan2md automatically detects resource types and applies specialized templates when available.
When rendering a resource change, tfplan2md follows this resolution order:
azurerm/firewall_network_rule_collection.sbnThis ensures specialized templates are used when available, with graceful fallback to generic rendering.
The following providers have specialized template support:
Comprehensive support for Azure resources with inline diffing, resource ID formatting, and role assignment enhancements.
Specialized support for Azure DevOps variable groups with semantic diffing and secret protection.
Status: Variable groups implemented. Additional resources in planning phase.
Planned support for Azure Active Directory resources with emphasis on group memberships and application configurations.
Status: In planning phase. Contributions welcome!
Planned support for Microsoft Graph resources including users, groups, and policies.
Status: In planning phase. Contributions welcome!
Need support for a different Terraform provider? We'd love to hear from you!
Community-driven: Provider support grows based on user needs. Your input helps prioritize development!
Create your own provider-specific templates using Scriban syntax.
Templates/
├── default.sbn # Default template for all resources
├── summary.sbn # Summary-only template
└── azurerm/ # Provider-specific templates
├── firewall_network_rule_collection.sbn
├── network_security_group.sbn
└── role_assignment.sbn
Templates/<provider>/.sbn file named after the resource type (e.g., storage_account.sbn)--template flag:docker run -v $(pwd)/Templates:/templates oocx/tfplan2md --template /templates/default.sbn{{~ # Firewall Network Rule Collection Template ~}}
{{~ if change.action == "create" || change.action == "update" ~}}
### {{ change.address }}
{{~ if after.rule ~}}
**Rules:**
{{~ for rule in after.rule ~}}
- **{{ rule.name }}**: {{ rule.source_addresses | array.join ", " }} → {{ rule.destination_addresses | array.join ", " }} ({{ rule.protocols | array.join ", " }})
{{~ end ~}}
{{~ end ~}}
{{~ end ~}}
For complete template documentation, see Template Customization Guide.
We welcome contributions of new provider templates!