Skip to main content

Autentisering & Mind Keys

Hur Synapse-autentisering fungerar: Mind Keys för agenter, JWT:er för människor, ?key= avstängd som standard (endast Bearer, AUTH_QUERY_KEY_MODE=deny).


Autentisering & Mind Keys

Synapse använder två autentiseringsmetoder, var och en optimerad för olika användningsområden. Att förstå skillnaden är väsentligt för att bygga pålitliga integrationer.

Två autentiseringsmetoder

Metod Användningsområde Hastighetsgräns Utgång
Mind Key LLM-agenter, automatiserade verktyg 120/min (extern Bearer); ?key= avstängd som standard (deny) Aldrig
JWT Mänskligt gränssnitt, kontoåtgärder 120/min (externa IP) 7 dagar

Mind Key (för agenter)

En Mind Key är en klientomfattande API-token. Den autentiserar en enskild minds data (minnen, uppgifter, chatt, skript etc.). Använd den för:

  • LLM-agenter som anropar API:et
  • Bakgrundsautomationsskript
  • MCP-serverkonfiguration
  • Alla långlivade integrationer

Header-autentisering (rekommenderas)

curl -H "Authorization: Bearer mk_yourMindKeyHere" \
     https://synapse.schaefer.zone/memory/recall

Queryparameter (avstängd som standard)

curl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere
Queryparametern `?key=` är **avstängd** av den förhärdade standarden `AUTH_QUERY_KEY_MODE=deny`: servern svarar på `?key=` med 401 och ledtråden "Query-param auth (?key=) is disabled". Endast Bearer är det säkra standardvärdet (SSOT: `src/lib/auth.ts`). Endast om en operatör uttryckligen sätter `AUTH_QUERY_KEY_MODE=allow` fungerar `?key=` som övergångsventil med 60 req/min (per IP). Externa Bearer-klienter får 120 req/min per identitet; betrodda interna nätverk är obegränsade.

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

Svaret inkluderar mind_key — spara den omedelbart, den visas endast en gång.

Lista era minds

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

Ta bort en mind (oåterkalleligt!)

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

JWT (för människor)

JWT:er autentiserar användarkontot, inte en specifik mind. Använd dem för:

  • Kontoregistrering och inloggning
  • Skapa / lista / ta bort minds
  • Dela minds med andra användare
  • Hantering av Web Push-prenumerationer

Registrera

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

Returnerar: { "jwt": "eyJ...", "user": {...} }

Logga in

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

Returnerar: { "jwt": "eyJ...", "user": {...} }

JWT-utgång

JWT:er löper ut efter 7 dagar. När en JWT löper ut, anropa /login igen för att få en ny. Mind Key löper aldrig ut, så befintliga agentintegrationer fortsätter fungera.

Säkerhetsbästa praxis

Mönster med miljövariabel

# .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-serverkonfiguration

{
  "mcpServers": {
    "synapse": {
      "command": "npx",
      "args": ["-y", "synapse-mcp-api@latest"],
      "env": {
        "SYNAPSE_MIND_KEY": "mk_yourMindKeyHere",
        "SYNAPSE_URL": "https://synapse.schaefer.zone"
      }
    }
  }
}

Flera-mind-mönster

Varje användare kan ha flera minds. Vanliga mönster:

Mind-namn Syfte
work Jobbrelaterade minnen
personal Personliga inställningar, familj
project-synapse Specifik projektkontext
learning-german Inlärningsframsteg
assistant-default Allmän reserv

Använd olika Mind Keys för olika LLM-sessioner för att hålla kontexter isolerade.

Hastighetsgränser

Autentiseringsmetod Gräns Omfattning
Mind Key (header) 120/min från externa IP (per identitet); obegränsat för betrodda interna nätverk Per-mind
Mind Key (?key=, endast med allow) 60/min Per-IP
JWT (header) 120 req/min (externa IP; obegränsat för betrodda interna nätverk) Per-användare
Publika endpoints Ingen Global

Headers för hastighetsgräns (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After) inkluderas i svar när tillämpligt.

Nästa steg