v0.3.0: OAuth2, CSRF, rate limiting, issue CRUD, webhooks, card detail, checklists
- OAuth2 Gitea (login/callback/logout) with fallback admin mode
- Session management with signed cookies (itsdangerous, 7 days)
- CSRF protection middleware on all POST/PUT/PATCH/DELETE
- Rate limiting in-memory (60 req/min per IP)
- Issue creation from FlowDeck (POST /api/issues/{owner}/{repo})
- Inline issue editing (PATCH /api/issues/{owner}/{repo}/{issue_id})
- Card detail modal (double-click): description, labels, comments
- Checklists with toggleable items (CRUD endpoints + UI)
- Priority + due date editable on cards
- Webhook receiver (POST /api/webhook) with HMAC-SHA256
- Auto-register/status webhooks for repos
- GiteaClient: create_issue, update_issue, get_comments, webhooks, collaborators
- New DB tables: users, user_tokens, checklists, checklist_items
- CSS: modal, forms, checklists, comments, PR section
This commit is contained in:
+37
-24
@@ -1,32 +1,45 @@
|
||||
# Changelog
|
||||
|
||||
## [0.2.0] — 2026-07-08 — "FlowDeck"
|
||||
## [0.3.0] — 2026-07-08 — "Auth + Card Detail + Webhooks"
|
||||
|
||||
### Added
|
||||
- Renamed from Kanbante to FlowDeck
|
||||
- Dashboard listant tous les projets Gitea (user + orgs)
|
||||
- Board Kanban 5 colonnes : Backlog, À faire, En cours, Révision, Terminé
|
||||
- Issues Gitea → cartes avec filtres (milestone, label, assignee)
|
||||
- Drag & drop (SortableJS) avec persistance SQLite
|
||||
- Sync bidirectionnelle : colonne → label Gitea, Terminé → close issue
|
||||
- Colonnes personnalisables + mapping colonne→label
|
||||
- WIP limits configurables
|
||||
- Notes Markdown par projet
|
||||
- API REST v1 : /api/health, /api/stats, /api/projects, /api/move, /api/col-mapping
|
||||
- Thème clair/sombre avec persistance localStorage
|
||||
- Cache Gitea in-memory avec TTL
|
||||
- Docker + docker-compose
|
||||
- Health check enrichi (DB + Gitea)
|
||||
- Filtres intra-board (milestone, label, assignee)
|
||||
- Pull requests affichées séparément
|
||||
- Priorités (Low/Medium/High/Urgent) + dates d'échéance
|
||||
- Architecture documentée (ARCHITECTURE.md)
|
||||
- Roadmap (ROADMAP.md)
|
||||
### Added — Auth & Multi-user (v0.3.0)
|
||||
- OAuth2 Gitea (login via Gitea) — /auth/login, /auth/callback, /auth/logout
|
||||
- Token par utilisateur stocké en BDD (user_tokens table)
|
||||
- Session signed cookies (itsdangerous) — 7 jours
|
||||
- CSRF protection middleware sur tous les POST/PUT/PATCH/DELETE
|
||||
- Rate limiting in-memory (60 req/min par IP, configurable)
|
||||
- Fallback mode sans OAuth: connexion automatique en tant qu'admin
|
||||
|
||||
### Added — Issue Creation & Editing (v0.5.0 partial)
|
||||
- Création d'issues depuis FlowDeck (POST /api/issues/{owner}/{repo})
|
||||
- Formulaire inline avec labels, milestone, assignee
|
||||
- Édition de titre inline (PATCH /api/issues/{owner}/{repo}/{issue_id})
|
||||
- Card metadata: priority + due date (POST /api/card/{owner}/{repo}/{issue_id})
|
||||
|
||||
### Added — Webhooks (v0.4.0)
|
||||
- Endpoint webhook receiver: POST /api/webhook
|
||||
- Signature HMAC-SHA256 verification
|
||||
- Gère: issue opened/closed/labeled/deleted, PR, repository
|
||||
- Auto-registration: POST /api/webhook/register/{owner}/{repo}
|
||||
- Webhook status: GET /api/webhook/status/{owner}/{repo}
|
||||
- GiteaClient: list_webhooks, create_webhook, delete_webhook
|
||||
|
||||
### Added — Card Detail + Checklists (v0.5.0)
|
||||
- Modal détail carte (double-clic): description, labels, assignee, milestone, commentaires
|
||||
- Checklists avec items checkable + ajout/suppression inline
|
||||
- Priorités (Low/Medium/High/Urgent) + dates d'échéance éditables
|
||||
- Commentaires Gitea affichés dans le modal
|
||||
- GET /api/issues/{owner}/{repo}/{issue_id} — détail complet
|
||||
- GET /api/collaborators/{owner}/{repo} — pour assignee picker
|
||||
- Bouton "🔔 Webhook" pour enregistrer le webhook Gitea
|
||||
|
||||
### Stack
|
||||
- FastAPI + Uvicorn + httpx + Jinja2 + HTMX + Alpine.js + SortableJS
|
||||
- SQLite WAL mode
|
||||
- Python 3.12-slim Docker
|
||||
- + itsdangerous (signed sessions)
|
||||
- + slowapi (rate limiting, optional)
|
||||
- + starlette SessionMiddleware pour OAuth2 state
|
||||
|
||||
## [0.2.0] — 2026-07-08 — "FlowDeck"
|
||||
- Dashboard + Board Kanban + Gitea sync + Notes + Docker
|
||||
|
||||
## [0.1.0] — Kanbante (non publié)
|
||||
- MVP initial
|
||||
|
||||
Reference in New Issue
Block a user