Grace
Référence

Dashboard

L'app web : pages, modèle installé vs catalogue, endpoints /web/*.

platform/frontend/ — React 19 + Vite + Tailwind v4 + react-router + Mermaid. Auth par session Better Auth (cookie httpOnly), client dans src/lib/auth-client.ts (plugins organization, admin, multiSession, sso). Tape l'API backend sous /web/* ; l'auth vit sous /api/auth/*.

Connexion & organisations

Trois voies de connexion : e-mail/mot de passe, Google OAuth, ou le SSO de son organisation (OIDC/SAML, routé par domaine e-mail). Après connexion, l'utilisateur crée ou rejoint une organisation (tenant) ; toute nouvelle organisation démarre en « en attente d'approbation » — le dashboard reste utilisable mais l'accès MCP n'est ouvert qu'une fois l'organisation approuvée par un admin plateforme. Un utilisateur membre de plusieurs organisations bascule de l'une à l'autre via la palette de commandes (⌘K), sans se ré-authentifier (multi-session).

Pages

RouteContenu
/loginConnexion / création de compte : e-mail + mot de passe, Google, ou SSO d'organisation.
/Accueil (sélection d'un projet ou création).
/catalogCatalogue : recherche + cards de tous les talents.
/catalog/:idFiche talent : présentation, graphe des dépendances directes (cliquable), rôles / déclencheurs / budget, tests de conformité, aperçu compact, Installer.
/personasPersonas : liste (builtin YAML + custom DB), créer / éditer / dupliquer / supprimer un persona custom.
/orgParamètres de l'organisation : membres & rôles, invitations, statut d'approbation, configuration SSO.
/org/newCréation d'une organisation.
/accept-invitation/:idAcceptation d'une invitation reçue par e-mail.
/projects/newCréation projet (dans l'organisation active) → onboarding 2 étapes (.mcp.json + stub CLAUDE.md).
/projects/:idDétail projet.

Une palette de commandes globale (⌘K / Ctrl+K) accélère la navigation (projets, catalogue, personas) et permet de basculer d'organisation active.

L'administration plateforme (rôle user.role="admin") passe par les endpoints /web/admin/* (liste des organisations et de leur statut, approuver / rejeter / suspendre / réactiver, users, évènements de sécurité).

Le dashboard renvoie vers cette documentation à des points clés : entrée Documentation de la barre latérale, guide de démarrage (accueil), onboarding Brancher un projet, et fiches conceptuelles (catalogue → Qu'est-ce qu'un talent ?, personas). Ces liens sont construits à partir de VITE_DOCS_BASE (voir Variables d'environnement) et s'ouvrent dans un nouvel onglet.

Modèle « installé » vs « catalogue »

Trois états par talent : non installéinstallé mais désactivéinstallé et actif. La page projet n'affiche que les installés ; le catalogue présente tout. Le MCP ne sert au LLM que les talents actifs.

Page projet

  • Schéma des talents installés — graphe Mermaid (activé / désactivé / requis non installé / manquant), nœuds cliquables, stats Installés / Actifs / Manquants.
  • Liste des installés — toggle, désinstaller, « voir le modèle » (diagramme structurel).
  • État vide — « Démarrer avec un persona » ou catalogue.
  • Connexion MCP (repliable) — retrouve / régénère le .mcp.json + stub CLAUDE.md.
  • Validation CI (repliable) — config dependency-cruiser générée depuis les talents.
  • Pertinence (repliable) — 4 sliders (floor, beta, margin, budget) qui surchargent par projet les réglages du filtrage sémantique ; effectif seulement si GRACE_RELEVANCE=embeddings. Voir Pertinence sémantique.
  • Onglet Activité — journal des actions tracées + tendance des tokens, lu depuis trace_events (voir Tracing & activité).
  • Supprimer le projet (confirmation inline ; cascade DB).

Endpoints web (/web/*, session Better Auth, scopés par l'organisation active)

L'authentification (sign-in/up, Google, SSO, organisations, admin, sessions) est servie par Better Auth sous /api/auth/*. Les endpoints métier restent sous /web/* :

GET  /web/orgs/current/status · POST /web/orgs/current/resubmit     (statut d'approbation, re-soumission)
GET|POST /web/orgs/current/sso · POST /web/orgs/current/sso/test    (config SSO de l'organisation)
GET  /web/admin/organizations · POST /web/admin/organizations/:id/{approve|reject|suspend|reactivate}
GET  /web/admin/users · GET /web/admin/security-events             (admin plateforme)
GET  /web/projects · POST /web/projects · GET|DELETE /web/projects/:id
GET  /web/projects/:id/setup · POST /web/projects/:id/token       (config / régénération token)
GET  /web/projects/:id/installed
POST /web/projects/:id/talents (install) · PATCH (toggle) · DELETE /:talentId (uninstall)
POST /web/projects/:id/apply-persona
POST /web/projects/:id/file               (lecture d'un fichier de talent)
GET  /web/projects/:id/validator-config   (sortie B / CI)
GET|PUT|DELETE /web/projects/:id/relevance   (réglages pertinence par projet)
GET  /web/catalog[?query] · GET /web/catalog/facets · GET /web/catalog/:id
GET  /web/personas · POST /web/personas · PATCH|DELETE /web/personas/:id · POST /web/personas/:id/duplicate
GET  /web/activity/summary · GET /web/projects/:id/traces · GET /web/projects/:id/traces/summary
GET  /web/projects/:id/talents/:talentId/usage

Design

Direction « console claire et moderne » : accent iris #6D5EF6, ambre #E0900C pour les manquants. Type : Space Grotesk (display) + Plus Jakarta Sans (corps) + JetBrains Mono (IDs / code). Tokens et utilitaires (.card, .btn-primary, .input, .chip…) dans platform/frontend/src/index.css (@theme Tailwind v4).

On this page