docs: ROADMAP.md + README v1.5.0 (CI/CD complet)
This commit is contained in:
parent
7965139230
commit
271a463d6d
23
README.md
23
README.md
@ -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.
|
||||
|
||||
[]()
|
||||
[]()
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://www.docker.com/)
|
||||
[](https://www.python.org/)
|
||||
[](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
78
ROADMAP.md
Normal 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)
|
||||
Loading…
x
Reference in New Issue
Block a user