Политика конфиденциальности SmallFriendFiles
Версия: 0.1 (draft, private beta) Дата вступления в силу: 30 августа 2026 г. Последнее обновление: [TBD]
Не юридический документ в окончательном виде. Это рабочий draft для открытой бесплатной беты SmallFriendFiles. Перед публичным платным запуском (V1.1) — обязательная проверка испанским юристом по защите данных.
1. Кто мы
Сервис SmallFriendFiles (далее — «Сервис», «мы») предоставляется:
- Оператор данных (Responsable del tratamiento): Ekaterina Pustovaia, зарегистрирована как autónomo в Испании
- NIF/NIE: [TBD]
- Адрес для корреспонденции: [TBD]
- Email для запросов по защите данных: privacy@smallfriendfiles.fyi
- Поддержка: support@smallfriendfiles.fyi
Поскольку оператор находится в Испании, обработка персональных данных регулируется:
- Регламент (ЕС) 2016/679 (GDPR) — Общий регламент по защите данных
- Ley Orgánica 3/2018 (LOPDGDD) — испанский закон о защите данных
- Иные применимые нормы ЕС и Испании
Орган контроля: Agencia Española de Protección de Datos (AEPD) — https://www.aepd.es.
2. Какие данные мы собираем
2.1. Данные аккаунта
- Имя (если заполнили)
- Идентификатор Google (если регистрировались через Google OAuth) — только sub-claim и email, никаких токенов на длительный срок
- Хешированный пароль (если регистрировались по email/паролю) — bcrypt, мы не видим пароль в открытом виде
2.2. Данные питомца
- Имя питомца, вид (собака/кошка/другое), порода, дата рождения, вес, пол
- Свободные заметки о питомце (вводятся владельцем, до 1000 символов)
- Фото питомца (хранится в файловом хранилище Сервиса — раздел 5)
2.3. Содержимое хранилища (Vault)
- Загруженные документы: PDF, JPEG, PNG, WebP, до 15 МБ на файл (заключения ветеринара, результаты анализов, чеки, прививочные паспорта и т.п.)
- Метаданные документа: тип (vaccine/lab result/receipt/passport/other), имя ветеринара/клиники (вводится свободным текстом владельцем), дата документа, теги, заметки
- Данные из ветеринарного паспорта питомца: номер микрочипа и дата чипирования, номер паспорта, кем и где выдан, реестр регистрации, история прививок, а также контактные данные владельца, указанные в паспорте — имя, адрес, телефон, email. Эти данные извлекаются из загруженных вами страниц паспорта автоматически. Карту целиком можно удалить вместе с питомцем или аккаунтом; редактирование отдельных полей появится вместе с экраном паспорта.
Важно: содержимое документов и метаданные могут включать персональные данные третьих лиц (имена ветеринаров, адреса клиник, иногда — данные владельца на чеках). Загружая документ, вы подтверждаете, что у вас есть законное основание обрабатывать эти данные (как минимум — собственное согласие/обработка собственных персональных данных).
AI-распознавание документов. Каждый загружаемый документ однократно передаётся стороннему AI-сервису (Google (Gemini API), США) для извлечения метаданных: тип документа, дата, клиника, врач, специализация, теги. Это происходит автоматически при каждой загрузке — отдельного переключателя нет, и единственный способ не передавать документ — не загружать его в Сервис. Файл и запись о нём сохраняются в Сервисе сразу при загрузке, до и независимо от результата распознавания. Передача регулируется Google Cloud DPA + SCC (см. раздел 4.2). Извлечённые метаданные — это предзаполнение формы: вы можете отредактировать или удалить любое поле. Если вы загружаете страницы ветеринарного паспорта, тому же сервису передаётся и то, что на них написано, — включая ваши собственные контактные данные (имя, адрес, телефон, email), если они указаны в паспорте.
Две технические детали, о которых честно предупреждаем. Крупные документы (примерно от 12 МБ) передаются провайдеру не в теле запроса, а загрузкой в его файловое хранилище — там копия документа существует ограниченное время по правилам провайдера. И исходный результат распознавания сохраняется у нас отдельно от ваших правок: он нужен, чтобы можно было вернуть версию, предложенную ИИ, и чтобы мы могли оценивать качество распознавания. Ваши правки этот эталон не перезаписывают; он удаляется вместе с документом.
Отдельно про паспортную карту. Она принадлежит питомцу, а не конкретному файлу: одна карта собирается из всех загруженных вами страниц паспорта. Поэтому удаление документа-страницы карту НЕ удаляет — ни её поля, ни её эталон распознавания. Карта (вместе с контактными данными владельца из паспорта и всей историей прививок) удаляется, когда вы удаляете питомца или аккаунт, и это удаление безвозвратно.
2.4. Share-links
- Случайный токен (22 символа, URL-safe, 128 бит энтропии из криптографического генератора случайных чисел)
- Связь с питомцем и временным диапазоном
- Срок действия — 30 дней с момента создания; ссылку можно продлить ещё на 30 дней или отозвать в любой момент
- Метка отзыва (если ссылка отозвана владельцем)
2.5. Технические данные
- IP-адрес (в логах сервера и при обращениях к share-page)
- User-Agent (тип браузера и устройства)
- Технические события и ошибки фронтенда/бэкенда (через Sentry — для диагностики сбоев). Sentry может фиксировать stack-trace, фрагменты кода, IP-адрес. Мы стремимся не передавать в Sentry содержимое документов и личные данные питомца — фильтруем чувствительные поля на стороне SDK.
- Cookies аутентификации (необходимые для работы Сервиса — без них вход невозможен)
2.6. Обращения в поддержку
Текст обращения, выбранная категория, приложенные скриншоты и видео (JPEG / PNG / WebP / MP4 / MOV / WebM, до 50 МБ) и технический контекст: страница, с которой отправлено обращение, размер окна браузера и User-Agent. Обращение уходит письмом оператору; ссылки на вложения в этом письме действуют 7 дней.
2.7. Какие данные мы НЕ собираем
- Платёжные данные — в V1 (бесплатная бета) платежей нет. В V1.1, когда подключим Stripe, мы будем направлять вас на Stripe Checkout — Stripe собирает платёжные данные самостоятельно, мы получаем только статус подписки и идентификатор клиента.
- Биометрические данные, данные о здоровье человека, точную геолокацию, голос, контакты телефона — мы их не запрашиваем, и Сервис для них не предназначен.
- Особые категории данных по ст. 9 GDPR (данные о здоровье человека, расовое/этническое происхождение и т.п.) — Сервис не рассчитан на медицинские документы людей, и загружать их запрещено (Условия использования, раздел 5). Содержимое загружаемых файлов мы технически не проверяем, поэтому просим вас не загружать документы с данными о здоровье людей.
Замечание о данных о здоровье: GDPR относит к особым категориям данные о здоровье физических лиц. Медицинские данные животных под ст. 9 не подпадают. Однако к ним применяются обычные принципы GDPR.
3. Зачем мы обрабатываем эти данные и на каком основании
| Цель | Категории данных | Правовое основание (GDPR) |
|---|---|---|
| Создание аккаунта, аутентификация | Аккаунт, технические | Договор (ст. 6(1)(b)) |
| Хранение и отображение профиля питомца, Vault | Питомец, Vault | Договор (ст. 6(1)(b)) |
| Генерация и проверка share-links | Share-links, технические | Договор (ст. 6(1)(b)) |
| Диагностика ошибок и сбоев (Sentry, логи) | Технические | Законный интерес (ст. 6(1)(f)) |
| Защита от злоупотреблений (rate limits, abuse-detect) | Технические | Законный интерес (ст. 6(1)(f)) |
| Связь по поводу беты (onboarding, кризисные апдейты) | Договор (ст. 6(1)(b)) | |
| AI-распознавание метаданных загружаемых документов | Vault-документы и метаданные | Договор (ст. 6(1)(b)) |
| AI-распознавание страниц ветеринарного паспорта и заполнение паспортной карты | Данные паспорта питомца, контактные данные владельца из паспорта | Договор (ст. 6(1)(b)) |
| Хранение исходного результата распознавания (эталон для «вернуть версию ИИ», оценка качества извлечения) | Метаданные документа, данные паспортной карты | Законный интерес (ст. 6(1)(f)) |
| Маркетинговые письма (newsletter, V1.1-апдейты) — планируется, сейчас рассылок нет | Согласие (ст. 6(1)(a)), opt-in | |
| Налоговый/бухгалтерский учёт (V1.1, при платежах) | Email, ID клиента Stripe, счета | Закон. обязанность (ст. 6(1)(c)) |
| Защита прав в спорах | Любые | Законный интерес (ст. 6(1)(f)) |
Законный интерес мы используем там, где он не нарушает ваши права и свободы. Вы можете возразить против обработки по законному интересу (см. раздел 8).
4. Кто видит ваши данные
4.1. Внутри команды
В V1 — только автор-разработчик (см. раздел 1) с доступом к административным средствам Supabase. Минимизируем фактический просмотр данных пользователей: смотрим конкретные записи только при инциденте или явном запросе пользователя.
4.2. Sub-processors (обработчики, действующие по нашему поручению)
| Сервис | Назначение | Расположение данных | Договор/DPA |
|---|---|---|---|
| Supabase | Auth, база данных (аккаунт, профили питомцев, метаданные документов) | Швейцария (Цюрих) | Standard DPA Supabase |
| Cloudflare | Файловое хранилище (документы Vault, фото питомцев, вложения обращений) | Cloudflare R2, юрисдикция ЕС | DPA Cloudflare + SCC |
| Vercel | Хостинг приложения, серверные функции, edge-кэш статики | Серверные функции — Германия (Франкфурт, регион fra1); статика — edge-ноды глобально | Standard DPA Vercel + SCC |
| OAuth-провайдер (если вы выбрали вход через Google) | США | Google Cloud DPA + SCC | |
| Sentry | Сбор технических ошибок и stack-traces | EU (ingest.de.sentry.io) | Standard DPA Sentry |
| Upstash | Rate-limiting (счётчики для входа/регистрации, экспорта данных, обращений в поддержку и публичных share-страниц) | EU (Frankfurt) | Standard DPA Upstash (self-service) |
| GitHub | Управление исходным кодом (не персональные данные пользователей) | США | GitHub DPA |
| Resend | Транзакционные email (подтверждение регистрации, сброс пароля) и уведомление оператора о новом обращении в поддержку — с текстом обращения и ссылками на вложения | EU + US | Standard Resend DPA + SCC |
| Google (Gemini API) | AI-распознавание загружаемых документов (автоматически при каждой загрузке): метаданные документа, а для страниц ветеринарного паспорта — также его поля и контактные данные владельца, указанные в паспорте | США | Google Cloud DPA + SCC |
| В V1.1: | |||
| Stripe | Платежи, выставление счетов | EU + US | Standard Stripe DPA + SCC |
Список sub-processors может меняться. О существенных изменениях мы сообщим минимум за 30 дней до вступления их в силу — обновлением этой страницы с новой датой в шапке и, если у нас есть ваш email, письмом, — чтобы у вас была возможность возразить.
Upstash (rate-limiting cache)
Что: глобально-распределённый Redis-сервис хранит счётчики rate-limiting для входа и регистрации, экспорта данных, обращений в поддержку и публичных share-страниц. Какие данные: IP-адрес (для эндпоинтов до входа и для публичных share-страниц), ваш внутренний идентификатор или хэш email (для действий в аккаунте), привязанные к счётчику с TTL от 1 минуты до 1 суток. Не хранит содержимое запросов и ваши документы. Где: EU region (Frankfurt). DPA: signed self-service.
Sentry — псевдонимизация user-id
Псевдонимизация user-id: в Sentry-событиях ваш внутренний идентификатор передаётся как короткий необратимый хэш вместо UUID-а. Email, IP-адрес и query-string запросов вычищаются перед отправкой.
4.3. Передача третьим лицам по вашему действию (share-links)
Когда вы создаёте share-link и передаёте URL ветеринару (или иному получателю), вы добровольно публикуете содержимое share-page третьему лицу. SmallFriendFiles не контролирует, кому именно вы отправите ссылку.
Меры защиты, которые мы применяем по умолчанию:
- Срок действия — 30 дней
- Можно отозвать в любой момент кнопкой revoke
- Токен — 22-символьный URL-safe random (128 бит энтропии)
<meta name="robots" content="noindex,nofollow">— поисковики не должны индексировать share-page- Никакой рекламной или продуктовой аналитики на share-page. Работает только технический мониторинг ошибок и производительности (Sentry, EU-инстанс): он получает тип ошибки, стек и обезличенный URL — без email, IP и содержимого документов
Вы как владелец отвечаете за выбор получателя, за безопасность канала передачи ссылки (мессенджер, email) и за своевременный отзыв ссылки после визита.
4.4. Иные раскрытия
Мы можем раскрыть данные:
- По обязательному предписанию государственного органа (суд, AEPD, налоговая) — только в объёме, требуемом законом
- Для защиты прав, жизни, безопасности (форс-мажор)
- При продаже бизнеса/слиянии — с предварительным уведомлением и сохранением условий настоящей политики
Мы не продаём и не сдаём в аренду ваши данные третьим лицам в рекламных целях.
5. Где физически хранятся данные
- Основная БД и данные аутентификации: Supabase, регион Швейцария (Цюрих). Здесь лежат ваш аккаунт, профиль питомца и метаданные документов.
- Сами файлы (документы Vault, фото питомцев, вложения обращений): Cloudflare R2, юрисдикция ЕС. Cloudflare — компания США; обработка покрывается DPA Cloudflare, хранение — в выбранной юрисдикции.
- Серверная часть приложения: Vercel, регион Германия (Франкфурт, регион
fra1). Код, который читает и записывает ваши данные, выполняется там; статика приложения дополнительно кэшируется на edge-нодах по всему миру. Это значит, что при обработке запроса ваши данные передаются между регионом хранения и регионом выполнения. - Логи Sentry: EU instance (
ingest.de.sentry.io). - OAuth-трафик Google: глобальная инфраструктура Google.
Передачи за пределы ЕЭЗ. Швейцария не входит в ЕЭЗ, но признана Европейской комиссией страной с адекватным уровнем защиты данных — передача туда не требует дополнительных гарантий. Передачи в США (серверные функции Vercel, AI-сервис распознавания, OAuth Google) регулируются Standard Contractual Clauses (SCC) Европейской комиссии в составе DPA с соответствующими провайдерами.
Замечание для пользователей из Российской Федерации
SmallFriendFiles не размещает свою основную базу данных на территории РФ. Сервис предоставляется европейским оператором (autónomo, Испания); база данных — Швейцария (Цюрих), файлы — Cloudflare R2, юрисдикция ЕС, серверные функции — Германия (Франкфурт, регион fra1).
Согласно ст. 18 Федерального закона № 152-ФЗ, обработка персональных данных граждан РФ требует, в общем случае, локализации БД на территории РФ. SmallFriendFiles это требование не выполняет — наша инфраструктура находится в ЕС.
Если вы являетесь резидентом РФ и регистрируетесь в SmallFriendFiles, вы добровольно соглашаетесь на трансграничную обработку ваших данных оператором в Испании в соответствии с правом ЕС (GDPR). Если данное условие для вас неприемлемо — пожалуйста, не регистрируйтесь.
6. Сколько мы храним данные
| Категория | Срок хранения |
|---|---|
| Аккаунт и его данные | Пока аккаунт активен. Удаление из приложения — сразу и необратимо; по запросу (если доступ к аккаунту потерян) — в течение 30 дней |
| Питомец, удалённый в приложении | 90 дней в «замороженном» состоянии (удаление можно отменить), затем автоматическое необратимое удаление вместе с его документами и файлами |
| Документ, удалённый в приложении | Удаляется сразу и безвозвратно — корзины нет |
| Share-links | Перестают открываться по истечении срока (30 дней) или после отзыва; сама запись хранится, пока существует профиль питомца |
| Обращения в поддержку и вложения к ним | Пока обращение не разобрано и не потеряло актуальность; ссылки на вложения в письме оператору живут 7 дней |
| Логи и Sentry-события | В пределах срока хранения, предусмотренного тарифами Sentry / Vercel / Supabase |
| Email маркетинг (когда подключим) | До отписки + 30 дней |
| Налоговые/бухгалтерские документы (с V1.1) | 6 лет — обязательное хранение по Spanish General Tax Law (LGT) |
| Удалённые данные в резервных копиях БД | В пределах окна автоматических бэкапов нашего тарифа Supabase — затем перезапись. Файловое хранилище резервных копий не ведёт: удалённый файл исчезает сразу |
После удаления в наших оперативных системах данные стираются безвозвратно. Записи базы данных могут какое-то время оставаться в её автоматических резервных копиях (в пределах окна, предусмотренного нашим тарифом Supabase) — оперативного доступа к ним нет, и по истечении окна копии перезаписываются. Файлы удаляются из хранилища сразу — резервных копий файлов нет.
7. Удаление аккаунта и данных
Вы можете удалить аккаунт в любой момент — самостоятельно, в приложении: Профиль → Опасная зона → «Удалить аккаунт». Мы попросим подтвердить действие паролем; если вы входите через Google, вместо пароля нужно будет ввести слово-подтверждение. Удаление выполняется сразу и необратимо, отменить его нельзя (о резервных копиях — раздел 6).
Если вы всё ещё можете войти, но предпочитаете обратиться к нам, напишите через Профиль → Помощь. Если доступ к аккаунту потерян и форма недоступна — она открывается только после входа — напишите на контактный адрес из раздела 13. Запрос по любому из этих каналов мы выполняем в течение 30 календарных дней с момента получения, как требует ст. 12(3) GDPR, и подтверждаем выполнение ответным письмом.
При удалении аккаунта:
- профиль питомца, документы Vault и файлы в хранилище удаляются необратимо;
- все share-links перестают открываться;
- обращения в поддержку и приложенные к ним файлы удаляются вместе с аккаунтом.
Отдельно от удаления аккаунта вы можете в любой момент удалить конкретный документ (сразу и безвозвратно) или питомца — питомец 90 дней остаётся в «замороженном» состоянии, чтобы удаление можно было отменить, после чего удаляется автоматически.
8. Ваши права (GDPR ст. 12-22)
Вы имеете право:
- Получить информацию о том, какие ваши данные мы обрабатываем (ст. 13-14) — эта политика и есть исполнение этого права
- Доступ к своим данным — запросить копию того, что у нас хранится (ст. 15)
- Исправление неточных данных (ст. 16)
- Удаление («право быть забытым», ст. 17) — см. раздел 7
- Ограничение обработки в определённых случаях (ст. 18)
- Перенос данных (data portability, ст. 20) — экспорт ваших данных в машиночитаемом формате JSON (файлы выдаются по временным ссылкам из этого JSON)
- Возражение против обработки на основании законного интереса или маркетинга (ст. 21)
- Отзыв согласия в любой момент (ст. 7) — если основание = согласие
- Не быть объектом автоматизированных решений, имеющих юридические/значимые последствия (ст. 22). В V1 мы не принимаем автоматизированных решений в отношении вас.
- Подать жалобу в AEPD (Agencia Española de Protección de Datos, https://www.aepd.es) или в надзорный орган по защите данных в стране вашего проживания в ЕС.
Право на переносимость (ст. 20): на странице "Профиль" доступна кнопка "Скачать мои данные". Она возвращает JSON-файл, содержащий все ваши данные питомцев и метаданные документов вместе с временными ссылками (24 часа) на сами файлы в хранилище. Файлы вы скачиваете по этим ссылкам отдельно.
Чтобы воспользоваться любым из этих прав, отправьте запрос через форму обратной связи в приложении — Профиль → Помощь: это канал, который работает уже сейчас и доходит до оператора напрямую. Также можно написать на privacy@smallfriendfiles.fyi. Мы ответим в течение 30 календарных дней (с возможным однократным продлением до 60 дней при сложности запроса — с уведомлением).
Услуга бесплатная. Если запрос явно необоснован или чрезмерен (повторяющийся), мы можем взять разумную плату или отказать с обоснованием.
9. Безопасность
Меры технической и организационной защиты:
- TLS 1.2+ для всего трафика (HSTS включён)
- Шифрование данных «at rest» на стороне Supabase (AES-256)
- bcrypt для паролей; OAuth-токены не хранятся в долгосрочном виде
- Row Level Security (RLS) на уровне Postgres — каждый пользователь видит только свои данные
- Доступ к административным средствам только через MFA
- Доступ к production-окружению только у автора-разработчика
- 22-символьные случайные токены для share-links (URL-safe alphabet, 128 бит энтропии) — подбор перебором нереализуем
- Приватное файловое хранилище: путь каждого файла начинается с идентификатора владельца, и сервер проверяет владение перед выдачей любой ссылки — и на загрузку, и на чтение. Файлы отдаются только по подписанным ссылкам с ограниченным сроком жизни: 1 час — просмотр в приложении и на share-page, 24 часа — экспорт данных, 7 дней — вложения к обращениям в поддержку
- Регулярные бэкапы базы данных (Supabase managed); файловое хранилище работает без версионирования
- Фото питомца пересохраняются прямо в браузере, что удаляет EXIF (в том числе GPS-координаты). Для изображений-документов это происходит только при сжатии файлов крупнее 2 МБ — небольшие изображения и PDF сохраняются как есть, вместе со своими метаданными
Несмотря на принимаемые меры, ни одна система не является абсолютно защищённой. Если мы узнаем о компрометации, затрагивающей ваши данные, мы уведомим вас и AEPD в течение 72 часов в соответствии с GDPR (ст. 33-34).
10. Дети
Сервис предназначен для лиц 18 лет и старше. Мы сознательно не собираем данные несовершеннолетних. Если вы являетесь родителем/опекуном и обнаружили, что несовершеннолетний создал аккаунт, напишите на privacy@smallfriendfiles.fyi — мы удалим аккаунт.
В Испании возраст согласия на обработку данных по LOPDGDD = 14 лет, но мы устанавливаем повышенный порог 18 лет для упрощения compliance и в связи с тем, что в Сервисе могут содержаться чеки/документы с финансовыми данными взрослых владельцев питомцев.
11. Cookies и аналогичные технологии
Сервис использует только собственные (first-party) cookies. Сторонние аналитические и рекламные cookies не устанавливаются; веб-аналитика (Google Analytics и аналоги) не подключена.
| Cookie | Назначение | Срок |
|---|---|---|
sb-…-auth-token (+ -code-verifier) | Сессия и вход | Сессия, обновляется автоматически |
pawfile_recovery | Подтверждает, что вы перешли по ссылке восстановления пароля | 10 минут |
pf_pet_gate | Помнит, что в аккаунте есть питомец, чтобы не делать лишний запрос к базе | 5 минут |
pf_active_pet | Помнит, профиль какого питомца вы открыли последним | 1 год |
pf_welcome_seen | Помнит, что вы открывали публичную страницу продукта | 1 год |
pf_welcomed | Помнит, что вы нажали «Начать» или «Войти» на публичной странице | 1 год |
Первые три необходимы для входа и безопасности. Остальные запоминают ваш выбор в интерфейсе: они не используются для профилирования, не передаются третьим лицам и не покидают Сервис.
Согласно ст. 22.2 LSSI-CE (испанский закон об информационном обществе), для строго необходимых cookies согласие не требуется — но мы информируем о них в этой политике.
Если/когда мы начнём использовать аналитику или маркетинговые pixel'ы, мы покажем cookie banner с возможностью opt-out и обновим эту политику.
12. Изменения политики
Существенные изменения мы анонсируем за 30 дней через email и/или баннер в Сервисе. Менее существенные правки (исправления опечаток, уточнения формулировок) публикуются без предварительного уведомления — с обновлением даты «Последнее обновление» вверху документа.
Продолжая пользоваться Сервисом после вступления изменений в силу, вы соглашаетесь с обновлённой политикой. Если вы не согласны — удалите аккаунт.
13. Связаться с нами
- По вопросам персональных данных: privacy@smallfriendfiles.fyi
- По общим вопросам: support@smallfriendfiles.fyi
- Почтовый адрес: предоставляется по запросу на privacy@smallfriendfiles.fyi
Приложение: словарик терминов
- Оператор / Контроллер (Controller, Responsable): определяет цели и средства обработки. В нашем случае — autónomo в Испании (см. раздел 1).
- Обработчик (Processor, Encargado): обрабатывает данные по поручению оператора. Это Supabase, Vercel, Sentry и т.д.
- Sub-processor: обработчик, привлечённый другим обработчиком (например, AWS-регион Supabase = sub-processor Supabase).
- DPA (Data Processing Agreement): договор между оператором и обработчиком о защите данных по ст. 28 GDPR.
- SCC (Standard Contractual Clauses): стандартные договорные условия Еврокомиссии для передачи персональных данных за пределы ЕЭЗ.
- DSAR (Data Subject Access Request): запрос субъекта данных на реализацию прав по ст. 15-22 GDPR.