Files
flowdeck/README.md
T
bruno 3a74ea8bbd
FlowDeck CI / lint (push) Canceled after 0s
FlowDeck CI / test (push) Canceled after 0s
FlowDeck CI / docker (push) Canceled after 0s
fix: A35 TERMINÉ — drift Python 3.12→3.13 aligné, rebuild validé (v7.35.0)
Dernier reliquat de l'A35 (docs/périmètre dérivés) :

- Dockerfile : python:3.12-slim → python:3.13-slim (builder + runtime)
- .gitea/workflows/ci.yml : python-version '3.12' → '3.13' (lint + test)
- README.md : « Python 3.12 » et « python:3.12-slim » → 3.13 (×2)
- pyproject.toml : ruff target-version py312 → py313 (0 nouvelle
  remarque ruff)
- zéro référence 3.12 résiduelle ; uv.lock (requires-python >=3.13) et
  le venv (3.13.14) étaient déjà bons

Validation (le point laissé « à faire par un rebuild d'image ») :
- docker build VERT sur python:3.13-slim → image flowdeck:a35-py313
- dans le conteneur : python -V = 3.13.16, `import app.main` OK
  (v7.35.0) → wheels requirements.txt construits + importables sur 3.13

A35 = TERMINÉ (OpenAPI/README/titre dupliqué faits en 7.3.9 + drift).

suite **1093/1093** · ruff OK (target py313) · docs à jour
2026-10-02 09:39:02 -04:00

102 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FlowDeck
Clone complet de **Notion** intégré nativement à **Gitea** — Databases, Pages, Kanban, Calendar, Gallery, Timeline, List, Multi-Users.
> **7.3.9** — audit sécurité P0→P2 (A1–A26, A33–A36, A43 : auth 401 partout, CSRF sans exemption cookie-auth, SSRF, autoescape, logs d'exceptions) · avant : v6.7.x SSO/SAML + OIDC, v6.6.x agent API, v6.5.x synced blocks, v6.4.0 realtime, PWA offline
## Quick Start
```bash
cp .env.example .env
# Éditer .env avec votre token Gitea
docker compose up -d
# → http://localhost:8080
```
## Features
### Database & Properties (v1.3–v1.5)
- **Collections**: databases indépendantes de Gitea, schéma JSON
- **21 types de propriétés**: title, text, number, select, status, date, person, checkbox, url, email, phone, files, unique_id, relation, rollup, formula + auto-props
- **Relations bidirectionnelles** + **Rollups** (12 agrégations) + **Formulas** (19 fonctions)
- **GiteaBoardCompat**: adaptateur boards Gitea legacy → Collections
### Vues Multiples (v1.6–v1.7)
- **Table**: colonnes SSR, triables
- **Board (Kanban)**: colonnes, groupes, drag & drop
- **Calendar**: grid mensuel, navigation, événements
- **Gallery**: cartes visuelles, card_size configurable
- **List**: vue compacte avec preview
- **Timeline**: barres Gantt horizontales
- **Status Overview**: Donut chart SVG
- **Team Load**: Barres empilées
### Sub-items & Dépendances (v1.8)
- **Sub-items**: parent_id auto-référence, hiérarchie illimitée
- **Status aggregate**: parent = Done si tous enfants Done
- **Dependencies**: Blocking/Blocked by, contrainte de transition
### My Tasks (v1.9)
- Dashboard cross-collection agrégeant toutes les tâches assignées
- Vues: All, Today, Overdue, Next 7 days
### Multi-User & Collaboratif (v2.0)
- **Workspaces**: espaces partagés avec rôles (admin, editor, commenter, viewer)
- **Comments**: commentaires threadés sur les pages
- **Page History**: historique des modifications avec snapshots
- **Favorites**: favoris par utilisateur
- **Templates**: database + page templates
- **CSV Import/Export**
- **Public Sharing**: lien de partage lecture seule
### API & Intégrations (v6.3–v6.6)
- **API publique REST v2**: `/api/v2` — CRUD complet, Bearer + scopes `read/write/admin`, pagination, filtres, erreurs RFC 7807, idempotence, audit — [guide](docs/API_GUIDE_V6.md) · OpenAPI `/docs`
- **API agent publique (v6.6)**: `/api/v2/agents/*` — agents, conversations, **run synchrone JSON**, journal d'actions + rollback, `trigger` externe
- **Marketplace de skills (v6.6)**: export/import portable + galerie de 6 presets installables (`/api/v2/skills/*`), section « Galerie » dans la palette `/` de l'agent
- **API publique v1**: `/api/v1` (lecture seule, compat)
- **Webhooks sortants**: gestion + dispatcher d'événements (CRUD v2)
- **Web Clipper**: extension navigateur Manifest V3 (article/sélection/bookmark/screenshot)
- **PWA**: manifest.json + service worker, offline support
### UI Notion-Style (v1.1–v1.2)
- Sidebar gauche avec sections hiérarchiques
- Topbar avec breadcrumbs (workspace > projet > page)
- Dark mode Notion: `#191919` fond, `#222222` sidebar
- Éditeur de blocs: slash menu (/), navigation clavier, placeholders
### Intégration Gitea
- Issues Gitea → cartes, sync labels, milestones, assignees, due dates
- OAuth2 Gitea, CSRF, rate limiting, webhooks
## Stack
| Couche | Techno |
|--------|--------|
| Frontend | Jinja2 + HTMX + Alpine.js + SortableJS + CSS |
| Backend | Python 3.13 + FastAPI + httpx |
| BDD | SQLite (WAL, 21 tables) — `/data/flowdeck.db` |
| Déploiement | Docker (python:3.13-slim), docker-compose |
## Configuration
```env
GITEA_URL=https://git.dracodev.net
GITEA_TOKEN=votre_token
APP_PORT=8080
DATABASE_URL=sqlite:////data/flowdeck.db
```
## Tests
```bash
python3 -m pytest tests/ -v # 764/764 passent (0 skip)
```
## Roadmap
Voir [ROADMAP.md](ROADMAP.md) — 7/7 blocs complétés, 52/52 features ✅
## Licence
MIT