Privacy Policy
1. Operator
The JFF mobile application (the "App", iOS bundle identifier ru.jff.ios) is operated by Damir Kharisov (the "Operator").
Contact: jff.support@gmail.com.
2. Scope
This Policy governs the processing of personal data within the iOS and Android versions of the App and its backend infrastructure.
The Policy complies with Federal Law No. 152-FZ of the Russian Federation ("152-FZ") and, where applicable, the EU General Data Protection Regulation ("GDPR").
3. Categories of personal data
| Category | Contents | Source |
|---|---|---|
| Identifiers | Phone number; Apple ID identifier; Apple ID email (only where the user elects to share it) | Provided by the user at sign-in |
| Profile data | First name, date of birth, gender, "about" text, city (optional), profile photos, avatar | Provided by the user |
| Face data (facial images) | Short live camera frames captured during one-time liveness verification, used for (a) confirmation of a live human subject and (b) automated gender classification against the declared value. The face is not converted into a persistent biometric template or face-recognition vector, and is never used to identify or track the user across sessions. A single final selfie frame is retained only for the security cases described in §6. | Captured with the user's prior in-app consent at registration |
| User-generated content | Text, voice, photo and video messages; reactions; abuse reports | Created by the user within the App |
| Technical data | Device model, OS version, App version, language, push token, IP address, error logs | Collected automatically |
The App does not collect precise geolocation, contacts, calendar, health data, advertising identifiers, or payment data outside the platform stores.
4. Purposes and legal bases
- Account creation and operation. Basis: performance of contract; Art. 6(1)(5) 152-FZ; Art. 6(1)(b) GDPR.
- Liveness verification and automated gender classification at registration. Basis: explicit consent. Arts. 9, 11 152-FZ; Art. 9(2)(a) GDPR.
- Generation of the user's profile avatar. The App does not display raw user photos; instead, during registration a single selfie frame (with no identifiers attached) is sent to the avatar-generation provider to produce an AI avatar, which becomes the profile picture. This is a necessary step of creating a profile. Basis: performance of contract; Art. 6(1)(b) GDPR.
- Where automated gender classification disagrees with the declared value, the account is flagged for background manual review by a moderator and may be blocked if a genuine mismatch is confirmed. Basis: legitimate interest in preventing fraud and impersonation.
- Matching of users and delivery of messages. Basis: performance of contract.
- Service security, moderation, fraud and spam prevention. Basis: legitimate interest; Art. 6(1)(7) 152-FZ; Art. 6(1)(f) GDPR.
- Compliance with statutory obligations. Basis: legal obligation.
5. Third-party processors
| Service | Function | Data transferred | Notice |
|---|---|---|---|
| Telegram Gateway | Delivery of one-time verification codes | Phone number, OTP code | core.telegram.org/gateway/privacy |
| CometAPI / Google Gemini | Avatar generation from selfie | One selfie frame and a text prompt; no identifiers attached | cometapi.com/privacy · policies.google.com/privacy |
| face-api.js (executed on the Operator's backend) | Liveness detection and gender classification | Frames are processed in memory and discarded immediately; only the derived result is retained | github.com/justadudewhohacks/face-api.js |
| Supabase | Database, file storage, session storage | Profile data, messages, media, technical identifiers under §3 | supabase.com/privacy |
| Apple — Sign in with Apple | Alternative authentication method | Apple-issued opaque identifier and, where elected, name and relay email | apple.com/legal/privacy |
| Timeweb Cloud | Backend API and Socket.IO hosting | All data processed by the backend | timeweb.cloud/legal |
Personal data is not transferred to advertising networks or data brokers and is not sold.
6. Retention of face data
- Liveness camera frames are processed only in the server's volatile memory during the few seconds of the verification session and are discarded immediately afterwards. They are never written to disk or a database.
- A single final selfie frame is stored in a private, moderator-only storage bucket only for security-relevant attempts, namely: (a) attempts where liveness verification failed, and (b) passes the automated detector could not confidently confirm (including where the detected gender disagreed with the declared value). It is retained solely to let a human moderator distinguish a genuine spoof or impersonation attempt from an app/detector glitch, and is deleted once the moderator resolves the case. Clean, confidently-verified passes are logged without retaining any photo.
- Alongside each attempt we keep a text-only log entry (outcome, timing and the detector's gender guess) for anti-fraud review; it contains no facial images once the associated selfie is deleted.
6a. Other retention periods
- Account data and messages: for the duration of the account, plus up to 30 days in backups.
- Generated avatars: until deleted or replaced by the user.
- OTP codes: invalidated after use or after 10 minutes.
- Moderation logs and abuse reports: up to 1 year after account deletion.
During registration a single selfie frame, with no identifiers attached, is also sent to the avatar-generation provider (CometAPI / Google Gemini) to produce the profile avatar; the original selfie is not stored and only the generated avatar is kept. All persisted data, including any retained selfie, is stored on Supabase infrastructure located in the European Union. Face data is never sold and never shared with advertising networks or data brokers, and is used only for the liveness/anti-fraud checks and the avatar generation described in this Policy.
7. Rights of the data subject
- Access to personal data and a copy thereof.
- Rectification of inaccurate data (most fields editable in Settings → Edit profile).
- Deletion of the account and associated data (Settings → Delete account or by email).
- Withdrawal of consent for facial-attribute processing.
- Objection to or restriction of processing (Arts. 18, 21 GDPR).
- Data portability (Art. 20 GDPR).
- Lodging a complaint with the competent supervisory authority — Roskomnadzor (rkn.gov.ru).
Requests shall be addressed to jff.support@gmail.com. Response within 30 calendar days.
8. Age restriction
The App is restricted to users aged 18 and over. Age is enforced on the client and the server. Accounts identified as belonging to minors shall be deleted without delay.
9. Security
The Operator implements HTTPS/TLS for all network traffic, hashed session tokens, server-side row-level security, rate limiting on sensitive endpoints, and screen-capture protection. Suspected compromise shall be reported to jff.support@gmail.com.
10. Children
The App is not directed at children under 18; personal data of minors is not knowingly collected.
11. Amendments
The Operator may amend this Policy. The "Last updated" date shall be revised accordingly. Material changes shall be notified within the App prior to taking effect. Continued use after the effective date constitutes acceptance.
12. Contact
Operator: Damir Kharisov
Email: jff.support@gmail.com
Support: jff-legal.pages.dev/support
Политика конфиденциальности
1. Оператор
Мобильное приложение JFF (далее — «Приложение», iOS bundle ru.jff.ios) эксплуатируется Damir Kharisov (далее — «Оператор»).
Контакт: jff.support@gmail.com.
2. Сфера действия
Настоящая Политика регулирует обработку персональных данных в версиях Приложения для iOS и Android, а также на серверной инфраструктуре.
Политика составлена в соответствии с Федеральным законом РФ № 152-ФЗ «О персональных данных» (далее — «152-ФЗ») и, в применимой части, с Общим регламентом по защите данных ЕС («GDPR»).
3. Категории обрабатываемых персональных данных
| Категория | Состав | Источник |
|---|---|---|
| Идентификаторы | Номер телефона; идентификатор Apple ID; адрес email Apple ID — при наличии согласия пользователя | Предоставляются пользователем при входе |
| Профиль | Имя, дата рождения, пол, текст «о себе», город (по выбору), фотографии профиля, аватар | Предоставляются пользователем |
| Данные лица (изображения лица) | Короткие кадры с камеры во время однократной проверки «живости», обрабатываемые для (а) подтверждения, что перед камерой реальный человек, и (б) автоматического определения пола и сопоставления с заявленным. Лицо не преобразуется в постоянный биометрический шаблон или вектор распознавания и никогда не используется для идентификации или отслеживания пользователя между сессиями. Один финальный кадр-селфи сохраняется только в случаях безопасности, описанных в §6. | Получаются с предварительного согласия пользователя в приложении при регистрации |
| Пользовательский контент | Текстовые, голосовые, фото- и видеосообщения; реакции; жалобы | Создаются пользователем внутри Приложения |
| Технические данные | Модель устройства, версия ОС, версия Приложения, язык, push-токен, IP-адрес, журналы ошибок | Собираются автоматически |
Приложение не собирает точную геопозицию, список контактов, календарь, медицинские данные, рекламные идентификаторы и платёжные реквизиты помимо магазинов приложений.
4. Цели и правовые основания
- Создание и эксплуатация аккаунта. Основание: исполнение договора; ст. 6 ч. 1 п. 5 152-ФЗ; ст. 6(1)(b) GDPR.
- Проверка «живости» и автоматическое определение пола при регистрации. Основание: явное согласие. Ст. 9, 11 152-ФЗ; ст. 9(2)(a) GDPR.
- Создание аватара профиля пользователя. Приложение не показывает исходные фотографии пользователей; вместо этого при регистрации один кадр селфи (без прикреплённых идентификаторов) отправляется провайдеру генерации аватаров для создания ИИ-аватара, который становится изображением профиля. Это необходимый шаг создания профиля. Основание: исполнение договора; ст. 6(1)(b) GDPR.
- Если автоматическое определение пола расходится с указанным пользователем значением, аккаунт помечается для фоновой ручной проверки модератором и может быть заблокирован при подтверждении реального несоответствия. Основание: законный интерес в противодействии мошенничеству и выдаче себя за другого.
- Подбор пользователей и доставка сообщений. Основание: исполнение договора.
- Обеспечение безопасности сервиса, модерация, противодействие мошенничеству и спаму. Основание: законный интерес; ст. 6 ч. 1 п. 7 152-ФЗ; ст. 6(1)(f) GDPR.
- Исполнение требований законодательства. Основание: правовое обязательство.
5. Сторонние обработчики
| Сервис | Функция | Передаваемые данные | Политика |
|---|---|---|---|
| Telegram Gateway | Доставка одноразовых кодов подтверждения | Номер телефона, код OTP | core.telegram.org/gateway/privacy |
| CometAPI / Google Gemini | Генерация аватара по селфи | Один кадр селфи и текстовый prompt; идентификаторы не прикладываются | cometapi.com/privacy · policies.google.com/privacy |
| face-api.js (исполняется на backend Оператора) | Liveness и определение пола | Кадры обрабатываются в оперативной памяти и уничтожаются немедленно; сохраняется только производный результат | github.com/justadudewhohacks/face-api.js |
| Supabase | База данных, файловое хранилище, сессии | Данные профиля, сообщения, медиа, технические идентификаторы из §3 | supabase.com/privacy |
| Apple — Sign in with Apple | Альтернативный способ аутентификации | Псевдонимизированный идентификатор Apple и, по выбору пользователя, имя и relay-email | apple.com/legal/privacy |
| Timeweb Cloud | Хостинг backend-API и Socket.IO | Все данные, обрабатываемые backend | timeweb.cloud/legal |
Персональные данные не передаются рекламным сетям и дата-брокерам и не подлежат продаже.
6. Хранение данных лица
- Кадры liveness с камеры обрабатываются только в оперативной (энергозависимой) памяти сервера в течение нескольких секунд сессии проверки и немедленно уничтожаются после неё. Они никогда не записываются на диск или в базу данных.
- Один финальный кадр-селфи сохраняется в приватном хранилище, доступном только модераторам, лишь для значимых с точки зрения безопасности попыток, а именно: (а) попыток, в которых проверка «живости» не прошла, и (б) прохождений, которые автоматический детектор не смог уверенно подтвердить (в том числе когда определённый пол расходится с заявленным). Он хранится исключительно для того, чтобы модератор мог отличить реальную попытку подделки или выдачи себя за другого от сбоя приложения/детектора, и удаляется после того, как модератор закрывает случай. Чистые, уверенно подтверждённые прохождения регистрируются без сохранения фото.
- Вместе с каждой попыткой сохраняется только текстовая запись журнала (результат, тайминги и предположение детектора о поле) для анти-фрод проверки; она не содержит изображений лица после удаления связанного селфи.
6a. Прочие сроки хранения
- Данные аккаунта и сообщения — на срок существования аккаунта и до 30 дней в резервных копиях.
- Сгенерированные аватары — до удаления или замены пользователем.
- Коды OTP — инвалидируются после использования или через 10 минут.
- Журналы модерации и жалобы — до 1 года после удаления аккаунта.
При регистрации один кадр селфи, без прикреплённых идентификаторов, также отправляется провайдеру генерации аватаров (CometAPI / Google Gemini) для создания аватара профиля; исходное селфи не сохраняется, хранится только сгенерированный аватар. Все сохраняемые данные, включая любое удерживаемое селфи, хранятся на инфраструктуре Supabase, расположенной в Европейском союзе. Данные лица никогда не продаются и не передаются рекламным сетям или дата-брокерам и используются только для описанных в настоящей Политике проверок liveness/анти-фрод и генерации аватара.
7. Права субъекта данных
- Доступ к обрабатываемым персональным данным и получение их копии.
- Уточнение (исправление) данных (большинство полей доступно в Настройки → Редактировать профиль).
- Удаление аккаунта и связанных данных (Настройки → Удалить аккаунт или письмом).
- Отзыв согласия на обработку биометрических признаков.
- Возражение против обработки или её ограничение (ст. 18, 21 GDPR).
- Переносимость данных (ст. 20 GDPR).
- Подача жалобы в уполномоченный надзорный орган — Роскомнадзор (rkn.gov.ru).
Обращения направляются на jff.support@gmail.com. Срок ответа — 30 календарных дней.
8. Возрастное ограничение
Приложение предназначено для лиц 18 лет и старше. Возраст проверяется на клиенте и на сервере. Аккаунты несовершеннолетних подлежат немедленному удалению.
9. Безопасность
Оператор применяет HTTPS/TLS для всего сетевого обмена, хеширование сессионных токенов, серверные политики Row-Level Security, rate limiting на чувствительных эндпоинтах и защиту от снятия снимков экрана. О подозрении на компрометацию следует сообщать на jff.support@gmail.com.
10. Дети
Приложение не предназначено для лиц младше 18 лет; персональные данные несовершеннолетних намеренно не собираются.
11. Изменения Политики
Оператор вправе вносить изменения в настоящую Политику. Дата «Последнее обновление» подлежит соответствующей актуализации. О существенных изменениях пользователь уведомляется внутри Приложения до их вступления в силу. Продолжение использования после даты вступления в силу означает согласие.
12. Контакты
Оператор: Damir Kharisov
Email: jff.support@gmail.com
Поддержка: jff-legal.pages.dev/support