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
39 lines
1.2 KiB
Markdown
39 lines
1.2 KiB
Markdown
## 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
|