Політика конфіденційності
Оновлено 10 жовтня 2026 року
Діє для сайту і для застосунку — обидва працюють на snapfork.app.
Зміст
Що зберігає сервер
Лише те, без чого не працюватимуть вхід, синхронізація та листування з розробником:
- адреса вашої пошти — не відкритим текстом, а як результат незворотного перетворення із секретним ключем: відновити з нього адресу неможливо, хоча звірити з ним уже відому адресу можна;
- ідентифікатор вашого акаунта в Google або Apple, якщо ви входили через них, — перетворений у той самий спосіб;
- сесії: тільки відбиток токена з вашого файлу cookie, а не сам токен, і час вашого входу;
- коди з листів для входу — у вигляді хешу, дійсні десять хвилин;
- лічильники запитів, щоб код не можна було підібрати перебором;
- ваше листування з розробником, якщо ви ним користувалися, — про нього окремий розділ нижче;
- незавершений вхід: розпочатий і не доведений до кінця процес тримається на сервері лічені хвилини й зникає сам;
- ваші поповнення, якщо ви поповнювали баланс розпізнавань: сума, час та ідентифікатор платежу в продавця, який приймав оплату (номер картки лишається в нього);
- список ваших пристроїв — лише випадковий ідентифікатор, який пристрій сам собі вигадав, і час, коли він востаннє виходив на зв’язок. Ні моделі, ні системи, ні назви: список відповідає на питання «скільки їх і чи вони живі» — і ні на що інше;
- резервні копії всієї бази — щогодини, зберігаються до 14 діб, щоб збій не забрав акаунти всіх разом. Що в них лежить і скільки — у розділі «Скільки що зберігається».
Де стоїть сервер. Сервер, робоча база та локальні резервні копії працюють у хостинг-провайдера Railway (США), у його регіоні в Сінгапурі. Робочі дані людей із Європейського союзу та Великої Британії тому зберігаються за їхніми межами. Зашифровані зовнішні копії розміщуються в Cloudflare R2 з юрисдикцією Європейського союзу.
Що відбувається з вашим щоденником
Ваш щоденник зберігається і на пристрої, і на сервері — але на сервері він зашифрований. Записи, прев’ю фото, збільшені копії знімків та дані про вагу лежать у сховищі вашого браузера, а їхня запечатана копія вирушає на сервер: ключ до неї є тільки на вашому пристрої. Сервер бачить, що записи з’явилися і коли, — але не бачить, що й скільки ви їли та скільки важите.
Прочитати ваш щоденник не можемо навіть ми. Це не обіцянка добре поводитися, а принцип, на якому побудовано систему: ключа в нас немає. Звідси ціна, про яку варто знати заздалегідь: якщо ви втратите код відновлення разом із пристроєм, щоденник не поверне ніхто, зокрема й ми. Відновлювати його просто не буде з чого. Код показано в налаштуваннях, у розділі «Дані», — запишіть його й зберігайте деінде, не в телефоні.
Сервер також зберігає спірні версії — і це на вашу користь. Якщо один запис редагували на двох пристроях, перемагає новіша правка, а та, що програла, не зникає: вона лежить на сервері місяць, так само запечатана, і застосунок може її вам показати. Інакше «воно саме виправилося» було б нашим словом проти вашої пам’яті. Прочитати її ми, звісно, теж не можемо — вона в тому самому конверті, що й усе інше.
Картинка профілю — вибрана вами фотографія або вбудоване звірятко. Вона зберігається на пристрої та входить до файлу вашої резервної копії. На сервер вона потрапляє, лише якщо ви увімкнули обмін картинкою: у нього свій перемикач у розділі «Дані», окремий від обміну налаштуваннями і вимкнений, доки ви його не ввімкнете. Тоді на сервері лежить одна поточна копія — окремим конвертом, запечатаним вашим кодом відновлення: відкрити його можуть лише ваші пристрої. Картинку ми не надсилаємо ні моделі, ні друзям. Конверт одного розміру, чи то фото, чи звірятко: сервер бачить лише, що копія є, номер її версії і коли вона змінювалася. Вимкнення обміну одразу стирає конверт; лишається службовий запис без картинки — номер версії і час вимкнення, — з якого інші ваші пристрої дізнаються, що обмін вимкнено. Видалення акаунта стирає і його. У резервних копіях сервера стерте лишається до 14 діб — див. «Скільки що зберігається».
Обмін Health також зберігає на сервері службові дані: публічні ключі перевірки телефону, право телефону виконувати обмін, хеші цілей і межі версій, стани операцій, скасувань і старих перенесень. Тут немає значень Health, системних ID записів, назв пристроїв чи нотаток. Дані видаляються з акаунтом; стани й операції входять до серверного експорту, публічні ключі перевірки — ні.
Налаштування потрапляють на сервер, лише якщо ви ввімкнули їхню синхронізацію. Цілі, профіль (ім’я, стать, рік народження, зріст, рівень активності, намір, темп, цільова вага, що врахувати в розрахунку і чого ви не їсте), ціль щодо води, частки прийомів, функції щоденника, налаштування харчування, журнал поправки норми, швидкі дії, одиниці, тема листівки і два перемикачі — прихована оцінка товару та вимкнений пошук у відкритій базі — їдуть одним конвертом, запечатаним тим самим ключем, що й щоденник. Окремо про те, з чого можна здогадатися про віру чи здоров’я: готовий набір і цілі харчування (наприклад, «Рослинна» чи «Без алкоголю»), список того, чого ви не їсте, і власні слова з налаштувань харчування — стоп-слова та винятки — їдуть у цьому самому конверті й так само запечатані. Вмикається це окремим перемикачем у розділі «Дані»; доти налаштування нікуди не надсилаються. Вимикаєте там само — і копія на сервері стирається одразу, а синхронізація вимикається на всіх ваших пристроях. Сервер бачить, що конверт існує, коли він змінювався, скільки важить і коли синхронізацію вимкнули, — але не бачить, що всередині. Тема оформлення, мова, нагадування, під’єднання Apple Health і ваш власний ключ провайдера розпізнавання пристрій не залишають ніколи: вони належать пристрою, а не вам.
Країна проживання, якщо ви її вибрали, зберігається на цьому пристрої. Вона їде у файлі резервної копії поруч із мовою і стирається разом з іншими особистими налаштуваннями, коли пристроєм починає користуватися інша людина. До конверта синхронізації налаштувань вона не входить, а за IP-адресою та мовою інтерфейсу ми її не визначаємо. Полем запиту на наш сервер код країни йде лише із запитом розпізнавання ключем Snapfork і лише з увімкненим перемикачем «Враховувати країну в розпізнаванні» — транзитом, там він не лишається (розділ «Куди дані все ж потрапляють»). Рядок «Пропозиція пристрою» у виборі країни застосунок обчислює на самому пристрої — за регіоном системи, часовим поясом або регіоном у мовних налаштуваннях браузера, — і сам він нічого не вибирає.
Файл резервної копії, як і раніше, експортуєте ви, і зберігається він у вас. Він не зашифрований — і це єдиний спосіб прочитати щоденник без коду.
У провайдерів входу ми не просимо ні імені, ні прізвища, ні фото профілю — лише підтвердити адресу пошти. Ім’я, яке ви самі впишете в профіль, потрапляє на сервер лише в запечатаному конверті налаштувань і лише тоді, коли синхронізацію налаштувань увімкнено; прочитати його ми не можемо.
Резервна копія самого пристрою
Ідеться про застосунок для iPhone. В App Store його поки немає, і сказане нижче описує, як він поводитиметься, коли вийде. На сайті такого немає: у браузері немає ні контейнера застосунку, ні такої копії.
Резервна копія iPhone забирає дані застосунків в iCloud — так працює сама копія, а не наш застосунок. Чи потрапить туди ваш щоденник, вирішуєте ви, і за замовчуванням він туди не потрапляє. Питання ставиться під час першого запуску, а змінити відповідь можна будь-коли: Налаштування → «Дані» → «Копія щоденника в iCloud».
Тут описано механізм, а не результат, і це не ухильність: щойно ви відповіли, речення «мій щоденник в iCloud» для одних читачів стає правдою, а для інших — ні. Скажете «так» — копію створює і зберігає Apple за правилами Apple; це їхня копія, не наша: ми її не бачимо й відкрити не можемо. Скажете «ні» або не відповісте взагалі — тека застосунку позначається як виключена з копії, і щоденник туди не потрапляє.
Файлу резервної копії, який ви експортуєте самі, усе це не стосується: його ви створюєте і зберігаєте де завгодно. Що потрапляє до нього від друзів — у розділі «Друзі».
Відповіді про здоров’я
У застосунку є розділ «Профілактика» — довідник опублікованих рекомендацій щодо профілактичних обстежень, дібраних за віком, статтю та вашими відповідями. Ці відповіді — дані про здоров’я, і поводимося ми з ними суворіше, ніж зі щоденником. Розділ відкривається лише після окремої згоди на його вступному екрані; доки ви не погодилися, він не зберігає нічого.
Що зберігається. Де ви лікуєтеся (країна); чи курите ви, кинули чи не курили — з пачко-роками та роком, коли кинули; чи плануєте вагітність; які пункти щодо органів вас стосуються; позначки «зроблено» з місяцем і видом тесту; відкладені пункти; перемикач «Нічого про схуднення» і коли ви дали згоду. З профілю розділ читає рік народження, стать, мету й перелік «Чого ви не їсте», а вагу — ні. Діагнозів, сімейної історії та результатів аналізів розділ не питає й не зберігає.
Де. На пристрої, у сховищі застосунку. У застосунку для iPhone відповіді запечатані ключем, прив’язаним до цього телефону: з копії його можна відновити на тому самому пристрої, але не перенести на інший. До копії iCloud відповіді йдуть лише запечатаними, і на іншому телефоні відкрити їх нічим — там розділ почнеться з чистого аркуша. У браузері відповіді лежать у його сховищі, як щоденник.
На сервер — лише запечатаними і лише за вашим рішенням. Відповіді про здоров’я їдуть на сервер, лише якщо ви ввімкнули їх обмін між пристроями, — і тоді запечатаними ключем, який є лише на ваших пристроях, як щоденник і налаштування. У цього обміну свій перемикач і своя згода; за замовчуванням він вимкнений і працює лише всередині обміну налаштувань — але сам обмін налаштувань його не вмикає. Якщо ви зазначили, що лікуєтеся в Росії, відповіді не їдуть на сервер і за ввімкненого обміну.
Куди не йдуть ніколи. Ні в мовну модель, ні друзям, ні у відомості про пристрій, які додаються до повідомлення в підтримку. До файлу резервної копії (кнопка «Експорт JSON») відповіді за замовчуванням не кладуться: додати їх можна окремою позначкою — і тоді пам’ятайте, що цей файл не зашифровано.
Сховати, вимкнути обмін, стерти — три різні дії. «Сховати розділ» прибирає його з очей і відповідей не чіпає. «Вимкнути й стерти відповіді із сервера» стирає копію на сервері, а інші ваші пристрої стирають свої під час наступної синхронізації; на цьому пристрої відповіді залишаються. «Стерти відповіді на цьому пристрої» стирає їх тут, а за ввімкненого обміну під час наступної синхронізації — і на сервері, і на інших пристроях; разом із відповідями знімається і згода, і розділ знову почнеться зі вступного екрана. Видалення акаунта забирає серверну копію разом з усім іншим; скільки живуть резервні копії бази, сказано в розділі «Скільки що зберігається».
Куди дані все ж потрапляють
Фотографії страв, упаковок чи етикеток надсилаються на розпізнавання, а куди саме — залежить від того, чиїм ключем підписано запит. Маршрутів два, і вибір за вами:
- З вашим власним ключем фотографія йде з пристрою прямо на
платформу, чий ключ ви ввели, оминаючи наш сервер. Ми її не бачимо й не
зберігаємо. Платформу обираєте ви; сьогодні застосунок надсилає фото на
дев’ять адрес і жодних інших не знає:
- Google Gemini —
generativelanguage.googleapis.com - OpenAI —
api.openai.com - Grok xAI —
api.x.ai - DeepSeek —
api.deepseek.com - Qwen —
dashscope-intl.aliyuncs.com - Mistral AI —
api.mistral.ai - Llama Meta —
api.llama.com - Poe —
api.poe.com - OpenRouter —
openrouter.ai
- Google Gemini —
- Далі діють умови платформи, а не наші, і вони не всюди однакові. У Google, наприклад, вони відрізняються навіть між рівнями одного ключа: на безкоштовному рівні компанія залишає за собою право використовувати надіслане для вдосконалення своїх продуктів, на платному — ні. Умов інших платформ ми не переказуємо: вони змінюються без нас, і читати їх слід у першоджерелі. Як отримати ключ, написано в налаштуваннях застосунку, поруч із полем для ключа.
- З ключем Snapfork фотографія проходить через наш сервер, де запит підписується, і далі через OpenRouter — платформу, яка передає її провайдерові моделі. У нас вона не зберігається: ні файлом, ні копією в журналі; лишається тільки рядок чисел — модель, токени, вартість; у запрошеного, доки запрошення не зараховано, — ще й місцева дата (див. «Посилання-запрошення»). У кожному запиті ми забороняємо платформі маршрути через провайдерів, які зберігають надіслане.
Застосунок починає з вашого ключа і переходить на наш лише тоді, коли ваш не спрацював, — або одразу на наш, якщо обрана вами модель не дивиться на знімки. Так налаштовано за замовчуванням, і вимикається це прапорцем у налаштуваннях — тоді фотографія ні за яких обставин не проходить через наш сервер.
Їжа словами і перерахунок за описом. Коли ви описуєте прийом їжі текстом, введений текст надсилається на розпізнавання тими самими двома маршрутами, що й фотографія, — щоб модель оцінила калорійність, білки, жири та вуглеводи. Коли ви просите перерахувати цифри позиції за її описом, опис позиції — те, що написано в її назві, — тим самим шляхом надсилається моделі. З описом прийому надсилаються ще загальна вага, якщо ви її вказали, назви продуктів із вашої бібліотеки і скільки ви їх зазвичай кладете (порція в грамах) — за ними модель упізнає знайоме й оцінює вагу; ті самі назви продуктів із бібліотеки разом із порціями в грамах надсилаються і з фотографією страви. До опису прийому, як і до знімка, додається мова інтерфейсу — нею модель називає страви. У нас текст не зберігається, як і знімок: лишається тільки рядок чисел.
Країна проживання — якщо ви її вибрали. До фото, етикетки та опису прийому разом із мовою інтерфейсу додається двобуквений код країни: за ним модель упізнає місцеві страви й розміри порцій. Ключем Snapfork код країни йде через наш сервер до платформи розпізнавання, своїм ключем — прямо платформі, оминаючи нас. Наш сервер лише пропускає його: у журнал викликів, як і зі знімком, лягають тільки модель, токени й вартість (у запрошеного — ще й місцева дата, див. «Посилання-запрошення»). З перерахунком і з розбором продуктів за групами країна не йде, а список «Не їм» до моделі не йде ніколи. Вимикається це перемикачем «Враховувати країну в розпізнаванні» у розділі «Розпізнавання їжі».
Рядок пошуку товару — якщо ви натиснули «Шукати в Open Food Facts (інтернет)». У застосунку є екран «Продукти»: він шукає серед ваших власних продуктів і в довіднику, завантаженому на пристрій, і все це відбувається взагалі без мережі. Коли в довіднику немає того, що ви шукаєте, під списком з’являється кнопка «Шукати в Open Food Facts (інтернет)». Після натискання — і тільки після нього — те, що ви ввели в поле пошуку, вирушає з вашого пристрою до Open Food Facts, оминаючи наш сервер: ми цього рядка не бачимо й не зберігаємо. Немає ні автодоповнення під час введення, ні фонових запитів: без натискання назовні не йде нічого.
Разом із цим рядком не передається більше нічого: ні записи щоденника, ні фотографії, ні вага, ні ідентифікатор акаунта — запитові жодне з них не потрібне, і застосунок нічого з цього не додає. Далі діють умови Open Food Facts, а не наші. Вимикається це прапорцем: Налаштування → «Товари за штрихкодом» → «Шукати у відкритій базі натисканням»; вимкнений, він прибирає саму кнопку, і назовні вже нічого не потрапляє. Пошук товару за кодом з упаковки та пошук у завантаженому довіднику ніколи не виходять у мережу — ні з увімкненим прапорцем, ні з вимкненим.
Застосунок завантажує з нашого сервера файл країни або файл світового ядра, коли воно доступне; адреса називає базу (наприклад, /products/de.2026-09-24.csv). Назву бази та вашу IP-адресу бачать наш сервер і Cloudflare, через яку йдуть запити до snapfork.app. Шлях та IP-адреса можуть потрапити до журналів Railway. Строк їх зберігання залежить від налаштувань провайдерів; його потрібно перевірити перед випуском. Країна бази може різнитися з країною проживання; світове ядро країни не називає. Застосунок може запропонувати оновити встановлену базу. Запит не містить кукі входу; застосунок не прив’язує завантаження до акаунта. Завантаження — лише кнопкою в налаштуваннях; пошук далі офлайн.
Листи з кодом входу надсилаються через поштового провайдера, якого обрав власник сервісу. Окрім переліченого тут, нікому нічого не передається: ні на сайті, ні в застосунку немає аналітики, реклами чи сторонніх скриптів.
У сам лист провайдер додає лічильник відкриттів — маленьке зображення, яке підвантажується з його сервера, коли лист відкривають. Так він дізнається, що лист відкрили і коли; а поштові клієнти, що завантажують зображення напряму, до того ж показують йому адресу, з якої лист прочитали. На нашому тарифі вимкнути це неможливо. Сам лист, як ми його складаємо, не містить жодного зображення й жодного посилання.
Лічильник відвідувань
Сайт рахує відвідування сам, без файлів cookie і без чужих скриптів. У базу даних потрапляють добові числа: сторінка, мова, звідки прийшов відвідувач. Ні IP-адреса, ні User-Agent не зберігаються ні в якому вигляді — з них обчислюється ключ із добовою сіллю, а саму сіль ніде не записано, тож навіть ми не можемо зіставити два дні між собою. Заголовок Sec-GPC враховується: за його наявності не рахується взагалі нічого.
Листування з розробником
У налаштуваннях застосунку є розділ «Підтримка»: можна написати про те, що зламалося або чого бракує, і отримати відповідь там само. Це розмова, а не форма, — отже, вона зберігається на сервері: інакше відповідати не було б куди.
Зберігаються текст ваших повідомлень і відповіді розробника, прив’язані до вашого акаунта. Читають їх лише ті, чиї підтверджені адреси власник сервісу вніс до списку розробників: список закритий, він задається в налаштуваннях сервера, і більше ніхто листування не бачить. Поруч із ним немає ні адреси пошти, ні імені — відкритим текстом сервер їх і так не має, а розмова ведеться зі щоденником, а не з людиною.
Відомості про пристрій додаються, лише якщо ви поставите позначку, і перед надсиланням вам показують саме той текст, що буде відправлено: версію застосунку й бази даних, платформу і браузер, мову, розмір вікна, екран, з якого ви пишете, і код збою, якщо ви перейшли звідти, скільки у вас записів і зважувань — простими числами, чи був пристрій у мережі, чи застосунок відкрито з іконки, чи у вкладці браузера, чи ввімкнено режим налагодження і чи задано ключ платформи — «так» або «ні», але ніколи не сам ключ. Туди не потрапляє жоден запис щоденника, жодна фотографія, запис ваги чи поле профілю.
Лист-сповіщення, який отримує розробник, не містить ні тексту повідомлення, ні вашого ідентифікатора: лише «у розмові нове повідомлення». Вміст листування ніколи не потрапляє до поштового провайдера і не з’являється в журналах сервера.
Посилання-запрошення
Застосунок може дати вам постійне посилання-запрошення. Хто зареєструється за ним, отримає розпізнавання нашим ключем у подарунок, поки в посилання є подарунки, а ви — свої, коли він розпізнає їжу ключем Snapfork у два різні дні, поки не вичерпано межу нагород. Більше нічого не змінюється: доступу до чужого щоденника не отримує ніхто.
Дні — за календарем запрошеного: з кожним розпізнаванням ключем Snapfork застосунок надсилає місцеву дату. Зберігаємо її лише в запрошеного, доки запрошення не зараховано й той, хто запросив, не видалив акаунт, і не довше 30 днів. Дату, якої немає в жодному поясі, не приймаємо: такий виклик і виклик без дати рахуємо за поясом інших його дат (без них — за всесвітнім часом); якщо ж дати не сходяться (переїзд, різні пояси, перехід годинника), увесь його рахунок — за всесвітнім часом.
Зберігається факт того, що один акаунт прийшов за посиланням іншого: за яким саме, коли і чи зароблено нагороду. Це запис про зв’язок між двома людьми, тому він зведений до мінімуму й нікому не показується: той, хто запросив, бачить лише числа — скільки людей прийшло, скільки з них розпізнали їжу ключем Snapfork у два різні дні, скільки розпізнавань нараховано і скільки подарунків у посилання лишилося. Ні імені, ні адреси, ні моменту входу. Хто саме прийняв запрошення, ми не повідомляємо, бо це означало б сказати сторонній людині, що конкретна особа почала вести щоденник харчування.
Саме посилання містить код і нічого про вас. Перехід за ним лічильник відвідувань рахує як окрему кампанію — лише мітку: код до лічильника не потрапляє, інакше добові числа перетворилися б на таблицю того, чиї посилання працюють.
Видалення акаунта прибирає посилання і запис про те, звідки цей акаунт прийшов; записи про нагороди лишаються, але вже без ідентифікатора акаунта, бо саме за ними рахуються межі того, скільки можна роздати.
В експорті «Що сервер зберігає про вас» — ваші посилання (і відкликані), як і коли прийшли ви та чи зароблено нагороду, лише числом — скільки людей прийшло за вашими посиланнями й скількох зараховано, ваші записи про нагороди й залишок подарунків. Хто кого запросив, у файлі не названо.
Так само поводяться й записи про поповнення: після видалення акаунта вони лишаються на місці, але більше нікого не називають. Причина не в бухгалтерії, а у вас: банк може оскаржити платіж через місяць після того, як акаунта вже немає, і якби сум не залишилося, відповісти на такий спір не було б чим. Залишок балансу під час видалення згоряє, і це фіксується окремим записом: гроші, за які послугу не надано, так і лишаються видимими саме як такі, а не розчиняються у виручці.
Друзі
Якщо ви пов’язані з другом і дозволили йому бачити свій тиждень, з вашого пристрою йде ваш тиждень — дані, похідні від щоденника, а саме два факти на день за останні сім днів: чи записували ви хоч щось і, якщо ви відкрили це окремо, чи вклалися у власну ціль. А ще — скільки днів поспіль ви робите записи. Не що ви їли, не скільки калорій, не ваша вага — нічого з цього не потрапляє в тиждень, хоч би який рівень відкритості ви обрали. Крім тижня, до друга йде лише те, що ви надіслали самі: репліка з готового набору підбадьорень або картка продукту, про неї нижче.
Тиждень друга ви бачите, лише якщо відкрили йому свій тиждень, а ознаку його цілі — лише якщо відкрили й свою ціль; у друга наш застосунок показує йому про вас рівно стільки ж, скільки вам про нього: тиждень друга ваш пристрій показує лише за взаємної згоди. Ознака вашої цілі йде другові в зашифрованому конверті щоразу, коли ви відкрили йому ціль, а показується йому, лише якщо він теж відкрив вам свою ціль. Згоду питаємо окремо для кожної дружби й кожного рівня, і фіксуємо, під яким текстом ви погодилися: якщо зміст цього тексту зміниться, ми запитаємо знову, а не розширимо згоду мовчки. Скасувати можна будь-якого дня, і кнопок дві: «перестати ділитися» зберігає дружбу, «видалити дружбу» прибирає зв’язок і стирає те, що кожен із вас бачив про іншого.
Картка продукту йде, лише коли ви надіслали її самі. На екрані друзів можна надіслати другові продукт зі своєї бібліотеки. У картці — назва, цифри на 100 г (калорії, білки, жири й вуглеводи), штрихкод, якщо він є, і звідки ці цифри; цукор, насичені жири, сіль і клітковина — лише якщо вони з етикетки, зі штрихкоду чи з довідника. Ні ваги, ні дати, ні того, коли й скільки ви це їли, у ній немає. Вона їде запечатаною в тому самому конверті, що й репліка, тієї самої довжини й тим самим шляхом, тому сервер не відрізняє картку від репліки. Що з нею робити, вирішує друг: до його щоденника й бібліотеки нічого не потрапить, доки він не збереже з нею запис, а неприйнята картка зникає через сім днів. Одному другові можна надіслати не більше п’яти карток на добу — рахуючи назад від моменту надсилання, а не з півночі. «Відкликати» затирає конверт на сервері, і картка зникає з екрана друга під час його найближчого обміну; якщо він уже додав продукт, той у нього залишиться. Видалення дружби стирає картки між вами на сервері разом зі зв’язком.
Один виняток — файл копії, який ви експортуєте самі: він не зашифрований, і в ньому лежить тиждень друга — рівно те, що ви про нього бачили. Реплік і карток продуктів у ньому немає. Видалення дружби стирає побачене і в нас, і на пристрої, але до файлів, які ви вже зберегли, воно не дотягується: що з ними робити далі, вирішуєте ви.
Блокування. Кнопка «Заблокувати» в картці друга одразу рве зв’язок — як «видалити дружбу», разом із конвертами в обидва боки, — і забороняє вам двом кликати одне одного знову: жодне посилання між вами більше не буде прийняте. Для цього сервер зберігає, хто кого заблокував і відколи, — без причини й без жодного вашого слова, — доки не розблокуєте людину в списку «Заблоковані» на тому ж екрані або доки хтось із вас не видалить акаунт. Іншій стороні ми про це не повідомляємо: вона бачить те саме, що після «видалити дружбу», — дружбу завершено, а ваше посилання в неї не спрацьовує, як застаріле. Розблокування дружбу не повертає: зв’язок з’явиться, лише коли хтось із вас прийме посилання іншого. В експорті «Що сервер зберігає про вас» є й друзі: ваш відкритий ключ, зв’язки з днем початку, ваші запрошення й заборони та конверти від вас і для вас — запечатані, відкрити їх може лише ваш пристрій із друзями або пристрій друга. Друг у файлі — ідентифікатор акаунта, не ім’я; його ключа, конвертів іншим і заборон, поставлених вам, там немає, як і рівнів та згод: вони на пристрої.
Нічого з цього ми прочитати не можемо — за умови, що ключ справжній. Вміст передається запечатаним, і ключа від нього в нас немає; кожен конверт має однакову довжину, і навіть за розміром не видно, скільки днів усередині. Але дещо ми таки бачимо, і кажемо про це прямо:
- хто з ким пов’язаний і відколи;
- ваш відкритий ключ;
- що у вас є сховище ключа друзів і коли воно змінювалося, а поки чекає прохання скинути друзів — саме прохання і його строк та другий шифротекст сховища сталої довжини;
- коли ви відкриваєте екран друзів — тоді пристрій забирає скриньку і, якщо ви відкрили тиждень, надсилає його, — і коли надіслано чи відкликано конверт із реплікою чи карткою, а якщо друзі у вас на кількох пристроях під спільним ключем — ще й коли ви взяли картку продукту друга або відмовилися від неї;
- що запрошення існують і скільки їх.
Чого ми не бачимо: що всередині, скільки там даних і як ви назвали друга на своєму пристрої. Друг бачить, коли ваш тиждень оновився востаннє, — це момент, коли ви відкривали екран друзів.
Застереження про ключ — не фігура мови. Ключі, якими ви обмінюєтеся, проходять через наш сервер, — отже, теоретично ми могли б їх підмінити. Це можна перевірити: тридцять дві цифри, обчислені з обох відкритих ключів, мають збігтися у вас і в друга. Таку перевірку ми пропонуємо, а не вимагаємо, — і доки ви її не зробили, ви довіряєте серверу в тому, що він передав справжній ключ. Екран дружби завжди показує, чи перевірено її.
Якщо ви синхронізуєте щоденник, закритий ключ друзів передається між вашими пристроями тим самим шляхом, що й щоденник: у сховищі ключа друзів, запечатаному ключем щоденника, якого в нас немає. Там само зберігаються ваші дозволи, звірки та підписи друзів. Тож друзі доступні на всіх пристроях із кодом ключа щоденника, відкликання дозволу на одному діє на всіх, а звірка спільна й стосується всього ключа друга: вдруге звіряти не треба, а якщо ключ звіреного друга зміниться, ваш тиждень йому не йде, доки не звірите цифри знову. Поки ваші друзі не на спільному ключі, перейти на нього запропонує екран друзів: без друзів і неприйнятих запрошень — будь-коли, а коли друзі чи запрошення вже є, перехід — як і перенесення друзів сюди — змінює ключ, на який уже спираються інші, і тому можливий лише одразу після входу. Загублений пристрій відключають так: синхронізуйте решту пристроїв, випустіть новий код (можна разом із ключем друзів) і в налаштуваннях акаунта вийдіть на інших пристроях — теж лише одразу після входу. Новий код закриє загубленому пристрою нові записи щоденника на сервері, зміна ключа друзів — нові тижні друзів, а вихід — доступ до сервера; те, що вже на ньому, там і залишиться. Друзі побачать новий ключ і зможуть звірити цифри знову. Зі зміною ключа друзів сервер стирає й адресоване вам під попереднім ключем — тижні друзів, репліки й картки продуктів: новий ключ їх не відкриє. Якщо код загублено, є кнопка «Скинути друзів» — лише одразу після входу (за кодом із пошти або через Google чи Apple). Скинути можна на пристрої, де є код ключа щоденника; якщо коду немає й там, спершу заведіть новий — це новий ключ щоденника. Скидання набирає чинності через добу, якщо за цей час на жодному пристрої з вашим кодом не відкриється застосунок із мережею: такий пристрій сам знімає прохання, навіть якщо екран друзів не відкривати, — отже, код у вас є. Після скидання ключ зміниться, звірки знімуться, а ділитися тижнем треба буде дозволити знову. Закрита половина ключа друзів ніколи не йде до файлу копії; на пристрої вона лежить у знімку сховища — у тій самій базі пристрою, що й ключ щоденника, — і резервна копія пристрою з щоденником забирає її разом із ключем щоденника.
Без синхронізації або без спільного ключа друзів ключ, яким запечатано ваш тиждень, зберігається на вашому пристрої й нікуди не передається — ні нам, ні до файлу резервної копії. Тож на новому пристрої дружби доведеться підтвердити заново. Друзі живуть на одному пристрої, і ключ на сервері змінюється лише за відсутності друзів і неприйнятих запрошень або перенесенням (лише одразу після входу) — копією на новому, ще порожньому пристрої або кнопкою «Перенести сюди»: на попередньому вони зупиняються («Повернути сюди»), а ділитися тижнем треба дозволити знову.
Скільки що живе: неприйняте запрошення діє 30 днів і спрацьовує один раз; ваш тиждень лежить на сервері до наступного і стирається одразу, щойно дружба закінчується або ви переходите на новий пристрій — коли на ньому, ще порожньому, відновлять ваш файл або ви підтвердите перенесення на екрані друзів, — а зі спільним ключем друзів ще й під час переходу на нього, під час зміни ключа друзів із новим кодом і коли набере чинності скидання; репліки живуть сім днів; сховище ключа друзів — до видалення акаунта; зв’язок — доки його не розірвуть або не видалять акаунт. Соціальні функції не пропонуються тим, у кого в профілі вказано вік до 16 років.
У вас може бути не більше 50 друзів, і ця стеля наша, а не продуктова: що довший список, то більше зв’язків відомо серверу. З тієї самої причини обмежено й запрошення — п’ять активних одночасно, десять на день.
На якій підставі
Для кожної мети обробки — своя правова підстава за GDPR (ст. 6 і 9):
- Виконання договору (ст. 6(1)(b)) — те, без чого немає послуги, про яку ви просите: акаунт, вхід і листи з кодом, запечатана копія щоденника, розпізнавання ключем Snapfork разом із мовою й країною, завантаження бази товарів, листування з розробником, запрошення і механіка дружби: зв’язок, ключі, сховище ключа друзів, доставка конвертів, заборони повторного запрошення, а також репліки й картки продуктів — їх ви надсилаєте самі, і згоди на тиждень вони не потребують.
- Згода (ст. 6(1)(a)) — обмін налаштуваннями: він вмикається окремо й відкликається будь-коли тим самим перемикачем.
- Явна згода (ст. 9(2)(a)) — відповіді про здоров’я та їх обмін, відкликання — кнопками розділу, і тиждень для друга: на кожну дружбу й кожен рівень — своя згода, відкликання — кнопкою «Перестати ділитися».
- Законний інтерес (ст. 6(1)(f)) — резервні копії бази, журнали хостингу, лічильник відвідувань і знеособлені записи про поповнення для суперечок щодо платежів. Заперечити проти цього можна листом на адресу нижче (ст. 21).
Скаргу можна подати й до наглядового органу із захисту даних своєї країни.
Скільки що зберігається
Журнал викликів моделі зберігається на сервері, доки існує акаунт.
Вивантаження із сервера містить і ваш журнал викликів моделі: день, час, вид запиту, модель, джерело оплати, статус, токени й вартість у доларах США та місцеву дату запрошеного, доки вона зберігається. У журналі немає знімків, тексту запитів і відповідей моделі; згортка IP-адреси до файлу не входить.
Сесія — до 180 днів від останнього входу. Код із листа — 10 хвилин. Добові числа лічильника — безстроково, але в них немає нічого про людину. Акаунт — доки ви його не видалите. Листування з розробником — рівно стільки ж, скільки акаунт: воно зникає разом із ним і окремого строку не має. Окремого строку ми навмисно не називаємо: це була б обіцянка стирати за розкладом, а розкладу немає — тож обіцянка виявилася б неправдивою при першій же перевірці.
Місцева дата запрошеного — не довше 30 днів (див. «Посилання-запрошення»).
Записи щоденника на сервері — доки існує акаунт. Окремого строку в них немає, і це рішення, а не недогляд. Сервер тримає запечатану копію щоденника заради вашого другого пристрою — а копія, що зникає сама собою, другому пристрою ні до чого: йому не було б звідки повернути те, що сервер забув, і щоденник на ньому непомітно виявився б коротшим, ніж на іншому. Записи зникають разом з акаунтом і тільки з ним: видаліть його — і запечатана копія щоденника зникне з бази сервера одразу, а з її резервних копій — у міру їхньої ротації; як швидко, сказано наприкінці цього розділу. Щоденник на самому пристрої лишається вашим і стирається окремо.
Тридцять днів, про які йдеться нижче, стосуються не самих записів, і ці два строки не варто плутати. Тридцять днів — це тривалість життя прев’ю фото (і на пристрої, і на сервері), збільшених копій знімків на сервері та версій записів, що програли в конфлікті синхронізації. Усі три види даних лежать ПОРУЧ із записом, а не замість нього: зникає картинка або попередня редакція рядка, а сам запис лишається на місці. Серверні строки відлічуються в робочій базі сервера; у її резервних копіях картинка чи версія можуть пережити їх ще на строк до 14 діб — див. останній абзац розділу.
Прев’ю фото страв — 30 днів. Застосунок зберігає маленьку копію знімка поруч із записом і видаляє її з пристрою через тридцять днів після зйомки. Сам запис лишається: зникає лише картинка. Цей строк ми називаємо саме тому, що тут розклад є — прибирання запускається щоразу, коли відкривається застосунок, і одразу після відновлення з резервної копії, — і перевірити це можна, відкривши якийсь давній день. Початковий файл камери не зберігається в щоденнику. Разом із прев’ю запис зберігає на пристрої збільшену стиснуту копію на той самий строк. До файлу резервної копії, який ви експортуєте, вона потрапляє без шифрування.
Відкладене фото — на пристрої, не довше 30 днів. Фото, відкладене, щоб розпізнати його пізніше, лежить на пристрої повністю, а не як прев’ю: доки його не розпізнали й ви не зберегли запис, і не довше тридцяти днів від зйомки. Після цього строку фото видаляється, а нагадування про прийом їжі лишається — записати його можна вручну. Пристрій воно залишає лише в момент розпізнавання — тим самим шляхом, що й будь-яке інше фото (розділ «Куди дані все ж потрапляють»). Повний знімок, надісланий на розпізнавання, наш сервер не зберігає. Якщо ви збережете запис, його прев’ю та збільшена стиснута копія зберігаються окремо, запечатаними вашим ключем, як описано нижче.
На сервері прев’ю живе за тим самим строком — не довше тридцяти днів. Воно потрапляє туди запечатаним, разом зі щоденником, щоб з’явитися на вашому другому пристрої; відкрити його ми не можемо, так само як і записи. Сервер відлічує строк від дня, коли картинка надійшла, а не від дня зйомки: дня зйомки він не знає — ця дата всередині шифротексту. Тому прев’ю спершу зникає з пристрою, а потім із сервера, і прибирання там іде за розкладом, раз на добу, а не «колись».
Збільшені копії фото страв — на сервері до 30 днів. Якщо запис має таку копію, застосунок надсилає її окремо від прев’ю, запечатаною вашим ключем. Сервер бачить тільки шифротекст; адреса знімка міститься всередині запечатаного запису. Інший пристрій завантажує копію, коли ви відкриваєте фото. Сервер видаляє її під час щоденного прибирання, рахуючи від надходження, і одразу після видалення акаунта. Вивантаження даних акаунта містить той самий шифротекст.
Версії записів, що програли в конфлікті синхронізації, — не довше тридцяти днів. Редагуючи запис, ви замінюєте його попередню версію; сервер не викидає її одразу, а відкладає окремо — щоб «воно саме виправилося» не було нашим словом проти вашої пам’яті. Побачити їх і повернути можна в застосунку, у картці спірних версій. Лежать вони запечатаними, як і записи: відкрити їх ми теж не можемо. Прибирання йде за розкладом, раз на добу, — і саме тому тут ми строк називаємо.
Така версія може зникнути й раніше строку, і чесніше сказати про це прямо: для одного запису сервер зберігає щонайбільше двадцять таких версій, і двадцять перша витісняє найстарішу. Це інженерне обмеження проти коду, що вийшов з-під контролю, а не обіцянка зберігати двадцять. Поточної версії запису не стосується ні строк, ні обмеження: це і є ваш щоденник, і зникає він лише разом з акаунтом.
Резервні копії бази — до 14 діб. Щогодини сервер копіює свою базу цілком — на випадок, якщо відмова диска чи невдале оновлення заберуть акаунти всіх разом. Копії за останні 48 годин зберігаються по одній на годину, старіші — по одній на добу, а копія, старша за 14 діб, видаляється під час найближчої щогодинної ротації. Копії видаляє лише ввімкнений сервер: поки він вимкнений, лежать усі, а після ввімкнення прострочені зникають одразу. Одне застереження: найсвіжіша копія лишається завжди — навіть прострочена, якщо нові перестали вдаватися, — до наступної вдалої, бо стара копія корисніша за порожнє місце. У копії лежить рівно те, що було в базі тієї години, і в тому самому вигляді. Запечатане вашим ключем — щоденник, прев’ю, налаштування, картинка профілю, спірні версії, сховище ключа друзів — лишається запечатаним і в копії, і ключа до нього в нас немає; те, що сервер бачить відкрито, — листування з розробником, хто з ким дружить, — він бачить і в копії. Тому кожен строк вище — це строк у робочій базі: усе, що звідти стерто — прибиранням або разом з акаунтом, — лишається в резервних копіях не довше 14 діб після цього, крім названих випадків. Чотирнадцять діб — верхня межа, а не обіцянка зберігати: копія може зникнути й раніше, наприклад коли на диску закінчується місце.
Зовнішня копія — плановий строк спливає через 35 діб. Сервер раз на добу надсилає резервну копію бази до Cloudflare R2 з юрисдикцією Європейського союзу. Увесь архів шифрується перед надсиланням окремим ключем резервних копій. Плановий строк до спливу — 35 діб. Після його спливу R2 видаляє об’єкти асинхронно, тому фактичне зберігання може тривати довше. Дані, стерті з робочої бази, залишаються в зовнішніх копіях до фактичного видалення цих копій.
На 9 жовтня 2026 року R2 зберігає копію від 2 жовтня без шифрування всього архіву; правило планового строку те саме.
Видалення
У застосунку: налаштування → «Видалити акаунт». Це стирає акаунт, усі способи входу до нього, усі сесії та все листування з розробником; для входу через Apple також відкликається доступ на боці Apple. Разом з акаунтом зникає й усе, що сервер зберігав для синхронізації: запечатана копія вашого щоденника, прев’ю фото, запечатана копія ваших налаштувань, запечатана картинка профілю, журнал спірних версій і список ваших пристроїв — нічого з цього в базі сервера не залишається. Так само зникають зв’язки з друзями, ваш відкритий ключ, сховище ключа друзів, конверти між вами й друзями, запрошення в друзі й заборони повторного запрошення. У щогодинних резервних копіях усе це ще лежить до 14 діб, у тому самому вигляді, а потім зникає й звідти (якщо сервер працював і нові копії робилися справно); як влаштовані копії, описано в розділі «Скільки що зберігається». Добові числа лічильника відвідувань лишаються: у них немає нічого про людину, і видалити їх для окремого акаунта неможливо, бо акаунта в них немає. Щоденник на вашому пристрої стирається окремою кнопкою — він належить лише вам, і вирішувати його долю замість вас ми не будемо.
Зміни
Ця політика змінюється разом із сервісом; дата вгорі сторінки — дата останньої редакції. Про суттєві зміни ми повідомляємо тут, а не листом: сервер не зберігає жодної адреси, на яку міг би написати, — лише її відбиток.
Зв’язок
Володілець персональних даних — той, хто вирішує, що тут зберігається, і відповідає за це, — приватна особа, а не компанія: за Snapfork не стоїть жодна юридична особа. Ця особа — Oleksandr Trifonov. Усе, що стосується сервісу, зокрема запити щодо ваших власних даних, надсилайте на адресу нижче. Що такий устрій означає на практиці, розказано на сторінці про те, хто за цим стоїть.
Запитання, доступ до власних даних і видалення — через сторінку питань або листом на hello@snapfork.app.