Files
rf4-spotter/docs/data-retention.md
T
ik 16e4c071d1
CI / backend-and-migrations (push) Canceled after 0s
CI / astro-build (push) Canceled after 0s
CI / compose-e2e (push) Canceled after 0s
docs: target an open alpha launch
2026-09-07 09:27:11 +07:00

3.5 KiB

Политика хранения данных открытой альфы

Политика минимизирует персональные и диагностические данные, не разрушая обезличенную статистику клёва. Сроки считаются от reported_at, created_at или last_seen_at соответствующей записи.

Данные Срок Действие
HMAC-отпечатки IP для rate limit 1 день удалить запись
Pending/rejected пользовательские уловы 30 дней стереть ник, комментарий, source URL, токен и скриншот; просроченный pending перевести в rejected с системным событием
Ник, комментарий и скриншот одобренного пользовательского улова 180 дней анонимизировать, сохранив рыбу, точку, вес, снасть и время для агрегатов
Неопубликованные/rejected staging-наблюдения внешних источников 90 дней без обновления удалить запись целиком
Raw payload опубликованного внешнего наблюдения 365 дней без обновления очистить payload, сохранив URL, внешний ID и каноническую связь
События модерации 365 дней удалить событие; сама обезличенная запись улова остаётся
Официальные рекорды и их публичные поля пока запись актуальна сохранять для сверки; удаление регулируется процедурой обновления источника

Сроки задаются переменными RETENTION_*_DAYS из .env.production. Минимальные значения ограничены конфигурацией, чтобы ошибочное значение не вызвало немедленную массовую очистку.

Запуск

Сначала обязателен просмотр плана без изменений:

docker compose --env-file .env.production -f compose.production.yaml exec -T api python -m app.cli cleanup-retention

После проверки счётчиков и свежего backup:

docker compose --env-file .env.production -f compose.production.yaml exec -T api python -m app.cli cleanup-retention --apply

Команда выводит JSON с режимом, применёнными сроками и числом затронутых сущностей. Для альфы её следует запускать ежедневно после успешного backup. Ошибка удаления объекта MinIO прерывает обработку базы; повторный запуск безопасен.

Администратор может вручную удалить пользовательскую заявку раньше срока через очередь модерации. В таком случае ник, исходный payload и скриншот удаляются немедленно, а обезличенный tombstone и событие аудита остаются до штатной очистки.