feat: lock concurrent moderation decisions
This commit is contained in:
@@ -264,6 +264,8 @@ curl -H "Authorization: Bearer change-me-in-production" \
|
||||
|
||||
`GET /api/v1/admin/moderation-history` объединяет историю решений по пользовательским уловам и внешним наблюдениям; последние события видны на dashboard. Ответ содержит только тип и UUID сущности, время, действие, оператора и причину — без ников, исходных URL и parser payload. Dashboard выгружает отдельный `moderation-history-export`: в нём дополнительно исключены UUID, оператор и свободный текст причины, остаются только время, тип, действие и признак необходимости подтверждения.
|
||||
|
||||
Решения в обеих очередях используют optimistic locking: API возвращает `moderation_version`, а изменяющий запрос обязан прислать увиденное значение. Проверка выполняется под блокировкой строки; если другая вкладка уже решила запись, сервер отвечает `409`, UI обновляет очередь и не перезаписывает более новое решение.
|
||||
|
||||
## Эксплуатация production
|
||||
|
||||
- первый запуск, обновление и preflight: [deploy/README.md](deploy/README.md);
|
||||
|
||||
Reference in New Issue
Block a user