{"title":"Mind Key vs JWT — Quand utiliser laquelle ?","slug":"mind-key-vs-jwt","category":"getting-started","summary":"Guide de décision : Mind Key pour l'accès aux données agent, JWT pour la gestion de compte.","audience":["human","llm"],"tags":["auth","mind-key","jwt","decision-guide"],"difficulty":"beginner","updated":"2026-06-27","word_count":804,"read_minutes":4,"llm_context":"Mind Key: tenant-scoped, never expires, for memory/chat/tasks/scripts/computers/webhooks.\nJWT: user-scoped, 7-day expiry, for /register, /login, /minds (CRUD), /sharing, /push.\nSimple rule: if it touches a single mind's data → Mind Key. If it manages the account → JWT.\nException: /computers/me/* uses Computer Token (not Mind Key or JWT).\n","lang":"fr","translated":true,"requested_lang":"fr","content_markdown":"\n# Mind Key vs JWT — Quand utiliser laquelle ?\n\nSynapse possède deux jetons d'authentification. Choisir le mauvais mène à des erreurs\n401. Ce guide vous donne un cadre de décision clair.\n\n## Tableau de décision rapide\n\n| Vous voulez... | Utiliser |\n|----------------|-----|\n| Stocker / rappeler des mémoires | Mind Key |\n| Envoyer / poller des messages chat | Mind Key |\n| Gérer des tâches | Mind Key |\n| Stocker des scripts | Mind Key |\n| Enregistrer des webhooks | Mind Key |\n| Contrôler des ordinateurs | Mind Key (côté utilisateur) / Computer Token (côté agent) |\n| Inscrire un compte utilisateur | Aucune (public) |\n| Se connecter | Aucune (public) |\n| Créer / lister / supprimer des minds | JWT |\n| Partager un mind avec un autre utilisateur | JWT |\n| S'abonner aux notifications web push | JWT |\n| Consulter le journal d'audit | Mind Key |\n\n## La règle simple\n\n> [!TIP]\n> **Si ça touche les données d'un seul mind → Mind Key.**\n> **Si ça gère le compte ou les métadonnées de mind → JWT.**\n\n## Mind Key — jeton d'accès aux données\n\nUne Mind Key accorde l'accès aux **données d'un seul mind**. C'est un jeton longue\ndurée qui n'expire jamais (jusqu'à la suppression du mind). Parfait pour :\n\n- Les agents LLM persistant des mémoires entre sessions\n- Les tâches cron en arrière-plan\n- La configuration du serveur MCP\n- Les intégrations de webhooks\n- Les applications mobiles lisant la mémoire\n\n### Ce que la Mind Key peut faire\n\n- `GET /memory/recall` — lire toutes les mémoires de ce mind\n- `POST /memory` — stocker/mettre à jour des mémoires\n- `GET /chat/poll` — lire les messages de chat\n- `POST /chat/reply` — envoyer des messages de chat\n- `GET /mind/tasks` — lister les tâches\n- `POST /mind/task` — créer des tâches\n- `POST /script` — stocker des scripts\n- `POST /webhooks` — enregistrer des webhooks\n- `POST /computers/:id/commands` — mettre en file des commandes\n\n### Ce que la Mind Key NE PEUT PAS faire\n\n- Créer / lister / supprimer des minds (besoin d'un JWT)\n- Partager un mind avec un autre utilisateur (besoin d'un JWT)\n- Voir les infos du compte utilisateur (besoin d'un JWT)\n- S'abonner au web push (besoin d'un JWT)\n\n## JWT — jeton de gestion de compte\n\nUn JWT authentifie le **compte utilisateur**. Il expire après 7 jours et est utilisé\npour les opérations au niveau du compte qui couvrent plusieurs minds ou impliquent\nd'autres utilisateurs.\n\n### Ce que le JWT peut faire\n\n- `POST /minds` — créer un nouveau mind (renvoie une nouvelle Mind Key)\n- `GET /minds` — lister tous les minds de cet utilisateur\n- `DELETE /minds/:id` — supprimer un mind\n- `POST /sharing` — partager un mind avec un autre utilisateur\n- `POST /push/subscribe` — s'abonner aux notifications web push\n- `GET /sharing` — lister les partages de mind\n\n### Ce que le JWT NE PEUT PAS faire\n\n- Lire / écrire des mémoires (besoin d'une Mind Key)\n- Envoyer des messages de chat (besoin d'une Mind Key)\n- Gérer des tâches (besoin d'une Mind Key)\n- Enregistrer des webhooks (besoin d'une Mind Key)\n\n## Cas particulier : Computer Token\n\nLes endpoints `/computers/me/*` (côté agent, pour le screen-remote-agent) utilisent\nun troisième type de jeton : le **Computer Token**. Ce jeton est renvoyé par\n`POST /computers/register` lors de l'échange d'un code d'installation, et est\nspécifique à un ordinateur enregistré.\n\n| Endpoint | Auth |\n|----------|------|\n| `GET /computers/me/poll` | Computer Token |\n| `POST /computers/me/commands/:cid/result` | Computer Token |\n| `GET /computers/list` | Mind Key ou JWT |\n| `POST /computers/:id/commands` | Mind Key ou JWT |\n\n## Schémas courants\n\n### Schéma 1 : agent LLM unique\n\n1. S'inscrire une fois → obtenir un JWT\n2. Créer un mind → obtenir une Mind Key\n3. Le LLM utilise la Mind Key pour tout\n\n### Schéma 2 : agent multi-projets\n\n1. S'inscrire une fois → obtenir un JWT\n2. Créer plusieurs minds (travail, personnel, projet-x) → obtenir plusieurs Mind Keys\n3. Le LLM charge différentes Mind Keys selon le contexte\n\n### Schéma 3 : partage en équipe\n\n1. L'utilisateur A crée un mind → obtient la Mind Key A\n2. L'utilisateur A partage avec l'utilisateur B via JWT (`POST /sharing`)\n3. L'utilisateur B peut maintenant y accéder via son propre JWT\n4. Pour l'accès LLM, l'utilisateur B doit créer sa propre Mind Key (ou utiliser celle de A)\n\n### Schéma 4 : serveur MCP\n\nLes serveurs MCP utilisent toujours la Mind Key (définie via la variable d'environnement\n`SYNAPSE_MIND_KEY`). Une instance de serveur MCP = un mind. Pour un accès multi-mind,\nexécutez plusieurs instances MCP ou implémentez une commutation de mind côté client.\n\n## Aide-mémoire des formats de jeton\n\n| Jeton | Format | Exemple |\n|-------|--------|---------|\n| Mind Key | `mk_` + 36 caractères | `mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789` |\n| JWT | `eyJ` + base64 | `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...` |\n| Computer Token | `ct_` + 36 caractères | `ct_xYzAbCdEfGhIjKlMnOpQrStUvWxYz0123456789` |\n\n## Prochaines étapes\n\n- [Authentification](/docs/getting-started/authentication) — guide complet d'auth\n- [API Utilisateur & Minds](/docs/api/user) — endpoints protégés par JWT\n- [API Memory](/docs/api/memory) — endpoints protégés par Mind Key\n","content_html":"<h1>Mind Key vs JWT — Quand utiliser laquelle ?</h1>\n<p>Synapse possède deux jetons d&#39;authentification. Choisir le mauvais mène à des erreurs\n401. Ce guide vous donne un cadre de décision clair.</p>\n<h2>Tableau de décision rapide</h2>\n<table>\n<thead>\n<tr>\n<th>Vous voulez...</th>\n<th>Utiliser</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Stocker / rappeler des mémoires</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Envoyer / poller des messages chat</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Gérer des tâches</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Stocker des scripts</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Enregistrer des webhooks</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Contrôler des ordinateurs</td>\n<td>Mind Key (côté utilisateur) / Computer Token (côté agent)</td>\n</tr>\n<tr>\n<td>Inscrire un compte utilisateur</td>\n<td>Aucune (public)</td>\n</tr>\n<tr>\n<td>Se connecter</td>\n<td>Aucune (public)</td>\n</tr>\n<tr>\n<td>Créer / lister / supprimer des minds</td>\n<td>JWT</td>\n</tr>\n<tr>\n<td>Partager un mind avec un autre utilisateur</td>\n<td>JWT</td>\n</tr>\n<tr>\n<td>S&#39;abonner aux notifications web push</td>\n<td>JWT</td>\n</tr>\n<tr>\n<td>Consulter le journal d&#39;audit</td>\n<td>Mind Key</td>\n</tr>\n</tbody></table>\n<h2>La règle simple</h2>\n<div class=\"callout callout-ok\">**Si ça touche les données d'un seul mind → Mind Key.**\n**Si ça gère le compte ou les métadonnées de mind → JWT.**</div><h2>Mind Key — jeton d&#39;accès aux données</h2>\n<p>Une Mind Key accorde l&#39;accès aux <strong>données d&#39;un seul mind</strong>. C&#39;est un jeton longue\ndurée qui n&#39;expire jamais (jusqu&#39;à la suppression du mind). Parfait pour :</p>\n<ul>\n<li>Les agents LLM persistant des mémoires entre sessions</li>\n<li>Les tâches cron en arrière-plan</li>\n<li>La configuration du serveur MCP</li>\n<li>Les intégrations de webhooks</li>\n<li>Les applications mobiles lisant la mémoire</li>\n</ul>\n<h3>Ce que la Mind Key peut faire</h3>\n<ul>\n<li><code>GET /memory/recall</code> — lire toutes les mémoires de ce mind</li>\n<li><code>POST /memory</code> — stocker/mettre à jour des mémoires</li>\n<li><code>GET /chat/poll</code> — lire les messages de chat</li>\n<li><code>POST /chat/reply</code> — envoyer des messages de chat</li>\n<li><code>GET /mind/tasks</code> — lister les tâches</li>\n<li><code>POST /mind/task</code> — créer des tâches</li>\n<li><code>POST /script</code> — stocker des scripts</li>\n<li><code>POST /webhooks</code> — enregistrer des webhooks</li>\n<li><code>POST /computers/:id/commands</code> — mettre en file des commandes</li>\n</ul>\n<h3>Ce que la Mind Key NE PEUT PAS faire</h3>\n<ul>\n<li>Créer / lister / supprimer des minds (besoin d&#39;un JWT)</li>\n<li>Partager un mind avec un autre utilisateur (besoin d&#39;un JWT)</li>\n<li>Voir les infos du compte utilisateur (besoin d&#39;un JWT)</li>\n<li>S&#39;abonner au web push (besoin d&#39;un JWT)</li>\n</ul>\n<h2>JWT — jeton de gestion de compte</h2>\n<p>Un JWT authentifie le <strong>compte utilisateur</strong>. Il expire après 7 jours et est utilisé\npour les opérations au niveau du compte qui couvrent plusieurs minds ou impliquent\nd&#39;autres utilisateurs.</p>\n<h3>Ce que le JWT peut faire</h3>\n<ul>\n<li><code>POST /minds</code> — créer un nouveau mind (renvoie une nouvelle Mind Key)</li>\n<li><code>GET /minds</code> — lister tous les minds de cet utilisateur</li>\n<li><code>DELETE /minds/:id</code> — supprimer un mind</li>\n<li><code>POST /sharing</code> — partager un mind avec un autre utilisateur</li>\n<li><code>POST /push/subscribe</code> — s&#39;abonner aux notifications web push</li>\n<li><code>GET /sharing</code> — lister les partages de mind</li>\n</ul>\n<h3>Ce que le JWT NE PEUT PAS faire</h3>\n<ul>\n<li>Lire / écrire des mémoires (besoin d&#39;une Mind Key)</li>\n<li>Envoyer des messages de chat (besoin d&#39;une Mind Key)</li>\n<li>Gérer des tâches (besoin d&#39;une Mind Key)</li>\n<li>Enregistrer des webhooks (besoin d&#39;une Mind Key)</li>\n</ul>\n<h2>Cas particulier : Computer Token</h2>\n<p>Les endpoints <code>/computers/me/*</code> (côté agent, pour le screen-remote-agent) utilisent\nun troisième type de jeton : le <strong>Computer Token</strong>. Ce jeton est renvoyé par\n<code>POST /computers/register</code> lors de l&#39;échange d&#39;un code d&#39;installation, et est\nspécifique à un ordinateur enregistré.</p>\n<table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Auth</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>GET /computers/me/poll</code></td>\n<td>Computer Token</td>\n</tr>\n<tr>\n<td><code>POST /computers/me/commands/:cid/result</code></td>\n<td>Computer Token</td>\n</tr>\n<tr>\n<td><code>GET /computers/list</code></td>\n<td>Mind Key ou JWT</td>\n</tr>\n<tr>\n<td><code>POST /computers/:id/commands</code></td>\n<td>Mind Key ou JWT</td>\n</tr>\n</tbody></table>\n<h2>Schémas courants</h2>\n<h3>Schéma 1 : agent LLM unique</h3>\n<ol>\n<li>S&#39;inscrire une fois → obtenir un JWT</li>\n<li>Créer un mind → obtenir une Mind Key</li>\n<li>Le LLM utilise la Mind Key pour tout</li>\n</ol>\n<h3>Schéma 2 : agent multi-projets</h3>\n<ol>\n<li>S&#39;inscrire une fois → obtenir un JWT</li>\n<li>Créer plusieurs minds (travail, personnel, projet-x) → obtenir plusieurs Mind Keys</li>\n<li>Le LLM charge différentes Mind Keys selon le contexte</li>\n</ol>\n<h3>Schéma 3 : partage en équipe</h3>\n<ol>\n<li>L&#39;utilisateur A crée un mind → obtient la Mind Key A</li>\n<li>L&#39;utilisateur A partage avec l&#39;utilisateur B via JWT (<code>POST /sharing</code>)</li>\n<li>L&#39;utilisateur B peut maintenant y accéder via son propre JWT</li>\n<li>Pour l&#39;accès LLM, l&#39;utilisateur B doit créer sa propre Mind Key (ou utiliser celle de A)</li>\n</ol>\n<h3>Schéma 4 : serveur MCP</h3>\n<p>Les serveurs MCP utilisent toujours la Mind Key (définie via la variable d&#39;environnement\n<code>SYNAPSE_MIND_KEY</code>). Une instance de serveur MCP = un mind. Pour un accès multi-mind,\nexécutez plusieurs instances MCP ou implémentez une commutation de mind côté client.</p>\n<h2>Aide-mémoire des formats de jeton</h2>\n<table>\n<thead>\n<tr>\n<th>Jeton</th>\n<th>Format</th>\n<th>Exemple</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key</td>\n<td><code>mk_</code> + 36 caractères</td>\n<td><code>mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789</code></td>\n</tr>\n<tr>\n<td>JWT</td>\n<td><code>eyJ</code> + base64</td>\n<td><code>eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...</code></td>\n</tr>\n<tr>\n<td>Computer Token</td>\n<td><code>ct_</code> + 36 caractères</td>\n<td><code>ct_xYzAbCdEfGhIjKlMnOpQrStUvWxYz0123456789</code></td>\n</tr>\n</tbody></table>\n<h2>Prochaines étapes</h2>\n<ul>\n<li><a href=\"/docs/getting-started/authentication\">Authentification</a> — guide complet d&#39;auth</li>\n<li><a href=\"/docs/api/user\">API Utilisateur &amp; Minds</a> — endpoints protégés par JWT</li>\n<li><a href=\"/docs/api/memory\">API Memory</a> — endpoints protégés par Mind Key</li>\n</ul>\n","urls":{"html":"/docs/getting-started/mind-key-vs-jwt","text":"/docs/getting-started/mind-key-vs-jwt?format=text","json":"/docs/getting-started/mind-key-vs-jwt?format=json","llm":"/docs/getting-started/mind-key-vs-jwt?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}