Files
flowdeck/CHANGELOG.md
T
bruno c1f854a54a
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
docs: mise à jour ROADMAP.md, CHANGELOG.md et docs/ROADMAP.md
ROADMAP.md:
- Ajout v2.4.0 (tags/user), v2.5.0 (admin panel), v2.6.0 (my account)
- Ajout v2.7.0 (Gitea P1), v2.7.1 (private pages)
- Roadmap future: v2.8.0 (Gitea P2), v2.9.0 (GitHub), v3.0.0 (Pro UX)

CHANGELOG.md:
- Entries v2.4.0 → v2.7.1 avec tous les détails
- Structure Added/Fixed cohérente

docs/ROADMAP.md (v3.0):
- Phase 1-5 checkboxes mises à jour (45/52 items done)
- Reste: GitHub OAuth, Quick switch, API tokens, sessions actives
2026-07-13 17:05:45 -04:00

9.1 KiB
Raw Blame History

Changelog — FlowDeck

v2.7.1 (2026-07-13) — Private Pages Gitea

Added

  • Table gitea_private_pages: pages FlowDeck locales liées à un projet Gitea (user_id, owner, repo)
  • API CRUD: GET/POST/PUT/DELETE /api/gitea/projects/{owner}/{repo}/private-pages
  • UI: liste des pages privées + éditeur titre/contenu dans le workspace Gitea
  • Sidebar: lien "Private Pages" dans l'arborescence du workspace
  • Persistance: les pages survivent au changement de workspace / session

Fixed

  • get_user_repos(limit=100) — bruno/flowdeck était tronqué à la page 2 (30 repos par défaut)

v2.7.0 (2026-07-13) — Intégration Gitea Phase 1

Added

  • OAuth2 Provider: Gitea comme fournisseur OAuth2 pour FlowDeck (Client ID/Secret dans .env)
  • Redirect URI dynamique: basé sur le header Host — fonctionne depuis localhost et 192.168.x.x
  • Workspace listing: 2 sections — My Workspaces + Gitea Projects (groupés par organisation)
  • Tabs par org: All | user | org1 | org2 avec compteurs de projets
  • Barre de recherche: filtrage live par nom/description dans Gitea Projects
  • Lazy tree: arborescence chargée un dossier à la fois (API Gitea GET /repos/{o}/{r}/contents)
  • File viewer: lecture fichiers Gitea avec décodage base64
  • Éditeur + commit: modifier un fichier et commiter dans Gitea avec message personnalisé
  • Delete fichier: suppression avec confirmation + commit
  • Arborescence dans le sidebar: comme un workspace local, avec lazy-load des sous-dossiers
  • Settings › Integrations: connecter/déconnecter Gitea (GET /api/gitea/status, DELETE /api/gitea/disconnect)
  • Fallback token admin: opérations GET utilisent le token serveur si pas de token OAuth utilisateur
  • Write ops protégées: commit et delete exigent un token OAuth utilisateur
  • Routes API: /api/gitea/orgs, /api/gitea/projects, /api/gitea/projects/{o}/{r}/tree, /api/gitea/projects/{o}/{r}/file, /api/gitea/projects/{o}/{r}/labels

Fixed

  • Bouton "Register with Gitea" ne crée plus de session admin fantôme (fallback retiré)
  • _sidebar_data gère le cookie gitea:owner:repo pour l'arborescence

v2.6.0 (2026-07-13) — My Account & Auth Locale

Added

  • Section My Account: modifier username, full name, email, mot de passe
  • Toggle mot de passe: bouton voir/cacher dans les formulaires login/register
  • Label "Email or username": login accepte les deux formats
  • Refresh cookie session: après modification du compte, le cookie est mis à jour
  • Register avec Gitea: boutons dynamiques "Login/Register with Gitea" selon l'onglet actif

Fixed

  • Session cookie non rafraîchi après PUT /api/settings/account (création nouvelle session)
  • Input login type="email" → type="text" (accepte usernames non-email)

