Skip to main content

المصادقة و Mind Keys

كيف تعمل مصادقة Synapse: Mind Keys للوكلاء، JWTs للبشر، ?key= معطَّل افتراضيًا (ترويسة Bearer فقط، AUTH_QUERY_KEY_MODE=deny).


المصادقة و Mind Keys

يستخدم Synapse طريقتين للمصادقة، كلٌّ مُحسّنة لحالة استخدام مختلفة. فهم الفرق أساسي لبناء تكاملات موثوقة.

طريقتان للمصادقة

الطريقة حالة الاستخدام حد المعدل الانتهاء
Mind Key وكلاء LLM، الأدوات المؤتمتة 120/دقيقة (Bearer خارجي)؛ ?key= معطَّل افتراضيًا (deny) أبدًا
JWT واجهة الإنسان، عمليات الحساب 120/دقيقة (للـIP الخارجية) 7 أيام

Mind Key (للوكلاء)

Mind Key رمز API محدود بمستأجر. يُصادق بيانات عقل واحد (الذكريات، المهام، الدردشة، السكربتات، إلخ). استخدمه لـ:

  • وكلاء LLM الذين يستدعون الـ API
  • سكربتات الأتمتة الخلفية
  • إعداد خادم MCP
  • أي تكامل طويل الأمد

مصادقة الترويسة (موصى بها)

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

معامل الاستعلام (معطَّل افتراضيًا)

curl https://synapse.schaefer.zone/memory/recall?key=mk_yourMindKeyHere
معامل الاستعلام `?key=` **معطَّل** مع الافتراضي المُحصَّن `AUTH_QUERY_KEY_MODE=deny`: يستجيب الخادم لـ `?key=` بـ 401 والتنبيه "Query-param auth (?key=) is disabled". ترويسة Bearer فقط هي الافتراض الآمن (المصدر: `src/lib/auth.ts`). فقط إذا ضبط المشغّل صراحةً `AUTH_QUERY_KEY_MODE=allow` يعمل `?key=` كصمام انتقالي بحد 60 طلبًا/دقيقة (لكل IP). عملاء Bearer الخارجيون يحصلون على 120 طلبًا/دقيقة لكل هوية؛ الشبكات الداخلية الموثوقة بلا حد.

إنشاء 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 — احفظه فورًا، يُعرض مرة واحدة فقط.

سرد عقلك

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

حذف عقل (لا يمكن التراجع!)

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

JWT (للبشر)

تُصادق JWTs حساب المستخدم، لا عقلًا محددًا. استخدمها لـ:

  • تسجيل الحساب والدخول
  • إنشاء / سرد / حذف العقول
  • مشاركة العقول مع مستخدمين آخرين
  • إدارة اشتراك 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

تنتهي JWTs بعد 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"
      }
    }
  }
}

نمط العقول المتعددة

يستطيع كل مستخدم امتلاك عقول متعددة. أنماط شائعة:

اسم العقل الغرض
work ذكريات العمل
personal التفضيلات الشخصية، العائلة
project-synapse سياق مشروع محدد
learning-german تقدّم التعلم
assistant-default بديل للأغراض العامة

استخدم Mind Keys مختلفة لجلسات LLM مختلفة للحفاظ على عزل السياقات.

حدود المعدل

طريقة المصادقة الحد النطاق
Mind Key (ترويسة) 120/دقيقة للـIP الخارجية (لكل هوية)؛ غير محدود للشبكات الداخلية الموثوقة لكل عقل
Mind Key (?key=، عند allow فقط) 60/دقيقة لكل IP
JWT (ترويسة) لا شيء لكل مستخدم
نقاط النهاية العامة لا شيء عام

تُتضمن ترويسات حد المعدل (X-RateLimit-Limit، X-RateLimit-Remaining، Retry-After) في الاستجابات عند الاقتضاء.

الخطوات التالية