Project Overview
Objectif
console-admin est une console d'administration pour gerer des entreprises, leurs etablissements, services, utilisateurs, roles, applications et environnements.
Le projet est en transition d'un modele ou le frontend parlait directement a Supabase vers un modele hybride:
frontconserve l'authentification utilisateur via Supabasebackdevient la couche d'API metier, de controle d'acces et d'orchestration- Supabase reste la source de verite pour l'authentification et les donnees
Dossiers
front/: application Nuxt 3back/: API NestJSdocs/: documentation projet, architecture et metier
Flux cible
- l'utilisateur se connecte dans
frontvia Supabase Auth frontrecupere leaccess_tokende sessionfrontappellebackavecAuthorization: Bearer <token>backverifie le token, chargeprofilesetrolesbackapplique les regles metier et appelle Supabase si necessaire
Un second flux d'acces existe maintenant pour les integrations machine-to-machine:
- un
super-admincree une API key dans la console - la cle est stockee cote backend sous forme de hash HMAC
- le client technique appelle
backavecx-api-key backcharge les metadonnees de la cle, verifie expiration/revocation et applique les scopes
Roles applicatifs observes
super-adminadministrateurutilisateur
Seuls super-admin et administrateur ont actuellement acces a la console.
API keys
Le projet supporte maintenant des API keys pour des acces machine-to-machine.
Modele retenu:
- une cle est creee uniquement par un
super-admin - une cle porte un
access_level super_admindonne un perimetre globalenterprise_admindonne un perimetre limite a une entreprise- les permissions techniques sont portees par des
scopes
| Type de cle | Perimetre | Entreprise requise | Exemple d'usage |
|---|---|---|---|
super_admin | Global | Non | Synchronisation transverse |
enterprise_admin | Une seule entreprise | Oui | Integration entreprise dediee |
V1 actuellement en place:
- table
public.api_keys - table
public.api_key_usage_logs - expiration optionnelle
- revocation manuelle
- audit minimal d'usage
- historique detaille des usages consultable par
super-admin - scope backend expose:
enterprises:read
Flux simplifie:
text
Super-admin
-> cree une API key dans la console
-> transmet la cle au client technique
-> le client appelle le backend avec x-api-key
-> le backend controle scope + perimetre + statut de la cle
-> l'usage est journaliseEtat actuel de la migration
- l'authentification frontend est encore geree via Supabase client
- la route backend
GET /enterprisesexiste et est consommee par le frontend pour la liste des entreprises - certaines operations entreprises restent encore en acces direct Supabase dans le frontend, notamment
fetchById,create,update,remove