# Multi-Tenancy & Isolation SUMMARY: วิธีที่ Synapse แยกข้อมูลระหว่างผู้ใช้และ mind — อธิบายขอบเขตความปลอดภัย Multi-Tenancy & Isolation Synapse เป็น multi-tenant: หลายผู้ใช้ แต่ละคนมีหลาย mind ที่แยกจากกันโดยสมบูรณ์ เอกสารหน้านี้อธิบายโมเดล isolation ลำดับชั้น Tenant [CODE BLOCK] ระดับ Isolation ระดับ 1: User Isolation แต่ละบัญชีผู้ใช้ถูกแยกกัน Alice ไม่สามารถ: - เห็น mind ของ Bob - เข้าถึง memory ของ Bob (แม้ด้วย JWT ของเธอ) - ดูข้อมูลบัญชีของ Bob บังคับโดย: column บนทุกตาราง, JWT มี , ทุก query กรองตาม ระดับ 2: Mind Isolation ภายในผู้ใช้ แต่ละ mind ถูกแยกกัน Mind A ไม่สามารถ: - เห็น memory ของ Mind B - เข้าถึง task, chat, script ของ Mind B บังคับโดย: column บนตารางข้อมูลทั้งหมด, Mind Key มี , ทุก query กรองตาม > [!CRITICAL] > Mind Key isolation เป็นขอบเขตความปลอดภัยหลัก Mind Key ที่รั่วไหลให้สิทธิ์เข้าถึงข้อมูล mind นั้นอย่างเต็ม — แต่เฉพาะ mind นั้น Authentication Token | Token | Scope | เข้าถึงอะไรได้ | |-------|-------|-------------------| | Mind Key | mind เดียว | ข้อมูล mind นั้นเท่านั้น | | JWT | บัญชีผู้ใช้ | การจัดการบัญชี (สร้าง/รายการ/ลบ mind) | | Computer Token | computer เดียว | คำสั่งของ computer นั้น | การเข้าถึงข้าม Mind ภายในผู้ใช้เดียวกัน ผู้ใช้เข้าถึง mind ทั้งหมดของตนผ่าน JWT (เช่น รายการทั้งหมด) แต่เพื่ออ่าน/เขียนข้อมูล memory ต้องใช้ Mind Key เฉพาะ ข้ามผู้ใช้ ผู้ใช้ไม่สามารถเข้าถึงข้อมูลของกันและกัน — เว้นแต่จะแชร์ mind อย่างชัดเจนผ่าน Sharing API: [CODE BLOCK] หลังแชร์ Bob สามารถเข้าถึง Mind A ผ่าน JWT ของเขา (อ่านอย่างเดียวหาก ) ขอบเขตความปลอดภัย [CODE BLOCK] รูปแบบ Multi-Tenancy ทั่วไป รูปแบบ 1: ผู้ใช้เดียว, mind เดียว ทั่วไปที่สุดสำหรับผู้ใช้ LLM agent รายบุคคล - 1 บัญชีผู้ใช้ - 1 mind - 1 Mind Key - memory ทั้งหมดใน scope เดียว รูปแบบ 2: ผู้ใช้เดียว, หลาย mind สำหรับผู้ใช้ที่มีหลาย context (งาน, ส่วนตัว, โปรเจกต์) - 1 บัญชีผู้ใช้ - N mind (เช่น "work", "personal", "project-x") - N Mind Key - แต่ละ LLM session ใช้หนึ่ง Mind Key รูปแบบ 3: Mind ที่แชร์ในทีม สำหรับทีมที่ทำงานร่วมกันในโปรเจกต์ - 1 ผู้ใช้สร้าง mind (ได้ Mind Key) - ผู้สร้างแชร์กับสมาชิกทีมผ่าน JWT - สมาชิกทีมทั้งหมดเข้าถึงผ่าน JWT (หรือ Mind Key ที่แชร์) > [!WARNING] > การแชร์ Mind Key ให้สิทธิ์อ่าน/เขียนเต็ม สำหรับการทำงานร่วมในทีม แนะนำ Sharing API (ใช้ JWT) มากกว่าการแชร์ Mind Key โดยตรง รูปแบบ 4: SaaS Provider สำหรับแอปที่ฝัง Synapse เป็น memory layer - ลูกค้าแต่ละราย = 1 บัญชีผู้ใช้ - โปรเจกต์ลูกค้าแต่ละโปรเจกต์ = 1 mind - แอปเก็บ Mind Key ตามลูกค้า/โปรเจกต์ - แยกอย่างสมบูรณ์ระหว่างลูกค้า การตรวจสอบ Isolation ทดสอบ: Mind Key เข้าถึง mind อื่นไม่ได้ [CODE BLOCK] ทดสอบ: JWT อ่านข้อมูล memory โดยตรงไม่ได้ [CODE BLOCK] แนวทางปฏิบัติที่ดีที่สุด > [!TIP] > - ใช้หนึ่ง mind ต่อโปรเจกต์/context — isolation เป็นเพื่อนของคุณ > - อย่าแชร์ Mind Key — ใช้ Sharing API แทน > - หมุนเวียน Mind Key หากถูกโจมตี (ลบ mind, สร้างใหม่) > - ตรวจสอบ mind ที่แชร์ — ตรวจ เป็นคาบ > - ใช้ JWT สำหรับ human UI — อย่าเปิดเผย Mind Key ต่อ end user ขั้นตอนถัดไป - Authentication - Mind Key vs JWT - Architecture