Commit Graph
6 Commits
Author SHA1 Message Date
Spark 19b27698f2 feat(fusion): serveur MCP complété (ACC-5.1) + pont MCP ObsiGate (ACC-2.2) — 7.83.0
FlowDeck CI / test (push) Failing after 3h11m23s
FlowDeck CI / lint (push) Failing after 5s
FlowDeck CI / docker (push) Skipped
ACC-5.1 (#24) — app/routers/mcp_server.py : catalogue §7.2 complété
(list_projects, get_project, read_page tronqué proprement,
list_project_tasks), search_pages en plein texte, liens profonds +
kind sur chaque résultat, scopes du jeton appliqués (écriture
refusée -32002 sans scope write) et journalisation §7.4 de chaque
tools/call dans api_audit_log (clés d'arguments seulement).

ACC-2.2 (#20) — pont MCP Flowdeck → ObsiGate, côté client :
- mcp_client : serveurs à session (capture/réémission de
  Mcp-Session-Id, handshake avant tools/call), décodage SSE
  multi-messages par id de réponse, classification des outils à la
  découverte (readOnlyHint sinon heuristique ; lecture par défaut).
- preset connecteur « obsigate » (URL dérivée dev/prod), kinds MCP
  factorisés (connectors.MCP_KINDS), option dans le panneau agent.
- garde-fou n° 2 : permission_manager.is_write_tool couvre les
  outils MCP écrivants → portes politique d'approbation
  (agent_engine) et rôles (assert_can) ; McpTool bloque tout
  apply_* distant (patron §7.5).

Tests : test_fusion_mcp_server 18, nouveau test_fusion_pont_obsigate
7 (faux serveur ObsiGate à session stricte via le vrai _rpc).
Preuve réelle T0-T5 : attend la clé ObsiGate dédiée (1 vault) et
Q-A/Q-B côté Bruno.
2026-10-26 12:38:04 -04:00
Spark 133156580c 7.78.0 — MCP : périmètre du propriétaire du jeton
FlowDeck CI / lint (push) Canceled after 0s
FlowDeck CI / test (push) Canceled after 0s
FlowDeck CI / docker (push) Canceled after 0s
list_workspaces/get_workspace filtrés par user_workspace_ids ;
collections filtrées par workspace effectif ; hors périmètre =
introuvable, lectures et écritures. Test deux comptes.
2026-10-22 09:22:19 -04:00
Spark f6782ee5b3 7.77.0 — corbeille réparée (FK favorites/recents) + MCP workspaces
FlowDeck CI / lint (push) Failing after 1m28s
FlowDeck CI / docker (push) Canceled after 0s
FlowDeck CI / test (push) Canceled after 2h18m54s
- detach_page_references : nettoyage des références NO ACTION avant
  toute suppression définitive (unitaire, Empty Trash, purge 30 j)
- MCP : list_workspaces / get_workspace ; descriptions collections
  clarifiées (bases de données, pas des workspaces)
- 96 tests verts sur le périmètre (MCP, trash, cohérence)
2026-10-22 09:03:43 -04:00
Spark fae335f808 7.76.1 — correctif : /mcp exempté du CSRF (client Bearer machine-à-machine)
FlowDeck CI / lint (push) Failing after 1m28s
FlowDeck CI / test (push) Failing after 22m55s
FlowDeck CI / docker (push) Skipped
Le middleware CSRF rejetait tout POST /mcp en 403 avant la route ;
les tests passaient car leur client porte session + CSRF. Test de
régression : client anonyme Bearer seul (200 avec jeton, 401 sans).
2026-10-22 08:42:42 -04:00
Spark e36f80714c Flowdeck 7.76.0 — serveur MCP en écriture (create_page, update_page, create_collection)
- create_page: collection_id (int, requis), title (string, requis), icon (optionnel), properties (objet optionnel -> property_values_json)
- update_page: id (int, requis), title (optionnel), properties (objet optionnel, remplace property_values_json)
- create_collection: name (requis), description (optionnel), icon (optionnel) + vue par défaut
- Aucune suppression; erreurs métier en {"erreur": "..."}; GET /mcp read_only=false et liste mise à jour
- Tests étendus: création+relecture, mise à jour, create_collection, erreurs, 401 sans jeton sur écriture
2026-10-22 03:29:09 +00:00
Spark 9fe5114669 7.75.0 — Fusion : serveur MCP lecture seule + panneau Spark
FlowDeck CI / test (push) Failing after 27m36s
FlowDeck CI / lint (push) Failing after 1m27s
FlowDeck CI / docker (push) Skipped
- POST /mcp (JSON-RPC, dialecte TikTak/Kanbante) : list_collections,
  get_collection, get_page, search_pages, list_repos ; auth par les
  jetons d'API personnels existants (api_tokens)
- Panneau Spark vendangé de TikTak, branché sur l'action spark de la
  barre commune ; CSP connect-src : exception nommée agent.dracodev.net
- Tests : test_fusion_mcp_server (3) verts ; audit CSP mis à jour ;
  2 échecs locaux préexistants (DNS) inchangés
2026-10-21 22:54:42 -04:00