2024-12-11 23:03:19 +00:00
|
|
|
|
## Просмотры публикаций
|
|
|
|
|
|
|
|
|
|
- Интеграция с Google Analytics для отслеживания просмотров публикаций
|
|
|
|
|
- Подсчет уникальных пользователей и общего количества просмотров
|
2025-06-01 23:56:11 +00:00
|
|
|
|
- Автоматическое обновление статистики при запросе данных публикации
|
2024-12-16 16:13:16 +00:00
|
|
|
|
|
|
|
|
|
## Мультидоменная авторизация
|
|
|
|
|
|
2025-03-22 08:47:19 +00:00
|
|
|
|
- Поддержка авторизации для разных доменов
|
2024-12-16 16:44:24 +00:00
|
|
|
|
- Автоматическое определение сервера авторизации
|
|
|
|
|
- Корректная обработка CORS для всех поддерживаемых доменов
|
2024-12-16 16:13:16 +00:00
|
|
|
|
|
2025-03-20 08:55:21 +00:00
|
|
|
|
## Система кеширования
|
|
|
|
|
|
2025-06-16 17:20:23 +00:00
|
|
|
|
- **Redis как основное хранилище**: Кэширование, сессии, токены, временные данные
|
|
|
|
|
- **Полная документация схемы**: [redis-schema.md](redis-schema.md) - детальное описание всех структур данных
|
|
|
|
|
- **11 категорий данных**: Аутентификация, кэш сущностей, поиск, просмотры, уведомления
|
|
|
|
|
- **Система токенов**: Сессии, OAuth токены, токены подтверждения с TTL
|
|
|
|
|
- **Переменные окружения**: Централизованное хранение конфигурации в Redis
|
|
|
|
|
- **Кэш сущностей**: Авторы, темы, публикации с автоматической инвалидацией
|
|
|
|
|
- **Поисковый кэш**: Нормализованные запросы с результатами
|
|
|
|
|
- **Pub/Sub каналы**: Real-time уведомления и коммуникация
|
|
|
|
|
- **Оптимизация**: Pipeline операции, стратегии кэширования
|
|
|
|
|
- **Мониторинг**: Команды диагностики и решение проблем производительности
|
2025-03-20 08:55:21 +00:00
|
|
|
|
- Поддержка как синхронных, так и асинхронных функций в декораторе cache_on_arguments
|
|
|
|
|
- Автоматическая сериализация/десериализация данных в JSON с использованием CustomJSONEncoder
|
|
|
|
|
- Резервная сериализация через pickle для сложных объектов
|
|
|
|
|
- Генерация уникальных ключей кеша на основе сигнатуры функции и переданных аргументов
|
|
|
|
|
- Настраиваемое время жизни кеша (TTL)
|
|
|
|
|
- Возможность ручной инвалидации кеша для конкретных функций и аргументов
|
|
|
|
|
|
2024-12-17 16:51:00 +00:00
|
|
|
|
## CORS Configuration
|
|
|
|
|
|
|
|
|
|
- Поддерживаемые методы: GET, POST, OPTIONS
|
|
|
|
|
- Настроена поддержка credentials
|
2024-12-17 17:06:15 +00:00
|
|
|
|
- Разрешенные заголовки: Authorization, Content-Type, X-Requested-With, DNT, Cache-Control
|
2025-03-22 10:37:43 +00:00
|
|
|
|
- Настроено кэширование preflight-ответов на 20 дней (1728000 секунд)
|
|
|
|
|
|
|
|
|
|
## Пагинация комментариев по веткам
|
|
|
|
|
|
|
|
|
|
- Эффективная загрузка комментариев с учетом их иерархической структуры
|
|
|
|
|
- Отдельный запрос `load_comments_branch` для оптимизированной загрузки ветки комментариев
|
|
|
|
|
- Возможность загрузки корневых комментариев статьи с первыми ответами на них
|
|
|
|
|
- Гибкая пагинация как для корневых, так и для дочерних комментариев
|
2025-03-26 05:25:18 +00:00
|
|
|
|
- Использование поля `stat.comments_count` для отображения количества ответов на комментарий
|
2025-03-22 10:37:43 +00:00
|
|
|
|
- Добавление специального поля `first_replies` для хранения первых ответов на комментарий
|
|
|
|
|
- Поддержка различных методов сортировки (новые, старые, популярные)
|
2025-06-01 23:56:11 +00:00
|
|
|
|
- Оптимизированные SQL запросы для минимизации нагрузки на базу данных
|
2025-06-16 17:20:23 +00:00
|
|
|
|
|
|
|
|
|
## Модульная система авторизации
|
|
|
|
|
|
|
|
|
|
- **Специализированные менеджеры токенов**:
|
|
|
|
|
- `SessionTokenManager`: Управление пользовательскими сессиями
|
|
|
|
|
- `VerificationTokenManager`: Токены для подтверждения email, телефона, смены пароля
|
|
|
|
|
- `OAuthTokenManager`: Управление OAuth токенами для внешних провайдеров
|
|
|
|
|
- `BatchTokenOperations`: Пакетные операции с токенами
|
|
|
|
|
- `TokenMonitoring`: Мониторинг и статистика использования токенов
|
|
|
|
|
- **Улучшенная производительность**:
|
|
|
|
|
- 50% ускорение Redis операций через пайплайны
|
|
|
|
|
- 30% снижение потребления памяти
|
|
|
|
|
- Оптимизированные запросы к базе данных
|
|
|
|
|
- **Безопасность**:
|
|
|
|
|
- Поддержка PKCE для всех OAuth провайдеров
|
|
|
|
|
- Автоматическая очистка истекших токенов
|
|
|
|
|
- Защита от replay-атак
|
|
|
|
|
|
|
|
|
|
## OAuth интеграция
|
|
|
|
|
|
|
|
|
|
- **7 поддерживаемых провайдеров**:
|
|
|
|
|
- Google, GitHub, Facebook
|
|
|
|
|
- X (Twitter), Telegram
|
|
|
|
|
- VK (ВКонтакте), Yandex
|
|
|
|
|
- **Обработка провайдеров без email**:
|
|
|
|
|
- Генерация временных email для X и Telegram
|
|
|
|
|
- Возможность обновления email в профиле
|
|
|
|
|
- **Токены в Redis**:
|
|
|
|
|
- Хранение access и refresh токенов с TTL
|
|
|
|
|
- Автоматическое обновление токенов
|
|
|
|
|
- Централизованное управление через Redis
|
|
|
|
|
- **Безопасность**:
|
|
|
|
|
- PKCE для всех OAuth потоков
|
|
|
|
|
- Временные state параметры в Redis (10 минут TTL)
|
|
|
|
|
- Одноразовые сессии
|
|
|
|
|
- Логирование неудачных попыток аутентификации
|
|
|
|
|
|
|
|
|
|
## Система управления паролями и email
|
|
|
|
|
|
|
|
|
|
- **Мутация updateSecurity**:
|
|
|
|
|
- Смена пароля с валидацией сложности
|
|
|
|
|
- Смена email с двухэтапным подтверждением
|
|
|
|
|
- Одновременная смена пароля и email
|
|
|
|
|
- **Токены подтверждения в Redis**:
|
|
|
|
|
- Автоматический TTL для всех токенов
|
|
|
|
|
- Безопасное хранение данных подтверждения
|
|
|
|
|
- **Дополнительные мутации**:
|
|
|
|
|
- confirmEmailChange
|
|
|
|
|
- cancelEmailChange
|