Skip to main content

Authentification & Mind Keys

Comment fonctionne l'authentification Synapse : Mind Keys pour les agents, JWT pour les humains, ?key= pour les outils n'utilisant que des URLs.


Authentification & Mind Keys

Synapse utilise deux méthodes d'authentification, chacune optimisée pour un cas d'usage différent. Comprendre la différence est essentiel pour construire des intégrations fiables.

Deux méthodes d'auth

Méthode Cas d'usage Limite de débit Expiration
Mind Key Agents LLM, outils automatisés Aucune (en-tête) / 60 min (requête) Jamais
JWT Interface humaine, opérations de compte Aucune 7 jours

Mind Key (pour les agents)

Une Mind Key est un jeton d'API limité au tenant. Elle authentifie les données d'un seul mind (mémoires, tâches, chat, scripts, etc.). Utilisez-la pour :

  • Les agents LLM appelant l'API
  • Les scripts d'automatisation en arrière-plan
  • La configuration du serveur MCP
  • Toute intégration longue durée

Authentification par en-tête (recommandée)

curl -H "Authorization: Bearer mk_yourMindKeyHere" \
     https://synapse.schaefer.zone/memory/recall

Paramètre de requête (pour les outils n'utilisant que des URLs)

curl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere
Le paramètre de requête `?key=` est limité à **60 requêtes par minute**. L'en-tête Bearer n'a pas de limite de débit. Utilisez l'en-tête chaque fois que votre client prend en charge les en-têtes personnalisés.

Créer une Mind Key

curl -X POST https://synapse.schaefer.zone/minds \
  -H "Authorization: Bearer YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{"name": "Work Mind", "description": "Project memories"}'

La réponse inclut mind_keysauvegardez-la immédiatement, elle n'est affichée qu'une seule fois.

Lister vos minds

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

Supprimer un mind (irréversible !)

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

JWT (pour les humains)

Les JWT authentifient le compte utilisateur, pas un mind spécifique. Utilisez-les pour :

  • L'inscription et la connexion au compte
  • La création / liste / suppression de minds
  • Le partage de minds avec d'autres utilisateurs
  • La gestion des abonnements Web Push

Inscription

curl -X POST https://synapse.schaefer.zone/register \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "secret"}'

Renvoie : { "jwt": "eyJ...", "user": {...} }

Connexion

curl -X POST https://synapse.schaefer.zone/login \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "secret"}'

Renvoie : { "jwt": "eyJ...", "user": {...} }

Expiration du JWT

Les JWT expirent après 7 jours. Une fois expirés, appelez simplement /login à nouveau pour en obtenir un nouveau. La Mind Key n'expire jamais, donc les intégrations d'agents existantes continuent de fonctionner.

Bonnes pratiques de sécurité

Schéma de variable d'environnement

# .env (NE JAMAIS commiter ce fichier)
SYNAPSE_MIND_KEY=mk_yourMindKeyHere
SYNAPSE_URL=https://synapse.schaefer.zone
// Node.js
const mindKey = process.env.SYNAPSE_MIND_KEY;
const url = process.env.SYNAPSE_URL;
await fetch(`${url}/memory/recall`, {
  headers: { Authorization: `Bearer ${mindKey}` },
});

Configuration du serveur MCP

{
  "mcpServers": {
    "synapse": {
      "command": "npx",
      "args": ["-y", "synapse-mcp-api@latest"],
      "env": {
        "SYNAPSE_MIND_KEY": "mk_yourMindKeyHere",
        "SYNAPSE_URL": "https://synapse.schaefer.zone"
      }
    }
  }
}

Schéma multi-mind

Chaque utilisateur peut avoir plusieurs minds. Schémas courants :

Nom du mind Rôle
work Mémoires liées au travail
personal Préférences personnelles, famille
project-synapse Contexte de projet spécifique
learning-german Progression d'apprentissage
assistant-default Fallback à usage général

Utilisez différentes Mind Keys pour différentes sessions LLM afin de garder les contextes isolés.

Limites de débit

Méthode d'auth Limite Portée
Mind Key (en-tête) Aucune Par mind
Mind Key (?key=) 60/min Par IP
JWT (en-tête) Aucune Par utilisateur
Endpoints publics Aucune Globale

Les en-têtes de limite de débit (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After) sont inclus dans les réponses le cas échéant.

Prochaines étapes