Политика конфиденциальности
Коротко: мы собираем анонимные события взаимодействия, email хешируется SHA-256, значения health-метрик никогда не уходят в аналитику, session recording выключен. Аккаунт и данные — до момента удаления.
1. Кто обрабатывает ваши данные
Оператор: Никита Никитенок (физическое лицо), Вильнюс, Литва. Контакт и запросы GDPR: [email protected]. Юрисдикция: Литва / ЕС. GDPR применим в полном объёме.
2. Какие данные мы собираем
2.1. Данные аккаунта
При входе через Google OAuth мы получаем от Google:
- Email-адрес
- Отображаемое имя
- URL аватара
- Google account ID
Пароли не хранятся — вход только через SSO.
2.2. Health data (Special Category под GDPR Art.9)
Вы добавляете сами, напрямую или через интеграции:
- Метрики сна, HRV, resting HR, активности (Oura Ring API, RescueTime API и т.п.)
- Результаты когнитивных тестов (reaction time, Stroop, PVT)
- Самоотчёты (настроение, энергия, brain fog)
- История локаций — только если вы загружаете Google Timeline export вручную
- Лабораторные анализы — вводите вручную
- Workout и body-metrics — из интеграций или вручную
Health data относится к “special categories of personal data” (GDPR Art.9) и требует повышенного уровня защиты.
2.3. Технические данные (аналитика)
- Анонимные события взаимодействия (клики, навигация, старт/финиш теста, pin виджета)
- Провайдер: PostHog EU (Frankfurt, данные не уходят из ЕС)
- Идентификация: SHA-256 hash email (первые 16 hex-символов) — восстановить plain email нельзя
- Cookie-less persistence в SPA — идентификаторы живут в памяти, не пишутся в cookies
- IP-адрес анонимизируется на стороне PostHog
3. Что мы НЕ собираем
- Значения health-метрик в аналитике. Событие
cognitive_test_completedсодержит только факт “тест завершён” + тип субтеста, без score. - Plain-text email или имя в аналитике.
- IP-адрес в явном виде (PostHog anonymize + мы не логируем IP в наших сервисах длительно).
- Активность вне доменов
health-os.appиos.health-os.app. - Ничего о вас не передаётся рекламным брокерам или ad-networks — их у нас нет.
4. Правовое основание (GDPR)
- Аккаунт и базовая функциональность — выполнение договора (Art.6(1)(b)).
- Health data — явное согласие (Art.9(2)(a)), которое вы даёте, загружая данные и подключая интеграции. Согласие можно отозвать в любой момент, запросив удаление аккаунта (см. §8); отключение интеграции останавливает дальнейший sync, но ранее импортированные данные остаются — напишите нам на email для их удаления.
- Аналитика — законный интерес (Art.6(1)(f)), сбалансированный с cookie-less + hashed ID конфигурацией и возможностью opt-out.
- Browser Do Not Track — учитывается автоматически: если включён, аналитика вообще не инициализируется.
5. Третьи лица (sub-processors)
- Google — OAuth login, YouTube Data API (если подключаете интеграцию), Google Drive (при upload Takeout)
- MongoDB Atlas (Ireland, EU region) — хранение данных аккаунта, health data, артефактов экспериментов
- Google Cloud Platform (europe-west1) — compute + GCS для загружаемых файлов
- Cloudflare — CDN для публичного сайта, Pages hosting
- PostHog EU (Frankfurt) — анализ взаимодействия, cookie-less
Мы не передаём health data третьим лицам за пределы этого списка, не продаём данные, не используем их для рекламы.
6. Передача данных за пределы ЕЭЗ
Все основные сервисы хосты в ЕС / ЕЭЗ (EU regions MongoDB Atlas, GCS europe-west1, PostHog Frankfurt). Cloudflare — global CDN, но только для публичного статического сайта без персональных данных.
7. Сроки хранения
- Health data и данные аккаунта: до момента, пока вы не удалите аккаунт. При удалении — cascade delete всех записей в MongoDB и файлов в GCS в течение 30 дней.
- Сессионные cookies (
connect.sid): 30 дней, HTTP-only, Secure, SameSite=Lax. - Analytics events: 90 дней hot storage в PostHog EU (стандартный retention).
- Backup snapshots: до 7 дней после удаления (MongoDB Atlas point-in-time).
8. Ваши права (GDPR Art.15–22)
- Доступ к данным — “Export all data” в Settings (JSON + CSV).
- Удаление — напишите на [email protected] с email-адреса своего аккаунта, чтобы запросить удаление; полное каскадное удаление выполняется в течение 30 дней. (Self-service кнопка удаления в Settings — в плане; до её появления канонический путь — email.)
- Исправление — редактирование профиля в Settings.
- Переносимость — export в стандартных форматах.
- Возражение против аналитики — toggle в Settings → Privacy & Analytics. Настройка сохраняется в
localStorageper-origin: включение в приложении (os.health-os.app) применяется там мгновенно, но не переносится на лендинг (health-os.app). На лендинге дополнительно учитывается сигнал браузераDo Not Trackдля сквозного opt-out. - Отзыв согласия — отключить интеграцию (останавливает дальнейший sync; ранее импортированные данные остаются — запросите удаление по email) или удалить аккаунт.
- Жалоба в орган надзора — в Литве: Valstybinė duomenų apsaugos inspekcija (VDAI).
9. Аналитика и session recording
- Запись сессий (session replay) полностью выключена на обоих origin’ах:
disable_session_recording: trueв SPA (packages/web/src/lib/analytics.ts) и на лендинге (packages/site/src/components/posthog.astro). - Если в будущем будет включена запись для UX-research — пользователь увидит явный баннер и сможет отказаться до старта сессии.
- Автокапчур ссылок / кликов ограничен событиями, которые мы явно отправляем (см. каталог событий в
docs/ANALYTICS.md).
10. Безопасность
- TLS в транзите (HTTPS everywhere).
- Encryption at rest на стороне MongoDB Atlas и GCS.
- Секреты интеграций (OAuth tokens, API keys) шифруются на уровне приложения (AES-GCM,
ENCRYPTION_KEY). - Изоляция пользовательских данных — все запросы к БД фильтруются по
userIdвладельца сессии.
11. Дети
Сервис не предназначен для лиц младше 18 лет. Мы не собираем данные о детях сознательно.
12. Изменения политики
При существенных изменениях — обновление даты “Последнее обновление” и уведомление по email (если email в профиле подтверждён). Мелкие правки (опечатки, уточнения формулировок) — без уведомления.
13. Контакт
Вопросы, запросы на экспорт, удаление, жалобы GDPR — [email protected].