La console web¶
Une interface pour tout ce que fait le CLI, avec deux choses qu'un terminal ne sait pas bien faire : réviser confortablement et voir l'état d'un coup d'œil.
https://app.prod.aim.dyneco.io
Connexion avec ton compte professionnel. Aucune installation.
Ce qu'elle apporte par rapport au CLI¶
La revue en lot. C'était le point faible du produit : valider cinquante faits un par un dans un terminal est assez pénible pour qu'on ne le fasse pas — et un pack non révisé est un pack dont on ne se sert qu'à moitié. Filtre par type, sélection multiple, approbation ou rejet d'un clic.
L'historique des faits. Chaque changement significatif conserve l'état antérieur : on voit l'évolution d'une règle, qui l'a modifiée et quand.
L'accès sans installation. Une équipe côté client reçoit une URL, pas une procédure d'installation.
Les écrans¶
| Écran | Ce qu'on y fait |
|---|---|
| Clients | Liste, création, rôle sur chacun |
| Aperçu | Compteurs, répartition des faits par type, lancement des traitements |
| Documents | Dépôt par glisser-déposer, suppression, extraction et consolidation |
| Faits & revue | Filtres, recherche, sélection multiple, fiche détaillée avec provenance et historique |
| Pack | Ce que l'agent recevra, et le test de portée |
| Activité | Changements de faits et journal d'audit |
| Accès | Membres et rôles |
| Clés d'API | Création et révocation pour les agents |
Le test de portée¶
L'outil le plus utile de la console, sur l'écran Pack. Tu saisis un chemin de fichier et tu vois exactement les règles que l'agent recevra en l'écrivant.
internal/api/payment_handler.go → 11 règles spécifiques, 27 universelles
db/migration/V3__add_col.sql → 2 règles spécifiques
C'est le moyen le plus rapide de repérer une portée erronée : si tu t'attends à voir
une règle et qu'elle n'apparaît pas, son scope est faux.
Les rôles s'appliquent¶
L'interface n'est jamais plus permissive que l'API — elle appelle les mêmes routes, avec ton jeton.
| Rôle | Dans la console |
|---|---|
reader |
Lecture seule : ni dépôt de fichiers, ni revue, ni gestion d'accès |
contributor |
Tout sauf la gestion des accès |
owner |
Tout |
Ce qui reste au CLI¶
L'ingestion d'un dépôt de code. Elle est calculée sur ta machine, précisément pour que le code du client n'en sorte pas. Un navigateur ne peut pas lire ton disque, et c'est très bien ainsi.
L'écriture du pack dans un dépôt. aim sync a besoin de savoir où se trouve le
dépôt sur ton disque.
Autrement dit : la console gère le contenu, le CLI fait le lien avec ta machine.
Sous le capot¶
Application à page unique en React, authentifiée par Entra en flux d'autorisation avec PKCE — aucun secret client, puisqu'un secret embarqué dans un navigateur n'en est pas un. Elle n'accède jamais à la base : elle appelle la même API que le CLI, avec ton jeton, de sorte que le cloisonnement n'est implémenté qu'une fois.
La configuration (URL de l'API, identifiants d'application) est générée au démarrage du conteneur, pas figée dans le bundle : la même image peut servir un autre environnement sans être reconstruite.