Аутентификация и Mind Key
Как работает аутентификация в Synapse: Mind Key для агентов, JWT для людей, ?key= для инструментов, работающих только с URL.
Аутентификация и Mind Key
Synapse использует два способа аутентификации, каждый оптимизирован под свой сценарий. Понимание различий необходимо для создания надёжных интеграций.
Два способа аутентификации
| Способ | Сценарий | Лимит запросов | Срок действия |
|---|---|---|---|
| Mind Key | LLM-агенты, автоматизированные инструменты | Нет (заголовок) / 60/мин (query) | Бессрочно |
| JWT | Человеко-ориентированный UI, операции с аккаунтом | Нет | 7 дней |
Mind Key (для агентов)
Mind Key — это токен API с областью действия на арендатора. Он аутентифицирует данные одного mind (воспоминания, задачи, чат, скрипты и т. д.). Используйте его для:
- LLM-агентов, вызывающих API
- Фоновых скриптов автоматизации
- Конфигурации MCP-сервера
- Любой долгоживущей интеграции
Аутентификация через заголовок (рекомендуется)
curl -H "Authorization: Bearer mk_yourMindKeyHere" \
https://synapse.schaefer.zone/memory/recallЧерез query-параметр (для инструментов, работающих только с URL)
curl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHereСоздание 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"}'Ответ включает mind_key — сохраните его немедленно, он показывается только один раз.
Получение списка своих mind
curl -H "Authorization: Bearer YOUR_JWT" \
https://synapse.schaefer.zone/mindsУдаление mind (необратимо!)
curl -X DELETE -H "Authorization: Bearer YOUR_JWT" \
https://synapse.schaefer.zone/minds/m_xyz789JWT (для людей)
JWT аутентифицирует аккаунт пользователя, а не конкретный mind. Используйте их для:
- Регистрации и входа в аккаунт
- Создания / получения списка / удаления mind
- Передачи mind другим пользователям
- Управления подписками Web Push
Регистрация
curl -X POST https://synapse.schaefer.zone/register \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "password": "secret"}'Возвращает: { "jwt": "eyJ...", "user": {...} }
Вход
curl -X POST https://synapse.schaefer.zone/login \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "password": "secret"}'Возвращает: { "jwt": "eyJ...", "user": {...} }
Срок действия JWT
JWT истекает через 7 дней. После истечения просто вызовите /login снова,
чтобы получить новый. Mind Key не истекает, поэтому существующие интеграции
агентов продолжают работать.
Лучшие практики безопасности
Паттерн переменных окружения
# .env (NEVER commit this file)
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}` },
});Конфигурация MCP-сервера
{
"mcpServers": {
"synapse": {
"command": "npx",
"args": ["-y", "synapse-mcp-api@latest"],
"env": {
"SYNAPSE_MIND_KEY": "mk_yourMindKeyHere",
"SYNAPSE_URL": "https://synapse.schaefer.zone"
}
}
}
}Паттерн нескольких mind
У каждого пользователя может быть несколько mind. Типовые паттерны:
| Имя mind | Назначение |
|---|---|
work |
Рабочие воспоминания |
personal |
Личные предпочтения, семья |
project-synapse |
Контекст конкретного проекта |
learning-german |
Прогресс обучения |
assistant-default |
Универсальный fallback |
Используйте разные Mind Key в разных LLM-сессиях, чтобы контексты были изолированы.
Лимиты запросов
| Способ аутентификации | Лимит | Область |
|---|---|---|
| Mind Key (заголовок) | Нет | На mind |
| Mind Key (?key=) | 60/мин | На IP |
| JWT (заголовок) | Нет | На пользователя |
| Публичные эндпоинты | Нет | Глобально |
Заголовки лимитов (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After)
включаются в ответы при применимости.
Следующие шаги
- Mind Key против JWT — когда что использовать
- Memory API — что можно делать с Mind Key
- User API — управление аккаунтом с JWT