feat: add SSH key rotation functionality #14
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 comprehensive SSH key management to bring TypeScript SDK to parity with Python SDK
• Implement
sshKey()andsshKeyRotate()methods on Instance class with proper TypeScript interfaces• Include comprehensive integration and unit tests mirroring Python SDK test suite
Key Changes
• InstanceSshKey interface: Proper typing for SSH key objects with
object,private_key,public_key, andpasswordfields• Instance.sshKey(): Retrieve current SSH key details for instance
• Instance.sshKeyRotate(): Generate new SSH key, invalidating the old one
• Comprehensive tests: Both integration tests (mirroring Python SDK) and unit tests for type verification
• Jest configuration: Proper test setup for TypeScript with 5-minute timeout for integration tests
Implementation Details
Based on Python SDK commit
58d2b66"rotation for ssh keys", this implementation:Test Coverage
• Unit tests verify method existence, API calls, and TypeScript interfaces
• Integration tests cover real-world scenarios including SSH connection validation
• Tests for uniqueness across multiple rotations and raw HTTP API endpoint access
Test plan
npm test test/unit/sshkey.test.ts)npm run build)MORPH_API_KEYenvironment variable to run)Note: Integration tests require
MORPH_API_KEYenvironment variable but are comprehensive and mirror the Python SDK test suite exactly.🤖 Generated with Claude Code