# User 및 Minds API User 및 Minds API는 계정 관리를 처리합니다. 이 엔드포인트들은 계정 수준에서 작동하므로 (마인드 수준이 아님) Mind Key가 아닌 JWT 인증을 사용합니다. ## 인증 엔드포인트 ### POST /register 새 사용자 계정을 생성합니다. ```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" }' ``` 응답: ```json { "jwt": "eyJhbGci...", "user": { "id": "u_abc123", "email": "you@example.com", "display_name": "Michael", "created_at": "2026-06-27T..." } } ``` ### POST /login 기존 계정에 로그인합니다. ```bash curl -X POST https://synapse.schaefer.zone/login \ -H "Content-Type: application/json" \ -d '{ "email": "you@example.com", "password": "your-secure-password" }' ``` 응답: `/register`와 동일. ## 마인드 엔드포인트 ### POST /minds 새 마인드를 생성합니다. Mind Key를 반환합니다 — **즉시 저장하십시오**, 한 번만 표시됩니다. ```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" }' ``` 응답: ```json { "id": "m_xyz789", "name": "Work Mind", "description": "Job-related memories", "mind_key": "mk_aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789", "created_at": "2026-06-27T..." } ``` > [!CRITICAL] > `mind_key`는 한 번만 표시됩니다. 분실하면 복구할 수 없으며 — 마인드를 > 삭제하고 새로 만들어야 합니다 (저장된 모든 메모리가 손실됨). ### GET /minds 현재 사용자의 모든 마인드를 나열합니다. ```bash curl -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds ``` 응답: ```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 마인드를 영구적으로 삭제합니다. ```bash curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \ https://synapse.schaefer.zone/minds/m_xyz789 ``` > [!WARNING] > 마인드 삭제는 **되돌릴 수 없습니다**. 해당 마인드의 모든 메모리, 작업, > 채팅 기록, 스크립트가 영구적으로 손실됩니다. 백업이 필요한 경우 먼저 > `GET /memory/mind-export`로 내보내십시오. ## 다중 마인드 패턴 대부분의 사용자는 컨텍스트를 격리하기 위해 여러 마인드를 사용하면 이점이 있습니다: ```bash # 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... ``` 다른 LLM 세션에서 다른 Mind Key를 사용하여 컨텍스트를 격리하십시오. ## 계정 보안 ### 비밀번호 요구 사항 - 최소 6자 - 최대값 없음 (비밀번호 관리자 사용) - bcrypt 해시로 저장 (평문 저장 안 함) ### JWT 만료 JWT는 **7일** 후에 만료됩니다. 만료되면 `/login`을 다시 호출하십시오. ### Mind Key 보안 Mind Key는 만료되지 않습니다. Mind Key가 노출된 경우: 1. `POST /minds`로 새 마인드 생성 2. 새 Mind Key로 LLM 구성 업데이트 3. `DELETE /minds/:id`로 노출된 마인드 삭제 ## 다음 단계 - [Authentication](/docs/getting-started/authentication) — 전체 인증 가이드 - [Mind Key vs JWT](/docs/getting-started/mind-key-vs-jwt) — 결정 가이드 - [Sharing API](/docs/api/user) — 다른 사용자와 마인드 공유