# User & Minds API User & Minds API menangani manajemen akun. Endpoint ini menggunakan autentikasi JWT (bukan Mind Key) karena beroperasi di level akun, bukan level mind. ## Endpoint Autentikasi ### POST /register Membuat akun pengguna baru. ```bash 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" }' ``` Respons: ```json { "jwt": "eyJhbGci...", "user": { "id": "u_abc123", "email": "you@example.com", "display_name": "Michael", "created_at": "2026-06-27T..." } } ``` ### POST /login Masuk ke akun yang sudah ada. ```bash curl -X POST https://synapse.schaefer.zone/login \ -H "Content-Type: application/json" \ -d '{ "email": "you@example.com", "password": "your-secure-password" }' ``` Respons: sama dengan `/register`. ## Endpoint Minds ### POST /minds Membuat mind baru. Mengembalikan Mind Key — **simpan segera**, hanya ditampilkan sekali. ```bash 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" }' ``` Respons: ```json { "id": "m_xyz789", "name": "Work Mind", "description": "Job-related memories", "mind_key": "mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789", "created_at": "2026-06-27T..." } ``` > [!CRITICAL] > `mind_key` hanya ditampilkan sekali. Jika Anda kehilangannya, Anda tidak dapat > mengambilnya kembali — Anda harus menghapus mind dan membuat yang baru (yang > akan kehilangan semua memori yang disimpan). ### GET /minds Mendaftar semua mind untuk pengguna saat ini. ```bash curl -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds ``` Respons: ```json { "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 Menghapus mind secara permanen. ```bash curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds/m_xyz789 ``` > [!WARNING] > Menghapus mind bersifat **ireversibel**. Semua memori, tugas, riwayat chat, > dan skrip dalam mind tersebut hilang secara permanen. Ekspor terlebih dahulu > melalui `GET /memory/mind-export` jika Anda memerlukan backup. ## Pola Multi-Mind Sebagian besar pengguna mendapat manfaat dari beberapa mind untuk menjaga konteks tetap terisolasi: ```bash # Buat mind untuk konteks berbeda 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... ``` Gunakan Mind Key yang berbeda dalam sesi LLM yang berbeda untuk menjaga konteks tetap terisolasi. ## Keamanan Akun ### Persyaratan kata sandi - Minimal 6 karakter - Tidak ada maksimum (gunakan pengelola kata sandi) - Disimpan sebagai hash bcrypt (tidak pernah plaintext) ### Kedaluwarsa JWT JWT kedaluwarsa setelah **7 hari**. Saat kedaluwarsa, cukup panggil `/login` lagi. ### Keamanan Mind Key Mind Key tidak pernah kedaluwarsa. Jika Mind Key terkompromi: 1. Buat mind baru melalui `POST /minds` 2. Perbarui konfigurasi LLM Anda dengan Mind Key baru 3. Hapus mind yang terkompromi melalui `DELETE /minds/:id` ## Langkah Berikutnya - [Autentikasi](/docs/getting-started/authentication) — panduan autentikasi lengkap - [Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt) — panduan keputusan - [Sharing API](/docs/api/user) — berbagi mind dengan pengguna lain