feat: implement SSH key management

- Add backend API endpoints for SSH key CRUD (POST, GET, DELETE)
- Implement Ed25519 key generation with Fernet-encrypted private keys
- Add frontend SSH keys page with generate, list, and delete functionality
- Include copy-to-clipboard for public keys
- Add responsive CSS styles for key cards
- Register ssh_keys router in main.py
- Add basic auth tests for SSH key endpoints

Quality gates: ruff ✓, mypy ✓, typecheck ✓, lint ✓
This commit is contained in:
Fusion
2026-05-18 14:44:21 +02:00
parent be81aa1c8b
commit a441ea2fac
24 changed files with 500 additions and 369 deletions
@@ -0,0 +1,25 @@
## Why
SSH keys are required for git operations with external providers. Currently the SSHKey model exists but there's no API or UI to generate, manage, or use SSH keys.
## What Changes
- Add backend API endpoints for SSH key CRUD operations
- Implement Ed25519 key generation with Fernet encryption for private keys
- Add frontend page for SSH key management
- Display public keys with copy functionality
## Capabilities
### New Capabilities
- `ssh-key-management`: Generate and manage SSH keys for git operations
### Modified Capabilities
- None
## Impact
- `apps/api/src/api/`: New ssh_keys.py router
- `apps/api/src/models/ssh_key.py`: May need updates
- `apps/web/src/`: New SSH keys page
- `apps/api/src/main.py`: Register new router