Scan strict des 115 routes api_v2.py contre tous les tests (chaîne de chemin littérale) → 5 routes sans AUCUNE référence, toutes couvertes maintenant : - POST /properties/evaluate-formula : 200 + shape, 400 sans expression. Le moteur renvoie « 1 + 2 » tel quel aujourd'hui → le smoke valide le câble (bearer, Body param, parse), pas le moteur (réalm de ses propres tests). - POST /properties/compute-rollup : 400 « collection_id required », 401 sans bearer. - GET /admin/audit-logs : portail admin VÉRIFIÉ — l'attendu est calculé depuis /users/me (le tout premier utilisateur d'un worker est admin : état non contrôlable depuis un test isolé), + token scope admin → 200 + logs. - GET /webhooks/events : catalogue non vide + wildcards * / page.*. - POST /webhooks/verify-signature : valid=True avec sign_payload() (le même helper que le serveur), False avec signature bidon. test_smoke_uncovered.py : 27 tests. Reste A32 : dashboard 17/63 + 6 routes gitea d'api.py (stub transport). suite **1064/1064** · `ruff check app tests` OK · docs à jour
4.6 KiB
WORKLOAD — FlowDeck Notion Clone
Début: 2026-07-08 | Version: v7.14.0 (audit — A32 phase 2c : api_v2 +5 routes à 0 ref) | Statut: EN COURS 🔄 Cible: parité Notion + intégration forge · Follow-ups v7.3 livrés: sidebar teamspaces, notif
page.updated, chartsnumber+ dashboards multi-DB, unfurl forge, UI Settings → Audit — voirROADMAP.md § v7.3.0
Avancement Global
| Version | Description | Statut | Tests |
|---|---|---|---|
| v0.2–v0.9 | Base → Backend | ✅ | — |
| v1.0 | Production (lifespan, CI/CD) | ✅ | 28/28 |
| v1.1 | Pages & Sidebar Notion | ✅ | — |
| v1.2 | Éditeur Notion (slash menu, blocs) | ✅ | — |
| v1.3 | Database Concept (collections) | ✅ | 34/34 |
| v1.4 | Propriétés Avancées (21 types) | ✅ | 38/38 |
| v1.5 | Relations, Rollups, Formulas | ✅ | 43/43 |
| v1.6 | Vues (Calendar, Gallery, List, Timeline) | ✅ | 49/49 |
| v1.7 | Vues Améliorées (view config, save-as) | ✅ | — |
| v1.8 | Sub-items & Dépendances | ✅ | 56/56 |
| v1.9 | My Tasks Dashboard | ✅ | 60/60 |
| v2.0 | Multi-User + Editor Complete | ✅ | 67/67 |
| v2.1 | Public API, Webhooks, PWA | ✅ | 73/73 |
| v2.2 | Share/Publish, Favorites, Library | ✅ | 73/73 |
| v3.0 | Auth locale, Multi-Forge, Standalone | ✅ | — |
| v4.x–v5.x | MVP → Agent IA, palette, automations, import, calendrier, wiki-links, synced blocks | ✅ | 523+ |
| v6.0–v6.3 | PWA offline, permissions granulaires, web clipper, API publique v2 | ✅ | 668+ |
| v6.4.0 | Realtime production (merge 3-voix, broadcast non bloquant) | ✅ | 749+ |
| v6.5.0–v6.5.1 | Synced blocks production (databases/vues) + webhooks v2 complets | ✅ | 749 |
| v6.6.0 | Agent phase 5 — API publique agent & skill marketplace | ✅ | 764+ |
| v6.7.0 | SSO / SAML + OIDC entreprise (Enterprise Auth) | ✅ | 802 |
| v6.8.0 | Sites multi-pages + Forms publics (doc) | ✅ | 20 |
| v6.9.0 | Recherche hybride + Ask AI RAG (doc) | ✅ | 24 |
| v7.0.0 | Automations multi-étapes + Workers lite (doc) | ✅ | 31 |
| v7.1.0 | Calendar sync + Meeting Notes (doc) | ✅ | 15 |
| v7.2.0 | SCIM + 2FA + Audit UI + gouvernance agents (doc) | ✅ | 52 |
| v7.3.0 | Teamspaces + Verified + Polish + follow-ups (doc) | ✅ | 72 |
Suites de régression :
test_v72_enterprise.py(52) +test_v73_wiki_polish.py(72) = 124 verts · suite complète-n auto= 1016 passed. Follow-ups v7.3 livrés (voir § v7.3.0 duROADMAP.md): sidebar par teamspace, chartsnumber/multi-DB, notifpage.updatedaux followers, unfurlgitea:/github:, page Settings → Audit — + 21 casses SSO corrigées (installpython3-saml/authlib).
Blocs Complétés
| Bloc | Features | Statut |
|---|---|---|
| Bloc 1 | Database Concept | ✅ 6/6 |
| Bloc 2 | Propriétés Avancées | ✅ 14/14 |
| Bloc 3 | Vues Manquantes | ✅ 10/10 |
| Bloc 4 | Sub-items & Dépendances | ✅ 7/7 |
| Bloc 5 | My Tasks | ✅ 7/7 |
| Bloc 6 | Éditeur Complet | ✅ 8/8 |
| Bloc 7 | Fonctions Transversales | ✅ |
Total: 52/52 features (100%)
Architecture
Tables (21)
users, user_tokens, boards, cards, notes, col_mapping, checklists, checklist_items, project_properties, property_values, ai_keywords, pages, collections, collection_pages, collection_views, collection_properties, workspaces, workspace_members, comments, page_history, favorites, database_templates, page_templates, webhook_subscriptions
Routeurs (11)
dashboard, board, notes, api, auth, webhooks, collections, my_tasks, workspace, public_api + app-level routes
Services (6)
GiteaClient, FormulaEngine, RollupEngine, GiteaBoardCompat, property_types, webhook_outbound
Endpoints (85+)
CRUD collections/pages, 5 vues HTML, relations/rollups/formulas, sub-items/dependencies, my-tasks, workspaces, comments, history, favorites, templates, CSV import/export, public sharing, public API v1, webhooks, PWA manifest
Stack
- Backend: Python 3.12 + FastAPI + httpx
- Frontend: Jinja2 + HTMX + Alpine.js + SortableJS + CSS 31KB
- BDD: SQLite WAL mode, 21 tables, foreign keys ON
- Auth: OAuth2 Gitea + sessions signed (itsdangerous) + token API
- Déploiement: Docker (python:3.12-slim), docker-compose, port 8080
- Tests: pytest, 764+ tests, TestClient avec SQLite temporaire
- CI/CD: Gitea Actions (.gitea/workflows/ci.yml)