labfy-investigation/docs/architecture/decisions/0001-web-local-first.md
fy59 d65f9559e6 chore(checkpoint): preserve local investigation workbench
Preserve the local graph-first investigation stack through macro V1.

Include reviewed source, tests, contracts, documentation and synthetic assets.

Retain the standalone financial V21 test foundation without runtime migration.

Runtime remains V20; operational JobStore remains V3.

Local experimental checkpoint, not a stable release.
2026-09-27 08:34:46 +02:00

48 lines
2 KiB
Markdown

# ADR-0001 — Interface Web local-first
- **Statut :** accepté pour la cible
- **Date :** 2026-09-25
- **Portée :** direction v0.1.0 ; aucune implémentation Web dans J0
## Contexte
GTK4 fournit l'interface `CURRENT`. La cible doit rendre le graphe, les vues
spécialisées, les actions contextuelles et la provenance accessibles dans un
espace de travail cohérent, sans transformer Web en dépendance cloud.
## Décision
L'interface principale `TARGET` sera Web et locale. Le cœur reste l'autorité
pour les données, les mutations, le scope, les capabilities et les budgets.
SQLite, preuves, artefacts et rapports restent locaux par défaut. GTK coexiste
jusqu'à ce qu'un remplacement validé couvre les parcours nécessaires.
## Conséquences
- la future API écoute en loopback par défaut et applique authentification,
contrôle `Host`/`Origin`, protection CSRF et défense contre le DNS rebinding ;
- le frontend ne lit ni SQLite ni les preuves directement ;
- les contrats API et événements sont versionnés et permettent reconnexion,
rattrapage après un trou et contrôle de révision ;
- le packaging et la maintenance d'une chaîne frontend deviennent des coûts à
mesurer avant choix.
## Alternatives examinées
- **GTK seul :** préserve l'existant mais ne porte pas à lui seul la direction
d'espace de travail Web retenue ;
- **application cloud :** rejetée comme dépendance obligatoire, contraire au
contrat local-first ;
- **réécriture immédiate :** rejetée, car elle mettrait en risque les parcours
fonctionnels et les services utiles.
## Décisions encore ouvertes
Framework, moteur de graphe, serveur HTTP, SSE/WebSocket/polling et packaging
restent `UNDECIDED` jusqu'à comparaison et prototype synthétique J2.
## Révision
Cette décision peut être réexaminée si un prototype démontre une impossibilité
de satisfaire simultanément sécurité locale, accessibilité, performances et
distribution, avec mesures reproductibles à l'appui.