feat: Path-based component resolution for all commands @osterman (#1774)
## SummaryEnables developers to use filesystem paths (e.g., ., ./vpc) instead of component names with all component-related commands. Paths are automatically resolved to component names based on stack configuration, eliminating the need to memorize component names.
Changes
- Core Implementation: Path extraction, normalization, and stack validation utilities with symlink resolution
- Commands Enhanced: Terraform, Helmfile, Packer,
describe component, andvalidate componentcommands - Tab Completion: Enhanced completion with path support and graceful degradation when resolution fails
- Testing: 17 integration test scenarios + 6 unit tests covering all use cases
- Documentation: Full documentation with examples for all command types + blog post
Example Usage
# Navigate to component
cd components/terraform/vpc
# Use . to reference current directory
atmos terraform plan . --stack dev
atmos describe component . --stack dev
atmos validate component . --stack devFeatures
- Auto-detection of component type from filesystem path
- Stack validation to ensure component exists in specified stack
- Clear error messages when paths cannot be resolved
- Backward compatible - existing component name syntax still works
🤖 Generated with Claude Code
Summary by CodeRabbit
-
New Features
- Path-based component resolution (., ./, ../, absolute) with auto-type detection, stack validation, interactive disambiguation, and directory-aware tab completion.
-
Bug Fixes
- Commands propagate errors instead of exiting; config now exposes absolute base-paths and clearer, actionable path/stack errors.
-
Documentation
- PRD, CLI usage pages, and blog post updated with path-based examples and guidance.
-
Tests
- Extensive new/updated unit, integration, and golden snapshot tests covering path resolution, completions, and edge cases.
-
Other
- Telemetry notice added; CLI help lists a new terraform subcommand ("provision"); legacy CLI config file removed.
✏️ Tip: You can customize this high-level summary in your review settings.