{"title":"Mind Key vs JWT — Kapan Menggunakan?","slug":"mind-key-vs-jwt","category":"getting-started","summary":"Panduan keputusan: Mind Key untuk akses data agen, JWT untuk manajemen akun.","audience":["human","llm"],"tags":["auth","mind-key","jwt","decision-guide"],"difficulty":"beginner","updated":"2026-06-27","word_count":670,"read_minutes":3,"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":"id","translated":true,"requested_lang":"id","content_markdown":"\n# Mind Key vs JWT — Kapan Menggunakan?\n\nSynapse memiliki dua token autentikasi. Memilih yang salah menyebabkan error 401.\nPanduan ini memberikan kerangka keputusan yang jelas.\n\n## Tabel Keputusan Cepat\n\n| Anda ingin... | Gunakan |\n|----------------|-----|\n| Menyimpan / recall memori | Mind Key |\n| Mengirim / polling pesan chat | Mind Key |\n| Mengelola tugas | Mind Key |\n| Menyimpan skrip | Mind Key |\n| Mendaftarkan webhook | Mind Key |\n| Mengontrol komputer | Mind Key (sisi pengguna) / Computer Token (sisi agen) |\n| Mendaftarkan akun pengguna | Tidak ada (publik) |\n| Login | Tidak ada (publik) |\n| Membuat / mendaftar / menghapus mind | JWT |\n| Berbagi mind dengan pengguna lain | JWT |\n| Berlangganan notifikasi web push | JWT |\n| Melihat log audit | Mind Key |\n\n## Aturan Sederhana\n\n> [!TIP]\n> **Jika menyentuh data satu mind → Mind Key.**\n> **Jika mengelola akun atau metadata mind → JWT.**\n\n## Mind Key — Token Akses Data\n\nMind Key memberikan akses ke **data satu mind**. Token berumur panjang yang\ntidak pernah kedaluwarsa (sampai mind dihapus). Sempurna untuk:\n\n- Agen LLM yang menyimpan memori lintas sesi\n- Cron job latar belakang\n- Konfigurasi MCP server\n- Integrasi webhook\n- Aplikasi mobile yang membaca memori\n\n### Apa yang dapat dilakukan Mind Key\n\n- `GET /memory/recall` — membaca semua memori dalam mind ini\n- `POST /memory` — menyimpan/memperbarui memori\n- `GET /chat/poll` — membaca pesan chat\n- `POST /chat/reply` — mengirim pesan chat\n- `GET /mind/tasks` — mendaftar tugas\n- `POST /mind/task` — membuat tugas\n- `POST /script` — menyimpan skrip\n- `POST /webhooks` — mendaftarkan webhook\n- `POST /computers/:id/commands` — mengantri perintah komputer\n\n### Apa yang TIDAK dapat dilakukan Mind Key\n\n- Membuat / mendaftar / menghapus mind (memerlukan JWT)\n- Berbagi mind dengan pengguna lain (memerlukan JWT)\n- Melihat info akun pengguna (memerlukan JWT)\n- Berlangganan web push (memerlukan JWT)\n\n## JWT — Token Manajemen Akun\n\nJWT mengautentikasi **akun pengguna**. Kedaluwarsa setelah 7 hari dan digunakan\nuntuk operasi level akun yang mencakup beberapa mind atau melibatkan pengguna lain.\n\n### Apa yang dapat dilakukan JWT\n\n- `POST /minds` — membuat mind baru (mengembalikan Mind Key baru)\n- `GET /minds` — mendaftar semua mind untuk pengguna ini\n- `DELETE /minds/:id` — menghapus mind\n- `POST /sharing` — berbagi mind dengan pengguna lain\n- `POST /push/subscribe` — berlangganan notifikasi web push\n- `GET /sharing` — mendaftar berbagi mind\n\n### Apa yang TIDAK dapat dilakukan JWT\n\n- Membaca / menulis memori (memerlukan Mind Key)\n- Mengirim pesan chat (memerlukan Mind Key)\n- Mengelola tugas (memerlukan Mind Key)\n- Mendaftarkan webhook (memerlukan Mind Key)\n\n## Kasus Khusus: Computer Token\n\nEndpoint `/computers/me/*` (sisi agen, untuk screen-remote-agent)\nmenggunakan tipe token ketiga: **Computer Token**. Token ini dikembalikan oleh\n`POST /computers/register` saat menukar kode instalasi, dan spesifik untuk\nsatu komputer terdaftar.\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 atau JWT |\n| `POST /computers/:id/commands` | Mind Key atau JWT |\n\n## Pola Umum\n\n### Pola 1: Agen LLM Tunggal\n\n1. Daftar sekali → dapatkan JWT\n2. Buat satu mind → dapatkan Mind Key\n3. LLM menggunakan Mind Key untuk semuanya\n\n### Pola 2: Agen Multi-Proyek\n\n1. Daftar sekali → dapatkan JWT\n2. Buat beberapa mind (kerja, pribadi, proyek-x) → dapatkan beberapa Mind Key\n3. LLM memuat Mind Key berbeda berdasarkan konteks\n\n### Pola 3: Berbagi Tim\n\n1. Pengguna A membuat mind → dapatkan Mind Key A\n2. Pengguna A berbagi dengan Pengguna B melalui JWT (`POST /sharing`)\n3. Pengguna B sekarang dapat mengakses melalui JWT mereka sendiri\n4. Untuk akses LLM, Pengguna B perlu membuat Mind Key mereka sendiri (atau menggunakan milik A)\n\n### Pola 4: MCP Server\n\nMCP server selalu menggunakan Mind Key (diatur melalui env var `SYNAPSE_MIND_KEY`). Satu instansi\nMCP server = satu mind. Untuk akses multi-mind, jalankan beberapa instansi MCP\natau implementasikan peralihan mind sisi klien.\n\n## Lembar Contoh Format Token\n\n| Token | Format | Contoh |\n|-------|--------|---------|\n| Mind Key | `mk_` + 36 karakter | `mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789` |\n| JWT | `eyJ` + base64 | `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...` |\n| Computer Token | `ct_` + 36 karakter | `ct_xYzAbCdEfGhIjKlMnOpQrStUvWxYz0123456789` |\n\n## Langkah Berikutnya\n\n- [Autentikasi](/docs/getting-started/authentication) — panduan autentikasi lengkap\n- [User & Minds API](/docs/api/user) — endpoint yang dilindungi JWT\n- [Memory API](/docs/api/memory) — endpoint yang dilindungi Mind Key\n","content_html":"<h1>Mind Key vs JWT — Kapan Menggunakan?</h1>\n<p>Synapse memiliki dua token autentikasi. Memilih yang salah menyebabkan error 401.\nPanduan ini memberikan kerangka keputusan yang jelas.</p>\n<h2>Tabel Keputusan Cepat</h2>\n<table>\n<thead>\n<tr>\n<th>Anda ingin...</th>\n<th>Gunakan</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Menyimpan / recall memori</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Mengirim / polling pesan chat</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Mengelola tugas</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Menyimpan skrip</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Mendaftarkan webhook</td>\n<td>Mind Key</td>\n</tr>\n<tr>\n<td>Mengontrol komputer</td>\n<td>Mind Key (sisi pengguna) / Computer Token (sisi agen)</td>\n</tr>\n<tr>\n<td>Mendaftarkan akun pengguna</td>\n<td>Tidak ada (publik)</td>\n</tr>\n<tr>\n<td>Login</td>\n<td>Tidak ada (publik)</td>\n</tr>\n<tr>\n<td>Membuat / mendaftar / menghapus mind</td>\n<td>JWT</td>\n</tr>\n<tr>\n<td>Berbagi mind dengan pengguna lain</td>\n<td>JWT</td>\n</tr>\n<tr>\n<td>Berlangganan notifikasi web push</td>\n<td>JWT</td>\n</tr>\n<tr>\n<td>Melihat log audit</td>\n<td>Mind Key</td>\n</tr>\n</tbody></table>\n<h2>Aturan Sederhana</h2>\n<div class=\"callout callout-ok\">**Jika menyentuh data satu mind → Mind Key.**\n**Jika mengelola akun atau metadata mind → JWT.**</div><h2>Mind Key — Token Akses Data</h2>\n<p>Mind Key memberikan akses ke <strong>data satu mind</strong>. Token berumur panjang yang\ntidak pernah kedaluwarsa (sampai mind dihapus). Sempurna untuk:</p>\n<ul>\n<li>Agen LLM yang menyimpan memori lintas sesi</li>\n<li>Cron job latar belakang</li>\n<li>Konfigurasi MCP server</li>\n<li>Integrasi webhook</li>\n<li>Aplikasi mobile yang membaca memori</li>\n</ul>\n<h3>Apa yang dapat dilakukan Mind Key</h3>\n<ul>\n<li><code>GET /memory/recall</code> — membaca semua memori dalam mind ini</li>\n<li><code>POST /memory</code> — menyimpan/memperbarui memori</li>\n<li><code>GET /chat/poll</code> — membaca pesan chat</li>\n<li><code>POST /chat/reply</code> — mengirim pesan chat</li>\n<li><code>GET /mind/tasks</code> — mendaftar tugas</li>\n<li><code>POST /mind/task</code> — membuat tugas</li>\n<li><code>POST /script</code> — menyimpan skrip</li>\n<li><code>POST /webhooks</code> — mendaftarkan webhook</li>\n<li><code>POST /computers/:id/commands</code> — mengantri perintah komputer</li>\n</ul>\n<h3>Apa yang TIDAK dapat dilakukan Mind Key</h3>\n<ul>\n<li>Membuat / mendaftar / menghapus mind (memerlukan JWT)</li>\n<li>Berbagi mind dengan pengguna lain (memerlukan JWT)</li>\n<li>Melihat info akun pengguna (memerlukan JWT)</li>\n<li>Berlangganan web push (memerlukan JWT)</li>\n</ul>\n<h2>JWT — Token Manajemen Akun</h2>\n<p>JWT mengautentikasi <strong>akun pengguna</strong>. Kedaluwarsa setelah 7 hari dan digunakan\nuntuk operasi level akun yang mencakup beberapa mind atau melibatkan pengguna lain.</p>\n<h3>Apa yang dapat dilakukan JWT</h3>\n<ul>\n<li><code>POST /minds</code> — membuat mind baru (mengembalikan Mind Key baru)</li>\n<li><code>GET /minds</code> — mendaftar semua mind untuk pengguna ini</li>\n<li><code>DELETE /minds/:id</code> — menghapus mind</li>\n<li><code>POST /sharing</code> — berbagi mind dengan pengguna lain</li>\n<li><code>POST /push/subscribe</code> — berlangganan notifikasi web push</li>\n<li><code>GET /sharing</code> — mendaftar berbagi mind</li>\n</ul>\n<h3>Apa yang TIDAK dapat dilakukan JWT</h3>\n<ul>\n<li>Membaca / menulis memori (memerlukan Mind Key)</li>\n<li>Mengirim pesan chat (memerlukan Mind Key)</li>\n<li>Mengelola tugas (memerlukan Mind Key)</li>\n<li>Mendaftarkan webhook (memerlukan Mind Key)</li>\n</ul>\n<h2>Kasus Khusus: Computer Token</h2>\n<p>Endpoint <code>/computers/me/*</code> (sisi agen, untuk screen-remote-agent)\nmenggunakan tipe token ketiga: <strong>Computer Token</strong>. Token ini dikembalikan oleh\n<code>POST /computers/register</code> saat menukar kode instalasi, dan spesifik untuk\nsatu komputer terdaftar.</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 atau JWT</td>\n</tr>\n<tr>\n<td><code>POST /computers/:id/commands</code></td>\n<td>Mind Key atau JWT</td>\n</tr>\n</tbody></table>\n<h2>Pola Umum</h2>\n<h3>Pola 1: Agen LLM Tunggal</h3>\n<ol>\n<li>Daftar sekali → dapatkan JWT</li>\n<li>Buat satu mind → dapatkan Mind Key</li>\n<li>LLM menggunakan Mind Key untuk semuanya</li>\n</ol>\n<h3>Pola 2: Agen Multi-Proyek</h3>\n<ol>\n<li>Daftar sekali → dapatkan JWT</li>\n<li>Buat beberapa mind (kerja, pribadi, proyek-x) → dapatkan beberapa Mind Key</li>\n<li>LLM memuat Mind Key berbeda berdasarkan konteks</li>\n</ol>\n<h3>Pola 3: Berbagi Tim</h3>\n<ol>\n<li>Pengguna A membuat mind → dapatkan Mind Key A</li>\n<li>Pengguna A berbagi dengan Pengguna B melalui JWT (<code>POST /sharing</code>)</li>\n<li>Pengguna B sekarang dapat mengakses melalui JWT mereka sendiri</li>\n<li>Untuk akses LLM, Pengguna B perlu membuat Mind Key mereka sendiri (atau menggunakan milik A)</li>\n</ol>\n<h3>Pola 4: MCP Server</h3>\n<p>MCP server selalu menggunakan Mind Key (diatur melalui env var <code>SYNAPSE_MIND_KEY</code>). Satu instansi\nMCP server = satu mind. Untuk akses multi-mind, jalankan beberapa instansi MCP\natau implementasikan peralihan mind sisi klien.</p>\n<h2>Lembar Contoh Format Token</h2>\n<table>\n<thead>\n<tr>\n<th>Token</th>\n<th>Format</th>\n<th>Contoh</th>\n</tr>\n</thead>\n<tbody><tr>\n<td>Mind Key</td>\n<td><code>mk_</code> + 36 karakter</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 karakter</td>\n<td><code>ct_xYzAbCdEfGhIjKlMnOpQrStUvWxYz0123456789</code></td>\n</tr>\n</tbody></table>\n<h2>Langkah Berikutnya</h2>\n<ul>\n<li><a href=\"/docs/getting-started/authentication\">Autentikasi</a> — panduan autentikasi lengkap</li>\n<li><a href=\"/docs/api/user\">User &amp; Minds API</a> — endpoint yang dilindungi JWT</li>\n<li><a href=\"/docs/api/memory\">Memory API</a> — endpoint yang dilindungi 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"]}