fix(tradein): срок жизни оценки 24ч → 720ч (30 суток) — отчёты исчезали раньше, чем ими успевали воспользоваться
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 13s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m50s
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI / changes (pull_request) Successful in 13s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m50s
27.08, пилот «Практика». У пользователя ВСЕ 75 оценок оказались недоступны, включая позавчерашние: список показывал их со статусом «устарел», а открытие отдавало «Ссылка устарела, отчёт удалён или у вас нет к нему доступа». Выглядело как пропажа данных — на деле строки целы, истёк expires_at = created_at + 24ч. Совпадение двух вещей и создало впечатление аварии: сутки не работал вход (упало право CONNECT на базу auth), и ровно за это время истекли последние живые отчёты. Люди зашли и увидели, что не открывается ничего. Обоснование «оценка живёт сессию клиента, не архив» писалось под анонимный B2C. «Практика» — пилот-юрлицо: менеджер возвращается к оценке через день-два, когда клиент перезванивает. Суточный срок для такого сценария означает, что работа исчезает раньше, чем её успевают использовать. Настройка одна на оба контура, и это осознанно НЕ маскируется: юридический мотив 152-ФЗ относится к анонимному B2C, разделение сроков по контурам — отдельная задача. Здесь поднят общий срок, а не сделан вид, что контуры уже разведены.
This commit is contained in:
parent
51c779c092
commit
34f8f506c0
1 changed files with 18 additions and 1 deletions
|
|
@ -971,7 +971,24 @@ class Settings(BaseSettings):
|
|||
# "сессию" клиента, не архив); юридически обоснованный срок хранения адреса
|
||||
# физлица для анонимного B2C — решение не инженера, см. итоговый комментарий
|
||||
# к задаче. ENV: TRADE_IN_ESTIMATE_RETENTION_HOURS.
|
||||
trade_in_estimate_retention_hours: int = 24
|
||||
#
|
||||
# 27.08 — поднято 24 → 720 (30 суток) по решению владельца. Прод-факт:
|
||||
# у пилота «Практика» ВСЕ 75 оценок оказались недоступны, включая
|
||||
# позавчерашние, и это выглядело как пропажа данных. Строки были целы —
|
||||
# истёк `expires_at`, и карточка отдавала «Ссылка устарела».
|
||||
#
|
||||
# Обоснование «оценка живёт сессию клиента, не архив» писалось под
|
||||
# анонимный B2C. «Практика» — пилот-юрлицо: менеджер возвращается к
|
||||
# оценке через день-два, когда клиент перезванивает. Для такого сценария
|
||||
# суточный срок означает, что работа исчезает раньше, чем её успевают
|
||||
# использовать.
|
||||
#
|
||||
# NB: настройка ОДНА на оба контура. Юридический мотив 152-ФЗ (хранение
|
||||
# адреса физлица) относится к анонимному B2C, и для него 30 суток —
|
||||
# решение не инженерное. Разделение сроков по контурам — отдельная
|
||||
# задача; здесь сознательно поднят общий срок, а не сделан вид, что
|
||||
# контуры уже разведены.
|
||||
trade_in_estimate_retention_hours: int = 720
|
||||
|
||||
# trade_in_leads.expires_at TTL (дни от момента создания, migration 231).
|
||||
# У trade_in_leads раньше вообще не было срока хранения — лид (телефон +
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue