# Мультитенантність та ізоляція SUMMARY: Як Synapse ізолює дані між користувачами та mind-ами — пояснення меж безпеки. Мультитенантність та ізоляція Synapse є мультитенантним: кілька користувачів, кожен із кількома mind-ами, повністю ізольованими один від одного. Ця сторінка пояснює модель ізоляції. Ієрархія тенантів [CODE BLOCK] Рівні ізоляції Рівень 1: Ізоляція користувачів Кожен обліковий запис користувача ізольований. Аліса не може: - Бачити mind-и Боба - Доступатися до спогадів Боба (навіть зі своїм JWT) - Переглядати інформацію про обліковий запис Боба Забезпечено: колонка у всіх таблицях, JWT містить , усі запити фільтруються за . Рівень 2: Ізоляція mind-ів У межах користувача кожен mind ізольований. Mind A не може: - Бачити спогади Mind B - Доступатися до завдань, чату, скриптів Mind B Забезпечено: колонка у всіх таблицях даних, Mind Key містить , усі запити фільтруються за . > [!CRITICAL] > Ізоляція Mind Key — це основна межа безпеки. Виточений Mind Key надає повний > доступ до даних цього mind-у — але ТІЛЬКИ цього mind-у. Токени автентифікації | Токен | Область | Що може доступати | |-------|-------|-------------------| | Mind Key | Один mind | Лише дані цього mind-у | | JWT | Обліковий запис користувача | Керування обліковим записом (створення/список/видалення mind-ів) | | Computer Token | Один комп'ютер | Команди цього комп'ютера | Між-mind доступ У межах одного користувача Користувач може доступатися до всіх своїх mind-ів через JWT (напр. виводить усі). Але для читання/запису даних пам'яті потрібен конкретний Mind Key. Між користувачами Користувачі не можуть доступатися до даних одне одного — ЯКЩО тільки явно не поділяться mind-ом через Sharing API: [CODE BLOCK] Після цього Боб може доступатися до Mind A через свій JWT (лише читання, якщо ). Межі безпеки [CODE BLOCK] Типові шаблони мультитенантності Шаблон 1: Один користувач, один mind Найпоширеніший для індивідуальних користувачів LLM-агентів. - 1 обліковий запис користувача - 1 mind - 1 Mind Key - Усі спогади в одній області Шаблон 2: Один користувач, кілька mind-ів Для користувачів із кількома контекстами (робота, особисте, проєкти). - 1 обліковий запис користувача - N mind-ів (напр. «work», «personal», «project-x») - N Mind Keys - Кожна сесія LLM використовує один Mind Key Шаблон 3: Командний спільний mind Для команд, що співпрацюють над проєктом. - 1 користувач створює mind (отримує Mind Key) - Творець ділиться з членами команди через JWT - Усі члени команди доступаються через JWT (або спільний Mind Key) > [!WARNING] > Поширення Mind Key дає повний доступ на читання/запис. Для командної > співпраці віддавайте перевагу Sharing API (на основі JWT), а не прямому > поширенню Mind Keys. Шаблон 4: SaaS-провайдер Для додатків, що вбудовують Synapse як шар пам'яті. - Кожен клієнт = 1 обліковий запис користувача - Кожен проєкт клієнта = 1 mind - Додаток зберігає Mind Keys для кожного клієнта/проєкту - Повна ізоляція між клієнтами Перевірка ізоляції Тест: Mind Key не може доступатися до інших mind-ів [CODE BLOCK] Тест: JWT не може читати дані пам'яті напряму [CODE BLOCK] Найкращі практики > [!TIP] > - Один mind на проєкт/контекст — ізоляція — ваш друг > - Ніколи не поширюйте Mind Keys — використовуйте Sharing API > - Ротуйте Mind Keys у разі компрометації (видаліть mind, створіть новий) > - Аудитуйте спільні mind-и — періодично переглядайте > - Використовуйте JWT для людського UI — ніколи не викривайте Mind Keys кінцевим користувачам Наступні кроки - Автентифікація - Mind Key проти JWT - Архітектура