// ПОЛИТИКА ХРАНЕНИЯ И УДАЛЕНИЯEnglish version
Черновик. Документ дорабатывается с юристом и может измениться до публикации.

Политика хранения и удаления данных (EU/US/IL)


1. Принцип

⇄ S56·W4 (решение владельца 2026-10-06): сроков у данных клиента теперь ДВА, и оба — 30 дней от ПОСЛЕДНЕГО ДЕЙСТВИЯ, с одним расписанием напоминаний. Заменены прежние таймеры (1) «модель — 30 дней от обучения», (2) «кадры — 30 дней после выдачи, только у выданных заказов» и (4) «исходные фото — 30 дней с загрузки». Отсечка при замене модели (3) — прежняя. ⟦ДЛЯ ЮРИСТА: формулировки этого раздела наши, по изменённому факту; сверить с текстом согласия на биометрию — его новая редакция biometric-2026-10-06-eu-us-il говорит то же⟧

2. Что удаляется (объекты хранения)

✅ СТРОКА ПРО ИСХОДНЫЕ ФОТО ПРИВЕДЕНА К НОВОМУ ФАКТУ 2026-08-30 (решение владельца, S36-W2). Срок у исходных фотографий ТЕПЕРЬ ЕСТЬ: 30 дней с загрузки (таймер-4, §1). 🗄️ Предыстория, чтобы читатель понимал, почему абзац такой длинный. Сутками раньше здесь стояло «у нас — по сроку хранения», и это обещало то, чего система не делала: замер S35-W6 перечислил ВСЕ пути удаления объектов в apps/api — привязанное к заказу фото не удалял по возрасту ни один, а метёлка PhotoGcService берёт только СИРОТ (её «возраст» — грейс 2 часа, защита загрузки в полёте). Промежуточным шагом владелец выбрал привести ДОКУМЕНТ к поведению (сужение обещания), и только потом назвал число. ⚠️ Итоговую юридическую формулировку по-прежнему смотрит юрист — здесь приведён ФАКТ, а не утверждённая редакция.
КатегорияГде живётУдаляется
Исходные фото (загрузка пользователя)R2/S3 (uploads/ + analysis/ — уменьшенная копия для разбора, несёт то же лицо; presigned — S1); копия передана внешнему провайдеру для обученияда, срок личных данных — 30 дней после последнего действия (§1 (1); ⇄ S56·W4, было «30 дней с загрузки»). Гасятся ОБА префикса разом: оригинал и производная копия. Плюс — кнопкой «Удалить сейчас», по требованию клиента (снял фото в наборе), при удалении аккаунта (§7, полный каскад) и метёлка ОСИРОТЕВШИХ объектов
Модель личности (soul_id) — биометрическая модельу внешнего провайдера (Higgsfield); у нас только идентификатор externalSoulIdда, срок личных данных (§1 (1)) / продление / «Удалить сейчас»; проброс запроса на удаление провайдеру + подтверждение
Анкета (рост, размер, фигура, пол) и разбор фото (этничность, причёска, телосложение) — и их копии: снимок анкеты в заказе, состояние диалога бота, тексты промптов заказа (в каждом — этнический токен, рост, пол)Postgres (users, souls.analysis, orders.anketaSnapshot, bot_sessions, order_prompts, order_prompt_versions)да, срок личных данных — 30 дней после последнего действия (§1 (1)), вместе с моделью и исходными фото; у промптов стирается текст, заказ (сумма, даты, статус) остаётся (⇄ S57·W3, решение владельца 2026-10-13). При удалении аккаунта — полностью (§7)
Результаты (сгенерированные изображения)R2/S3 — `results/`, `redress/` И `delivered/` (переодетые кадры — те, что уходят клиенту; delivered/ — копия выданного комплекта, S35-W5) + CDN, выдача только presignedда, срок данных заказа — 30 дней после последнего действия по заказу (§1 (2); ⇄ S56·W4: у ВСЕХ заказов по границе, а не только у выданных), все префиксы с `retention: 'delivery'` в реестре apps/api/src/s3/client-data-namespaces.ts — перечень живёт там, а не здесь
Прежняя soul_id при заменеу провайдера + идентификатор у насда, по истечении окна ~5 дней (таймер 3)
Промежуточные артефакты генерации⟦РЕШЕНИЕ: кэш/темп ИИ-провайдеров — уточнить у Наташи (N1) и провайдеров⟧да / по договору с провайдером
Записи заказовPostgres (orders, S1)при удалении аккаунта — удаляются полностью (§7). При обычном жизненном цикле — ⟦срок по налоговому/бухгалтерскому праву IL — юрист⟧
Платёжные записиPostgres (payments)при удалении аккаунта — НЕ удаляются, обезличиваются (отвязка от userId/orderId; сумма/валюта/дата/txn остаются), основание GDPR ст.17(3)(b) + налоговый ретеншн (§7)
Журнал согласийPostgres (consents)при удалении аккаунта — записи удаляются, но PII-free снимок (тип/версия/дата) сохраняется в записи об удалении как proof-of-consent (§7)
Переписка по заказу (чат клиент↔студия)Postgres (order_messages)да, тот же срок данных заказа, что у Результатов (§1 (2); решение владельца продукта 2026-08-20, требование R-10; ⇄ S56·W4 — у всех заказов по границе, у черновика — от последнего сообщения). Реализовано: OrderRetentionService.purgeOrderData. При удалении аккаунта — удаляется полностью (§7), счётчик стёртых сообщений попадает в запись об удалении
Лог фактов удаления (deletion receipt)Postgres (deletion_audits)хранится (доказуемость соблюдения политики), PII/биометрии не содержит: хэш id + счётчики + снимок согласий
⚠️ Удаление должно затрагивать все копии: объект в R2/S3, кэш CDN (инвалидация), любые темп-файлы у ИИ-провайдеров. Удаление только из БД при живом S3-объекте — недостаточно.

