docs: CHANGELOG, README, WORKLOAD updated for v2.1.0 — complete
- CHANGELOG: all 9 versions documented (v1.3 → v2.1) - README: version 2.1.0, full feature list, 73/73 tests - WORKLOAD: rewritten, 52/52 features (100%), architecture summary
This commit is contained in:
+68
-67
@@ -1,85 +1,86 @@
|
||||
# Changelog — FlowDeck
|
||||
|
||||
## v2.1.0 (2026-07-10) — Intégrations Avancées
|
||||
|
||||
### Added
|
||||
- **API publique**: `/api/v1` (collections, pages, my-tasks) avec token auth
|
||||
- **Token generation**: `POST /api/v1/token`
|
||||
- **Webhooks sortants**: `GET/POST/DELETE /workspace/webhooks` + dispatcher
|
||||
- **PWA**: `GET /manifest.json`
|
||||
- **CSRF**: `/api/v1` exempté
|
||||
|
||||
### Tests
|
||||
- 73/73 passent (+6 tests v2.1)
|
||||
|
||||
## v2.0.0 (2026-07-10) — Multi-User Workspaces & Editor Complete
|
||||
|
||||
### Added
|
||||
- **Workspaces**: tables `workspaces` + `workspace_members`, CRUD API, roles admin/editor/commenter/viewer
|
||||
- **Comments**: table `comments` avec thread (parent_id), resolved
|
||||
- **Page History**: table `page_history`, snapshot JSON
|
||||
- **Favorites**: table `favorites`, add/remove/list
|
||||
- **Templates**: `database_templates` + `page_templates`, apply API
|
||||
- **CSV Import/Export**: `POST .../import/csv`, `GET .../export/csv`
|
||||
- **Public Sharing**: `GET /workspace/public/{id}` (read-only, no auth)
|
||||
|
||||
### Tests
|
||||
- 67/67 passent (+7 tests v2.0)
|
||||
|
||||
## v1.9.0 (2026-07-10) — My Tasks Dashboard
|
||||
|
||||
### Added
|
||||
- **My Tasks**: `GET /my-tasks` (HTML), `GET /my-tasks/api` (JSON)
|
||||
- Agrégation cross-collection, vues All/Today/Overdue/Next 7 days
|
||||
|
||||
## v1.8.0 (2026-07-10) — Sub-items & Dependencies
|
||||
|
||||
### Added
|
||||
- **Sub-items**: parent_id auto-référence, GET/POST sub-items
|
||||
- **Status aggregate**: `GET .../status-aggregate`
|
||||
- **Dependencies**: `POST .../dependencies`, `POST .../check-deps`
|
||||
|
||||
## v1.7.0 (2026-07-10) — Vues Améliorées
|
||||
|
||||
### Added
|
||||
- **View config**: `PUT /db/views/{id}/config` (group_by, card_size, cover, visible)
|
||||
- **Save view as**: `POST /db/{id}/views/save-as`
|
||||
- **List views**: `GET /db/{id}/views/api`
|
||||
|
||||
## v1.6.0 (2026-07-10) — Vues Manquantes
|
||||
|
||||
### Added
|
||||
- **Calendar**: grid mensuel, navigation mois
|
||||
- **Gallery**: cartes visuelles, card_size configurable
|
||||
- **List**: vue compacte avec preview
|
||||
- **Timeline**: barres horizontales Gantt
|
||||
- **Table**: rendu SSR avec colonnes properties
|
||||
- **View tabs**: navigation Table/Board/Calendar/Gallery/List/Timeline
|
||||
|
||||
## v1.5.0 (2026-07-10) — Relations & Rollups
|
||||
|
||||
### Added
|
||||
- **Type `relation`**: lien bidirectionnel entre collections avec reverse_name auto
|
||||
- API: `POST /db/{id}/properties/relation`, `POST /db/{id}/properties/relation/link`
|
||||
- **FormulaEngine**: 19 fonctions (prop, if, concat, round, now, today, dateAdd, replace, ...)
|
||||
- API: `POST /db/formula/evaluate`
|
||||
- **RollupEngine**: 12 fonctions (count, sum, avg, min, max, range, unique, percent_checked, ...)
|
||||
- API: `POST /db/rollup/compute`
|
||||
- **Tests**: 5 nouveaux tests (43/43 passent, +13%)
|
||||
|
||||
### Fixed
|
||||
- FKs `related_collection_id`, `relation_property_id`, `target_property_id` → `ON DELETE SET NULL`
|
||||
|
||||
### Changed
|
||||
- Version 1.4.0 → 1.5.0
|
||||
- **RollupEngine**: 12 agrégations (count, sum, avg, min, max, range, unique, percent_checked)
|
||||
- **Relation**: lien bidirectionnel, API create/link
|
||||
|
||||
## v1.4.0 (2026-07-10) — Propriétés Avancées
|
||||
|
||||
### Added
|
||||
- **Table `collection_properties`**: remplace `project_properties`, liée aux collections
|
||||
- Types: title, text, number, select, multi_select, status, date, person, checkbox, url, email, phone, files, unique_id
|
||||
- Auto-propriétés: created_time, created_by, last_edited_time, last_edited_by
|
||||
- Relations/Rollups/Formulas: schéma prêt (colonnes dispo, implémentation v1.5)
|
||||
- **Service `property_types.py`**: 21 types définis, validation, formatage, auto-values
|
||||
- **API propriétés**: `GET /db/property-types/api`, CRUD `/{id}/properties/api`, `PUT/DELETE /properties/{id}/api`
|
||||
- **Tests**: 4 nouveaux tests (38/38 passent, +12%)
|
||||
|
||||
### Changed
|
||||
- Version 1.3.0 → 1.4.0
|
||||
- **Table `collection_properties`**: 21 types Notion
|
||||
- **Service `property_types.py`**: validation, formatage, auto-values
|
||||
|
||||
## v1.3.0 (2026-07-10) — Database Concept
|
||||
|
||||
### Added
|
||||
- **Nouvelles tables**: `collections`, `collection_pages`, `collection_views` — fondation Database Notion
|
||||
- **Router `/db`**: API CRUD complète pour collections et pages
|
||||
- `GET/POST /db/api` — lister/créer collections
|
||||
- `GET/PUT/DELETE /db/api/{id}` — lire/modifier/supprimer collection
|
||||
- `GET/POST /db/{id}/pages/api` — lister/créer pages
|
||||
- `GET/PUT/DELETE /db/pages/{id}/api` — CRUD page standalone
|
||||
- `GET /db/{id}` — vue HTML basique par collection
|
||||
- **GiteaBoardCompat**: adaptateur boards Gitea legacy → Collections
|
||||
- `GET /db/boards/api` — liste boards comme pseudo-collections
|
||||
- `GET /db/board/{owner}/{repo}/api` — board spécifique comme collection
|
||||
- `POST /db/board/{owner}/{repo}/sync` — sync board → vraie collection
|
||||
- **Tests**: 6 nouveaux tests (34/34 passent, +21%)
|
||||
- **CSRF**: `/db/` exempté (API interne)
|
||||
|
||||
### Changed
|
||||
- Version 1.0.0 → 1.3.0 (main.py, api.py, health)
|
||||
- `db.py` init: 3 nouvelles tables + index
|
||||
- Architecture DB: `collection_pages` utilise `property_values_json` (JSON flexible)
|
||||
- **Tables**: `collections`, `collection_pages`, `collection_views`
|
||||
- **Router `/db`**: CRUD collections + pages (16 endpoints)
|
||||
- **GiteaBoardCompat**: adaptateur boards legacy → Collections
|
||||
|
||||
## v1.0.0 (2026-07-08) — Production
|
||||
|
||||
### Added
|
||||
- **UI Notion-complete**: sidebar 240px, topbar 44px, dark mode (#191919/#222/#333)
|
||||
- **5 vues**: Kanban, Detailed Board, Table, Status Overview (SVG donut), Team Load (stacked bars)
|
||||
- **Filtres cumulables AND** avec status dropdown checkboxes, filtres par assignee/tag
|
||||
- **Tri multi-critères** hiérarchique (N niveaux, asc/desc)
|
||||
- **Card detail modal**: titre éditable, propriétés, checklists, commentaires Gitea
|
||||
- **Création d'issues inline** depuis le board
|
||||
- **Propriétés custom** par projet: select, multi_select, date, person, text
|
||||
- **AI keywords**: extraction automatique depuis labels + body, table `ai_keywords`
|
||||
- **Sync API**: `POST /board/api/sync/{owner}/{repo}` — bidirectionnelle complète
|
||||
- **CI/CD**: Gitea Actions workflow
|
||||
- **Tests**: 25 tests, couvrant toutes les vues, APIs, filtres, tris
|
||||
|
||||
### Changed
|
||||
- FastAPI `on_event` → `lifespan` handler (deprecation fix)
|
||||
- Version bump 0.3.0 → 1.0.0
|
||||
- CSS: 31 KB design system Notion (700+ lignes)
|
||||
- 10 templates Jinja2 (base, board, card, detail, table, status, team, detailed, fragment, dashboard)
|
||||
|
||||
### Fixed
|
||||
- Team Load bug: status key mismatch (done → complete)
|
||||
- CSRF: 403 protection vérifiée sur toutes les routes POST
|
||||
|
||||
## v0.3.0 (2026-06-??)
|
||||
- OAuth2 Gitea, CSRF, rate limiting, webhooks
|
||||
|
||||
## v0.2.0 (2026-05-??)
|
||||
- Dashboard + Board Kanban + Gitea sync + Notes + Docker
|
||||
- FastAPI lifespan, 28 tests, CI/CD Gitea Actions, CSS 31KB, 10 templates
|
||||
- 5 vues: Kanban, Table, Status Overview, Team Load, Detailed Board
|
||||
- Filtres cumulables AND, tri multi-critères
|
||||
- Card detail modal, checklists, commentaires Gitea
|
||||
- Propriétés custom, AI keywords, sync API
|
||||
|
||||
Reference in New Issue
Block a user