Back to Terragrunt

Catalog Redesign

docs/src/data/experiments/catalog-redesign.mdx

1.0.63.2 KB
Original Source

Redesigned terragrunt catalog TUI with improved discovery, interactive component placement, and infrastructure estate visualization.

catalog-redesign - What it does

Replaces the existing terragrunt catalog experience with a redesigned TUI that removes the need for manual configuration. The new catalog provides multiple views for browsing and discovering modules, an interactive infrastructure estate view for deciding where to place components, and the ability to wire new components together with the rest of your infrastructure.

Discovery walks the entire repository instead of only a modules/ directory, so modules and templates can live anywhere. Boilerplate templates are discovered as a distinct component kind alongside OpenTofu/Terraform modules and labeled as templates in the UI. Catalog authors can commit a .terragrunt-catalog-ignore file at the repo root to exclude directories such as examples/ or test/ from discovery. See Excluding paths from discovery for the supported pattern syntax.

The list view is split into All, Modules, and Templates tabs with All selected by default. Press tab and shift+tab to cycle between them; each tab keeps its own cursor and search filter.

Each list entry shows a metadata row with a component-type pill (module, template), the source URL it was discovered from, and a version pill when a release tag is available, so it is clear which repository or path a component came from.

Pressing s on a selected component opens an in-TUI form that prompts for every variable the component exposes (.tf variable blocks for modules and templates, values.* references for units and stacks). The form is modal: j/k (or arrows) navigate between fields, enter enters edit mode on a text field or toggles a boolean checkbox in place, esc returns from edit to navigate, x marks an optional field "use default" so it's left out of the generated file, ctrl+d finishes, and esc from navigate cancels back to the catalog. Only fields the user explicitly sets are written to the generated terragrunt.hcl or terragrunt.values.hcl; required fields the user never set still produce # TODO: fill in value placeholders. Pressing S (capital) keeps the original placeholder-only flow for users who want to populate values by editing the generated file.

catalog-redesign - How to provide feedback

TODO: Add a link to the relevant GitHub discussion or issue.

catalog-redesign - Criteria for stabilization

To transition the catalog-redesign feature to a stable release, the following must be addressed:

  • Multiple catalog browse views are implemented and functional.
  • Interactive infrastructure estate view supports component placement.
  • Wiring newly placed components to existing infrastructure works end-to-end.
  • Catalog launches without requiring manual configuration (no pre-existing catalog block needed).
  • Component source is visible in the UI for each catalog entry.
  • Component type (module, unit, stack, template) is clearly indicated in the UI.
  • Positive feedback from users using the redesigned catalog in production environments.
  • Integration tests covering the core catalog workflows.