4e2edb1d93
- Add backend API for git repository CRUD (create, list, delete) - Support bare repository initialization and mirror cloning - Add cascade delete for repositories when project is deleted - Add frontend page for repository management per project - Update project page with link to repositories - Add repo_base_path to config - Quality gates: ruff, mypy, typecheck, lint, build all pass
1.2 KiB
1.2 KiB
ADDED Requirements
Requirement: SSH Key Generation
The system SHALL generate Ed25519 SSH key pairs and encrypt the private key with Fernet.
Scenario: Generate key
- WHEN an authenticated user requests a new SSH key with a name
- THEN an Ed25519 key pair is generated
- AND the private key is encrypted with Fernet
- AND the public key is stored in OpenSSH format
- AND the key is associated with the user
Requirement: SSH Key Listing
The system SHALL list all SSH keys for the authenticated user.
Scenario: List keys
- WHEN an authenticated user views their SSH keys
- THEN all their keys are listed with name, public key preview, and created date
Requirement: SSH Key Display
The system SHALL display public keys for copying.
Scenario: Copy public key
- WHEN an authenticated user views an SSH key
- THEN the full public key is displayed in OpenSSH format
- AND a copy-to-clipboard button is available
Requirement: SSH Key Deletion
The system SHALL support key removal.
Scenario: Delete key
- WHEN an authenticated user deletes an SSH key
- THEN it's removed from the database
- AND the key files are deleted if stored on disk