| Field | Value | Copy |
|---|---|---|
| {{ row.label }} | {{ row.value }} |
{{ normalizedHcl }}
{{ normalizedYaml }}
{{ iniText }}
{{ envText }}
{{ propertiesText }}
| Document | Path | Type | Preview | Copy |
|---|---|---|---|---|
| Doc {{ row.docIndex }} | {{ row.path || '(root)' }} | {{ formatTypeLabel(row.type) }} | {{ row.preview }} |
| Path | Types | Docs | Example |
|---|---|---|---|
| {{ row.path }} | {{ row.types }} | {{ row.docs }} | {{ row.example }} |
HashiCorp configuration language files describe infrastructure resources in plain text using blocks and attributes. They allow teams to capture cloud setups as code that can be shared and versioned. Over time these files grow in size and nesting so it becomes difficult to see what is actually configured.
Configuration conversion here turns that text into structured summaries that are easier to scan and compare. You add your configuration once and the same content appears as metrics, tables, and alternative text representations. This makes it simpler to review keys, values, and depth across different environments or modules.
During a quick change review you might paste a storage module and immediately see which buckets exist, how many tags are present, and how deep the nesting goes. You can then move between summaries to confirm that required fields are present everywhere and that naming patterns stay consistent. Remember that these views describe the configuration only and do not replace provider validation or security checks.
Configuration snapshots are most useful when you use the same settings every time and run them against committed versions rather than temporary experiments. For extra privacy avoid pasting secrets and prefer redacted or test values in any exported reports.
HashiCorp Configuration Language (HCL) input is parsed into one or more documents, each represented as a tree of objects, arrays, and scalar values. The parser recognises blocks and attributes and turns them into nested keys and values without evaluating expressions or contacting any external services.
Each document is scanned to count total nested keys, scalar values, and maximum depth, and to gather a small sample of example values. The summary badges and overview table reflect these counts so you can estimate how complex each piece of configuration is before digging into individual paths.
From the parsed tree the converter produces several consistent representations, including configurable YAML, JSON with adjustable spacing, INI sections, dot style properties lines, and environment variable assignments. A flattened path table lists every discovered location with its document index, data type, and a truncated preview of the stored value.
The schema view aggregates all paths across documents, tracks which data types appear at each path, counts the number of documents that use it, and keeps a representative example. This makes it easy to spot optional fields, type drift between environments, and structural differences after refactors.
Core processing follows a simple sequence:
| Parameter | Meaning | Unit/Datatype | Typical range | Sensitivity | Notes |
|---|---|---|---|---|---|
| documentCount | Number of parsed documents detected in the input. | Integer | 1–many | Higher values mean more work per recompute. | Shown as the leading badge in the summary header. |
| totalKeys | Total nested keys across all documents. | Integer | 0–100 000+ | Scales traversal cost almost linearly. | Displayed as a secondary badge and used in overview rows. |
| totalScalars | Total scalar values, including strings, numbers, booleans, and nulls. | Integer | 0–100 000+ | Indicates how many concrete values are present. | Used to compute density and sample value previews. |
| maxDepth | Maximum nesting depth found in any document. | Integer | 1–50 | Deep structures can be harder to reason about. | Reported as a badge and in per document overview rows. |
| path | Flattened location of a value within a document. | String | Short for top levels, longer for deep nests. | Changes when you switch path style settings. | Emitted in paths, schema, env, properties, and INI exports. |
| env_prefix | Prefix applied to generated environment variable names. | String | Empty or a few characters. | Controls grouping of environment variables per service. | Normalised to include a trailing underscore when non empty. |
| max_preview_paths | Number of flattened paths shown in the paths preview table. | Integer | 50–2000 | Higher values increase UI work but not export coverage. | Exports still include every discovered path even when preview is trimmed. |
Units and precision are straightforward. Numbers are stored using JavaScript numeric types or strings, BigInt values are kept as safe integers when possible or converted to strings, and no extra rounding logic is added beyond the parser and serialiser behaviour. Summary counts use locale aware formatting for display, while the underlying values remain plain integers.
Previews aim to be informative but compact. Scalar values are truncated after roughly one hundred twenty characters, binary buffers are converted to base64 text and shortened, and complex objects that cannot be shown inline are serialised to minimal JSON snippets. Environment, INI, and properties outputs reuse the full underlying values, not the truncated previews.
| Field | Type | Min | Max | Step/Pattern | Error text |
|---|---|---|---|---|---|
| HCL content | Textarea | n/a | n/a | Any HCL text, including multiple documents. | Shows “HCL parse error …” or “No HCL blocks detected.” on failure. |
| JSON spacing | Select | 0 | 8 | Zero means minified, positive values pretty print. | No explicit error, values are silently clamped. |
| YAML indent | Number | 1 | 8 | Controls indentation width in spaces. | Invalid entries fall back to a default of two spaces. |
| Line width | Number | 0 | 240 | Zero disables wrapping, other values set wrap column. | Out of range values snap back inside the allowed bounds. |
| Sort keys | Toggle | n/a | n/a | Alphabetises object keys in YAML when enabled. | No error, affects ordering only. |
| Force quotes | Toggle | n/a | n/a | Quotes every scalar in YAML using the selected style. | No validation beyond the YAML formatter itself. |
| Path style | Select | n/a | n/a | Choose dot notation with indexes or slash separated segments. | Changes output paths, not the underlying data. |
| Max preview paths | Number | 50 | 2000 | Limits how many flattened paths appear in the table preview. | Higher values may slow scrolling but export all paths regardless. |
| ENV prefix | Text | 0 | n/a | Optional prefix added in front of environment variable keys. | Trimmed and normalised, empty value means no prefix. |
| Uppercase env | Toggle | n/a | n/a | When enabled, converts generated environment keys to uppercase. | Does not change the underlying values. |
Input and output formats stay consistent across views. The main input accepts pasted HCL text or dropped configuration files, and the resulting documents are exposed as YAML, JSON, INI, environment assignments, Java style properties, overview tables, flattened path tables, and schema tables. Copy actions place plain text on the clipboard, while downloads save text or comma separated files using your browser.
Assumptions and limitations to keep in mind:
Common edge cases and error sources:
HCL content is parsed and transformed entirely in the browser; no data is transmitted or stored server side. Avoid including secrets, personal data, or production credentials in shared exports to stay aligned with common privacy and security guidance.
HashiCorp configuration language conversion and inspection follows a short flow from raw text to structured views that are easy to compare.
For example you might paste a shared storage module and then send a colleague straight to the paths and schema tabs so they can see every bucket, tag, and region field without reading the full configuration file.
After a few runs the sequence becomes a quick checklist for each change review, helping you move from raw text to repeatable checks in a consistent way.
Pro tip: capture a small set of representative modules and rerun them after every major refactor to spot structural changes quickly.
Parsing and conversion happen entirely in your browser using client side code. The tool does not send configuration content to a server or keep a history of your past runs.
Avoid pasting secrets or personal data into any view that you intend to share or export.The converter relies on an HCL parser implementation to understand blocks and attributes. It preserves scalar values as they are parsed and does not evaluate expressions or provider specific functions, so configuration shape is reliable even when runtime behaviour is not.
If the parser does not support a feature it will surface as an error or missing field.You can export the parsed configuration as YAML, JSON, INI, environment variable assignments, and Java style properties, plus CSV tables for overview, flattened paths, and schema summaries. All exports are derived from the same parsed documents so they remain consistent.
CSV exports use simple comma separated rows, so values containing commas may need manual cleanup in spreadsheets.A parse error usually means the input contains syntax issues such as missing braces, quotes, or unexpected characters. It can also appear when non HCL content is pasted into the box. Correct the structure, or load the sample configuration and compare it to your own file.
The exact parser message is shown in the alert to help you narrow down the problem.Once the page and its scripts have loaded, parsing and conversion run locally in your browser and do not need additional requests. If required parser or formatter scripts fail to load or are blocked, you will see an error such as “HCL parser unavailable. Please reload.” and will need to refresh when connectivity is restored.
Keeping a cached copy of the page improves resilience, but script hosting is controlled by the surrounding site.The component itself does not enforce sign ups, payments, or quotas. Any pricing, licence terms, or usage limits come from the platform or product where this converter is embedded, so consult that documentation for definitive guidance.
Always review the terms of the service that is hosting the tool.Paste your configuration, wait for parsing, then open the schema tab. Each row shows a flattened path, the data types seen there, how many documents include it, and an example value. This gives you a quick structural inventory across modules or environments.
Use CSV export from the schema view if you want to review or annotate paths in a spreadsheet.A borderline path is one that appears in some documents but not others or carries different data types across environments. Treat those paths as optional or unstable and review them manually before relying on them in automation or templating logic.
Schema counts help you see how widely each path is used so you can prioritise clean up.