Miscellaneous Features
Small but powerful features that improve the report experience, from details display modes to Terraform outputs.
Plan Summary
all providersEvery report starts with a compact summary table so reviewers can see add, change, replace, destroy, and total counts before expanding into the details.
| Action | Count | Resource Types |
| ------ | ----- | -------------- |
| ➕ Add | 26 | 2 azurerm_resource_group, 2 azurerm_virtual_network, +18 more |
| 🔄 Change | 8 | 1 azuredevops_variable_group, 1 azurerm_virtual_network, +5 more |
| ♻️ Replace | 2 | 1 azurerm_network_security_group, 1 azurerm_subnet |
| ❌ Destroy | 3 | 1 azurerm_role_assignment, 1 azurerm_storage_account, 1 azurerm_virtual_network |
Collapsible Details
all providersResource sections render inside HTML details blocks so pull request comments stay readable. The `--details` flag controls whether those sections start in `auto`, `open`, or `closed` mode.
tfplan2md plan.json --details auto
Display Modes
autoexpands resources with code analysis findings and keeps the rest collapsedopenexpands every resource by defaultclosedcollapses every resource by default for a cleaner overview- The debug block stays collapsed regardless of the chosen mode
Terraform Outputs
all providerstfplan2md renders `output_changes` in a dedicated output table so reviewers can see IDs, URLs, computed values, and sensitive outputs without digging through raw Terraform JSON.
| Change | Name | Description | Sensitive | Value |
| ------ | ---- | ----------- | --------- | ----- |
| 🔄 | `pipeline_id` | The ID of the created build pipeline | No | (known after apply) |
| | `project_name` | The name of the created Azure DevOps project | No | `🆔 example-project` |
| ➕ | `deploy_token` | Deployment token | 🔒 Yes | (sensitive value) |
What You Get
- Module outputs appear under their module section, root outputs appear at the end of the report
- Sensitive outputs remain masked unless
--show-sensitiveis used - Computed values render as
(known after apply) - Existing display-name mappings apply to output values too
Friendly Names
all providerstfplan2md prefers readable identifiers over long provider-native IDs, so summaries highlight resource names, scopes, and semantic icons instead of forcing reviewers to decode raw IDs.
#### ➕ azurerm_key_vault_secret.db_password
**Summary:** `🆔 db-password` in Key Vault `kv-tfplan2md` in resource group `rg-tfplan2md-demo`
Local Resource Names
all providersInside modules, summaries favor the local Terraform name so reviewers see `hub`, `spoke`, or `deploy_pipeline` instead of the full module path every time.
### 📦 Module: module.network
#### ➕ azurerm_virtual_network.hub
Intelligent Summaries
all providersOne-line summaries for every resource change show what is important without expanding details.
#### ➕ azurerm_resource_group.main
**Summary:** `rg-demo` (eastus)
Replacement Reasons
all providersWhen a resource is being replaced, tfplan2md highlights exactly which attribute caused the replacement.
#### 🔄 azurerm_linux_virtual_machine.vm
**Action:** Replace (due to `size`)
No Changes Display
all providersZero-change plans render as a clear `No changes` message instead of an empty report, which keeps CI output and PR comments explicit.
No changes
Learn More
These features work together to improve the readability and usability of tfplan2md reports.