Aller au contenu

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.

aim add --repo ~/code/payment-service

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.