Суверенітет

З чого складається одна зустріч InterMIND

Доповнення до нашої карти виконання: не те, де працює ваша зустріч, а те, з чого вона побудована. Шар за шаром стек — де ми запускаємо власний код або програмне забезпечення з відкритим кодом, де ми прагматично підходимо до пропрієтарного SaaS, і чому рушій, через який проходить більша частина ваших даних, є нашим власним кодом із публічним клієнтським SDK за ліцензією BSD.

The Mind.com Team

З чого складається одна зустріч InterMIND

З чого складається одна зустріч InterMIND

Майже кожен продукт побудований із одного й того самого стандартного стеку — великих пропрієтарних рішень SaaS, за які хапається кожен. Це шлях найменшого опору. На кожному шарі, де фактично зберігаються дані вашої зустрічі, ми пішли іншим шляхом: наш власний код або рішення з відкритим кодом, які ми могли розмістити на власних серверах.

Це доповнення до Де фактично працює одна зустріч InterMIND, де було описано географію — де виконується кожна служба і які дані проходять через неї. Ця стаття дає відповідь на наступне запитання команди безпеки: з чого побудована ця річ — і чи можемо ми прочитати її код, перевірити та замінити?

Не те, де вона працює — а те, з чого вона зроблена, шар за шаром.


Стандартні рішення та їхня ціна

Кожен продукт — це стек виборів. Для більшості продуктів більшість із цих виборів робляться за замовчуванням: Google Analytics, Firebase, Google Translate API, Auth0, React. Це шлях найменшого опору, і для більшості команд це розумне рішення. Компроміс полягає в тому, що кожен із них ховає частину вашого стеку за вендором, код якого ви не можете прочитати, не можете перевірити і від якого не можете відмовитися без переписування.

Ми зробили інший вибір на кожному шарі, де фактично зберігаються дані вашої зустрічі: наш власний код або програмне забезпечення з відкритим кодом, яке ми могли розмістити на власних серверах. Там, де шар не стосується вмісту вашої зустрічі, ми залишаємося прагматичними і прямо про це говоримо. Ось як це виглядає загалом.


Основа: рушій — це наш код, а не код третьої сторони

Почнімо з шару, який має найбільше значення, оскільки через нього проходить більша частина вашої зустрічі. Транспорт у реальному часі та переклад голосу/чату працюють на mind-sdk + Mind API — нашому власному рушії на OVH France. Стандартний спосіб створення перекладеної зустрічі — це приєднати SaaS для реального часу (LiveKit) до API перекладу (DeepL, Google); ми не використовуємо жоден із них у робочому шляху. У ланцюгу немає жодної сторонньої моделі перекладу. (Ми використовуємо DeepL — але лише для документів, завантажених у чат, а не для голосу/чату в реальному часі; див. карту виконання. Механіку конвеєра ми розібрали в Всередині чотирьох конвеєрів перекладу.)

Ось та частина, якої немає на карті виконання: SDK, на якому працює ваша зустріч, є відкритим кодом за ліцензією BSD 3-Clause — клієнт mind-sdk є публічним за адресою gitlab.com/mindlabs/api/sdk, авторське право належить MindMeeting OÜ, нашій естонській організації, що володіє правами інтелектуальної власності. Він зв'язується з Mind API за адресою api.mind.com, який ми самі розміщуємо на OVH France.

Це не домовленість типу "подивись, але не чіпай" із доступом до початкового коду. BSD 3-Clause — це дозвільна ліцензія, схвалена OSI. Ваша команда безпеки може клонувати SDK, прочитати, як саме захоплюється, фреймується і транслюється ваше аудіо та текст, і перевірити цю інтеграцію на відповідність вашим власним вимогам. Серверний рушій, з яким він спілкується, наш — а не чорна скринька третьої сторони — і повністю автономний рушій, який можна розмістити на власних серверах для клієнта, якому це потрібно, є в нашій дорожній карті, а не тим, що ми пропонуємо сьогодні. Ми оновимо цей пост одразу, щойно він з'явиться.


Шар за шаром: стандартне рішення проти того, що використовуємо ми

