Release v1.2.0: Security Groups, File Transfer, and Major Improvements#69
Merged
ivyleavedtoadflax merged 5 commits intomainfrom Jan 24, 2026
Merged
Release v1.2.0: Security Groups, File Transfer, and Major Improvements#69ivyleavedtoadflax merged 5 commits intomainfrom
ivyleavedtoadflax merged 5 commits intomainfrom
Conversation
…ovements ## New Features ### Security Group Management - IP whitelisting commands (`instance add-ip` / `instance remove-ip`) - CIDR notation support for flexible IP range management ### Volume Management - `volume resize` command for EBS volume management ### File Transfer - Built-in `instance copy` and `instance sync` commands via rsync/scp ### Cost Tracking - Cumulative instance cost tracking over time - Dynamic region location lookup via AWS SSM for accurate pricing ### Instance Management - `instance exec` command to run commands on remote instances - `--start` / `--no-start` flags for connect command to auto-start stopped instances - Configurable timeout for SSH connect command (`--timeout` flag) - Cache clearing mechanism for AWS clients (`--clear-cache` flag) ### Consistency Improvements - Added `--yes` flag to ami create, snapshot create, instance type, and instance launch commands - Exclude terminated instances by default in instance list command ## Refactoring - Standardized error handling with `@handle_cli_errors` decorator - Consolidated SSH configuration into reusable SSHConfig class - Extracted shared utilities: create_table(), resolve_instance_or_exit(), get_status_style() - Standardized table column styling across CLI - Moved timing constants to settings.py - Refactored ECS module with cleaner command names ## Bug Fixes - AMI pagination for large AMI counts (>1000 images) - SSH key path validation before connect/exec commands - Instance type format validation - Empty DNS validation in connect command - Exit code semantics for non-success scenarios - Mutual exclusivity validation for conflicting flags - ECS scale command validation for desired_count parameter - Debug logging for silent failure cases in pricing module ## New Modules - `remote/sg.py` - Security group management - `remote/tracking.py` - Cost tracking functionality - `remote/instance_resolver.py` - Instance resolution utilities ## Test Coverage - 400+ tests with comprehensive edge case coverage - New test suites for sg, tracking, and volume_resize modules
- Change helper function parameter types to list[Any] for boto3-stubs compatibility - Change return types to Any to avoid no-any-return errors - Use separate variable for modify_volume response to avoid type confusion - Remove progress.md from repository
Rich's error formatting inserts ANSI color codes between dashes in flag names (e.g., --start becomes "-" + ANSI + "-start"), breaking assertions that check for the literal string "--start". Simplified tests to only check for "Cannot use both" message which is unaffected by formatting.
Brings in: - Gradient logo feature for CLI help output - Logo module and tests Conflicts resolved: - __main__.py: Added both sg_app and logo imports - test_config.py: Kept release branch version (already has working test isolation) - test_configuration_fix.py: Deleted (not needed in release)
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.
Summary
This PR brings all changes from the sandbox repository since v1.1.0, squashed into a single commit for a clean history.
New Features
instance add-ip/instance remove-ip) with CIDR notation supportvolume resizecommand for EBS volume managementinstance copyandinstance synccommands for file transfers via rsync/scp--clear-cacheflag)--timeoutflag)instance execcommand to run commands on remote instances--start/--no-startflags to auto-start stopped instances--yesflag toami create,snapshot create,instance type, andinstance launchcommandsRefactoring
@handle_cli_errorsdecorator across all modulesSSHConfigclasscreate_table(),resolve_instance_or_exit(),get_status_style()settings.pyfor centralized configurationBug Fixes
New Modules
remote/sg.py- Security group managementremote/tracking.py- Cost tracking functionalityremote/instance_resolver.py- Instance resolution utilitiesTest Plan