[ACC-1.3] Table external_ref et section « Liens » (projet/page) #18

Open
opened 2026-10-20 21:19:43 -04:00 by bruno · 1 comment
Owner

Brief pour Hermes. Table external_ref (schéma d'ACC-0.2) et section « Liens » dans le détail d'un projet/page : références vers notes ObsiGate, tâches TikTak, cartes Kanbante — des références, jamais des copies.

Dépend de : ACC-0.2. Épopée : Projets/fusion-trois-apps#5.

**Brief pour Hermes.** Table `external_ref` (schéma d'ACC-0.2) et section « Liens » dans le détail d'un projet/page : références vers notes ObsiGate, tâches TikTak, cartes Kanbante — des références, jamais des copies. Dépend de : ACC-0.2. Épopée : Projets/fusion-trois-apps#5.
bruno added this to the Fusion — accès centralisé milestone 2026-10-20 21:19:43 -04:00
bruno added the kanban_Backlog label 2026-10-20 21:19:43 -04:00
bruno added the kanban:in_progress label 2026-10-20 22:27:48 -04:00
bruno added kanban:review and removed kanban:in_progress labels 2026-10-20 23:15:45 -04:00
Author
Owner

✅ Livré en Flowdeck 7.72.0 — en Révision (Spark, 2026-10-20). Commit d8548ee.

Migration 50 (external_refs), service app/services/external_refs.py (parseur des URL profondes du contrat figé) et endpoints GET/POST /api/pages/{id}/refs, GET/POST /api/collections/{id}/refs, DELETE /api/refs/{id} — permissions page/collection respectées (PermissionManager), 422 explicite si l'URL n'est pas une forme du contrat. Section « Liens » dans l'éditeur de page (rendue serveur depuis view_page, ajout/retrait via static/js/draco-refs.js avec le jeton CSRF de l'app).
Route profonde du contrat : GET /collections/{id} → redirection 303 vers la vue native /db/{id} (404 propre si inconnue) ; /pages/{id} existait déjà — le contrat commons a été corrigé en v0.1.1.

Contrôles : 18 tests dédiés verts ; suite complète locale 1464 verts / 30 échecs — dont 29 échecs préexistants (reproduits à l'identique sur l'arbre pristine 12beab0 : connecteurs, llm_config, webhooks — dépendants de l'environnement local) et 1 échec de flakiness sous exécution parallèle (test_workspace_crud, vert en relance isolée sur l'arbre livré). Aucune régression introduite par ce changement ; ruff à zéro sur les fichiers touchés, eslint propre.

Bruno : validation demandée (colonne Révision).

✅ **Livré en Flowdeck 7.72.0 — en Révision** (Spark, 2026-10-20). Commit `d8548ee`. Migration **50** (`external_refs`), service `app/services/external_refs.py` (parseur des URL profondes du contrat figé) et endpoints `GET/POST /api/pages/{id}/refs`, `GET/POST /api/collections/{id}/refs`, `DELETE /api/refs/{id}` — permissions page/collection respectées (PermissionManager), 422 explicite si l'URL n'est pas une forme du contrat. Section « Liens » dans l'éditeur de page (rendue serveur depuis `view_page`, ajout/retrait via `static/js/draco-refs.js` avec le jeton CSRF de l'app). Route profonde du contrat : `GET /collections/{id}` → redirection 303 vers la vue native `/db/{id}` (404 propre si inconnue) ; `/pages/{id}` existait déjà — le contrat commons a été corrigé en v0.1.1. Contrôles : 18 tests dédiés verts ; suite complète locale 1464 verts / 30 échecs — dont **29 échecs préexistants** (reproduits à l'identique sur l'arbre pristine 12beab0 : connecteurs, llm_config, webhooks — dépendants de l'environnement local) et 1 échec de flakiness sous exécution parallèle (test_workspace_crud, vert en relance isolée sur l'arbre livré). Aucune régression introduite par ce changement ; ruff à zéro sur les fichiers touchés, eslint propre. Bruno : validation demandée (colonne Révision).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bruno/flowdeck#18