Skip to main content

API Utilisateur & Minds

Gestion de compte — inscription, connexion, création de minds, liste de minds, suppression de minds. Protégé par JWT.


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.

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 :

{
  "jwt": "eyJhbGci...",
  "user": {
    "id": "u_abc123",
    "email": "you@example.com",
    "display_name": "Michael",
    "created_at": "2026-06-27T..."
  }
}

POST /login

Connexion à un compte existant.

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.

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 :

{
  "id": "m_xyz789",
  "name": "Work Mind",
  "description": "Job-related memories",
  "mind_key": "mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789",
  "created_at": "2026-06-27T..."
}
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.

curl -H "Authorization: Bearer YOUR_JWT" \
     https://synapse.schaefer.zone/minds

Réponse :

{
  "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.

curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \
     https://synapse.schaefer.zone/minds/m_xyz789
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 :

# 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