Автентифікація та Mind Keys
Як працює автентифікація Synapse: Mind Keys для агентів, JWT для людей, ?key= для URL-only інструментів.
Автентифікація та Mind Keys
Synapse використовує два методи автентифікації, кожен оптимізований під свій варіант використання. Розуміння різниці є необхідним для побудови надійних інтеграцій.
Два методи автентифікації
| Метод | Варіант використання | Обмеження частоти | Термін дії |
|---|---|---|---|
| Mind Key | LLM-агенти, інструменти автоматизації | Немає (заголовок) / 60 хв (запит) | Ніколи |
| JWT | Людський інтерфейс, операції облікового запису | Немає | 7 днів |
Mind Key (для агентів)
Mind Key — це API-токен, прив'язаний до тенанта. Він автентифікує дані одного mind-у (спогади, завдання, чат, скрипти тощо). Використовуйте для:
- LLM-агентів, що викликають API
- Фонових скриптів автоматизації
- Конфігурації MCP-сервера
- Будь-якої довготривалої інтеграції
Автентифікація через заголовок (рекомендовано)
curl -H "Authorization: Bearer mk_yourMindKeyHere" \
https://synapse.schaefer.zone/memory/recallПараметр запиту (для URL-only інструментів)
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 днів. Коли JWT закінчується, просто викличте /login
знову, щоб отримати новий. Mind Key ніколи не закінчується, тому наявні інтеграції
агентів продовжують працювати.
Найкращі практики безпеки
Шаблон змінних середовища
# .env (НІКОЛИ не комітьте цей файл)
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 Keys для різних сесій 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
- API користувачів — керування обліковим записом з JWT