Database foundation: - New tables: collections, collection_pages, collection_views - Router /db with full CRUD API - GiteaBoardCompat adapter for legacy board compatibility - CSRF exemption for /db/ routes - 34/34 tests pass - Version bump 1.0.0 → 1.3.0 - Deployed and verified on Docker port 8080
55 lines
2.5 KiB
Markdown
55 lines
2.5 KiB
Markdown
# Changelog — FlowDeck
|
|
|
|
## 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)
|
|
|
|
## 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
|