3. Срок, точка отсчёта, продление

3.1. Сроки (§0h, ⇄ S56·W4 2026-10-06): 30 дней после последнего действия — у личных данных (модель, исходные фото, анкета) и у данных заказа (кадры, переписка); точки отсчёта — §1. ~5 дней — окно восстановления при замене soul_id.

3.2. Точка старта 30 дней — последнее действие (решение владельца 2026-10-06, §1). ⟦ДЛЯ ЮРИСТА: прежде здесь стояла открытая развилка «от обучения / от выдачи / от последней активности»⟧

3.3. Продление — опт-ин кликом из напоминания или из кабинета: +30 дней к дате удаления, без ограничения числа продлений (решение владельца 2026-10-06); продлевает строку, у которой нажато, — личные данные или данные конкретного заказа; факт продления фиксируется как согласие. 3.3a. «Удалить сейчас» — у той же строки, после подтверждения; необратимо; учётная запись, заказы и оплаты остаются. Если над съёмкой в этот момент идёт работа студии, удаление выполняется сразу после окончания текущего этапа (новые этапы по заказу не запускаются), и клиент получает сообщение, когда данные удалены (решение владельца 2026-10-08, ADR-0017 п.9). Подписка V2 — отдельный будущий режим постоянного хранения (вне MVP).

3.4. Скидка на повторную сессию (Phase 0) сама по себе хранение не продлевает.

4. Требования к авто-очистке (для реализации, НЕ в этом окне)

Формулируем как требования к будущей задаче (E4/E9/E10; инструмент канона — планировщик retention, слой 4 Phase 1):

5. Законные исключения из авто-удаления

Хранение сверх срока допустимо только при основании, например:

Исключение касается обезличенных платёжных записей, не биометрии: биометрия (фото + soul_id) удаляется в любом случае. Записи заказов при удалении аккаунта удаляются полностью — по налоговому основанию сохраняется только обезличенный payment.

5a. Удаление аккаунта — «право на забвение» (реализовано, spec 002)

Отдельно от трёх retention-таймеров (§1) действует явный запрос на удаление аккаунта:

6. Ответственность и пересмотр

6.1. Владелец политики — оператор данных (⟦РЕШЕНИЕ: IL-юрлицо/DPO — владелец продукта⟧).

6.2. Политика пересматривается при изменении инфраструктуры хранения или юрисдикций.

6.3. Политика публикуется (публичный retention-график — требование BIPA-подобных законов).


Открытые решения (сводка)