a441ea2fac
- 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 ✓
958 B
958 B
1. Backend SSH Key API
- 1.1 Create
apps/api/src/api/ssh_keys.pywith endpoints for list, generate, and delete SSH keys. - 1.2 Implement Ed25519 key generation using cryptography library.
- 1.3 Implement Fernet encryption for private keys.
- 1.4 Add Pydantic schemas for SSHKeyCreate, SSHKeyResponse.
- 1.5 Register ssh_keys router in
apps/api/src/main.py. - 1.6 Add backend tests for SSH key CRUD operations.
2. Frontend SSH Keys Page
- 2.1 Create
apps/web/src/api/ssh_keys.tswith API methods. - 2.2 Create
apps/web/src/pages/ssh-keys.tsxwith key list, generate form, and delete action. - 2.3 Add
/ssh-keysroute inapps/web/src/router.tsx. - 2.4 Update app shell navigation to include SSH keys link.
3. Verification
- 3.1 Run backend checks (pytest, ruff, mypy).
- 3.2 Run frontend checks (npm test, typecheck, lint, build).
- 3.3 Update tasks file with completed checkboxes.