docs: ROADMAP.md + README v1.5.0 (CI/CD complet)
All checks were successful
CI / lint (push) Successful in 11s
CI / security (push) Successful in 8s
CI / test (push) Successful in 15s
CI / build (push) Successful in 3s

This commit is contained in:
Bruno Charest 2026-05-28 13:11:08 -04:00
parent 7965139230
commit 271a463d6d
2 changed files with 99 additions and 2 deletions

View File

@ -2,10 +2,11 @@
**Porte d'entrée web ultra-léger pour vos vaults Obsidian** — Accédez, naviguez et recherchez dans toutes vos notes Obsidian depuis n'importe quel appareil via une interface web moderne et responsive.
[![Version](https://img.shields.io/badge/Version-1.4.0-blue.svg)]()
[![Version](https://img.shields.io/badge/Version-1.5.0-blue.svg)]()
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Docker](https://img.shields.io/badge/Docker-Ready-blue.svg)](https://www.docker.com/)
[![Python](https://img.shields.io/badge/Python-3.11+-green.svg)](https://www.python.org/)
[![CI/CD](https://img.shields.io/badge/CI%2FCD-Gitea_Actions-green.svg)](https://git.dracodev.net/Projets/ObsiGate/actions)
```
┌─────────────────────────────────────────────────────────┐
@ -822,6 +823,24 @@ Ce projet est sous licence **MIT** - voir le fichier [LICENSE](LICENSE) pour les
## 📝 Changelog
### v1.5.0 (2026-05-28)
**CI/CD Pipeline (Gitea Actions)**
- Pipeline 4 jobs : lint (ruff + mypy 0 erreur), test (175 tests), security (bandit + pip-audit), build (Docker)
- Runner Gitea auto-hébergé via `gitea/act_runner:0.2.11` sur Proxmox/Alpine
- Coverage artifact uploadé via `actions/upload-artifact@v3` (natif Gitea, zéro dépendance GitHub)
- Badge CI/CD dans le README
**Qualité de code**
- 28 erreurs mypy corrigées → 0 erreur sur 24 fichiers
- 36 erreurs ruff corrigées → 0 erreur
- Imports inutilisés, `Response` redéfini, types `Optional` normalisés
- 4 warnings Bandit résolus (faux positifs OAuth2 `bearer`, try/except shutdown)
**Documentation**
- ROADMAP.md créé
- README mis à jour (v1.5.0)
### v1.4.0 (2026)
**Authentification & Contrôle d'accès**
@ -936,4 +955,4 @@ Ce projet est sous licence **MIT** - voir le fichier [LICENSE](LICENSE) pour les
---
*Projet : ObsiGate | Version : 1.4.0 | Dernière mise à jour : 2026*
*Projet : ObsiGate | Version : 1.5.0 | Dernière mise à jour : Mai 2026*

78
ROADMAP.md Normal file
View File

@ -0,0 +1,78 @@
# ObsiGate — Roadmap
## ✅ Complété
### CI/CD Pipeline (Gitea Actions)
- [x] Ruff linting — 0 erreur
- [x] Mypy type checking — 0 erreur (28 erreurs pré-existantes corrigées)
- [x] Pytest — 175 tests, 49% coverage
- [x] Bandit SAST — scan de sécurité
- [x] Pip-audit — vulnérabilités des dépendances (advisory)
- [x] Docker build — vérification image
- [x] Coverage artifact — uploadé via `actions/upload-artifact@v3` (natif Gitea)
- [x] Runner Gitea auto-hébergé — `gitea/act_runner:0.2.11` sur Alpine/Proxmox
### Performance
- [x] `sortedcontainers` — O(log n) insert/remove dans l'index inversé
- [x] Compression GZip (SSE-safe)
- [x] Cache-Control immutable
- [x] Recherche sans I/O disque
### Sécurité
- [x] JWT + Argon2id
- [x] Rate limiting
- [x] Audit log
- [x] Backup automatique
- [x] Redaction de secrets
- [x] Headers CSP
- [x] Protection path traversal
- [x] Utilisateur non-root Docker
### DX / Qualité
- [x] `.dockerignore`
- [x] `.env``.env.example` migration
- [x] Ruff config — 0 erreur
- [x] Mypy config — 0 erreur
---
## 🔜 Prochaines étapes (par priorité)
### 1. Stemming français 🇫🇷
- **Effort** : 30 min
- **Impact** : 🟡 Améliore la recherche ×2 pour les termes fléchis
- **Module** : `snowballstemmer` (stemmer français)
- **Fichiers** : `backend/search.py` (tokenizer)
### 2. Split `app.js` en modules ES
- **Effort** : 2-3 jours
- **Impact** : 🟡 Dette technique, maintenabilité
- **Fichiers** : `frontend/app.js` (~8000 lignes → modules)
### 3. Tests d'intégration
- **Effort** : 3-5 jours
- **Impact** : 🟢 Couverture 49% → 70%+
- **Cibles** : `main.py` (26%), `watcher.py` (23%), `router.py` (37%), `create_admin.py` (0%), `image_processor.py` (15%)
### 4. Export PDF
- **Effort** : 1 jour
- **Impact** : 🟡 WeasyPrint déjà intégré (lazy import), manque GTK sur certaines plateformes
- **Alternative** : Markdown → HTML → PDF via headless Chrome
### 5. Vue graphe des wikilinks
- **Effort** : 3-5 jours
- **Impact** : 🟢 Nouvelle fonctionnalité, visualisation des connexions entre notes
- **Stack** : D3.js ou Cytoscape.js
---
## 📋 Backlog
- **Filtres de recherche avancés** : created:, modified:, size:
- **Mode hors-ligne** : Service Worker + cache IndexedDB
- **API publique documentée** : OpenAPI/Swagger amélioré
- **Thèmes personnalisés** : CSS variables exposées
- **Export multi-formats** : HTML, MD bundle, ePub
- **Notifications web** : Push API pour changements de vault
- **Multi-langue i18n** : Interface traduisible
- **Plugins système** : Extensions utilisateur (similaire Obsidian)