ШарСтандартне рішенняЩо використовуємо миЧому це важливо для вас
Рушій реального часу + перекладу (голос + чат)LiveKit + API перекладу (DeepL / Google)mind-sdk (клієнт на BSD-3-Clause) + наш Mind API, OVH FranceНайбільший потік даних проходить через наш власний рушій, а не через модель третьої сторони — і його клієнтський SDK є відкритим та перевірюваним
Інтерфейсний фреймворкReact (Meta) / Next.jsVue + NuxtOSS під управлінням спільноти — жодна окрема корпорація не володіє фреймворком, на якому працює ваш UI
Продуктова аналітикаGoogle AnalyticsPostHogПрограмне забезпечення з відкритим кодом, хмарне сховище в ЄС, проксується через наш власний домен як first-party — дані про використання не передаються на сторонні рекламні платформи
ШрифтиGoogle Fonts CDNSelf-hosted (@nuxt/fonts)Жодних сторонніх викликів шрифтів зі сторінки, яку завантажують ваші користувачі — це постійна знахідка при перевірках на комплаєнс із GDPR, якої ми уникнули
АвтентифікаціяAuth0 / Clerk / Firebase AuthВласний OIDC, з федерацією з вашими Google / MicrosoftЖоден посередник не тримає ваші сесії — ви використовуєте власного постачальника ідентичності
Переклад документівGoogle TranslateDeepL (Cologne)Спеціалізований вендор з ЄС, обробка в Німеччині
Контент / документиContentful / Sanity (headless CMS)Nuxt Content (git-tracked markdown)Тексти на нашому сайті зберігаються в нашому репозиторії, а не в базі даних вендора
База даних додаткуFirestore / DynamoDB (пропрієтарна)Postgres (на Neon)Відкритий стандарт — можна перенести на будь-який хостинг Postgres, без пропрієтарного API для запитів, яке потрібно переписувати
Об'єктне сховищеПропрієтарні blob APITigris (S3-сумісний)Відкритий протокол — записи та експортні файли можна перенести в будь-яке S3-сховище
CRM / продажіSalesforce / HubSpotPipedrive (Estonian)Записи клієнтів та угод зберігаються в CRM, зареєстрованій в ЄС, а не на платформі продажів США

Через цю таблицю проходять дві лінії. Відкритий код там, де інструмент обробляє ваші дані — щоб його можна було перевірити і, в принципі, розмістити на власних серверах. Відкриті стандарти (Postgres, S3 API, OIDC) там, де ми залежимо від інфраструктури — щоб нічого не було прив'язане до ціноутворення або підходу до комплаєнсу одного вендора. Postgres можна перенести на будь-який хостинг Postgres; сховище можна перенести в будь-яке S3-сховище; автентифікація федерації підключається до вашого існуючого постачальника ідентичності. Останній рядок лежить на третій осі: CRM, яка зберігає записи клієнтів, зареєстрована в ЄС (Pipedrive, Естонія), а не є платформою для продажів з США — не з відкритим кодом, але й не під юрисдикцією США.

Кілька з них заслуговують на додаткове речення. PostHog має відкритий код і може розміщуватися на власних серверах; ми запускаємо його на хмарі PostHog в ЄС і проксуємо як first-party через наш власний origin, тому події не блокуються адблокерами і не проходять через домен сторонньої аналітичної системи. Автентифікація ніколи не передається сторонньому SaaS для автентифікації, який знаходився б між вами та вашими сесіями — ми самі запускаємо потік OIDC і федеруємо з вашою існуючою ідентичністю Google або Microsoft. І шрифти на кожній сторінці завантажуються з нашого власного домену; єдине місце, де Google Fonts фігурує в нашій кодовій базі — це офлайн-скрипт для фірмових ресурсів, але ніколи — в додатку, який завантажують ваші користувачі.


Де ми прагматичні — сказано вголос

Ми не робимо вигляду, що весь стек написаний власноруч або не пов'язаний із США. Це не так, і пост, який стверджував би зворотне, суперечив би нашій власній карті виконання.