v2.5.0 (2026-07-13) — Administration Avancée

Added

  • Premier compte = admin automatique: is_admin=1 pour le premier utilisateur créé
  • Panneau Admin dans Settings: visible uniquement pour les admins
  • Users & Roles: créer/modifier/supprimer utilisateurs, changer rôles
  • Table login_history: audit des connexions (IP, user_agent, timestamp)
  • Statistiques par utilisateur: workspaces, pages, dernière connexion
  • API /api/admin/*: users, stats, audit — protégées par admin_required
  • CSRF fix: token CSRF dans toutes les requêtes admin (adminFetch)

v2.4.0 (2026-07-13) — Tags Personnalisés par Utilisateur

Added

  • Tags isolés par user_id: chaque utilisateur voit uniquement ses propres tags
  • UNIQUE(name, user_id): remplace UNIQUE(name) dans la table tags
  • Migration: tags existants assignés au premier utilisateur
  • Filtrage transparent: l'API retourne les tags filtrés par user_id (session cookie)

Fixed

  • Affichage des tags dans le menu contextuel workspace (sync Alpine.js)
  • Création de tag avec couleur persistée
  • Fermeture auto du menu contextuel après ajout de tag
  • Filtrage par tags: toggleTagFilter() appelle doFilter()
  • Pastilles tags: fond = couleur du tag, sans rond séparé

v2.3.0 (2026-07-12) — Multi-Vues Workspace & Preview Panel

Added

  • Sélecteur de vue: Tree, List, Details, Title, Content — 5 modes d'affichage
  • Vue List: liste compacte avec Name, Type, Size, Modified
  • Vue Details: table complète avec Path, Author, Tags
  • Vue Title: grille de cartes avec icônes et métadonnées
  • Vue Content: liste avec aperçu inline (taille ou nombre d'items)
  • Preview Panel: panneau latéral droit avec contenu du fichier sélectionné
    • Header avec icône + titre + bouton fermer
    • Métadonnées (type, taille, date)
    • Tags affichés en chips
    • Corps avec rendu du contenu (blocks JSON → HTML, texte brut)
    • Actions: Open, Rename, Delete
    • Animation slide-in/out
  • Tri par date: options Oldest/Newest dans le selecteur de tri

v2.2.0 (2026-07-12) — Tags & Recherche Avancée

Added

  • Tags: système complet de tags avec tables tags + page_tags, CRUD API
  • API Tags: GET/POST/DELETE /api/local-workspace/items/{id}/tags, GET /api/local-workspace/tags
  • Vue Table enrichie: colonnes Name, Path, Size, Modified, Type, Author, Tags
  • Filtrage par tags: barre de chips avec compteurs, clic pour filtrer
  • Ajout/retrait tags inline: bouton + dans la table, chips avec × pour retirer
  • Tree endpoint enrichi: chaque nœud retourne size, size_display, created_at, updated_at, author, tags
  • Filtre "Dossiers": nouveau chip Folders dans la barre de filtres
  • Auto-switch table: quand recherche/filtre actif, passe en vue table automatiquement

v2.1.1 (2026-07-12) — Fix Arborescence Workspace

Fixed

  • Arborescence: création fichier/dossier dans un sous-dossier met à jour l'arbre sans rechargement
  • parentFolder: corrigé le bug où parentFolder était nullifié avant l'insertion dans l'arbre JS
  • displayTree: nouvelle référence array après chaque mutation pour forcer le re-render Alpine.js
  • doSort/doFilter: gèrent maintenant le cas où un filtre/tri est actif après création

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

  • FormulaEngine: 19 fonctions (prop, if, concat, round, now, today, dateAdd, replace, ...)
  • 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: 21 types Notion
  • Service property_types.py: validation, formatage, auto-values

v1.3.0 (2026-07-10) — Database Concept

Added

  • 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

  • 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