Skip to main content

User & Minds API

การจัดการบัญชี — สมัคร, ล็อกอิน, สร้าง mind, รายการ mind, ลบ mind ป้องกันด้วย JWT


User & Minds API

User & Minds API จัดการบัญชี endpoint เหล่านี้ใช้ JWT authentication (ไม่ใช่ Mind Key) เพราะทำงานในระดับบัญชี ไม่ใช่ระดับ mind

Endpoint ยืนยันตัวตน

POST /register

สร้างบัญชีผู้ใช้ใหม่

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

Response:

{
  "jwt": "eyJhbGci...",
  "user": {
    "id": "u_abc123",
    "email": "you@example.com",
    "display_name": "Michael",
    "created_at": "2026-06-27T..."
  }
}

POST /login

ล็อกอินเข้าสู่บัญชีที่มีอยู่

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

Response: เหมือนกับ /register

Minds Endpoints

POST /minds

สร้าง mind ใหม่ ส่งกลับ 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": "Job-related memories"
  }'

Response:

{
  "id": "m_xyz789",
  "name": "Work Mind",
  "description": "Job-related memories",
  "mind_key": "mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789",
  "created_at": "2026-06-27T..."
}
`mind_key` แสดงเพียงครั้งเดียว หากคุณสูญเสียจะดึงคืนไม่ได้ — ต้องลบ mind และสร้างใหม่ (ซึ่งจะสูญเสีย memory ที่จัดเก็บไว้ทั้งหมด)

GET /minds

รายการ mind ทั้งหมดของผู้ใช้ปัจจุบัน

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

Response:

{
  "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

ลบ mind อย่างถาวร

curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \
     https://synapse.schaefer.zone/minds/m_xyz789
การลบ mind **เป็นการกระทำที่ย้อนกลับไม่ได้** memory, task, chat history และ script ทั้งหมดใน mind นั้นจะสูญหายอย่างถาวร export ก่อนผ่าน `GET /memory/mind-export` หากคุณต้องการสำรองข้อมูล

รูปแบบ Multi-Mind

ผู้ใช้ส่วนใหญ่ได้ประโยชน์จากหลาย mind เพื่อแยก context:

# Create minds for different contexts
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...

ใช้ Mind Key ต่างกันใน LLM session ต่างกันเพื่อแยก context

ความปลอดภัยบัญชี

ข้อกำหนดรหัสผ่าน

  • ขั้นต่ำ 6 ตัวอักษร
  • ไม่จำกัดความยาวสูงสุด (ใช้ password manager)
  • เก็บเป็น bcrypt hash (ไม่เก็บ plaintext เด็ดขาด)

การหมดอายุของ JWT

JWT หมดอายุหลัง 7 วัน เมื่อหมดอายุเรียก /login อีกครั้ง

ความปลอดภัยของ Mind Key

Mind Key ไม่มีวันหมดอายุ หาก Mind Key ถูกโจมตี:

  1. สร้าง mind ใหม่ผ่าน POST /minds
  2. อัปเดต config ของ LLM ด้วย Mind Key ใหม่
  3. ลบ mind ที่ถูกโจมตีผ่าน DELETE /minds/:id

ขั้นตอนถัดไป

  • Authentication — คู่มือ auth แบบเต็ม
  • Mind Key vs JWT — คู่มือการตัดสินใจ
  • Sharing API — แชร์ mind กับผู้ใช้อื่น