feat: implement environment show command (#241)#259
Merged
Conversation
- Add Show variant to Commands enum with environment parameter - Create ShowCommandController with 3-step workflow: 1. Validate environment name 2. Load environment from repository 3. Display basic information - Add ShowSubcommandError with help() method for actionable errors - Integrate show command into router dispatch - Add container factory method for show controller - Add provider_name() method to AnyEnvironmentState Phase 1 implements basic CLI skeleton that validates input, loads environment state, and displays minimal information including name, state, and provider.
- Create ShowCommandHandler in application layer - Add EnvironmentInfo and InfrastructureInfo DTOs - Add ShowCommandHandlerError with actionable help messages - Update presentation controller to delegate to application handler - Include state-aware next_step guidance - Add unit tests for state formatting and guidance
- Add ShowCommandHandler::get_environment_info() for state-based data extraction - Add ServiceInfo struct for Released/Running states with tracker service details - Add EnvironmentInfoView following MVC pattern (stateless render function) - Refactor ShowCommandController to use EnvironmentInfoView - Add comprehensive unit tests for view rendering
- Add comprehensive user guide for show command (docs/user-guide/commands/show.md) - Update console-commands.md with show command specification - Add show to commands README.md and state transitions table
…tracker_config - Extract build_udp_tracker_urls() for UDP tracker URL construction - Extract build_http_tracker_urls() for HTTP tracker URL construction - Extract build_api_endpoint_url() for API endpoint URL construction - Extract build_health_check_url() for health check URL construction
Member
Author
|
ACK 9d71a0b |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Implements the
showcommand to display environment information with state-aware details. This command provides a read-only view of stored environment data, making it fast and reliable for users to inspect their deployment state.Issue: Closes #241
Changes
Phase 1-5: Core Implementation ✅
ShowCommandHandlerwith state-aware extractionEnvironmentInfoViewPhase 6: Creation Timestamp ✅
created_atfield toRuntimeOutputsdomain modelcreatecommand now populates creation timestamp using Clock serviceshowcommand displays when environment was created#[serde(default)]Phase 7: Service URLs in RuntimeOutputs ✅
service_endpointsfield toRuntimeOutputswithServiceEndpointsstructurlcrate dependency for proper URL handlingruncommand stores service URLs after successful startupshowcommand displays stored URLs with fallback to computing from configServiceEndpoints::from_tracker_configinto focused helper methodsFeatures
Testing
Architecture
UserOutput(no direct stdio usage)thiserror(not anyhow)Documentation
--helpRelated
docs/features/environment-status-command/docs/codebase-architecture.md,docs/contributing/ddd-layer-placement.mddocs/contributing/output-handling.mddocs/contributing/error-handling.mdExample Usage