core/docs/features.md
2025-06-16 20:20:23 +03:00

6.9 KiB
Raw Blame History

Просмотры публикаций

  • Интеграция с Google Analytics для отслеживания просмотров публикаций
  • Подсчет уникальных пользователей и общего количества просмотров
  • Автоматическое обновление статистики при запросе данных публикации

Мультидоменная авторизация

  • Поддержка авторизации для разных доменов
  • Автоматическое определение сервера авторизации
  • Корректная обработка CORS для всех поддерживаемых доменов

Система кеширования

  • Redis как основное хранилище: Кэширование, сессии, токены, временные данные
  • Полная документация схемы: redis-schema.md - детальное описание всех структур данных
  • 11 категорий данных: Аутентификация, кэш сущностей, поиск, просмотры, уведомления
  • Система токенов: Сессии, OAuth токены, токены подтверждения с TTL
  • Переменные окружения: Централизованное хранение конфигурации в Redis
  • Кэш сущностей: Авторы, темы, публикации с автоматической инвалидацией
  • Поисковый кэш: Нормализованные запросы с результатами
  • Pub/Sub каналы: Real-time уведомления и коммуникация
  • Оптимизация: Pipeline операции, стратегии кэширования
  • Мониторинг: Команды диагностики и решение проблем производительности
  • Поддержка как синхронных, так и асинхронных функций в декораторе cache_on_arguments
  • Автоматическая сериализация/десериализация данных в JSON с использованием CustomJSONEncoder
  • Резервная сериализация через pickle для сложных объектов
  • Генерация уникальных ключей кеша на основе сигнатуры функции и переданных аргументов
  • Настраиваемое время жизни кеша (TTL)
  • Возможность ручной инвалидации кеша для конкретных функций и аргументов

CORS Configuration

  • Поддерживаемые методы: GET, POST, OPTIONS
  • Настроена поддержка credentials
  • Разрешенные заголовки: Authorization, Content-Type, X-Requested-With, DNT, Cache-Control
  • Настроено кэширование preflight-ответов на 20 дней (1728000 секунд)

Пагинация комментариев по веткам

  • Эффективная загрузка комментариев с учетом их иерархической структуры
  • Отдельный запрос load_comments_branch для оптимизированной загрузки ветки комментариев
  • Возможность загрузки корневых комментариев статьи с первыми ответами на них
  • Гибкая пагинация как для корневых, так и для дочерних комментариев
  • Использование поля stat.comments_count для отображения количества ответов на комментарий
  • Добавление специального поля first_replies для хранения первых ответов на комментарий
  • Поддержка различных методов сортировки (новые, старые, популярные)
  • Оптимизированные SQL запросы для минимизации нагрузки на базу данных

Модульная система авторизации

  • Специализированные менеджеры токенов:
    • 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