- app/main.py: GET /api/csrf-token → retourne un token frais JSON + cookie
- app/middleware/csrf.py: /api/csrf-token ajouté aux EXCLUDED_PATHS
- app/templates/base.html:
- FlowDeck.refreshCsrfToken() → appelle /api/csrf-token
- FlowDeck.csrfFetch() → wrapper fetch avec auto-refresh sur 403 CSRF
- Si un POST/PUT/DELETE reçoit 403 'CSRF', refresh automatique + retry
- ROADMAP: item CSRF token refresh marqué ✅
- 143 tests passent
433 lines
20 KiB
Markdown
433 lines
20 KiB
Markdown
# Roadmap FlowDeck — Notion Clone
|
||
|
||
> **Vision**: Copie conforme de l'UI/UX Notion, intégrée à Gitea/GitHub.
|
||
> **MVP en production** : v4.0.0 — authentification locale/OAuth, pages blocs, sidebar, library, share/publish, intégrations.
|
||
> **Branche principale** : `main` (production) · `develop` (intégration) · `feat/*` (features).
|
||
|
||
## 🏗️ Stratégie de branches
|
||
|
||
```
|
||
main ──●────────────●────── production (tags vX.Y.Z)
|
||
\ /
|
||
develop ●──●──●──●────── intégration continue
|
||
\ \ \
|
||
feat/xxx ● ● ●──── feature branches
|
||
```
|
||
|
||
- **`main`** : code en production, déploiement Docker automatique
|
||
- **`develop`** : branche d'intégration, merges des `feat/*`
|
||
- **`feat/<nom>`** : une branche par feature/fix, PR → code review → merge dans `develop`
|
||
- **Tags** `vX.Y.Z` sur `main` pour chaque release
|
||
|
||
**Workflow** :
|
||
```bash
|
||
git checkout -b feat/mon-truc develop
|
||
# ... coder, commit, push ...
|
||
# Créer une PR feat/mon-truc → develop sur Gitea
|
||
# Après review + CI verte → merge
|
||
# Pour release: PR develop → main + tag vX.Y.Z
|
||
```
|
||
|
||
**Règles** :
|
||
- Ne jamais commiter directement sur `main`
|
||
- Une branche = une feature / un fix
|
||
- Tests passent avant merge (CI Gitea Actions)
|
||
- Commit + push après chaque modification significative
|
||
|
||
---
|
||
|
||
## Completed
|
||
|
||
### v0.2.0 ✅ — Base
|
||
Dashboard + Board Kanban + Gitea sync + Notes + Docker
|
||
|
||
### v0.3.0 ✅ — Auth
|
||
OAuth2 Gitea, token par utilisateur, CSRF, rate limiting, webhooks
|
||
|
||
### v0.4.0 ✅ — UI Notion
|
||
Layout 3 zones (sidebar 240px + topbar 44px), dark mode, CSS 31KB, Alpine.js
|
||
|
||
### v0.5.0 ✅ — Kanban
|
||
Colonnes, groupes, cartes enrichies, drag&drop, modale détail, checklists, commentaires
|
||
|
||
### v0.6.0 ✅ — Table View
|
||
6 colonnes triables, groupes rétractables
|
||
|
||
### v0.7.0 ✅ — Filtres & Tri
|
||
Filtres cumulables AND, status dropdown, sort multi-critères
|
||
|
||
### v0.8.0 ✅ — Vues Spéciales
|
||
Status Overview (donut SVG), Team Load (barres), Detailed Board
|
||
|
||
### v0.9.0 ✅ — Backend
|
||
Propriétés custom, AI keywords, sync API, 12 tables DB
|
||
|
||
### v1.0.0 ✅ — Production
|
||
- [x] FastAPI lifespan (deprecation fix)
|
||
- [x] 28 tests — 5 vues, filtres, tris, APIs, CSRF, CORS, DB
|
||
- [x] CI/CD Gitea Actions (`.gitea/workflows/ci.yml`)
|
||
- [x] CHANGELOG.md, ARCHITECTURE.md à jour
|
||
- [x] Version 1.0.0 partout (main.py, api.py, health)
|
||
- [x] Tag git v1.0.0
|
||
|
||
### v1.1.0 ✅ — Pages & Sidebar
|
||
- [x] Pages Markdown avec arbre imbriqué (parent_id, sort_order)
|
||
- [x] Block editor mode (content_format='blocks', JSON storage)
|
||
- [x] Soft delete → Trash → Restore → Permanent delete
|
||
- [x] Drag & drop réorganisation pages
|
||
- [x] Sidebar Notion-style avec sections Recents/Private/Shared
|
||
- [x] "+ New page" footer button
|
||
- [x] Workspace header avec avatar + chevron toggle
|
||
|
||
### v1.2.0 ✅ — Éditeur Notion
|
||
- [x] Slash menu (/) 15 commandes fonctionnelles
|
||
- [x] Navigation clavier (flèches, Enter, Escape)
|
||
- [x] Placeholders Notion-style (Heading 1/2/3/4, Toggle, Quote, Code)
|
||
- [x] Suppression outline blanc sur les blocs
|
||
- [x] Heading 4 support
|
||
- [x] Breadcrumbs contextuels (workspace > projet > page)
|
||
|
||
### v1.3.0 ✅ — Database Concept
|
||
- [x] Tables `collections`, `collection_pages`, `collection_views`
|
||
- [x] Rétrocompatibilité Gitea via `GiteaBoardCompat`
|
||
- [x] Router `/db` — API CRUD collections + pages (12 endpoints)
|
||
- [x] 34/34 tests passent
|
||
|
||
### v1.4.0 ✅ — Propriétés Avancées
|
||
- [x] Table `collection_properties` — 21 types Notion
|
||
- [x] Service `property_types.py` — validation, formatage, auto-values
|
||
- [x] 38/38 tests passent
|
||
|
||
### v1.5.0 ✅ — Relations & Rollups
|
||
- [x] Type `relation` — lien bidirectionnel entre collections
|
||
- [x] Type `rollup` — aggregation via relation (COUNT, SUM, AVG, etc.)
|
||
- [x] Type `formula` — moteur d'expressions (19 fonctions)
|
||
- [x] Formula engine + Rollup engine
|
||
- [x] 43/43 tests passent
|
||
|
||
### v1.6.0 ✅ — Vues Manquantes
|
||
- [x] Calendar, Gallery, List, Timeline, Table views
|
||
- [x] View tabs navigation
|
||
- [x] 49/49 tests passent
|
||
|
||
### v1.7.0 ✅ — Vues Améliorées
|
||
### v1.8.0 ✅ — Sub-items & Dépendances
|
||
- [x] View config API, Save view as
|
||
- [x] Sub-items (parent_id auto-référence)
|
||
- [x] Status aggregate, Dependencies (blocking constraint)
|
||
- [x] 56/56 tests passent
|
||
|
||
### v1.9.0 ✅ — My Tasks & Dashboard Unifié
|
||
- [x] Vue `/my-tasks` — agrège pages assignées à l'utilisateur
|
||
- [x] Groupement par collection, filtres globaux
|
||
- [x] 60/60 tests passent
|
||
|
||
### v2.0.0 ✅ — Éditeur Complet & Multi-Utilisateurs
|
||
- [x] Workspaces, Comments, Page History, Favorites
|
||
- [x] Database Templates, Page Templates, CSV Import/Export
|
||
- [x] Public Sharing
|
||
- [x] 67/67 tests passent
|
||
|
||
### v2.1.0 ✅ — Workspace Local & Arborescence
|
||
### v2.2.0 ✅ — Tags & Recherche Avancée
|
||
### v2.3.0 ✅ — Multi-Vues Workspace & Preview Panel
|
||
### v2.4.0 ✅ — Tags Personnalisés par Utilisateur
|
||
### v2.5.0 ✅ — Administration Avancée
|
||
### v2.6.0 ✅ — My Account & Auth Locale
|
||
### v2.7.0 ✅ — Intégration Gitea Phase 1
|
||
### v2.7.1 ✅ — Private Pages Gitea
|
||
|
||
### v2.8.0 ✅ — Gitea Phase 2
|
||
- [x] Créer fichiers dans le repo (New file UI + API PUT)
|
||
- [x] Upload fichiers binaires (POST /upload, drag-drop)
|
||
- [x] Syntax highlighting via Prism.js CDN
|
||
- [x] Labels Gitea → tags FlowDeck (POST /sync-labels, 16 labels importés)
|
||
- [x] Historique commits par fichier (GET /commits?path=)
|
||
|
||
### v2.9.0 ✅ — GitHub OAuth Provider
|
||
- [x] GitHubProvider dans `app/auth/providers.py`
|
||
- [x] GitHubAdapter dans `app/services/github_adapter.py`
|
||
- [x] Config GitHub dans `.env.example`
|
||
|
||
### v3.0.0 ✅ — UX Professionnelle
|
||
- [x] Multi-sélection (checkboxes + Shift/Ctrl-click dans le sidebar)
|
||
- [x] Raccourcis clavier (Ctrl+N, F2, Delete, Escape, Ctrl+S)
|
||
- [x] Inline rename (double-clic → champ inline)
|
||
- [x] Loading skeletons (animations pulse dans workspaces + file viewer)
|
||
- [x] Grid/card view (mode grille/vignettes)
|
||
- [x] Table sorting (tri par colonnes)
|
||
- [x] Sélecteur de vue: Tree, List, Details, Title, Content (5 modes)
|
||
- [x] Preview Panel latéral (contenu, métadonnées, tags, actions)
|
||
- [x] Tri par date (Oldest/Newest)
|
||
|
||
### v4.0.0 ✅ — Accounts, Integrations & Sharing (MVP)
|
||
- [x] `auth_method` sur users (local/gitea/github)
|
||
- [x] Badge OAuth dans sidebar
|
||
- [x] Settings page avec Connect/Disconnect Gitea + GitHub
|
||
- [x] Sidebar rules (Private = distant seulement, Trash local-only)
|
||
- [x] Library page avec tabs + filtres source (All/Local/Gitea/GitHub)
|
||
- [x] Modale Share (2 tabs: Share + Publish)
|
||
- [x] Page publique `/p/<slug>` (no auth, rendu HTML)
|
||
- [x] Table `page_shares`, colonnes `is_published`, `is_shared`, `share_mode`
|
||
- [x] Table `recents` — tracking automatique
|
||
- [x] Édition unifiée local/distant (même UI, bouton Commit pour Gitea)
|
||
- [x] 133 tests passent
|
||
|
||
---
|
||
|
||
## 🔜 Prochaines versions
|
||
|
||
### v4.0.1 — Onboarding & Polish ✅ (2026-07-18)
|
||
> **Objectif** : rendre l'app utilisable dès la première visite, sans friction. **COMPLETED**.
|
||
|
||
- [x] **Landing page `/` pour visiteurs non-auth** — template `landing.html`, design Notion dark
|
||
- [x] **Page `/auth/register` GET** — formulaire d'inscription dédié (tab register actif)
|
||
- [x] **Redirection `/` intelligente** — non-auth → landing, auth sans Gitea → local workspace, auth+Gitea → dashboard
|
||
- [x] **Empty states** — déjà présents dans local workspace (« Welcome to your Workspace »)
|
||
- [x] **Page 404 stylisée** — thème Notion sombre, JSON pour `/api/*`, HTML pour le reste
|
||
- [x] **Unifier les routes API** — `/api/pages` GET/POST → 307 redirect vers `/board/api/pages`
|
||
- [x] **Page Settings** — lien déjà présent dans le menu utilisateur (Settings → `/accounts/settings`)
|
||
|
||
### v4.0.2 — Qualité & Robustesse ✅ (2026-07-18)
|
||
> **Objectif** : zéro crash, zéro regression, DX impeccable.
|
||
|
||
- [x] **Gestion d'erreurs** — try/catch dans create_page, message user-friendly (500 JSON)
|
||
- [x] **Validation inputs** — login/register déjà validés, titre vide → "Untitled"
|
||
- [x] **Rate limiting** — 100 req/min/IP déjà en place, testé OK
|
||
- [x] **Session expiry UX** — redirect avec ?expired=1, bannière sur la page login
|
||
- [x] **CSRF token refresh** — auto-refresh sur 403, endpoint `/api/csrf-token`
|
||
- [x] **Mobile responsive** — sidebar slide-in, modales centrées, landing adaptative
|
||
- [x] **Tests de non-régression** — +10 tests (landing, register, 404, validation, duplicate, expiry)
|
||
- [x] **143 tests passent**
|
||
|
||
---
|
||
|
||
### v4.1.0 — Database: Data Sources & Linked Databases
|
||
> **Objectif** : Collections multi-sources, databases liées (linked).
|
||
> **Doc** : [`NOTION_DATABASE_TASKS_GUIDE.md` Phase 1](docs/NOTION_DATABASE_TASKS_GUIDE.md#14-plan-implémentation)
|
||
|
||
- [ ] **Table `collection_data_sources`** — multi-sources par collection
|
||
- [ ] **API sources** — POST /db/{id}/sources, DELETE
|
||
- [ ] **API linked DB** — POST /db/{id}/linked
|
||
- [ ] **UI data source manager** — gestion dans settings collection
|
||
- [ ] **Règle permissions** — linked DB hérite des perms de la source
|
||
- [ ] **Full-page vs Inline** — flag `is_inline`, toggle, transformation
|
||
|
||
### v4.2.0 — Database: Templates & Dashboards
|
||
> **Objectif** : Templates réutilisables + dashboards combinant vues/widgets.
|
||
> **Doc** : [`NOTION_DATABASE_TASKS_GUIDE.md` Phase 2](docs/NOTION_DATABASE_TASKS_GUIDE.md#14-plan-implémentation)
|
||
|
||
- [ ] **Table `collection_templates`** — avec récurrence (daily/weekly/monthly/yearly)
|
||
- [ ] **Table `collection_dashboards`** — layout widgets (grille configurable)
|
||
- [ ] **API templates** — CRUD + POST apply
|
||
- [ ] **API dashboards** — CRUD widgets (view_id, position, taille)
|
||
- [ ] **UI template picker** — dropdown New avec templates
|
||
- [ ] **UI dashboard view** — combinaison de vues/widgets sur une page
|
||
|
||
### v4.3.0 — Database Views complètes (10 types)
|
||
> **Objectif** : Tous les types de vues Notion avec layouts.
|
||
> **Doc** : [`NOTION_DATABASE_TASKS_GUIDE.md` Phase 3](docs/NOTION_DATABASE_TASKS_GUIDE.md#14-plan-implémentation)
|
||
|
||
- [ ] **Chart** — barres, courbes, camemberts, donuts, scatter (Chart.js)
|
||
- [ ] **Form** — formulaire HTML → POST création page
|
||
- [ ] **Map** — Leaflet/OSM pour propriété Place
|
||
- [ ] **Feed** — vue chronologique type fil d'actualité
|
||
- [ ] **Timeline/Gantt** — barres horizontales avec dépendances
|
||
- [ ] **Layout options** — card size, preview, open in peek/side/full
|
||
- [ ] **View tabs** — navigation fluide entre vues (existant à enrichir)
|
||
|
||
### v4.4.0 — Tasks, Sub-items & Dependencies
|
||
> **Objectif** : Système complet de tâches Notion-style.
|
||
> **Doc** : [`NOTION_DATABASE_TASKS_GUIDE.md` Phase 4](docs/NOTION_DATABASE_TASKS_GUIDE.md#14-plan-implémentation)
|
||
|
||
- [ ] **Flag `is_task`** sur collections — Turn into Tasks
|
||
- [ ] **Propriété ID** auto-générée (TASK-XXX)
|
||
- [ ] **Sub-items** — parent_id enrichi, modes d'affichage (nested/flattened/card)
|
||
- [ ] **Table `page_dependencies`** — bloque/bloqué par
|
||
- [ ] **API dependencies** — POST/GET/DELETE /db/{c}/pages/{p}/dependencies
|
||
- [ ] **Auto-shift dates** — overlap / maintain_time / never + skip weekends
|
||
- [ ] **UI dépendances** — graphe ou liste, toggle sub-items
|
||
- [ ] **Filtres sub-items** — parents only / all / sub-items only
|
||
|
||
### v4.5.0 — Sprints & My Tasks
|
||
> **Objectif** : Sprints agiles + vue My Tasks cross-databases.
|
||
> **Doc** : [`NOTION_DATABASE_TASKS_GUIDE.md` Phase 5](docs/NOTION_DATABASE_TASKS_GUIDE.md#14-plan-implémentation)
|
||
|
||
- [ ] **Tables `sprints`, `sprint_pages`** — sprints agiles
|
||
- [ ] **API sprints** — CRUD + assignation pages, vélocité
|
||
- [ ] **Sprint board** — Current Sprint / Planning / Backlog
|
||
- [ ] **Burndown chart** — vélocité, points complétés vs restants
|
||
- [ ] **My Tasks** — agrégation cross-databases (toutes les task DBs)
|
||
- [ ] **My Tasks API** — /my-tasks?view=all|today|overdue|upcoming
|
||
- [ ] **My Tasks UI** — groupes par collection, status badges, filtres
|
||
|
||
### v4.6.0 — Content Blocks enrichis
|
||
> **Objectif** : parité d'édition avec Notion.
|
||
|
||
- [ ] **Callout blocks** — boîtes colorées (info, warning, tip, success)
|
||
- [ ] **Table of contents** — auto-généré depuis les headings
|
||
- [ ] **Math equations** — LaTeX / KaTeX inline + block
|
||
- [ ] **Toggle lists** — contenu expandable/collapsible (déjà partiel)
|
||
- [ ] **Multi-colonnes** — layout flexible (2, 3 colonnes)
|
||
|
||
### v4.7.0 — Export
|
||
- [ ] **Export Markdown** — avec images et sous-pages (déjà partiel dans editor)
|
||
- [ ] **Export PDF** — mise en page fidèle, table des matières
|
||
- [ ] **Export HTML** — site statique standalone
|
||
|
||
### v4.8.0 — Collaboration
|
||
- [ ] **Inline comments** — commentaires sur sélection de texte
|
||
- [ ] **@mentions** — notifier un utilisateur → page/commentaire
|
||
- [ ] **Email notifications** — changements, mentions
|
||
|
||
### v4.9.0 — FlowDeck Agent (Agent IA natif)
|
||
|
||
**Objectif :** Un agent IA intégré à FlowDeck, capable de planifier, rechercher et **agir** directement sur les workspaces — collections, pages, propriétés, vues, issues Gitea. Inspiré de Notion Agent (2026).
|
||
|
||
**Documentation :**
|
||
|
||
[`docs/Flowdeck_Agent_integration.md`](docs/Flowdeck_Agent_integration.md) (702 lignes) ·
|
||
[`docs/Guide_Complet_Notion_Agent_2026.md`](docs/Guide_Complet_Notion_Agent_2026.md) (464 lignes)
|
||
|
||
#### Concept
|
||
Là où un assistant IA classique répond (`prompt → réponse`), FlowDeck Agent **réalise** :
|
||
`objectif → planification → collecte contexte → actions API → résultat`
|
||
|
||
| Notion AI | FlowDeck Agent |
|
||
|-----------|----------------|
|
||
| Répond, résume, réécrit | Planifie, recherche, **agit** |
|
||
| Bloc de texte | Crée collections, pages, propriétés, vues |
|
||
| Sans état | Historique conversation + snapshots rollback |
|
||
| Aucune action DB | Modifie le workspace via API FastAPI existantes |
|
||
|
||
#### Fonctionnalités clés
|
||
- [ ] **Interface conversationnelle** — panneau agent dans le sidebar (🤖 Agents) + popup chat
|
||
- [ ] **Boucle ReAct** — Raisonnement → Action → Observation → itération (max 12 tours)
|
||
- [ ] **Streaming SSE** — affichage temps réel du raisonnement et des actions
|
||
- [ ] **10+ outils actionnables** — search, read/write collections/pages, views, properties, Gitea sync
|
||
- [ ] **Permissions** — même ACL que l'utilisateur (`PermissionManager`), audit log + rollback
|
||
- [ ] **Contexte automatique** — workspace actif, pages mentionnées, fichiers uploadés
|
||
- [ ] **Custom agents** — instructions, modèle, outils, scope par agent
|
||
- [ ] **Déclencheurs** — planifiés, webhooks, événements workspace
|
||
- [ ] **Skills réutilisables** — templates d'instructions + outils (ex: "Rédiger rapport hebdo")
|
||
- [ ] **Multi-LLM** — GPT, Claude, Gemini, modèles locaux (Ollama)
|
||
|
||
#### Architecture (nouveaux composants)
|
||
```
|
||
app/
|
||
├── routers/agent.py — /api/agent/* (run, conversations, tools)
|
||
├── services/agent_engine.py — Orchestrateur ReAct + boucle tool calls
|
||
├── services/llm_client.py — Abstraction multi-fournisseur LLM
|
||
├── services/tool_registry.py — 10+ outils wrappant les API existantes
|
||
├── services/context_builder.py — Collecte contexte workspace
|
||
└── templates/
|
||
├── agent_panel.html — Panneau conversation Alpine.js
|
||
└── agent_message.html — Fragment message (streaming)
|
||
```
|
||
|
||
#### Nouvelles tables
|
||
| Table | Rôle |
|
||
|-------|------|
|
||
| `agents` | Config agent (nom, instructions, modèle, tools scope) |
|
||
| `agent_conversations` | Sessions (titre, agent, workspace, statut) |
|
||
| `agent_messages` | Messages (role, content, tool_calls, artifacts) |
|
||
| `agent_actions` | Journal d'audit (tool, args, result, undo_snapshot) |
|
||
| `agent_skills` | Skills réutilisables (nom, prompt template, outils) |
|
||
| `agent_triggers` | Déclencheurs (cron, webhook, event, agent cible) |
|
||
|
||
#### Cas d'usage FlowDeck
|
||
- **Créer un CRM complet** — agent crée collection, propriétés, vues, exemples
|
||
- **Résumer les notes de réunion** — lit les pages, synthétise, crée une page résumé
|
||
- **Générer des OKR** — crée la database OKR avec relations et vues
|
||
- **Analyser un repo Gitea** — lit les issues, crée un dashboard de suivi
|
||
- **Rédiger un rapport hebdomadaire** — agrège les pages modifiées, génère le rapport
|
||
|
||
#### Plan de migration (5 phases)
|
||
1. **Phase 1 — Core Agent** : AgentEngine + LLMClient + 3 outils (search, read, create) + SSE streaming
|
||
2. **Phase 2 — UI** : agent_panel.html, historique conversations, sélecteur de modèle
|
||
3. **Phase 3 — Outils avancés** : 7 outils supplémentaires (views, properties, Gitea, uploads)
|
||
4. **Phase 4 — Autonomie** : custom agents, skills, déclencheurs planifiés
|
||
5. **Phase 5 — Plateforme** : API publique agent → intégrations tierces, marketplace skills
|
||
|
||
#### Limitations (v1)
|
||
- Pas de modification concurrente (lock optimiste DB)
|
||
- Pas d'appels API externes non-FlowDeck (sandbox strict)
|
||
- Budget tokens max par conversation (500k tokens)
|
||
- Timeout 5 minutes par run
|
||
|
||
### v5.0.0 — Command Palette & Recherche
|
||
- [ ] **Command palette** — Ctrl+K / Ctrl+P recherche universelle
|
||
- [ ] **Quick actions** — navigation, création, commandes
|
||
|
||
### v5.1.0 — Automations
|
||
- [ ] **Database automations** — if-this-then-that
|
||
- [ ] **Buttons** — cliquables déclenchant actions
|
||
|
||
### v5.2.0 — Infrastructure & Polish
|
||
> **Objectif** : Qualité de code, design system, backup, CI/CD.
|
||
> **Items issus de l'ancien docs/ROADMAP.md (v3.0)**
|
||
|
||
**Design system**
|
||
- [ ] **Design tokens** — `design-tokens.css` (couleurs, espacements, typographie unifiés)
|
||
- [ ] **Composants réutilisables** — boutons, inputs, modales, dropdowns, toasts
|
||
|
||
**Sécurité & Utilisateur**
|
||
- [ ] **API Tokens** — générer/révoquer des clés API utilisateur
|
||
- [ ] **Sessions actives** — voir et révoquer les sessions
|
||
- [ ] **Onboarding wizard** — `/welcome` au premier lancement (créer compte → lier forges → premier projet)
|
||
|
||
**Infrastructure**
|
||
- [ ] **Migrations versionnées** — Alembic ou table `schema_version`
|
||
- [ ] **Backup automatique** — cron daily → fichier daté
|
||
- [ ] **Index manquants** — `users.email`, `forge_connections.user_id`
|
||
- [ ] **Linting** — ruff (Python), eslint (JS)
|
||
- [ ] **Tests parallèles** — pytest-xdist
|
||
- [ ] **Build Docker multi-stage** — optimiser taille d'image
|
||
|
||
**Forge integration**
|
||
- [ ] **DB: table `projects`** — type (builtin/gitea/github), forge_id, clone_url, default_branch, language
|
||
- [ ] **Cron: sync périodique des projets** — configurable (défaut: chaque heure)
|
||
- [ ] **GitHubAdapter** complet — API GitHub v3 → interface ForgeAdapter
|
||
|
||
**Tests (cibles)**
|
||
- [x] **143 tests** — cible 100+ atteinte ✅
|
||
- [ ] Tests d'intégration auth (OAuth mock)
|
||
- [ ] Tests des adapters forge (mock HTTP)
|
||
- [ ] Tests multi-user (permissions croisées)
|
||
|
||
### v5.3.0 — Database Avancée
|
||
- [ ] Inline databases dans n'importe quelle page
|
||
- [ ] Templates de database (Project tracker, CRM…)
|
||
- [ ] Validation des propriétés (required, unique, min/max)
|
||
|
||
---
|
||
|
||
## v6.0.0 — Pro (futur)
|
||
|
||
- [ ] **PWA** — Progressive Web App, offline support
|
||
- [ ] **SSO/SAML** — enterprise authentication
|
||
- [ ] **Granular permissions** — page-level, property-level access control
|
||
- [ ] **Web Clipper** — extension navigateur
|
||
- [ ] **API publique** — REST API + webhooks documentés
|
||
- [ ] **Realtime editing** — WebSocket, curseurs multi-utilisateurs
|
||
- [ ] **Synced blocks** — bloc synchronisé entre plusieurs pages
|
||
|
||
---
|
||
|
||
## Résumé des phases
|
||
|
||
```
|
||
v0.x–v1.x ✅ v2.x ✅ v3.0.0 ✅ v4.0.0 ✅ v4.0.1 ✅
|
||
Base + Kanban Éditeur + Gitea UX Pro MVP Onboarding
|
||
+ DB + Auth + Workspaces + Multi-select Accounts & Polish
|
||
+ UI Notion + Tags + Admin + Sharing COMPLETED
|
||
+ GitHub OAuth + Library
|
||
|
||
v4.0.2 ✅ v4.1–4.5 ⬜ v4.6.0 ⬜ v4.7.0 ⬜ v4.8–4.9 ⬜ v5.x–v6.0 ⬜
|
||
Quality Database + Content Export Collab + Pro + Agent
|
||
& Tests Views/Tasks Blocks PDF/MD Agent IA (futur)
|
||
📚 NOTION_DATABASE_TASKS_GUIDE.md v2.0
|
||
```
|
||
|
||
*Dernière mise à jour: 2026-07-20 — Database/Views/Tasks phases ajoutées (v4.1–v4.5), NOTION_DATABASE_TASKS_GUIDE.md v2.0*
|