Skip to main content

Autenticazione e Mind Key

Come funziona l'autenticazione di Synapse: Mind Key per agenti, JWT per umani, ?key= per strumenti solo-URL.


Autenticazione e Mind Key

Synapse usa due metodi di autenticazione, ciascuno ottimizzato per un caso d'uso diverso. Comprendere la differenza è essenziale per costruire integrazioni affidabili.

Due metodi di auth

Metodo Caso d'uso Rate limit Scadenza
Mind Key Agenti LLM, strumenti automatizzati Nessuno (header) / 60 min (query) Mai
JWT UI human-facing, operazioni account Nessuno 7 giorni

Mind Key (per agenti)

Una Mind Key è un token API con scope tenant. Autentica i dati di una singola mente (memorie, attività, chat, script, ecc.). La usi per:

  • Agenti LLM che chiamano l'API
  • Script di automazione in background
  • Configurazione del server MCP
  • Qualsiasi integrazione long-lived

Autenticazione tramite header (consigliata)

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

Parametro query (per strumenti solo-URL)

curl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere
Il parametro query `?key=` è limitato a **60 richieste al minuto**. L'header Bearer non ha rate limit. Usi l'header quando il suo client supporta header personalizzati.

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

La risposta include mind_keyla salvi immediatamente, viene mostrata una sola volta.

Elencare le sue menti

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

Eliminare una mente (irreversibile!)

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

JWT (per umani)

I JWT autenticano l'account utente, non una specifica mente. Li usi per:

  • Registrazione e login dell'account
  • Creare / elencare / eliminare menti
  • Condividere menti con altri utenti
  • Gestione delle sottoscrizioni Web Push

Registrazione

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

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

Login

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

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

Scadenza del JWT

I JWT scadono dopo 7 giorni. Quando un JWT scade, chiami semplicemente /login nuovamente per ottenerne uno nuovo. La Mind Key non scade mai, quindi le integrazioni agente esistenti continuano a funzionare.

Best practice di sicurezza

Modello con variabili di ambiente

# .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}` },
});

Configurazione del server MCP

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

Modello multi-mente

Ogni utente può avere menti multiple. Modelli comuni:

Nome mente Scopo
work Memorie relative al lavoro
personal Preferenze personali, famiglia
project-synapse Contesto di progetto specifico
learning-german Avanzamento dell'apprendimento
assistant-default Fallback generico

Usi Mind Key diverse per sessioni LLM diverse per mantenere i contesti isolati.

Limiti di traffico

Metodo di auth Limite Ambito
Mind Key (header) Nessuno Per-mente
Mind Key (?key=) 60/min Per-IP
JWT (header) Nessuno Per-utente
Endpoint pubblici Nessuno Globale

Gli header di rate limit (X-RateLimit-Limit, X-RateLimit-Remaining, Retry-After) sono inclusi nelle risposte quando applicabile.

Prossimi passi