feat: add support package upload feature with files-sdk 0.3.1 #380
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
Add support package upload functionality using files-sdk 0.3.1 with secure, persistent storage for Files.com API keys.
Implements features from #379 (support package epic):
Implementation Details
Secure Storage (Default)
The secure-storage feature is now enabled by default. API keys are stored in platform-native keychains:
Configuration (Hybrid Approach)
Supports both global and per-profile API key storage:
API Key Resolution Priority
REDIS_ENTERPRISE_FILES_API_KEYenvironment variablefiles_api_keyin configfiles_api_keyin configREDIS_FILES_API_KEYenvironment variable (fallback)CLI Key Management
Package Optimization
The
--optimizeflag reduces support package size by 20-30% through:--log-lines)Upload Capability
Comparison with spfetch
Feature parity with Redis's existing spfetch/rflat tool:
Security improvements:
Technical Changes
Dependencies
files-sdk: upgraded to 0.3.1 from crates.iokeyring: enabled platform-native features (apple-native, windows-native, linux-native)secure-storage: changed from optional to default featureNew Files
crates/redisctl/src/commands/files_key.rs- Key management commandscrates/redisctl/src/commands/enterprise/support_package/optimizer.rs- Package optimizationcrates/redisctl/src/commands/enterprise/support_package/upload.rs- Upload functionalityConfig Schema
Testing
cargo fmt --all -- --checkcleancargo clippy --all-targets --all-features -- -D warningscleanDocumentation
Updated:
Use Cases
Individual Developer
CI/CD Pipeline
Multiple Files.com Accounts
Breaking Changes
None. All changes are backward compatible.
Closes #379