.peek-body gardait padding:16px 20px + overflow-y:auto (heritage de l'ancien peek a rendu HTML) : l'iframe etait amochee (519x816 mesures contre 559x848 en local-workspace) avec bande grise autour du document + double scrollbar. Corps nu (padding:0, overflow:hidden) : l'editeur remplit le panneau, exactement comme le peek de /local-workspace. Mesure Playwright (cookie de session forge, les 14 boutons Open de Library) : embed OK partout, bases hydratees, aucun jeton « Loading database... ». Test: test_library_peek_body_has_no_inset_padding. Suite 1266/0 (-n auto) + ruff 0. Bump VERSION/main.py 7.50.2, CHANGELOG, WORKLOAD, OpenAPI.
78 lines
4.6 KiB
Markdown
78 lines
4.6 KiB
Markdown
# WORKLOAD — FlowDeck Notion Clone
|
||
|
||
> **Début**: 2026-07-08 | **Version**: v7.50.2 (peek de Library nu — iframe pleine, comme local-workspace) | **Statut**: EN COURS 🔄
|
||
> **Cible**: parité Notion + intégration forge · **Follow-ups v7.3 livrés**: sidebar teamspaces, notif `page.updated`, charts `number` + dashboards multi-DB, unfurl forge, UI Settings → Audit — voir `ROADMAP.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](docs/V68_Sites_Forms.md)) | ✅ | 20 |
|
||
| v6.9.0 | Recherche hybride + Ask AI RAG ([doc](docs/V69_Search_Ask_AI.md)) | ✅ | 24 |
|
||
| v7.0.0 | Automations multi-étapes + Workers lite ([doc](docs/V70_Automations_Workers.md)) | ✅ | 31 |
|
||
| v7.1.0 | Calendar sync + Meeting Notes ([doc](docs/V71_Calendar_Meetings.md)) | ✅ | 15 |
|
||
| v7.2.0 | SCIM + 2FA + Audit UI + gouvernance agents ([doc](docs/V72_Enterprise_SCIM_2FA.md)) | ✅ | 52 |
|
||
| v7.3.0 | Teamspaces + Verified + Polish + follow-ups ([doc](docs/V73_Wiki_Teamspaces_Polish.md)) | ✅ | 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 du `ROADMAP.md`): sidebar par teamspace, charts `number`/multi-DB, notif `page.updated` aux followers, unfurl `gitea:`/`github:`, page Settings → Audit — + 21 casses SSO corrigées (install `python3-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)
|