feat: implement security, discovery, history, file transfer, web UI (P0-P3)
This commit is contained in:
+25
-1
@@ -88,13 +88,37 @@ Boucle principale :
|
||||
2. Ticker 500ms : lit le presse-papiers, compare, broadcast si changé
|
||||
3. Signal SIGINT/SIGTERM → arrêt gracieux
|
||||
|
||||
### 6. Sécurité (`internal/security/`)
|
||||
|
||||
- `--generate-key` : clé partagée hex (256 bits)
|
||||
- `--generate-cert` : certificat ECDSA P-256 auto-signé
|
||||
- Auth Bearer token (comparaison à temps constant), validation d'origine
|
||||
|
||||
### 7. Historique (`internal/history/`)
|
||||
|
||||
- Anneau mémoire borné (`history_size`), persisté en JSON
|
||||
- Commandes `clip-sync history` et endpoint `/history`
|
||||
|
||||
### 8. Transfert de fichiers (`internal/transfer/`)
|
||||
|
||||
- Payload `{name, mime, data(base64), ts, origin}` via `POST /file`
|
||||
- Réception opt-in (`receive_files`), écrit dans `receive_dir`
|
||||
- Nom de fichier assaini (anti path-traversal)
|
||||
|
||||
### 9. Découverte (`internal/discovery/`) et notifications (`internal/notify/`)
|
||||
|
||||
- mDNS `_clip-sync._tcp` (hashicorp/mdns), activation via `daemon.discovery`
|
||||
- Notifications desktop : notify-send (Linux), osascript (macOS), no-op (Windows)
|
||||
|
||||
## Dépendances
|
||||
|
||||
| Dépendance | Version | Justification |
|
||||
|-----------|---------|---------------|
|
||||
| `github.com/BurntSushi/toml` | v1.3.2 | Parsing TOML (stdlib Go n'inclut pas TOML) |
|
||||
| `github.com/hashicorp/mdns` | v1.0.7 | Découverte mDNS (optionnelle, `daemon.discovery`) |
|
||||
|
||||
**Total : 1 dépendance externe.** Tout le reste est stdlib Go.
|
||||
**Total : 2 dépendances externes directes.** Tout le reste est stdlib Go.
|
||||
mdns est optionnel (utilisé uniquement si `daemon.discovery = true`).
|
||||
|
||||
## Décisions architecturales
|
||||
|
||||
|
||||
Reference in New Issue
Block a user