This policy covers the GymApp iOS and Android apps, the browser/PWA version, and the optional Garmin Connect IQ companion. A feature or permission mentioned below applies only when it exists on the platform you use.
2. Data we process
Data
Examples and source
Why
Account and contact data
Email address, Supabase user UUID, and display name that you provide when creating or using an account. Supabase handles credentials; GymApp does not store your plaintext password.
Account creation, confirmation, authentication, security, cloud sync, support, and deletion.
Workout and fitness data
Workout dates, exercise names, sets, weights, repetitions, plans, completed sessions, volume, personal records, and derived XP, level, missions, achievements, and workout count.
Random friend/profile code, display name, friend requests and relationship/block/privacy state; optional XP, level, workout count, up to five date-only workout summaries and up to 100 entered exercise bests; and, only under a separate explicit owner setting that is off by default, read-only exercise names, weights, repetitions, and sets for those same up to five workouts. This also includes bounded exercise/planned-set invitations and, in an accepted two-person live room, the frozen plan plus each participant's committed set completion, entered weight, and repetitions.
Let mutually confirmed, unblocked friends compare self-reported progress, view separately authorized workout detail, share an editable independent plan, or train together live. The global leaderboard is removed; friend progress is not presented as verified competition.
Notification delivery data
Only when you enable optional system alerts: a random installation ID, platform/provider, APNs or FCM token or Web Push endpoint and subscription keys, locale/app version, and a minimal opaque event kind, room/object ID, and revision.
Deliver optional friend, workout-invitation, and live-room lifecycle alerts. Per-set progress is not sent by push.
Legacy leaderboard safety reports
Reporter account UUID, reported profile ID, time, and the fixed inappropriate_name category. New cross-account reporting is unavailable while competitive standings are disabled.
Retain and finish reviewing reports submitted before the leaderboard was restricted.
Optional Garmin data
Opaque paired-device token, workout plans, sync status, and imported duration, calories, or heart-rate details when present.
Pair a Garmin device, deliver plans, and import completed workout details.
The ordinary friend-profile API never returns email, Supabase Auth UUID, raw cloud state, historical set lists, workout notes, Garmin token, or heart-rate/calorie details. Separately, when the owner explicitly enables the default-off detailed-workout setting and keeps recent summaries enabled, a mutually confirmed, unblocked friend may open read-only exercise names, weights, repetitions, and sets for at most those same five recent workouts. This view has no edit, delete, copy, or share actions and never includes notes, raw cloud state, email, Auth UUID, Garmin token, or heart-rate/calorie data. Revoking either sharing setting, ending the friendship, blocking either account, or changing the active account closes the view and requires fresh authorization. A standard direct invitation contains only exercise names/identities and planned weight/repetition sets; after acceptance it opens as an independent editable local draft and later changes are not synchronized. A separate live invitation is limited to one accepted, confirmed friend. Its room shares the frozen plan and each participant's committed set completion, entered weight, and repetitions with the other participant, but no notes, email, Auth UUID, Garmin/health data, or credentials. Per-set updates travel only to the accepted room participants through Supabase Realtime, not through push.
3. Data that stays on your device
Depending on platform, your Training Profile — training split, 2–6 training days per week, goal, and energy balance — and any legacy locally blocked leaderboard-profile list are stored in first-party app preferences and are not uploaded. Local database/cache data, language/theme preferences, and local rest-timer notification scheduling also remain on the relevant device unless a workout field is included in the cloud state described above.
The phone apps do not ask for body weight, height, sex, location, contacts, camera, microphone, Photos, Motion & Fitness, or HealthKit access. Rest-timer alerts are optional local notifications. If optional system friend/live alerts are available on your platform, GymApp requests notification permission only when you choose to enable them and then registers the account-bound delivery token/endpoint described above. Garmin sensor/workout information is processed only when you use the optional Garmin feature and is also subject to Garmin's permissions and policy.
4. How we use data
provide, secure, troubleshoot, and maintain account and sync functions;
display workout history, progress, charts, muscle load, missions, achievements, ranks, and personalized training suggestions;
manage mutual friend requests, privacy choices, removals and blocks; show enabled self-reported progress and separately authorized read-only workout details only to confirmed friends; deliver bounded workout-plan invitations; and synchronize an accepted two-person live room;
when you enable them, deliver optional system alerts for bounded friend/invitation/live lifecycle events; direct set progress remains Realtime-only;
provide Garmin pairing and workout transfer when you choose to use it;
respond to support, privacy, and account-deletion requests; and
meet legal obligations and protect users and the service from abuse.
Where applicable, processing is necessary to provide the service you request, based on your choice to use optional Garmin/notification features, or necessary for security and legal compliance.
5. No tracking, advertising, or sale
GymApp has no advertising or third-party analytics SDK, does not access IDFA, and does not link GymApp data with data from other companies’ apps or websites for advertising or measurement. We do not sell personal data or share it with data brokers.
6. Service providers and optional integrations
We use Supabase to provide authentication, database, Realtime, and Edge Function infrastructure. Supabase processes data for us under its contractual and security terms. If you connect Garmin, information needed to pair and exchange workout data is also processed through the Garmin ecosystem under Garmin's privacy policy.
If you enable system alerts and the feature is available on your platform, delivery uses the platform/browser push provider, such as Apple Push Notification service, Firebase Cloud Messaging, or the push service selected by your browser. The provider receives the installation token/endpoint and a static localized alert with only a bounded event kind and opaque room/object ID and revision. The provider payload never includes a profile or workout name, exercise, weight, repetitions, notes, email, Auth UUID, session token, or arbitrary URL. Per-set live progress is not sent to a push provider.
We may disclose information when required by law, to protect rights or safety, or as part of a lawful business transfer with appropriate notice and safeguards. We do not permit providers to use GymApp data for their own targeted advertising.
7. Retention and account deletion
We retain active account and cloud data while your account exists so GymApp can sync and provide its features. A standard unanswered workout invitation expires after seven days. Its exercise/plan payload becomes eligible for tombstoning 24 hours after decline, cancellation, or expiry, or 30 days after acceptance; bounded cleanup runs when either participant next refreshes Friends or the invitation inbox, so a dormant row may retain its payload until that cleanup or account deletion. Its ID/status/revision/idempotency tombstone and other friend/request/block/privacy lifecycle records remain account data until removed by product lifecycle rules or account deletion.
A waiting or ready live room expires seven days after creation; an active room expires 24 hours after the owner starts it. Scheduled bounded cleanup runs every five minutes. The frozen plan, summary, and per-participant progress become eligible for purge 24 hours after cancellation/expiry or 30 days after completion. The terminal room and all dependent rows become eligible for deletion 31 days after it ends. Because each pass is bounded, a backlog can delay cleanup beyond an eligibility threshold.
A notification delivery address stays active while alerts are enabled and the signed-in client refreshes it. Authenticated revocation scrubs the raw token/endpoint and Web Push keys immediately. An active installation not refreshed for 180 days is scrubbed during bounded dispatcher cleanup; its scrubbed tombstone is eligible for deletion after 30 days once no delivery row refers to it. Completed, dead, or expired notification intents and their delivery rows are eligible for deletion 30 days after completion. Live join/start/finish/close alerts expire after one day; a live invitation may remain pending only until its seven-day invitation deadline, and no pending delivery window exceeds seven days.
Pending safety reports remain until review; resolved reports are normally removed within 90 days, and reports are also deleted when the reporter or reported profile is deleted. On iOS, permanently delete your account through Profile → Account, privacy & deletion → Delete Account and confirm the irreversible request. In another GymApp version without that control, contact support for deletion. A successful request deletes the Supabase Auth user and associated active cloud records, including user state, profile, private social graph/projections/invitations/live rooms, notification installations/outbox, reports, and Garmin cloud records. The app then clears the local account session and account data on that device.
Deleting the app from a device does not by itself delete the cloud account. Operational backups and security records may remain isolated until the service provider’s limited backup cycle expires, and information that law requires us to retain may be kept only for that required period. Such records are not restored as an active account or used for product personalization.
If in-app deletion cannot complete or you no longer have access to the account, contact support@gymapptracker.com.
8. Your choices and rights
You can edit or delete workouts, decline local or system notifications, choose not to connect Garmin, control each friend-visible category, decline or cancel requests/invitations, leave a live workout, remove or block a friend, export a workout backup, sign out, and delete your account. Turning off either recent-summary or detailed-workout sharing immediately closes any open read-only workout detail. Removing or blocking immediately denies that profile friend-detail access and closes pending workout invitations and any open live room between you; switching accounts also closes and clears the prior account's friend details. Depending on your location, you may also have rights to access, correct, erase, restrict, object to, or receive a portable copy of personal data, and to complain to a data protection authority. Contact us to exercise a right; we may need to verify the account before acting.
9. Security and international processing
GymApp uses HTTPS, access controls, Supabase Row Level Security, and protected platform storage where supported; the iOS app stores session secrets in iOS Keychain. No system is perfectly secure, so keep your credentials private and contact us if you suspect misuse. Providers may process data in countries other than yours; where required, we use contractual or other lawful transfer safeguards.
10. Children
GymApp is a general fitness log and is not directed to children under 13 or the higher minimum age required in their country. We do not knowingly collect a child’s data without the authorization required by law. Contact us if you believe a child has provided data improperly.
11. Changes
We may update this policy when GymApp’s features, providers, or legal obligations change. We will update the effective date and provide additional notice in the app when a change materially affects your choices.
Українська
Картки дають короткий огляд, але не замінюють повний текст політики нижче.
Акаунт і синхронізаціяEmail, відображуване ім’я, ID акаунта та хмарний стан тренувань потрібні для входу й синхронізації.
На вашому пристроїTraining Profile, налаштування, локальний кеш і таймер залишаються локальними, як описано нижче.
Без рекламного стеженняБез реклами, стороннього analytics SDK, IDFA, міжзастосункового стеження та продажу персональних даних.
Ваш контрольОбирайте, що бачать підтверджені друзі, видаляйте чи блокуйте їх, експортуйте копію, виходьте або назавжди видаляйте акаунт.
Ця політика поширюється на GymApp для iOS та Android, браузерну/PWA-версію, а також необов’язковий компонент Garmin Connect IQ. Описана нижче функція чи дозвіл застосовується лише тоді, коли він є на платформі, якою ви користуєтеся.
2. Які дані ми обробляємо
Дані
Приклади та джерело
Мета
Облікові та контактні дані
Email, UUID користувача Supabase та відображуване ім’я, які ви надаєте для облікового запису. Облікові дані обробляє Supabase; GymApp не зберігає пароль у відкритому вигляді.
Реєстрація, підтвердження, вхід, безпека, хмарна синхронізація, підтримка й видалення.
Дані тренувань і фітнесу
Дати, назви вправ, підходи, вага, повтори, плани, завершені сесії, обсяг, особисті рекорди та похідні XP, рівень, місії, досягнення й кількість тренувань.
Щоденник, синхронізація, прогрес, Smart Coach, навантаження м’язів і гейміфікація.
Користувацький вміст
Довільні нотатки до тренувань.
Збереження та показ історії тренувань.
Друзі та спільний прогрес
Випадковий код друга/профілю, відображуване ім’я, запити, стан дружби/блокування/приватності; за вибором — XP, рівень, кількість тренувань, до п’яти підсумків із датою та до 100 внесених рекордів у вправах; і лише за окремим явним налаштуванням власника, яке типово вимкнене, — назви вправ, вага, повтори й підходи для тих самих до п’яти тренувань у режимі лише читання. Це також охоплює обмежені запрошення з вправами й плановими підходами, а в прийнятій live-кімнаті для двох — зафіксований план, завершення підходів, внесену вагу й повтори кожного учасника.
Щоб взаємно підтверджені й незаблоковані друзі могли порівнювати самостійно внесений прогрес, переглядати окремо дозволені деталі тренувань, ділитися незалежним редагованим планом або тренуватися разом наживо. Загальний рейтинг видалено; прогрес друзів не подається як перевірене змагання.
Дані доставки сповіщень
Лише якщо ви вмикаєте необов’язкові системні сповіщення: випадковий ID інсталяції, платформа/постачальник, токен APNs чи FCM або endpoint і ключі підписки Web Push, локаль/версія застосунку, а також мінімальні непрозорі тип події, ID кімнати/об’єкта та ревізія.
Доставка необов’язкових сповіщень про друзів, запрошення й життєвий цикл live-кімнати. Прогрес окремих підходів через push не надсилається.
Старі скарги щодо рейтингу
UUID акаунта заявника, ID профілю, час і фіксована категорія inappropriate_name. Нові скарги між акаунтами недоступні, поки змагальний рейтинг вимкнено.
Зберігання та завершення перевірки скарг, поданих до обмеження рейтингу.
Необов’язкові дані Garmin
Непрозорий токен під’єднаного пристрою, плани, статус синхронізації та імпортовані тривалість, калорії або дані пульсу, якщо вони є.
Під’єднання Garmin, передавання планів та імпорт завершених тренувань.
Звичайний профільний API друзів ніколи не повертає email, UUID Supabase Auth, сирий хмарний стан, історичні списки підходів, нотатки, Garmin-токен або дані пульсу/калорій. Окремо, якщо власник явно вмикає типово вимкнене налаштування детальних тренувань і залишає ввімкненими недавні підсумки, взаємно підтверджений незаблокований друг може відкрити в режимі лише читання назви вправ, вагу, повтори й підходи щонайбільше для тих самих п’яти недавніх тренувань. У цьому перегляді немає дій редагування, видалення, копіювання чи поширення і ніколи немає нотаток, сирого хмарного стану, email, Auth UUID, Garmin-токена або даних пульсу/калорій. Відкликання будь-якого з цих дозволів, припинення дружби, блокування будь-якого акаунта або зміна активного акаунта закриває перегляд і вимагає нової авторизації. Звичайне пряме запрошення містить лише назви/ідентичність вправ і планові підходи з вагою/повторами; після прийняття воно відкривається як незалежна редагована локальна чернетка, а подальші зміни не синхронізуються. Окреме live-запрошення обмежене одним підтвердженим другом, який його прийняв. Кімната показує іншому учаснику зафіксований план і завершення підходів, внесену вагу й повтори кожного, але не нотатки, email, Auth UUID, Garmin/медичні дані чи облікові секрети. Оновлення підходів передаються лише прийнятим учасникам кімнати через Supabase Realtime, а не через push.
3. Дані, що залишаються на пристрої
Залежно від платформи, Training Profile — програма, 2–6 тренувальних днів на тиждень, ціль та енергетичний баланс — і старий локальний список заблокованих профілів рейтингу зберігаються у власних налаштуваннях застосунку й не завантажуються на сервер. Локальна база/кеш, мова, тема й налаштування локальних сповіщень таймера також залишаються на відповідному пристрої, крім полів тренувань, що входять до описаного вище хмарного стану.
Телефонні застосунки GymApp не запитують вагу тіла, зріст, стать, геолокацію, контакти, камеру, мікрофон, Фото, Motion & Fitness або HealthKit. Сигнали таймера відпочинку — це необов’язкові локальні сповіщення. Якщо системні сповіщення друзів/live доступні на вашій платформі, GymApp запитує дозвіл лише коли ви самі їх вмикаєте, а потім реєструє прив’язаний до акаунта токен/endpoint доставки, описаний вище. Дані сенсорів і тренувань Garmin обробляються лише за використання необов’язкової Garmin-функції та також регулюються дозволами й політикою Garmin.
4. Як ми використовуємо дані
надаємо, захищаємо, діагностуємо й підтримуємо обліковий запис і синхронізацію;
керуємо взаємними запитами в друзі, налаштуваннями видимості, видаленням і блокуванням; показуємо дозволений самостійно внесений прогрес та окремо дозволені деталі тренувань у режимі лише читання тільки підтвердженим друзям; доставляємо обмежені запрошення з планом і синхронізуємо прийняту live-кімнату для двох;
коли ви вмикаєте їх, доставляємо необов’язкові системні сповіщення про обмежені події життєвого циклу друзів/запрошень/live; прогрес підходів лишається тільки в Realtime;
забезпечуємо Garmin-синхронізацію, якщо ви її обрали;
відповідаємо на запити підтримки, конфіденційності й видалення; та
виконуємо вимоги закону й захищаємо користувачів і сервіс від зловживань.
5. Без відстеження, реклами та продажу
GymApp не має рекламних або сторонніх аналітичних SDK, не використовує IDFA й не поєднує дані GymApp із даними інших компаній для реклами або вимірювання. Ми не продаємо персональні дані та не передаємо їх брокерам даних.
6. Постачальники послуг та інтеграції
Ми використовуємо Supabase для автентифікації, бази даних, Realtime та Edge Functions. Supabase обробляє дані від нашого імені за своїми договірними умовами й вимогами безпеки. Якщо ви під’єднаєте Garmin, потрібні для синхронізації дані також обробляються в екосистемі Garmin відповідно до політики Garmin.
Якщо ви вмикаєте системні сповіщення й функція доступна на платформі, для доставки використовується push-постачальник платформи/браузера, наприклад Apple Push Notification service, Firebase Cloud Messaging або push-служба, яку обрав браузер. Постачальник отримує токен/endpoint інсталяції та статичний локалізований текст лише з обмеженим типом події й непрозорими ID кімнати/об’єкта та ревізією. Payload не містить імені профілю чи тренування, вправи, ваги, повторів, нотаток, email, Auth UUID, токена сесії або довільного URL. Live-прогрес підходів push-постачальнику не надсилається.
Ми можемо розкрити інформацію, якщо цього вимагає закон, для захисту прав чи безпеки або під час законної передачі бізнесу з належним повідомленням і гарантіями. Постачальники не мають права використовувати дані GymApp для власної таргетованої реклами.
7. Зберігання та видалення облікового запису
Ми зберігаємо активні облікові й хмарні дані, поки існує обліковий запис. Звичайне запрошення на тренування без відповіді спливає через сім днів. Його вміст вправ/плану стає придатним до знеособленого очищення через 24 години після відхилення, скасування чи спливу або через 30 днів після прийняття; обмежене очищення запускається, коли будь-який учасник наступного разу оновлює екран «Друзі» або вхідні запрошення, тому неактивний запис може зберігати вміст до такого запуску або видалення акаунта. Його технічний запис ID/статусу/ревізії/ідемпотентності та інші записи життєвого циклу дружби/запитів/блокувань/приватності лишаються даними акаунта до очищення правилами продукту або видалення акаунта.
Live-кімната зі статусом очікування/готовності спливає через сім днів після створення, а активна — через 24 години після запуску власником. Заплановане обмежене очищення виконується кожні п’ять хвилин. Зафіксований план, підсумок і прогрес учасників стають придатними до очищення через 24 години після скасування/спливу або через 30 днів після завершення. Термінальна кімната та всі залежні записи стають придатними до видалення через 31 день після закриття. Через обмеження обсягу кожного проходу черга може відкласти очищення після настання строку.
Адреса доставки сповіщень лишається активною, поки сповіщення ввімкнено й авторизований клієнт її оновлює. Авторизоване відкликання одразу стирає сирий токен/endpoint і ключі Web Push. Активна інсталяція, яку не оновлювали 180 днів, стирається під час обмеженого очищення диспетчера; її очищений технічний запис стає придатним до видалення через 30 днів, коли на нього не посилаються записи доставки. Завершені, невдалі або прострочені наміри сповіщень і записи доставки стають придатними до видалення через 30 днів після завершення. Live-сповіщення про приєднання/старт/завершення/закриття спливають через один день; live-запрошення може очікувати лише до семиденного строку запрошення, і жодне вікно очікування доставки не перевищує сім днів.
Скарги зі статусом очікування зберігаються до перевірки; закриті скарги зазвичай видаляються впродовж 90 днів, а також видаляються разом із заявником або профілем, на який поскаржилися. На iOS для остаточного видалення відкрийте Профіль → Обліковий запис, конфіденційність і видалення → Видалити обліковий запис і підтвердьте незворотний запит. В іншій версії GymApp без такого елемента зверніться до підтримки. Успішний запит видаляє користувача Supabase Auth і пов’язані активні хмарні записи, зокрема стан, профіль, приватний соціальний граф/проєкції/запрошення/live-кімнати, інсталяції/чергу сповіщень, скарги й Garmin-дані. Після цього застосунок очищає локальну сесію та дані облікового запису на відповідному пристрої.
Саме видалення застосунку не видаляє хмарний обліковий запис. Операційні резервні копії та записи безпеки можуть залишатися ізольованими до завершення обмеженого циклу резервного зберігання постачальника, а дані, які необхідно зберігати за законом, — лише протягом обов’язкового строку. Їх не відновлюють як активний обліковий запис і не використовують для персоналізації.
Якщо видалення в застосунку не завершується або ви втратили доступ, напишіть на support@gymapptracker.com.
8. Ваш вибір і права
Ви можете редагувати або видаляти тренування, відмовитися від локальних чи системних сповіщень, не під’єднувати Garmin, окремо керувати кожною видимою друзям категорією, відхиляти чи скасовувати запити/запрошення, залишати live-тренування, видаляти або блокувати друга, експортувати резервну копію, виходити й видаляти обліковий запис. Вимкнення доступу до недавніх підсумків або детальних тренувань одразу закриває вже відкриті деталі в режимі лише читання. Видалення чи блокування одразу закриває цьому профілю доступ до деталей друга, незавершені запрошення та відкриту live-кімнату між вами; зміна акаунта також закриває й очищає деталі друзів попереднього акаунта. Залежно від країни ви також можете мати право на доступ, виправлення, видалення, обмеження, заперечення, перенесення даних і скаргу до органу захисту даних. Для виконання запиту нам може знадобитися підтвердження облікового запису.
9. Безпека та міжнародна обробка
GymApp використовує HTTPS, контроль доступу, Supabase Row Level Security і захищене платформне сховище там, де воно підтримується; застосунок iOS зберігає секрети сесії в iOS Keychain. Жодна система не є абсолютно безпечною, тому не передавайте свої облікові дані й повідомте нас про підозру на зловживання. Постачальники можуть обробляти дані за межами вашої країни; де потрібно, застосовуються договірні або інші законні гарантії передавання.
10. Діти
GymApp — загальний фітнес-щоденник, не призначений для дітей молодше 13 років або вищого мінімального віку у відповідній країні. Ми свідомо не збираємо дані дитини без дозволу, передбаченого законом. Повідомте нас, якщо вважаєте, що дитина неправомірно надала дані.
11. Зміни
Ми можемо оновлювати політику через зміни функцій, постачальників або вимог закону. Ми змінимо дату набрання чинності й додатково повідомимо в застосунку, якщо зміна істотно впливає на ваш вибір.
Русский
Карточки дают краткий обзор, но не заменяют полный текст политики ниже.
Аккаунт и синхронизацияEmail, отображаемое имя, ID аккаунта и облачное состояние тренировок нужны для входа и синхронизации.
На вашем устройствеTraining Profile, настройки, локальный кэш и таймер остаются локальными, как описано ниже.
Без рекламного трекингаБез рекламы, стороннего analytics SDK, IDFA, межприложенческого трекинга и продажи персональных данных.
Ваш контрольВыбирайте, что видят подтверждённые друзья, удаляйте или блокируйте их, экспортируйте копию, выходите или навсегда удаляйте аккаунт.
Настоящая политика распространяется на приложения GymApp для iOS и Android, браузерную/PWA-версию, а также необязательный компонент Garmin Connect IQ. Упомянутая ниже функция или разрешение применяется только в том случае, если она доступна на используемой вами платформе.
2. Какие данные мы обрабатываем
Данные
Примеры и источник
Цель
Данные учётной записи и контактные данные
Адрес электронной почты, UUID пользователя Supabase и отображаемое имя, которые вы предоставляете при создании или использовании учётной записи. Учётные данные обрабатывает Supabase; GymApp не хранит ваш пароль в открытом виде.
Создание и подтверждение учётной записи, аутентификация, безопасность, облачная синхронизация, поддержка и удаление.
Данные о тренировках и физической активности
Даты тренировок, названия упражнений, подходы, веса, повторения, планы, завершённые тренировки, объём, личные рекорды, а также производные показатели XP, уровень, миссии, достижения и количество тренировок.
Ведение журнала тренировок, синхронизация, отслеживание прогресса, рекомендации Smart Coach, представление нагрузки на мышцы и геймификация.
Пользовательский контент
Введённые вами заметки к тренировкам в свободной форме.
Сохранение и отображение истории тренировок.
Друзья и общий прогресс
Случайный код друга/профиля, отображаемое имя, запросы, состояние дружбы/блокировки/приватности; по выбору — XP, уровень, число тренировок, до пяти итогов с датой и до 100 внесённых рекордов по упражнениям; и только по отдельной явной настройке владельца, выключенной по умолчанию, — названия упражнений, веса, повторения и подходы для тех же максимум пяти тренировок в режиме только для чтения. Это также включает ограниченные приглашения с упражнениями и плановыми подходами, а в принятой live-комнате для двух участников — зафиксированный план, завершение подходов, внесённый вес и повторения каждого.
Чтобы взаимно подтверждённые и незаблокированные друзья могли сравнивать самостоятельно внесённый прогресс, просматривать отдельно разрешённые детали тренировок, делиться независимым редактируемым планом или тренироваться вместе в реальном времени. Общий рейтинг удалён; прогресс друзей не представляется как проверенное соревнование.
Данные доставки уведомлений
Только если вы включаете необязательные системные уведомления: случайный ID установки, платформа/поставщик, токен APNs или FCM либо endpoint и ключи подписки Web Push, локаль/версия приложения, а также минимальные непрозрачные тип события, ID комнаты/объекта и ревизия.
Доставка необязательных уведомлений о друзьях, приглашениях и жизненном цикле live-комнаты. Прогресс отдельных подходов через push не отправляется.
Старые жалобы на рейтинг
UUID учётной записи заявителя, идентификатор профиля, время и фиксированная категория inappropriate_name. Новые жалобы между аккаунтами недоступны, пока соревновательный рейтинг отключён.
Хранение и завершение проверки жалоб, поданных до ограничения рейтинга.
Необязательные данные Garmin
Непрозрачный токен сопряжённого устройства, планы тренировок, статус синхронизации и импортированные сведения о продолжительности, калориях или пульсе, если они имеются.
Сопряжение устройства Garmin, передача планов и импорт сведений о завершённых тренировках.
Обычный профильный API друзей никогда не возвращает email, UUID Supabase Auth, исходное облачное состояние, исторические списки подходов, заметки, токен Garmin или данные пульса/калорий. Отдельно, если владелец явно включает выключенную по умолчанию настройку детальных тренировок и оставляет включёнными недавние итоги, взаимно подтверждённый незаблокированный друг может открыть в режиме только для чтения названия упражнений, веса, повторения и подходы максимум для тех же пяти недавних тренировок. В этом просмотре нет действий редактирования, удаления, копирования или отправки и никогда нет заметок, исходного облачного состояния, email, Auth UUID, токена Garmin или данных пульса/калорий. Отзыв любого из этих разрешений, прекращение дружбы, блокировка любой учётной записи или смена активной учётной записи закрывает просмотр и требует новой авторизации. Обычное прямое приглашение содержит только названия/идентичность упражнений и плановые подходы с весом/повторами; после принятия оно открывается как независимый редактируемый локальный черновик, а дальнейшие изменения не синхронизируются. Отдельное live-приглашение ограничено одним подтверждённым другом, который его принял. Комната показывает другому участнику зафиксированный план и завершение подходов, внесённый вес и повторения каждого, но не заметки, email, Auth UUID, Garmin/медицинские данные или учётные секреты. Обновления подходов передаются только принятым участникам комнаты через Supabase Realtime, а не через push.
3. Данные, которые остаются на вашем устройстве
В зависимости от платформы ваш Training Profile — программа тренировок, 2–6 тренировочных дней в неделю, цель и энергетический баланс — и старый локальный список заблокированных профилей рейтинга хранятся в собственных настройках приложения и не загружаются на сервер. Данные локальной базы данных/кэша, настройки языка и темы, а также расписание локальных уведомлений таймера отдыха тоже остаются на соответствующем устройстве, если только поле тренировки не включено в описанное выше облачное состояние.
Приложения для телефона не запрашивают массу тела, рост, пол, геолокацию, контакты, доступ к камере, микрофону, Фото, «Движению и фитнесу» или HealthKit. Сигналы таймера отдыха являются необязательными локальными уведомлениями. Если системные уведомления друзей/live доступны на вашей платформе, GymApp запрашивает разрешение только когда вы сами их включаете, а затем регистрирует привязанный к аккаунту токен/endpoint доставки, описанный выше. Данные датчиков и тренировок Garmin обрабатываются только при использовании необязательной функции Garmin и также регулируются разрешениями и политикой Garmin.
4. Как мы используем данные
предоставляем, защищаем, диагностируем и поддерживаем функции учётной записи и синхронизации;
отображаем историю тренировок, прогресс, графики, нагрузку на мышцы, миссии, достижения, ранги и персонализированные рекомендации по тренировкам;
управляем взаимными запросами в друзья, настройками видимости, удалением и блокировкой; показываем разрешённый самостоятельно внесённый прогресс и отдельно разрешённые детали тренировок в режиме только для чтения только подтверждённым друзьям; доставляем ограниченные приглашения с планом и синхронизируем принятую live-комнату для двух участников;
когда вы включаете их, доставляем необязательные системные уведомления об ограниченных событиях жизненного цикла друзей/приглашений/live; прогресс подходов остаётся только в Realtime;
обеспечиваем сопряжение с Garmin и передачу тренировок, если вы решите использовать эту функцию;
отвечаем на запросы в службу поддержки, запросы по вопросам конфиденциальности и удаления учётной записи; и
выполняем юридические обязательства и защищаем пользователей и сервис от злоупотреблений.
В применимых случаях обработка необходима для предоставления запрошенной вами услуги, основана на вашем выборе использовать необязательные функции Garmin или уведомлений либо необходима для обеспечения безопасности и соблюдения законодательства.
5. Без отслеживания, рекламы и продажи
В GymApp нет рекламы или стороннего аналитического SDK, приложение не получает доступ к IDFA и не связывает данные GymApp с данными из приложений или сайтов других компаний для рекламы или измерений. Мы не продаём персональные данные и не передаём их брокерам данных.
6. Поставщики услуг и необязательные интеграции
Мы используем Supabase для предоставления инфраструктуры аутентификации, базы данных, Realtime и Edge Functions. Supabase обрабатывает данные от нашего имени в соответствии со своими договорными условиями и требованиями безопасности. Если вы подключаете Garmin, сведения, необходимые для сопряжения и обмена данными о тренировках, также обрабатываются в экосистеме Garmin в соответствии с политикой конфиденциальности Garmin.
Если вы включаете системные уведомления и функция доступна на платформе, для доставки используется push-поставщик платформы/браузера, например Apple Push Notification service, Firebase Cloud Messaging или push-служба, выбранная браузером. Поставщик получает токен/endpoint установки и статический локализованный текст только с ограниченным типом события и непрозрачными ID комнаты/объекта и ревизией. Payload не содержит имя профиля или тренировки, упражнение, вес, повторения, заметки, email, Auth UUID, токен сессии или произвольный URL. Live-прогресс подходов push-поставщику не отправляется.
Мы можем раскрывать информацию, если этого требует закон, для защиты прав или безопасности либо в рамках законной передачи бизнеса при условии надлежащего уведомления и гарантий. Мы не разрешаем поставщикам использовать данные GymApp для собственной таргетированной рекламы.
7. Хранение и удаление учётной записи
Мы храним данные активной учётной записи и облачные данные, пока существует ваша учётная запись, чтобы GymApp мог обеспечивать синхронизацию и работу своих функций. Обычное приглашение на тренировку без ответа истекает через семь дней. Его содержимое упражнений/плана становится доступным для обезличенной очистки через 24 часа после отклонения, отмены или истечения либо через 30 дней после принятия; ограниченная очистка запускается, когда любой участник в следующий раз обновляет экран «Друзья» или входящие приглашения, поэтому неактивная запись может сохранять содержимое до такого запуска или удаления аккаунта. Его техническая запись ID/статуса/ревизии/идемпотентности и другие записи жизненного цикла дружбы/запросов/блокировок/приватности остаются данными аккаунта до очистки правилами продукта или удаления аккаунта.
Live-комната в статусе ожидания/готовности истекает через семь дней после создания, а активная — через 24 часа после запуска владельцем. Запланированная ограниченная очистка выполняется каждые пять минут. Зафиксированный план, итог и прогресс участников становятся доступными для очистки через 24 часа после отмены/истечения или через 30 дней после завершения. Терминальная комната и все зависимые записи становятся доступными для удаления через 31 день после закрытия. Из-за ограничения объёма каждого прохода очередь может отложить очистку после наступления срока.
Адрес доставки уведомлений остаётся активным, пока уведомления включены и авторизованный клиент его обновляет. Авторизованный отзыв сразу стирает исходный токен/endpoint и ключи Web Push. Активная установка, которую не обновляли 180 дней, стирается во время ограниченной очистки диспетчера; её очищенная техническая запись становится доступной для удаления через 30 дней, когда на неё не ссылаются записи доставки. Завершённые, неудачные или просроченные намерения уведомлений и записи доставки становятся доступными для удаления через 30 дней после завершения. Live-уведомления о присоединении/старте/завершении/закрытии истекают через один день; live-приглашение может ожидать лишь до семидневного срока приглашения, и ни одно окно ожидания доставки не превышает семи дней.
Жалобы, ожидающие рассмотрения, хранятся до проверки; рассмотренные жалобы обычно удаляются в течение 90 дней, а также удаляются при удалении заявителя или профиля, на который подана жалоба. На iOS для окончательного удаления учётной записи откройте Профиль → Аккаунт, конфиденциальность и удаление → Удалить учётную запись и подтвердите необратимый запрос. В другой версии GymApp, где такой элемент управления отсутствует, обратитесь в службу поддержки для удаления. Успешный запрос удаляет пользователя Supabase Auth и связанные активные облачные записи, включая состояние пользователя, профиль, приватный социальный граф/проекции/приглашения/live-комнаты, установки/очередь уведомлений, жалобы и облачные записи Garmin. Затем приложение удаляет локальный сеанс учётной записи и данные учётной записи на этом устройстве.
Удаление приложения с устройства само по себе не удаляет облачную учётную запись. Операционные резервные копии и записи безопасности могут оставаться изолированными до завершения ограниченного цикла резервного копирования поставщика услуг, а информация, которую мы обязаны хранить по закону, может сохраняться только в течение обязательного срока. Такие записи не восстанавливаются в качестве активной учётной записи и не используются для персонализации продукта.
Если удаление в приложении не удаётся завершить или у вас больше нет доступа к учётной записи, напишите на support@gymapptracker.com.
8. Ваш выбор и права
Вы можете редактировать или удалять тренировки, отказаться от локальных или системных уведомлений, не подключать Garmin, отдельно управлять каждой видимой друзьям категорией, отклонять или отменять запросы/приглашения, выходить из live-тренировки, удалять или блокировать друга, экспортировать резервную копию, выходить и удалять учётную запись. Отключение доступа к недавним итогам или детальным тренировкам сразу закрывает уже открытые детали в режиме только для чтения. Удаление или блокировка сразу закрывает этому профилю доступ к деталям друга, незавершённые приглашения и открытую live-комнату между вами; смена учётной записи также закрывает и очищает детали друзей предыдущей учётной записи. В зависимости от вашего местонахождения вы также можете иметь право на доступ, исправление, удаление, ограничение обработки, возражение против обработки или получение переносимой копии персональных данных, а также право подать жалобу в орган по защите данных. Чтобы воспользоваться правом, свяжитесь с нами; перед выполнением запроса нам может потребоваться подтвердить учётную запись.
9. Безопасность и международная обработка
GymApp использует HTTPS, контроль доступа, Supabase Row Level Security и защищённое хранилище платформы там, где оно поддерживается; приложение iOS хранит секретные данные сеанса в iOS Keychain. Ни одна система не является абсолютно безопасной, поэтому не сообщайте свои учётные данные и свяжитесь с нами, если подозреваете неправомерное использование. Поставщики могут обрабатывать данные в странах, отличных от вашей; где это требуется, мы применяем договорные или иные законные гарантии передачи.
10. Дети
GymApp — это универсальный журнал тренировок, не предназначенный для детей младше 13 лет или более высокого минимального возраста, установленного в их стране. Мы сознательно не собираем данные ребёнка без разрешения, предусмотренного законом. Свяжитесь с нами, если считаете, что ребёнок предоставил данные неправомерно.
11. Изменения
Мы можем обновлять эту политику при изменении функций GymApp, поставщиков или юридических обязательств. Мы обновим дату вступления в силу и предоставим дополнительное уведомление в приложении, если изменение существенно повлияет на ваш выбор.