Інфраструктура — хостинг та SSR (Vercel), обчислення сервера зустрічей (Fly.io), платежі (Stripe), транзакційна електронна пошта (Resend) — працює на SaaS, зареєстрованому в США. Stripe та Resend обробляють виставлення рахунків і запрошення і ніколи не бачать вмісту зустрічі. Vercel та Fly — це орендовані обчислювальні потужності: на них працює наш власний код, і сервер зустрічей на Fly дійсно обробляє живу сесію та транскрипцію, яку читає наш дайджест — але це наш код на їхніх машинах, а не вендорський продукт, що поглинає вашу зустріч. Усе це виконується в ЄС під час роботи (тема карти виконання).

Це навмисний, обмежений компроміс: володіти та відкривати data plane; використовувати найкращий доступний SaaS для control plane. Назвати це — головне — "суверенітет" означає мало, якщо винятки не лежать на столі поруч із перемогами.


Кроки ШІ після зустрічі та план

Жодна пропрієтарна модель, зареєстрована в США, не стосується вмісту, отриманого із зустрічі. Кроки з мовною моделлю, які виконуються після дзвінка — AI дайджест (теми, рішення, пункти дій), підсумок після зустрічі та AI редактор нотаток — усі працюють на обробниках в ЄС. Дайджест та генеративні дії редактора працюють на розміщеній в ЄС Mistral з нульовим зберіганням даних (доступ до якої здійснюється через AI Gateway від Vercel із закріпленням за провайдером Mistral). Підсумок та дія перекладу в редакторі працюють на нашому власному рушії в ЄС на OVH — тому ж, що стоїть за голосом та чатом у реальному часі. Голос, чат, нотатки та документи у реальному часі взагалі ніколи не стикалися з LLM загального призначення.

Єдина модель зі США, яка все ще є в ланцюгу, оцінює наш публічний бенчмарк перекладу — оцінюючи машинні переклади фіксованих референсних речень FLORES-200, а не чиїсь зустрічі.

Ми йдемо ще далі у кроках з EU-Mistral: опція opt-out, якою керує власник, щоб повністю вимкнути дайджест, та розміщена на власних серверах модель узагальнення з відкритими вагами на OVH (рівня Kimi) для заміни зовнішньої Mistral. Суть шляху з відкритими вагами не в тому, чия лабораторія навчила ці ваги — а в тому, що відкриті ваги можуть працювати на інфраструктурі, яку ми контролюємо, що утримує їх на тій самій осі відкритості та можливості розгортання на власних серверах, що й решта data plane. Обидві функції знаходяться в дорожній карті, а ще не випущені; ми оновимо цей пост, щойно вони з'являться.


Чому це важливо не лише для нас

Це не інженерія заради інженерії. Причина будувати стек саме так виявляється на вашому боці контракту:

  1. Підлягає аудиту. SDK, на якому працює ваша зустріч, — це код з відкритим вихідним кодом, який ваша команда безпеки може прочитати, а рушій за ним — наш власний, а не чорна скринька третьої сторони.
  2. Переносимий. Відкриті стандарти на кожному шарі даних — Postgres, S3, OIDC — означають відсутність пропрієтарної прив'язки. Те, що можна перенести, не прив'язане до одного вендора.
  3. Придатний для розгортання на власних серверах. Шари даних з відкритими стандартами — Postgres, S3, OIDC — вже працюють на інфраструктурі, якою ви керуєте; повністю автономний рушій перекладу знаходиться в дорожній карті для клієнтів, яким він потрібен.

Ця картина актуальна на 07.06.2026. Ми оновимо її, коли стек зміниться — заміна вендора, перебудова шару, заміна моделі дайджесту. Поточна конфігурація є перевірюваною у наших відкритих vercel.json, nuxt.config.ts та репозиторії mind-sdk за ліцензією BSD-3-Clause, посилання на який наведено вище.

Якщо якийсь шар тут здається вам неправильним, або вашому огляду безпеки потрібна відповідь, яку не дає ця карта, напишіть нам. Ми краще виправимо пропущену деталь, ніж ви знайдете її під час аудиту коду.


Джерела: репозиторій mind-sdk (BSD-3-Clause), FLORES-200; факти про стек перевірені за розгорнутою конфігурацією (vercel.json, nuxt.config.ts) та відправленим кодом, перевірено в серпні 2026 року.

Отримувати нові дописи електронною поштою

Ми напишемо вам, коли опублікуємо новий допис. Скасувати підписку можна будь-коли.