Политика конфиденциальности
Что мы храним, зачем, сколько и как это удалить. Написано по нашему сегодняшнему коду, а не по шаблону.
Последняя редакция: 26 сентября 2026 · Версия 1.1
1. Кто обрабатывает ваши данные
CityVibe (cityvibe.guide) — каталог событий в Испании. Почти всем сайтом можно пользоваться, ничего о себе не рассказывая: поиск, фильтры, карточка события и переход по ссылке организатора не требуют аккаунта.
У нас нет ответственного за защиту данных: мы не обрабатываем данные в крупном масштабе и не работаем со специальными категориями, поэтому ст. 37 GDPR (откроется в новой вкладке) не обязывает его назначать. Если это изменится, мы напишем об этом здесь.
2. Что мы храним, зачем и на каком правовом основании
2.1 Ваш аккаунт (только если вы вошли через Google или Telegram)
Внутренний идентификатор (UUID)
- Откуда берётся
- Создаём мы сами
- Зачем
- Чтобы вы были вами в нашей базе
Идентификатор провайдера («sub» у Google, числовой id в Telegram)
- Откуда берётся
- От провайдера, уже проверенный
- Зачем
- Чтобы узнать вас в следующий раз
Адрес электронной почты
- Откуда берётся
- От Google, если вы вошли через Google
- Зачем
- Различать аккаунты. Писем мы не отправляем
Имя и фото профиля
- Откуда берётся
- От Google или Telegram
- Зачем
- Обращаться к вам по имени на сайте и в уведомлениях
Язык, город и часовой пояс
- Откуда берётся
- Выбираете вы
- Зачем
- Показывать сайт на вашем языке и писать по времени вашего города
Правовое основание: исполнение договора — ст. 6(1)(b) GDPR (откроется в новой вкладке). Вы попросили аккаунт; без этих данных аккаунта нет.
Две вещи, которые стоит знать:
- Мы никогда не объединяем аккаунты по адресу почты. Если вы войдёте через Google, а потом через Telegram и там будет один и тот же адрес, это останутся два разных аккаунта, пока вы сами не свяжете их в профиле. Адрес почты не доказывает, кто вы.
- Если адрес уже принадлежит другому аккаунту, новый аккаунт создаётся без адреса, а не сливается со старым.
2.2 Ваши уведомления
Мы храним то, о чём вы просили вам сообщать: города, категории, максимальную цену, частоту (сразу или ежедневной сводкой), удобное время и канал.
Правовое основание: договор (ст. 6(1)(b)). Это буквально та услуга, о которой вы попросили.
2.3 Telegram
Если вы нажмёте Start в нашем боте, мы сохраним ваш Telegram-id и отметку времени, которая говорит «этому человеку можно писать». Когда Telegram отвечает, что вы заблокировали бота, мы стираем эту отметку и перестаём пытаться. Текст ваших сообщений боту мы не храним никогда.
Правовое основание: договор. Ваш «Start» и есть запрос.
2.4 Журнал отправок
О каждом отправленном уведомлении мы храним: кому, о каком событии, по какому каналу, когда следовало отправить, когда ушло, удалось ли и, если нет, техническую причину. Текст сообщения мы не храним.
Зачем это нужно: чтобы не написать вам дважды об одном событии (это и есть ключ против дублей), чтобы повторить неудавшуюся отправку и чтобы знать, когда перестать настаивать. Через 180 дней мы стираем у каждой завершённой отправки время и причину сбоя: остаются только ваш идентификатор, ключ против дублей и статус. Год записей «этот человек смотрит в телефон в 13:45» нам не нужен.
Правовое основание: договор, а также законный интерес (ст. 6(1)(f) (откроется в новой вкладке)) в том, чтобы не превратиться в бота, который повторяет одно и то же. Получить уведомление дважды — причина номер один, по которой бота выключают: избежать этого выгодно прежде всего вам.
Чего мы НЕ делаем: сегодня мы не фиксируем, открыли ли вы уведомление и нажали ли на него. Столбцы в базе есть, но их не пишет ни одна строчка кода. Если однажды мы начнём это измерять, мы напишем об этом здесь до того, как начнём, с правовым основанием и сроком удаления.
2.5 Push-уведомления браузера
Если вы включите push-уведомления, браузер передаст нам адрес доставки («endpoint» push-службы вашего браузера) и два ключа шифрования. Они не говорят, кто вы и где вы; они лишь позволяют браузеру получить сообщение.
Правовое основание: договор плюс разрешение, которое у вас спрашивает сам браузер.
2.6 Технические журналы (логи)
Наши собственные серверы не ведут журнал запросов: мы его выключили, потому что в этой строке были IP-адрес спрашивающего и весь запрос — то есть то, что человек набрал в поиске. Журналы, которые всё-таки есть, — это журналы наших инфраструктурных поставщиков (раздел 4): в них попадают время, запрошенный путь, код ответа и IP-адрес, с которого пришёл запрос, и нужны они, чтобы находить поломки и атаки.
Чего мы никогда не пишем в собственные журналы: IP-адреса, адреса почты, имена, сессионные токены, «initData» из Telegram и тела запросов. Если мы записываем что-то о человеке, это его внутренний идентификатор и больше ничего. Даже во внутренней панели администрирования: от каждой попытки входа мы храним псевдоним, выведенный из адреса, а не сам адрес.
Правовое основание: законный интерес (ст. 6(1)(f)) в том, чтобы сервис работал и был защищён.
2.7 Чего мы не делаем, прямым текстом
- Аналитики нет. Ни Google Analytics, ни Plausible, ни PostHog, ни пикселей, ни Vercel Analytics. Никакой.
- Рекламы и рекламных cookie нет.
- Мы не продаём и не передаём ваши данные никому.
- Мы не профилируем вас и не принимаем автоматизированных решений, которые вас затрагивают (ст. 22 GDPR (откроется в новой вкладке)).
- Мы не угадываем ваш город по IP. Город сохраняется, только если вы выбрали его сами.
- Аккаунтов для детей младше 14 лет нет. Сервис рассчитан на взрослых. Мы публикуем семейные события, но аккаунт заводит взрослый человек. Возраст мы не пытаемся вычислить. Если мы обнаружим аккаунт ребёнка младше 14 лет, мы его удалим (ст. 7 LOPDGDD (откроется в новой вкладке)).
3. Сколько мы это храним
- Аккаунт, настройки, уведомления
- Пока у вас есть аккаунт
- Журнал отправок
- Пока у вас есть аккаунт (именно он не даёт повторить уведомление). Через 180 дней время и причина сбоя стираются
- Push-подписки
- Пока вы их не отключите или не удалите аккаунт
- Всё перечисленное выше
- Удаляется сразу, как только вы удаляете аккаунт (раздел 5)
- Технические журналы
- У Vercel — до 30 дней; журналы развёртывания DigitalOcean — 90 дней. У нас самих не хранится ни один
4. Кто ещё что-то видит
Эти поставщики обрабатывают данные по нашему поручению (обработчики, ст. 28 GDPR (откроется в новой вкладке)):
Vercel
- Зачем
- Отдавать сайт и Mini App
- Где
- Регион «fra1» (Франкфурт, Германия)
- Что видит
- Запросы и их IP-адреса
DigitalOcean App Platform
- Зачем
- Размещать API, воркер и планировщик
- Где
- Регион «fra» (Франкфурт, Германия)
- Что видит
- Запросы и их IP-адреса
DigitalOcean Managed Databases
- Зачем
- База данных PostgreSQL
- Где
- Регион «fra1» (Франкфурт, Германия)
- Что видит
- Всё из раздела 2
DigitalOcean Managed Databases (Valkey)
- Зачем
- Очередь задач
- Где
- Регион «fra1» (Франкфурт, Германия)
- Что видит
- Сообщения внутренних задач
Кроме того:
- Telegram неизбежно получает сообщения, которые мы вам отправляем, и ваш chat id: это тот канал, по которому вы попросили вам писать. Telegram — самостоятельный контролёр того, что он делает с этой информацией; политика у него своя (telegram.org/privacy (откроется в новой вкладке)).
- Google участвует только во время входа, если вы выбрали эту кнопку, и возвращает нам ваш идентификатор, подтверждённый адрес почты, имя и URL фотографии.
Всё перечисленное находится в Европейском союзе, во Франкфурте. И сегодня ни один сервис искусственного интеллекта ничего от нас не получает: на боевых серверах нет ключа ни от Anthropic, ни от какого-либо другого поставщика ИИ, так что машинный перевод текста событий выключен. Но даже когда он включён, отсюда уходят только заголовок и описание, опубликованные источником, — никогда ваши данные. Так что, кроме Telegram и Google, которые участвуют потому, что вы сами их выбрали, и отвечают за себя сами, никаких международных передач нет. В день, когда мы его включим, мы напишем об этом здесь заранее.
5. Как удалить аккаунт и что именно исчезнет
В разделе Ваш профиль → Удалить аккаунт (или вызовом «DELETE /users/me»). Никакого подтверждения по почте, никакого льготного периода и никакого пути назад: строка вашего пользователя удаляется сразу, и той же операцией база уносит с собой всё, что на вас ссылалось:
- Ваши способы входа (Google, Telegram).
- Ваши уведомления и их фильтры по городам.
- И их фильтры по категориям.
- Ваши push-подписки.
- Ваш журнал отправок.
Четыре из этих таблиц ссылаются прямо на ваш аккаунт, а две таблицы фильтров держатся на ваших уведомлениях: шесть всего, и во всей базе больше нет ни одной. После удаления любая сессия, оставшаяся открытой на другом устройстве, не ведёт ни к кому: ждать, пока она истечёт, не нужно.
Единственное, что переживает удаление, — строка технического журнала «аккаунт удалён» с вашим бывшим внутренним идентификатором: она больше ни к какому человеку не ведёт и служит нашим доказательством, что запрос выполнен.
Выйти на всех устройствах — совсем другое действие, оно ничего не удаляет: оно увеличивает внутренний счётчик, который разом делает недействительными все выданные вам сессионные cookie.
6. Ваши права
В любой момент и бесплатно вы можете воспользоваться правами из ст. 15–22 GDPR (откроется в новой вкладке):
- Доступ — узнать, что у нас есть
- Напишите на alexandr.shurigin@gmail.com (откроется в новой вкладке), и мы пришлём копию
- Исправление
- Имя, язык и город вы меняете сами в разделе Ваш профиль
- Удаление
- Ваш профиль → Удалить аккаунт, мгновенно (раздел 5)
- Переносимость
- Попросите письмом, и мы пришлём данные в машиночитаемом JSON
- Возражение и ограничение
- Письмом; достаточно и просто отключить уведомления
- Отзыв согласия
- Для push — в самом браузере; для Telegram — заблокировав бота
Мы отвечаем максимум за месяц (ст. 12(3) GDPR). Если вы считаете, что мы сделали это плохо, вы можете обратиться в Испанское агентство по защите данных (aepd.es (откроется в новой вкладке)), C/ Jorge Juan 6, 28001 Мадрид. Будем благодарны, если сначала напишете нам: так почти всегда быстрее.
7. Безопасность
Коротко о том, что мы делаем: сессия едет в зашифрованной cookie, которую может открыть только наш сервер, с флагами «HttpOnly», «Secure» и префиксом «__Host-»; браузер никогда не обращается к нашему API напрямую; личность того, кто вызывает API, едет в подписанном токене, который истекает за 60 секунд; а секреты живут в переменных окружения, а не в коде.
Безотказных систем не бывает. Если случится утечка, которая создаст риск для ваших прав, мы сообщим вам и уведомим AEPD в течение 72 часов, как требует ст. 33 GDPR (откроется в новой вкладке).
8. Изменения
Если мы изменим что-то по-настоящему вас касающееся — новую цель, нового поставщика, аналитику, — мы предупредим на сайте до того, как это вступит в силу. Дата вверху — дата последней редакции.