feat(cloud): implement clean table output and modular structure#109
Merged
joshrotenberg merged 10 commits intomainfrom Sep 5, 2025
Merged
feat(cloud): implement clean table output and modular structure#109joshrotenberg merged 10 commits intomainfrom
joshrotenberg merged 10 commits intomainfrom
Conversation
- Add clean GitHub CLI-style table output using tabled library - Refactor monolithic cloud.rs into focused modules: - account.rs for account commands - subscription.rs for subscription management - database.rs for database operations - user.rs for user management - utils.rs for shared utilities - Add vertical detail views for get commands - Implement automatic paging for long output (Unix only) - Add smart truncation for table fields - Support JSON/YAML output formats with -o flag - Fix Windows compatibility (Unix-only pager, IsTerminal) - Fix error handling for anyhow::Error conversions - Add comprehensive test coverage Replaces PR #98 with clean rebase on main
4 tasks
- Add cargo fetch --locked step for Windows runners - Fixes workspace dependency resolution issues in CI - Windows-specific workaround for GitHub Actions
- Add cargo metadata and check steps for Windows - Ensures workspace dependencies are properly resolved - Attempts to precompile dependencies before main build
- Replace workspace = true with explicit version numbers - Fixes Windows CI failures with unresolved dependencies - Remove unnecessary Windows-specific CI workarounds - All dependencies now directly specified in crate Cargo.toml
- Add From<serde_json::Error> for RedisCtlError - Add From<std::io::Error> for RedisCtlError - Fixes error conversion issues with ? operator - All dependencies were already present with correct versions
- Replace ALL workspace inheritance with explicit values - Change Config error from anyhow::Error to String - Add explicit From<anyhow::Error> implementation - This should finally fix Windows CI dependency resolution
- Revert back to using workspace = true for all dependencies - Keep workspace edition which should work - Remove incorrect edition 2024 override - This matches what other crates in workspace do successfully
CRITICAL FIX: Dependencies were accidentally placed after [target.'cfg(unix)'.dependencies] which made them Unix-only. Moving them before the target section makes them available on all platforms including Windows.
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 implements clean, GitHub CLI-style output for Cloud commands and refactors the code into a modular structure.
Replaces #98 - Fresh rebase on main to avoid CI dependency issues.
Key Features
🎨 Clean Table Output
tabledlibrary (no Unicode borders)📐 Vertical Detail Views
Added
getcommands with vertical layout for detailed resource views:cloud subscription get <id>cloud database get <id>cloud user get <id>cloud account get🏗️ Modular Architecture
Refactored monolithic cloud.rs (1576 lines) into focused modules:
account.rs- Account managementsubscription.rs- Subscription operationsdatabase.rs- Database commandsuser.rs- User managementutils.rs- Shared utilities🪟 Cross-Platform Support
Examples
Clean Table Output
Vertical Detail View
Testing
Breaking Changes
None - maintains backward compatibility
Closes #98