# API Utilisateur & Minds L'API Utilisateur & Minds gère l'administration de compte. Ces endpoints utilisent l'authentification JWT (pas les Mind Keys) car ils opèrent au niveau du compte, pas au niveau du mind. ## Endpoints d'authentification ### POST /register Crée un nouveau compte utilisateur. ```bash curl -X POST https://synapse.schaefer.zone/register \ -H "Content-Type: application/json" \ -d '{ "email": "you@example.com", "password": "your-secure-password", "display_name": "Michael" }' ``` Réponse : ```json { "jwt": "eyJhbGci...", "user": { "id": "u_abc123", "email": "you@example.com", "display_name": "Michael", "created_at": "2026-06-27T..." } } ``` ### POST /login Connexion à un compte existant. ```bash curl -X POST https://synapse.schaefer.zone/login \ -H "Content-Type: application/json" \ -d '{ "email": "you@example.com", "password": "your-secure-password" }' ``` Réponse : identique à `/register`. ## Endpoints Minds ### POST /minds Crée un nouveau mind. Renvoie la Mind Key — **sauvegardez-la immédiatement**, elle n'est affichée qu'une seule fois. ```bash curl -X POST https://synapse.schaefer.zone/minds \ -H "Authorization: Bearer YOUR_JWT" \ -H "Content-Type: application/json" \ -d '{ "name": "Work Mind", "description": "Job-related memories" }' ``` Réponse : ```json { "id": "m_xyz789", "name": "Work Mind", "description": "Job-related memories", "mind_key": "mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789", "created_at": "2026-06-27T..." } ``` > [!CRITICAL] > La `mind_key` n'est affichée qu'une seule fois. Si vous la perdez, vous ne pouvez > pas la récupérer — vous devez supprimer le mind et en créer un nouveau (ce qui > perd toutes les mémoires stockées). ### GET /minds Liste tous les minds de l'utilisateur courant. ```bash curl -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds ``` Réponse : ```json { "minds": [ { "id": "m_xyz789", "name": "Work Mind", "description": "Job-related memories", "created_at": "2026-06-27T...", "memory_count": 142, "last_activity": "2026-06-27T..." } ] } ``` ### DELETE /minds/:id Supprime un mind définitivement. ```bash curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds/m_xyz789 ``` > [!WARNING] > Supprimer un mind est **irréversible**. Toutes les mémoires, tâches, historique de > chat et scripts de ce mind sont définitivement perdus. Exportez d'abord via > `GET /memory/mind-export` si vous avez besoin d'une sauvegarde. ## Schéma multi-mind La plupart des utilisateurs bénéficient de plusieurs minds pour isoler les contextes : ```bash # Créer des minds pour différents contextes curl -X POST .../minds -d '{"name": "work", "description": "Job"}' # → mind_key: mk_work... curl -X POST .../minds -d '{"name": "personal", "description": "Personal life"}' # → mind_key: mk_personal... curl -X POST .../minds -d '{"name": "project-synapse", "description": "Synapse dev"}' # → mind_key: mk_synapse... ``` Utilisez différentes Mind Keys dans différentes sessions LLM pour garder les contextes isolés. ## Sécurité du compte ### Exigences de mot de passe - Minimum 6 caractères - Pas de maximum (utilisez un gestionnaire de mots de passe) - Stocké sous forme de hachage bcrypt (jamais en clair) ### Expiration du JWT Les JWT expirent après **7 jours**. Une fois expirés, appelez simplement `/login` à nouveau. ### Sécurité de la Mind Key Les Mind Keys n'expirent jamais. Si une Mind Key est compromise : 1. Créez un nouveau mind via `POST /minds` 2. Mettez à jour votre configuration LLM avec la nouvelle Mind Key 3. Supprimez le mind compromis via `DELETE /minds/:id` ## Prochaines étapes - [Authentification](/docs/getting-started/authentication) — guide complet d'auth - [Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt) — guide de décision - [API Sharing](/docs/api/user) — partager des minds avec d'autres utilisateurs