Data Retention И Lifecycle Standard
Назначение
Документ задает общий подход к срокам хранения, архивированию, anonymization, deletion, export expiration и cleanup jobs.
Категории Данных
| Категория | Примеры | Правило |
|---|---|---|
| Financial ledger | postings, transactions, holds | Append-only, не удаляется без legal process. |
| Identity/security | sessions, MFA events, login attempts | Retention по security/compliance policy. |
| PII/KYC | документы, анкеты, проверки | Минимизация, masking, restricted access, legal hold. |
| Audit/evidence | audit records, PDR, evidence packages | Immutable retention, correction через новую запись. |
| Analytics facts | ClickHouse events/facts | Retention по freshness/reporting needs. |
| Exports | Excel/CSV/JSON files | Short TTL, explicit access audit. |
| Cache | Redis keys | TTL обязателен, tenant-aware key. |
| Provider payloads | callbacks, snapshots | Хранить только classified/minimized evidence. |
Lifecycle Actions
| Action | Когда Используется |
|---|---|
Retain | Данные нужны для учета, compliance или dispute. |
Archive | Данные редко читаются, но должны быть восстановимы. |
Anonymize | Удалить прямую идентификацию, сохранить агрегированную аналитику. |
Delete | Разрешено policy и нет legal hold. |
Expire | Временные файлы, exports, tokens, cache. |
Retention Policy Record
Каждая политика хранения описывается typed record:
| Поле | Тип | Описание |
|---|---|---|
RetentionPolicyCode | string | Stable code. |
DataCategory | enum | Категория данных. |
OwnerService | string | Сервис-владелец. |
DefaultRetentionDays | int? | Срок хранения. |
LegalHoldSupported | bool | Можно ли заблокировать deletion. |
ActionAfterRetention | enum | Archive, Anonymize, Delete, Expire. |
AuditRequired | bool | Нужен ли audit. |
RunbookRef | string | Инструкция. |
Export Expiration
Report/export files:
- имеют owner actor и tenant/brand scope;
- доступны только по short-lived link или через authenticated download endpoint;
- имеют TTL;
- удаляются cleanup job-ом;
- каждое скачивание sensitive export создает audit record.
PII И Legal Hold
Если включен legal hold, anonymization/delete jobs должны fail closed и создать audit record. PII classification берется из PII Classification Matrix.
Tests
- expired export становится недоступен;
- cleanup job не удаляет legal hold data;
- anonymization сохраняет referential integrity;
- audit пишется для sensitive delete/anonymize/export access;
- Redis cache keys имеют TTL и tenant isolation.
Обратные ссылки
Автоссылки: где используется этот документ.
- backend-shared-standards-index.md (1): Backend Shared Standards Index