Skip to main content

Autentikasi & Mind Keys

Bagaimana autentikasi Synapse bekerja: Mind Keys untuk agen, JWT untuk manusia, ?key= dinonaktifkan secara default (hanya Bearer, AUTH_QUERY_KEY_MODE=deny).


Autentikasi & Mind Keys

Synapse menggunakan dua metode autentikasi, masing-masing dioptimalkan untuk kasus penggunaan yang berbeda. Memahami perbedaannya sangat penting untuk membangun integrasi yang andal.

Dua Metode Autentikasi

Metode Kasus Penggunaan Rate Limit Kedaluwarsa
Mind Key Agen LLM, alat otomatis 120/menit (Bearer eksternal); ?key= dinonaktifkan secara default (deny) Tidak pernah
JWT UI untuk manusia, operasi akun 120/menit (IP eksternal) 7 hari

Mind Key (untuk Agen)

Mind Key adalah token API dengan cakupan tenant. Token ini mengautentikasi data satu mind (memori, tugas, chat, skrip, dll.). Gunakan untuk:

  • Agen LLM yang memanggil API
  • Skrip otomasi latar belakang
  • Konfigurasi MCP server
  • Integrasi berumur panjang apa pun

Autentikasi header (disarankan)

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

Parameter query (dinonaktifkan secara default)

curl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere
Parameter query `?key=` **dinonaktifkan** oleh default yang diperkuat `AUTH_QUERY_KEY_MODE=deny`: server menjawab `?key=` dengan 401 dan petunjuk "Query-param auth (?key=) is disabled". Bearer-only adalah default aman (SSOT: `src/lib/auth.ts`). Hanya jika operator secara eksplisit menetapkan `AUTH_QUERY_KEY_MODE=allow`, `?key=` bekerja sebagai katup transisi dengan 60 req/min (per IP). Klien Bearer eksternal mendapat 120 req/min per identitas; jaringan internal tepercaya tidak terbatas.

Membuat 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"}'

Respons menyertakan mind_key — simpan segera, hanya ditampilkan sekali.

Mendaftar mind Anda

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

Menghapus mind (ireversibel!)

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

JWT (untuk Manusia)

JWT mengautentikasi akun pengguna, bukan mind spesifik. Gunakan untuk:

  • Pendaftaran dan login akun
  • Membuat / mendaftar / menghapus mind
  • Berbagi mind dengan pengguna lain
  • Manajemen langganan Web Push

Daftar

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

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

Login

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

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

Kedaluwarsa JWT

JWT kedaluwarsa setelah 7 hari. Saat JWT kedaluwarsa, cukup panggil /login lagi untuk mendapatkan yang baru. Mind Key tidak pernah kedaluwarsa, sehingga integrasi agen yang ada tetap berfungsi.

Praktik Terbaik Keamanan

Pola variabel lingkungan

# .env (JANGAN PERNAH commit file ini)
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}` },
});

Konfigurasi MCP server

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

Pola Multi-Mind

Setiap pengguna dapat memiliki beberapa mind. Pola umum:

Nama Mind Tujuan
work Memori terkait pekerjaan
personal Preferensi pribadi, keluarga
project-synapse Konteks proyek spesifik
learning-german Kemajuan belajar
assistant-default Fallback tujuan umum

Gunakan Mind Key yang berbeda untuk sesi LLM yang berbeda untuk menjaga konteks tetap terisolasi.

Rate Limits

Metode Auth Batas Cakupan
Mind Key (header) 120/menit dari IP eksternal (per identitas); tanpa batas untuk jaringan internal tepercaya Per-mind
Mind Key (?key=, hanya dengan allow) 60/min Per-IP
JWT (header) 120 req/menit (IP eksternal; tanpa batas untuk jaringan internal tepercaya) Per-user
Endpoint publik Tidak ada Global

Header rate limit (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After) disertakan dalam respons jika berlaku.

Langkah Berikutnya